From a367b7232061805a82fb6aa4cd0af768b8e8c10e Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Fri, 13 Nov 2020 22:41:01 -0500 Subject: [PATCH 01/16] whoops, forgot the paragraph tag --- index.m4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.m4 b/index.m4 index 76414b1..04a3831 100644 --- a/index.m4 +++ b/index.m4 @@ -18,7 +18,7 @@ reliability through application of My research areas of interest include programming languages, proof assistants, and their type systems.

-I am currently employed +

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 @@ -28,7 +28,7 @@ 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. +necessarily represent those of my employer or anyone else.

On the side, I enjoy hacking -- 2.20.1 From 553a0296a5df508f36f9332170ba5037a7d2bf8e Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Fri, 11 Dec 2020 22:54:35 -0500 Subject: [PATCH 02/16] various small changes --- GNUmakefile | 2 +- fsf-internship/intro.m4 => fsf-internship-intro.m4 | 0 index.m4 | 12 +++++------- meta_defs.m4 | 2 +- static/.htaccess | 2 ++ static/.htaccess-www | 3 +++ 6 files changed, 12 insertions(+), 9 deletions(-) rename fsf-internship/intro.m4 => fsf-internship-intro.m4 (100%) diff --git a/GNUmakefile b/GNUmakefile index 3f2c9be..4eaaf04 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,4 +1,4 @@ -SRC := $(filter-out $(wildcard meta_*), $(wildcard *.m4 fsf-internship/*.m4)) +SRC := $(filter-out $(wildcard meta_*), $(wildcard *.m4)) OUTPUTS := $(patsubst %.m4,out/%.html, $(SRC)) STATIC := $(patsubst static/%,out/%, $(filter-out static/GNUmakefile, $(wildcard static/* static/.*))) diff --git a/fsf-internship/intro.m4 b/fsf-internship-intro.m4 similarity index 100% rename from fsf-internship/intro.m4 rename to fsf-internship-intro.m4 diff --git a/index.m4 b/index.m4 index 04a3831..02fc07d 100644 --- a/index.m4 +++ b/index.m4 @@ -32,22 +32,20 @@ necessarily represent those of my employer or anyone else.

On the side, I enjoy hacking -on elisp -and guile. I'm a +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 +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.

- -

Starting in spring 2020, I am an intern with the FSF tech team.

@@ -65,7 +63,7 @@ and - diff --git a/meta_defs.m4 b/meta_defs.m4 index aad4d83..fa970b2 100644 --- a/meta_defs.m4 +++ b/meta_defs.m4 @@ -3,7 +3,7 @@ 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', 3, `fsf-internship-intro')dnl dnl define(__latex, `')dnl define(__smly, `:-)')dnl diff --git a/static/.htaccess b/static/.htaccess index fe09a63..c03a35b 100644 --- a/static/.htaccess +++ b/static/.htaccess @@ -4,4 +4,6 @@ # .html files RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L] + +RewriteRule ^fsf-internship/intro$ /fsf-internship-intro [R] diff --git a/static/.htaccess-www b/static/.htaccess-www index 69dab1d..35d52d1 100644 --- a/static/.htaccess-www +++ b/static/.htaccess-www @@ -9,5 +9,8 @@ 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 -- 2.20.1 From dcc71b98fdb8c653c2edeb9994d26d38003f4116 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sat, 12 Dec 2020 01:13:21 -0500 Subject: [PATCH 03/16] various enhancements, including valid atom and rss feeds --- GNUmakefile | 7 +++--- arch-macbook-air.m4 | 30 ++++++++++++------------ computing.m4 | 55 ++++++++++++++++++++++---------------------- header.html | 10 ++++---- index.m4 | 56 ++++++++++++++++++++++----------------------- meta_feed_atom.m4 | 3 ++- meta_feed_rss.m4 | 5 +++- 7 files changed, 87 insertions(+), 79 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index 4eaaf04..bbf2bb5 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -7,8 +7,9 @@ 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 $< > $@ -out/notes.atom: meta_feed_atom.m4 ; m4 $< > $@ -out/notes.rss: meta_feed_rss.m4 ; m4 $< > $@ +out/notes.%: meta_feed_%.m4 $(SRC) header.html footer.html + m4 $< > $@ + sed -i 's|href="/\([^/]\)|href="https://bndl.org/\1|' $@ out/GNUmakefile: GNUmakefile ; ln -s $(PWD)/$< $@ $(STATIC): ; ln -s $(PWD)/static/$(@F) $@ @@ -25,7 +26,7 @@ clean: deploy: rsync -avzLP out/ abandali@bndl.org:www/bndl.org/ - ssh abandali@bndl.org mv www/bndl.org/.htaccess-www www/.htaccess +# ssh abandali@bndl.org mv www/bndl.org/.htaccess-www www/.htaccess watch: while true; do \ diff --git a/arch-macbook-air.m4 b/arch-macbook-air.m4 index 4435a94..d1991c8 100644 --- a/arch-macbook-air.m4 +++ b/arch-macbook-air.m4 @@ -8,9 +8,9 @@ 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 +Installation Guide or the former -Beginner's +Beginner's Guide. Rather, it mostly serves as a small summary with a few useful notes about the gotchas.

@@ -32,7 +32,7 @@ then come back!

Creating a bootable Arch Installer USB

There are different ways of creating a bootable Arch USB, all documented on the -USB +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.

@@ -80,13 +80,13 @@ status.

Partitioning

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

Setting up LVM & LUKS

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

@@ -100,7 +100,7 @@ cryptsetup -v --cipher aes-xts-plain64 --key-size 512 --hash sha512 \

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 +LUKS encryption options.

Then we open the container:

@@ -234,9 +234,9 @@ reboot

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 +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%.

@@ -256,7 +256,7 @@ pacaur -S mba6x_bl-dkms

Check out the -General +General recommendations for more details.

References

@@ -264,12 +264,12 @@ recommendations for more details.

bits and pieces, about installing Arch on a MacBook:

diff --git a/computing.m4 b/computing.m4 index 8b647ac..9b65cdd 100644 --- a/computing.m4 +++ b/computing.m4 @@ -5,52 +5,53 @@ define(__upd, 2020-07-17T12:00:00Z)dnl define(__id, 2)dnl include(header.html)dnl -

Inspired by the computing pages of -rms and -Leah Rowe.

+

Inspired by the computing page of +rms.

Computers

-

My librebooted ThinkPad X200 computer -is the machine I use the most and where I do most of my computing. I -also have the privilege of having access to a fleet of servers through -our school's -Computer Science Club that I use -for some more computationally intensive tasks every now and again, and -also for hosting this very website.

+

My librebooted ThinkPad X200 +computer is the machine I use the most and where I do most of my +computing. I also have the privilege of having access to a fleet of +servers through our school's +Computer Science Club that I +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 +Trisquel, +Guix System, and +Debian (with +no contrib or non-free) almost exclusively. +For the kernel, I mostly 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.

+jxself's APT +repository.

Actual computing

I spend most of my time in -GNU Emacs.

+GNU Emacs.

TODO: elaborate

Maintaining this site

I took a great amount of inspiration -from Phil Hagelberg'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. +from Phil Hagelberg'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 convenient make rules to build and publish the site. The bibliography of my publications is generated from bandali.bib -using bibtex2html, -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.

+using bibtex2html, +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.

define(__copy, `2019, 2020')dnl include(footer.html)dnl diff --git a/header.html b/header.html index 3a14408..9371905 100644 --- a/header.html +++ b/header.html @@ -3,9 +3,9 @@ ifdef(`__slug',,`define(__slug, _get(`notes', __id))')dnl ifdef(`__feed_atom', ` bandali -tag:bndl.org,atom,notes:__slug +tag:bndl.org,2020:notes.atom:__slug __pub -__upd +ifdef(`__upd',`__upd',`__pub') __title ', @@ -13,8 +13,9 @@ ifdef(`__feed_atom', ` __title https://bndl.org/__slug -tag:bndl.org,rss,notes:__slug +tag:bndl.org,2020:notes.rss:__slug syscmd(date "-uRd __pub" | tr -d \\n) +ifdef(`__upd',`__upd')dnl ', ` @@ -23,7 +24,8 @@ ifdef(`__feed_atom', __title`'ifdef(`__nts',,` — bandali') - + + diff --git a/index.m4 b/index.m4 index 02fc07d..23c4639 100644 --- a/index.m4 +++ b/index.m4 @@ -6,45 +6,45 @@ 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 +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.

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

-

On the side, I -enjoy hacking -on Emacs -Lisp. I'm a -GNU maintainer, -webmaster, -and Savannah -hacker; and an associate +

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 +chief organizer of the EmacsConf conference, and the co-host of the -Emacs.el podcast with -Daniel Gopar. I am also a member of +Emacs.el podcast with +Daniel Gopar. I am also a member of the Systems Committee of the -Computer Science Club of the +Computer Science Club of the University of Waterloo.

diff --git a/meta_feed_atom.m4 b/meta_feed_atom.m4 index d9da718..72ac296 100644 --- a/meta_feed_atom.m4 +++ b/meta_feed_atom.m4 @@ -2,8 +2,9 @@ include(meta_defs.m4)dnl Amin Bandali's Personal Site -tag:bndl.org,atom,notes/ +tag:bndl.org,2020:notes.atom + syscmd(date -Iseconds -u | tr -d \\n) define(__feed_atom)dnl diff --git a/meta_feed_rss.m4 b/meta_feed_rss.m4 index c0e30c9..a9feeb3 100644 --- a/meta_feed_rss.m4 +++ b/meta_feed_rss.m4 @@ -1,6 +1,6 @@ include(meta_defs.m4)dnl - + Amin Bandali's Personal Site Notes and blog posts by Amin Bandali @@ -8,6 +8,9 @@ include(meta_defs.m4)dnl 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')')')') -- 2.20.1 From 5e6486ca995f68d367af0ea9ea595a12ec8cb308 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sat, 12 Dec 2020 01:17:10 -0500 Subject: [PATCH 04/16] whoops, forgot a dnl --- header.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/header.html b/header.html index 9371905..38326bc 100644 --- a/header.html +++ b/header.html @@ -5,7 +5,7 @@ ifdef(`__feed_atom', bandali tag:bndl.org,2020:notes.atom:__slug __pub -ifdef(`__upd',`__upd',`__pub') +ifdef(`__upd',`__upd',`__pub')dnl __title ', -- 2.20.1 From 4c4f1c9985c1b7b434cc721f353bc54b57e47d35 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Fri, 18 Dec 2020 16:30:33 -0500 Subject: [PATCH 05/16] add concluding blog post for my fsf internship :-) --- fsf-internship-beyond.m4 | 99 ++++++++++++++++++++++++++++++++++++++++ fsf-internship-intro.m4 | 4 +- index.m4 | 5 ++ meta_defs.m4 | 3 +- 4 files changed, 108 insertions(+), 3 deletions(-) create mode 100644 fsf-internship-beyond.m4 diff --git a/fsf-internship-beyond.m4 b/fsf-internship-beyond.m4 new file mode 100644 index 0000000..f878697 --- /dev/null +++ b/fsf-internship-beyond.m4 @@ -0,0 +1,99 @@ +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 +include(header.html)dnl + +

Originally published on the Free Software Foundation's +sysadmin blog:
+My internship with the FSF tech team and beyond.

+ +

Hello! I'm +Amin Bandali, +and this is my second blog post on the FSF sysadmin blog, concluding +my internship with the FSF tech team this year.

+ +

Throughout my internship with the tech team, I have worked mainly +on sysadmin tasks related to setting up and/or managing FSF's +GNU/Linux servers. Perhaps most significantly, I set up an instance +of the Sourcehut forge software to +help +evaluate +it as a candidate for the upcoming +FSF forge project. +I documented the installation and setup process of Sourcehut's various +components in the form of a literate GNU Emacs Org-mode file, where +source blocks are interspersed with comments and prose explaining +them. One can then progressively evaluate and execute the source +blocks, and optionally have their results stored back in the Org file +itself to help with documentation/demonstration.

+ +

I have also been slowly working on various improvements for the +server running www.gnu.org, and will continue doing work on it as a +volunteer after the end of my internship. This will hopefully be +beneficial to the FSF sysadmins running the server, the GNU webmasters +who do webmastering work on gnu.org, and the general public browsing +and using gnu.org's pages. Notably, changes included upgrading the +server to the latest release of Trisquel GNU/Linux, and revamping and +improving the search mechanism for gnu.org's pages. Additionally, +there are several other projects that I would like to tackle with the +tech team in the near future.

+ +

During my internship with the FSF tech team, I picked up a variety +of new skills and learned more about a diverse set of topics and +tools. This included building and installing a complex piece of +software like Sourcehut and debugging issues encountered along the +way, using Ansible for managing and deploying infrastructure, as well +as learning more about the Exim mail transfer agent used to run FSF +and GNU's array of mail servers.

+ +

In conclusion to my internship and the year 2020, it's safe to say +that this year has been an eventful year for many people, including +myself. I started my internship with the tech team back in May, and +as a graduate student at the time, I was expecting a reasonable and +balanced workload for my work on my thesis over the coming months. +However, early on (less than two weeks) into my internship I learned +that due to a number of reasons, I needed to complete my master's +studies on a two-month deadline. I told the tech team about the +issue, asking whether I could take a hiatus to complete my studies +without affecting my internship. I am beyond thankful to the tech +team and the FSF as whole for being accommodating, and for their +flexibility in allowing me to take a leave to focus on writing my +thesis and wrapping up my master's studies. I managed to successfully +wrap up my studies in that short timeline, and focus on my internship +afterwards.

+ +

However, all good things must come to an end, and this internship +is no exception. I am incredibly grateful to the members of the FSF +tech team -- Ian, Andrew, Ruben, and Michael -- for welcoming me to +the team as an intern and mentoring me, answering my many questions, +and helping me learn more. It has been an honour and a wonderful +experience for me all around working with you all and seeing the +energy and passion with which you take on the work and +responsibilities that come with being an FSF sysadmin and Web +developer. While most of my interactions were with the tech team, I +also got to interact with FSF staffers from several other teams during +my internship, and I'm thankful for our conversations and the chance +to get to know and appreciate the important work you do.

+ +

This internship has come to an end, but I will carry with me all of +the good memories and the lessons I learned along the way, and will +happily to continue working with you as a volunteer. The things I +learned have been invaluable and greatly helpful to me, as I +transitioned into my new full-time job at Savoir-faire Linux as a Free +Software Consultant, where I get to work on various parts and aspects +of Jami, a GNU package for universal communication which respects the +freedoms and privacy of its users.

+ +

I would like to thank the FSF for providing me this excellent +opportunity to work alongside the tech team as an intern, and take +away so many valuable lessons and great memories.

+ +

Interested in interning for the Free Software +Foundation? The application period for spring 2021 internships is +currently open. Please see +https://www.fsf.org/volunteer/internships +for more details and information on how to apply!

+ +define(__copy, `2020')dnl +include(footer.html)dnl diff --git a/fsf-internship-intro.m4 b/fsf-internship-intro.m4 index f09d1ba..11d9339 100644 --- a/fsf-internship-intro.m4 +++ b/fsf-internship-intro.m4 @@ -4,8 +4,8 @@ define(__pub, 2020-05-29T14:38:00-04:00)dnl define(__id, 3)dnl include(header.html)dnl -

Originally published on the Free Software Foundation's sysadmin -blog:
+

Originally published on the Free Software Foundation's +sysadmin blog:
Introducing Amin Bandali, intern with the FSF tech team.

diff --git a/index.m4 b/index.m4 index 23c4639..1f8246e 100644 --- a/index.m4 +++ b/index.m4 @@ -63,6 +63,11 @@ and
Internship with the FSF tech team +Internship with the FSF tech team (intro) May 29, 2020
+ + + + diff --git a/meta_defs.m4 b/meta_defs.m4 index fa970b2..ce6f68d 100644 --- a/meta_defs.m4 +++ b/meta_defs.m4 @@ -1,9 +1,10 @@ -define(`__latest', 3)dnl +define(`__latest', 4)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 dnl define(__latex, `')dnl define(__smly, `:-)')dnl -- 2.20.1 From a98c50cd044a2d649c345ee6c88dba9cc8016b65 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Fri, 18 Dec 2020 21:38:17 -0500 Subject: [PATCH 06/16] add to atom feed --- meta_feed_atom.m4 | 1 + 1 file changed, 1 insertion(+) diff --git a/meta_feed_atom.m4 b/meta_feed_atom.m4 index 72ac296..9824118 100644 --- a/meta_feed_atom.m4 +++ b/meta_feed_atom.m4 @@ -2,6 +2,7 @@ include(meta_defs.m4)dnl Amin Bandali's Personal Site +Notes and blog posts by Amin Bandali tag:bndl.org,2020:notes.atom -- 2.20.1 From 29f0d7b9e10f827c29213a40279b8a767c99d80b Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Fri, 12 Mar 2021 21:53:29 -0500 Subject: [PATCH 07/16] revamp the website it is now served from shemshak.org/~bandali --- 404.m4 | 9 + GNUmakefile | 13 +- arch-macbook-air.m4 | 277 ----------------------- computing.m4 | 48 ++-- contact.m4 | 73 ++---- cv.m4 | 4 +- footer.html | 4 +- fsf-internship-beyond.m4 | 2 +- fsf-internship-intro.m4 | 2 +- header.html | 37 ++- index.m4 | 93 +++----- license.m4 | 10 +- meta_defs.m4 | 15 +- meta_feed_atom.m4 | 10 +- meta_feed_rss.m4 | 10 +- projects.m4 | 28 --- publications.m4 | 4 +- static/.htaccess | 10 +- static/.htaccess-www | 16 -- static/404.html | 17 -- static/bandali-bib-partial.html | 10 +- static/bandali-bib-sed.txt | 3 - static/{icon-12px.png => feed-12x12.png} | Bin static/gpl-3.0.html | 3 +- static/icon-16px.png | Bin 742 -> 0 bytes static/publications-partial.html | 18 +- static/publications-sed.txt | 4 +- static/style.css | 73 +++--- 28 files changed, 199 insertions(+), 594 deletions(-) create mode 100644 404.m4 delete mode 100644 arch-macbook-air.m4 delete mode 100644 projects.m4 delete mode 100644 static/.htaccess-www delete mode 100644 static/404.html rename static/{icon-12px.png => feed-12x12.png} (100%) delete mode 100644 static/icon-16px.png 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

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

- -
    -
  • bandali@gnu.org
  • -
  • bandali@uwaterloo.ca
  • -dnl
  • bandali@csclub.uwaterloo.ca
  • -
- -

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.

- -
My internship with the FSF tech team and beyond +(concluding)December 18, 2020
Internship with the FSF tech team (intro) May 29, 2020
- - - - - - - - - - - - - - - - - - - - - -
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', `

Copyright © __copy Amin Bandali. -See the ifelse(__slug,`license',`above for license conditions',`license conditions'). +See the ifelse(__slug,`license',`above for license conditions',`license conditions'). Please copy and share.

') 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/icon-12px.png b/static/feed-12x12.png
    similarity index 100%
    rename from static/icon-12px.png
    rename to static/feed-12x12.png
    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-16px.png b/static/icon-16px.png deleted file mode 100644 index 1151f76c1e908eb8ee7029c0e1d3e96adcde3a8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 742 zcmV3Ue;SVSRMauMI+VP$kSFkgP8e*UtW736f&>{f~w1~h$D57E{##@X=F)obp z9$gqUnqUH62&L1~nU2^}q(hO%MP*Eb@$AmYdEWEB-}fCMgb?GNlDe4|tD5X^k?eAz zhTN!OH(IwF?X*m)M<#VfM(>r;`!=JTlGJfeNu5}Q)lN4tZy9l41<4Z@wAPL2!7AoL zR?~xVlVL|WPP42@O`RLnX zAtS@my~AtZbhw&SmlL6eTx&B&wqm^K1!LaSS$-ZYg7x+))Sv^QhTZ7FD(0^?v65EE ze|d`WsI6f8(sou7?@W=!Tb{pgppw}(2SV$1GZ(Uwz0p+Ud?gbne|sPK5hp9kJF_m| z!!l~1l7!Df;-np+opzhH7w;Tm`Q!D!){P9t&3dwtt&l66Ej%6~;j^H4%ZUeUh*Xcf zwpF7$K%Xo)Nh_qo)nxCs7WO|gDBg0SN6Lsb+YqTUvI*y3_3>-+KKYxqc-rt$rW!Xe|Mw7ajPcAJtcLSfh}u?OV 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; -- 2.20.1 From 06611295e7000b1f22c4af109cb6ddb476cc97ad Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sun, 21 Mar 2021 23:38:48 -0400 Subject: [PATCH 08/16] add note about my Jami talk at LibrePlanet 2021 --- GNUmakefile | 20 +++++++++ footer.html | 4 +- header.html | 6 ++- index.m4 | 5 +++ lp2021.m4 | 75 ++++++++++++++++++++++++++++++++ meta_defs.m4 | 3 +- meta_feed_atom.m4 | 2 +- meta_feed_rss.m4 | 6 ++- static/bandali-bib-citefile.txt | 1 + static/bandali-bib-partial.html | 14 +++++- static/bandali.bib | 12 ++++- static/publications-partial.html | 18 +++++++- 12 files changed, 155 insertions(+), 11 deletions(-) create mode 100644 lp2021.m4 diff --git a/GNUmakefile b/GNUmakefile index b8523fd..36c83f8 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,3 +1,22 @@ +# GNUmakefile --- GNU Makefile for building my personal site + +# Copyright (C) 2020-2021 Amin Bandali + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see +# . + + SITE_DOMAIN := 'https://shemshak.org' SITE_PREFIX := '/~bandali' SITE_URL := '$(SITE_DOMAIN)$(SITE_PREFIX)' @@ -14,6 +33,7 @@ out/%.html: %.m4 header.html footer.html out/notes.%: meta_feed_%.m4 $(SRC) header.html footer.html m4 -D__d=$(SITE_DOMAIN) -D__p=$(SITE_PREFIX) $< > $@ sed -i 's|href="/\([^/]\)|href="$(SITE_DOMAIN)/\1|' $@ + sed -i 's|href="//|href="https://|' $@ out/GNUmakefile: GNUmakefile ; ln -s $(PWD)/$< $@ $(STATIC): ; ln -s $(PWD)/static/$(@F) $@ diff --git a/footer.html b/footer.html index 286a5c2..61653ae 100644 --- a/footer.html +++ b/footer.html @@ -1,5 +1,5 @@ -ifdef(`__feed_atom', `', -`ifdef(`__feed_rss', `', +ifdef(`__feed_atom', `]]>', +`ifdef(`__feed_rss', `]]>', `ifdef(`__pub', `

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

    diff --git a/header.html b/header.html index fbc63f8..892805b 100644 --- a/header.html +++ b/header.html @@ -8,7 +8,8 @@ ifdef(`__feed_atom', ifdef(`__upd',`__upd',`__pub')dnl __title -', + + __title @@ -16,7 +17,8 @@ ifdef(`__upd',`__upd',`__pub')dnl tag:shemshak.org,2020:__p/notes.rss:__slug syscmd(date "-uRd __pub" | tr -d \\n) ifdef(`__upd',`__upd')dnl -', + + diff --git a/index.m4 b/index.m4 index c84dd75..a760e7f 100644 --- a/index.m4 +++ b/index.m4 @@ -36,6 +36,11 @@ You can also read them via + + + + diff --git a/lp2021.m4 b/lp2021.m4 new file mode 100644 index 0000000..77fb590 --- /dev/null +++ b/lp2021.m4 @@ -0,0 +1,75 @@ +dnl -*- html -*- +define(__title, `LibrePlanet 2021: Jami and how it empowers users')dnl +define(__pub, 2021-03-20T09:00:00-04:00)dnl +define(__upd, 2021-03-21T01:15:00-04:00)dnl +define(__id, 4)dnl +include(header.html)dnl + +

    I am giving my very first +LibrePlanet talk today on +March 20th. I will be talking about +Jami, the GNU package for universal +communication that respects the freedoms and privacy of its users. +I'll be giving an introduction to Jami and its architecture, sharing +important and exciting development news from the Jami team about +rendezvous +points, JAMS, +the plugin SDK, +Swarm +chats, and more; and how these features each help empower users to +communicate with their loved ones without sacrificing their privacy or +freedom.

    + +

    Here is the abstract for my talk, also available on the +LibrePlanet +2021's speakers page: + +

    +

    Jami is free software for universal communication that respects the +freedoms and privacy of its users. Jami is an official GNU package +with a main goal of providing a framework for virtual communications, +along with a series of end-user applications for audio/video calling +and conferencing, text messaging, and file transfer.

    + +

    With the outbreak of the COVID-19 pandemic, working from home has +become the norm for many workers around the world. More and more +people are using videoconferencing tools to work or communicate with +their loved ones. The emergence of these tools has been followed by +many questions and scandals concerning the privacy and freedom of +users.

    + +

    This talk gives an introduction to Jami, a free/libre, truly +distributed, and peer-to-peer solution, and explains why and how it +differs from all other existing solutions and how it empowers +users.

    +
    + +

    I have been an attendee of LibrePlanet for some years, and am very +excited to be giving my first ever talk at LibrePlanet 2021 this year! +You can watch my talk and other speakers' talks live this weekend, +from the LibrePlanet 2021 +- Live page. Attendance is gratis (no cost), and you can register +at https://u.fsf.org/lp21-sp.

    + +

    Presentation slides: +pdf +(with notes) | +bib
    + +__latex sources: +tar.gz | +zip

    + +

    I hope to see you around this year's all-online LibrePlanet +conference this weekend!

    + +

    LibrePlanet is a conference about software freedom, +happening March 20 through 21, 2021. The event is hosted by the Free +Software Foundation (FSF), and brings together software developers, +law and policy experts, activists, students, and computer users to +learn skills, celebrate free software accomplishments, and face +upcoming challenges. Newcomers are always welcome, and LibrePlanet +2021 will feature programming for all ages and experience levels.

    + +define(__copy, `2021')dnl +include(footer.html)dnl diff --git a/meta_defs.m4 b/meta_defs.m4 index 8245f49..4ec0a77 100644 --- a/meta_defs.m4 +++ b/meta_defs.m4 @@ -1,9 +1,10 @@ -define(`__latest', 3)dnl +define(`__latest', 4)dnl define(`_put', `define(`$1[$2]', `$3')')dnl define(`_get', `defn(`$1[$2]')')dnl _put(`notes', 1, `computing')dnl _put(`notes', 2, `fsf-internship-intro')dnl _put(`notes', 3, `fsf-internship-beyond')dnl +_put(`notes', 4, `lp2021')dnl dnl define(`__site__title', `bandali's personal site')dnl define(`__latex', `')dnl diff --git a/meta_feed_atom.m4 b/meta_feed_atom.m4 index 04515a7..32af856 100644 --- a/meta_feed_atom.m4 +++ b/meta_feed_atom.m4 @@ -12,5 +12,5 @@ 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/ diff --git a/meta_feed_rss.m4 b/meta_feed_rss.m4 index 362a0e5..220a517 100644 --- a/meta_feed_rss.m4 +++ b/meta_feed_rss.m4 @@ -1,6 +1,8 @@ include(meta_defs.m4)dnl - + Amin Bandali's Personal Site Notes and blog posts by Amin Bandali @@ -15,6 +17,6 @@ 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/ diff --git a/static/bandali-bib-citefile.txt b/static/bandali-bib-citefile.txt index 034e7a9..9a6c65e 100644 --- a/static/bandali-bib-citefile.txt +++ b/static/bandali-bib-citefile.txt @@ -1,3 +1,4 @@ +bandali-jami-libreplanet-2021 bandali2020 DBLP:conf/re/AbbassiBDS18 bandali-magic-lassonde-2017 diff --git a/static/bandali-bib-partial.html b/static/bandali-bib-partial.html index 6b0914c..556941a 100644 --- a/static/bandali-bib-partial.html +++ b/static/bandali-bib-partial.html @@ -1,4 +1,16 @@ -

    bandali.bib

    +

    bandali.bib

    +@misc{bandali-jami-libreplanet-2021,
    +  author = {Amin Bandali},
    +  title = {Jami and how it empowers users},
    +  year = 2021,
    +  month = {March},
    +  howpublished = {Presented at the LibrePlanet 2021 Conference},
    +  slides = {https://p.bndl.org/bandali-jami-libreplanet-2021.pdf},
    +  pdf = {https://p.bndl.org/bandali-jami-libreplanet-2021-with-notes.pdf}
    +}
    +
    + +
     @mastersthesis{bandali2020,
       type = {{MMath} thesis},
       author = {Amin Bandali},
    diff --git a/static/bandali.bib b/static/bandali.bib
    index ed5f4be..b52761e 100644
    --- a/static/bandali.bib
    +++ b/static/bandali.bib
    @@ -1,6 +1,6 @@
     % bandali.bib --- bandali's bibliography -*-bibtex-*-
     
    -% Copyright (C) 2020 Amin Bandali 
    +% Copyright (C) 2020-2021 Amin Bandali 
     % DBLP items under CC0 ()
     
     %% ===================================================================
    @@ -15,6 +15,16 @@
     %% bandali's papers and talks (in reverse chronological order)
     %% ===================================================================
     
    +@misc{bandali-jami-libreplanet-2021,
    +  author       = {Amin Bandali},
    +  title        = {Jami and how it empowers users},
    +  year         = 2021,
    +  month        = {March},
    +  howpublished = {Presented at the LibrePlanet 2021 Conference},
    +  slides       = {https://p.bndl.org/bandali-jami-libreplanet-2021.pdf},
    +  pdf          = {https://p.bndl.org/bandali-jami-libreplanet-2021-with-notes.pdf}
    +}
    +
     @mastersthesis{bandali2020,
       type      = {{MMath} thesis},
       author    = {Amin Bandali},
    diff --git a/static/publications-partial.html b/static/publications-partial.html
    index bcf502a..9c1d5af 100644
    --- a/static/publications-partial.html
    +++ b/static/publications-partial.html
    @@ -1,5 +1,21 @@
     
    LibrePlanet 2021: Jami and how it empowers +usersMarch 20, 2021
    My internship with the FSF tech team and beyond (concluding) December 18, 2020
    + + + + + + -
    +[5] + +Amin Bandali. + Jami and how it empowers users. + Presented at the LibrePlanet 2021 Conference, March 2021. +[ bib | +slides | +.pdf ] + +
    [4] @@ -69,4 +85,4 @@ Ali Abbassi, Amin Bandali,
    + \ No newline at end of file -- 2.20.1 From 1b0d98a1040ccac430fcef6ec30a68748a5b1c7a Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Tue, 30 Mar 2021 23:29:20 -0400 Subject: [PATCH 09/16] fix two links --- lp2021.m4 | 2 +- mmath.m4 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lp2021.m4 b/lp2021.m4 index 77fb590..0b01333 100644 --- a/lp2021.m4 +++ b/lp2021.m4 @@ -54,7 +54,7 @@ at https://u.fsf.org/lp21-sp.

    Presentation slides: pdf (with notes) | -bib
    +bib
    __latex sources: tar.gz | diff --git a/mmath.m4 b/mmath.m4 index e2fb23b..eb6d07d 100644 --- a/mmath.m4 +++ b/mmath.m4 @@ -24,7 +24,7 @@ dnlmodels

    Reference version: pdf | -bib
    +bib
    __latex sources: tar.gz | zip

    -- 2.20.1 From c5d21f5538f970f6145160826979f3663bb3d383 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Mon, 5 Apr 2021 15:14:03 -0400 Subject: [PATCH 10/16] fix email on cv --- cv.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cv.m4 b/cv.m4 index 5a0e11b..7d66710 100644 --- a/cv.m4 +++ b/cv.m4 @@ -13,7 +13,7 @@ include(header.html)dnl Email -bandali@gnu +bandali at gnu dot org Phone -- 2.20.1 From ccd7a4805a0486cb1bf38706c2872be36fb0fc8c Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sun, 16 May 2021 16:23:53 -0400 Subject: [PATCH 11/16] don't regenerate the feeds when non-note m4 files change --- GNUmakefile | 3 ++- get-notes.sh | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100755 get-notes.sh diff --git a/GNUmakefile b/GNUmakefile index 36c83f8..321b19d 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -24,13 +24,14 @@ 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/.*))) +NOTES := $(shell ./get-notes.sh) all: $(OUTPUTS) out/notes.atom out/notes.rss out/style.css out/GNUmakefile $(STATIC) out/%.html: %.m4 header.html footer.html @mkdir -p $(@D) m4 -D__d=$(SITE_DOMAIN) -D__p=$(SITE_PREFIX) $< > $@ -out/notes.%: meta_feed_%.m4 $(SRC) header.html footer.html +out/notes.%: meta_feed_%.m4 $(NOTES) header.html footer.html m4 -D__d=$(SITE_DOMAIN) -D__p=$(SITE_PREFIX) $< > $@ sed -i 's|href="/\([^/]\)|href="$(SITE_DOMAIN)/\1|' $@ sed -i 's|href="//|href="https://|' $@ diff --git a/get-notes.sh b/get-notes.sh new file mode 100755 index 0000000..fa6483b --- /dev/null +++ b/get-notes.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +i=1 +n=$(echo '__latest' | m4 meta_defs.m4 -) + +while [ $i -le $n ]; do + echo "_get(\`notes', $i).m4" | m4 meta_defs.m4 - + i=$(($i+1)) +done -- 2.20.1 From 7b376474f6dabd5bd525d49b5d333fa18c8e897a Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sun, 25 Jul 2021 14:08:52 -0400 Subject: [PATCH 12/16] revamp the site and go fully static --- .gitignore | 1 - 404.html | 31 + 404.m4 | 9 - 404.txt | 9 + COPYING | 674 ----------------- GNUmakefile | 62 -- LICENSE | 1 - bandali-bib.m4 | 10 - bandali-computing.txt | 62 ++ bandali-contact.txt | 21 + bandali-cv.txt | 310 ++++++++ bandali-mmath.txt | 94 +++ bandali-projects.txt | 13 + .../bandali-pubkey.txt => bandali-pubkey.txt | 0 static/bandali.bib => bandali.bib | 0 bandali.txt | 53 ++ computing.html | 90 +++ computing.m4 | 51 -- contact.html | 43 ++ contact.m4 | 20 - cv.html | 404 ++++++++++ cv.m4 | 66 -- fa/404.fa.txt | 10 + fa/404.html | 33 + fa/bandali-computing.fa.txt | 67 ++ fa/bandali-contact.fa.txt | 22 + fa/bandali-projects.fa.txt | 13 + fa/bandali.fa.txt | 57 ++ fa/computing.html | 98 +++ fa/contact.html | 49 ++ fa/fsf-internship-beyond.fa.txt | 104 +++ fa/fsf-internship-beyond.html | 155 ++++ fa/fsf-internship-intro.fa.txt | 81 ++ fa/fsf-internship-intro.html | 124 ++++ fa/index.html | 88 +++ fa/projects.html | 40 + footer.html | 16 - ...ip-beyond.m4 => fsf-internship-beyond.html | 63 +- fsf-internship-beyond.txt | 114 +++ ...ship-intro.m4 => fsf-internship-intro.html | 63 +- fsf-internship-intro.txt | 80 ++ get-notes.sh | 9 - header.html | 60 -- index.html | 80 ++ index.m4 | 62 -- lp2021.m4 => libreplanet-2021.html | 92 ++- libreplanet-2021.txt | 81 ++ license.m4 | 34 - meta_defs.m4 | 12 - meta_feed_atom.m4 | 16 - meta_feed_rss.m4 | 22 - mmath.m4 => mmath.html | 134 +++- projects.html | 38 + publications.m4 | 15 - se212-f19.html | 65 ++ se212-f19.m4 | 45 -- serve.sh | 3 + static/.htaccess | 17 - static/GNUmakefile | 12 - static/bandali-bib-citefile.txt | 5 - static/bandali-bib-partial.html | 100 --- static/bandali-bib-sed.txt | 2 - static/feed-12x12.png | Bin 504 -> 0 bytes static/feed.svg | 18 - static/gnu.ico | Bin 1406 -> 0 bytes static/gpl-3.0.html | 697 ------------------ static/publications-partial.html | 88 --- static/publications-sed.txt | 16 - static/se212-h02q04d-soln.grg | 25 - static/se212-t01.org | 78 -- static/se212-t05.org | 272 ------- static/style.css | 257 ------- 72 files changed, 2814 insertions(+), 2842 deletions(-) delete mode 100644 .gitignore create mode 100644 404.html delete mode 100644 404.m4 create mode 100644 404.txt delete mode 100644 COPYING delete mode 100644 GNUmakefile delete mode 120000 LICENSE delete mode 100644 bandali-bib.m4 create mode 100644 bandali-computing.txt create mode 100644 bandali-contact.txt create mode 100644 bandali-cv.txt create mode 100644 bandali-mmath.txt create mode 100644 bandali-projects.txt rename static/bandali-pubkey.txt => bandali-pubkey.txt (100%) rename static/bandali.bib => bandali.bib (100%) create mode 100644 bandali.txt create mode 100644 computing.html delete mode 100644 computing.m4 create mode 100644 contact.html delete mode 100644 contact.m4 create mode 100644 cv.html delete mode 100644 cv.m4 create mode 100644 fa/404.fa.txt create mode 100644 fa/404.html create mode 100644 fa/bandali-computing.fa.txt create mode 100644 fa/bandali-contact.fa.txt create mode 100644 fa/bandali-projects.fa.txt create mode 100644 fa/bandali.fa.txt create mode 100644 fa/computing.html create mode 100644 fa/contact.html create mode 100644 fa/fsf-internship-beyond.fa.txt create mode 100644 fa/fsf-internship-beyond.html create mode 100644 fa/fsf-internship-intro.fa.txt create mode 100644 fa/fsf-internship-intro.html create mode 100644 fa/index.html create mode 100644 fa/projects.html delete mode 100644 footer.html rename fsf-internship-beyond.m4 => fsf-internship-beyond.html (75%) create mode 100644 fsf-internship-beyond.txt rename fsf-internship-intro.m4 => fsf-internship-intro.html (66%) create mode 100644 fsf-internship-intro.txt delete mode 100755 get-notes.sh delete mode 100644 header.html create mode 100644 index.html delete mode 100644 index.m4 rename lp2021.m4 => libreplanet-2021.html (54%) create mode 100644 libreplanet-2021.txt delete mode 100644 license.m4 delete mode 100644 meta_defs.m4 delete mode 100644 meta_feed_atom.m4 delete mode 100644 meta_feed_rss.m4 rename mmath.m4 => mmath.html (50%) create mode 100644 projects.html delete mode 100644 publications.m4 create mode 100644 se212-f19.html delete mode 100644 se212-f19.m4 create mode 100755 serve.sh delete mode 100644 static/.htaccess delete mode 100644 static/GNUmakefile delete mode 100644 static/bandali-bib-citefile.txt delete mode 100644 static/bandali-bib-partial.html delete mode 100644 static/bandali-bib-sed.txt delete mode 100644 static/feed-12x12.png delete mode 100644 static/feed.svg delete mode 100644 static/gnu.ico delete mode 100644 static/gpl-3.0.html delete mode 100644 static/publications-partial.html delete mode 100644 static/publications-sed.txt delete mode 100644 static/se212-h02q04d-soln.grg delete mode 100644 static/se212-t01.org delete mode 100644 static/se212-t05.org delete mode 100644 static/style.css diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 89f9ac0..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -out/ diff --git a/404.html b/404.html new file mode 100644 index 0000000..b855b9f --- /dev/null +++ b/404.html @@ -0,0 +1,31 @@ + + + + + + +404 not found — bandali + + + +

    404

    +

    Sorry, that page does not exist. Are you at the right address?

    + +

    Feel free to go back home +or contact bandali +about this.

    + + diff --git a/404.m4 b/404.m4 deleted file mode 100644 index b44603e..0000000 --- a/404.m4 +++ /dev/null @@ -1,9 +0,0 @@ -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/404.txt b/404.txt new file mode 100644 index 0000000..89bfea3 --- /dev/null +++ b/404.txt @@ -0,0 +1,9 @@ +404 not found + + +Sorry, that page does not exist. Are you at the right address? + +Feel free to go back home[1] or contact[2] bandali about this. + +[1] https://bndl.org/bandali.txt +[2] https://bndl.org/bandali-contact.txt diff --git a/COPYING b/COPYING deleted file mode 100644 index f288702..0000000 --- a/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/GNUmakefile b/GNUmakefile deleted file mode 100644 index 321b19d..0000000 --- a/GNUmakefile +++ /dev/null @@ -1,62 +0,0 @@ -# GNUmakefile --- GNU Makefile for building my personal site - -# Copyright (C) 2020-2021 Amin Bandali - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see -# . - - -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/.*))) -NOTES := $(shell ./get-notes.sh) - -all: $(OUTPUTS) out/notes.atom out/notes.rss out/style.css out/GNUmakefile $(STATIC) - -out/%.html: %.m4 header.html footer.html - @mkdir -p $(@D) - m4 -D__d=$(SITE_DOMAIN) -D__p=$(SITE_PREFIX) $< > $@ -out/notes.%: meta_feed_%.m4 $(NOTES) header.html footer.html - m4 -D__d=$(SITE_DOMAIN) -D__p=$(SITE_PREFIX) $< > $@ - sed -i 's|href="/\([^/]\)|href="$(SITE_DOMAIN)/\1|' $@ - sed -i 's|href="//|href="https://|' $@ -out/GNUmakefile: GNUmakefile ; ln -s $(PWD)/$< $@ -$(STATIC): ; ln -s $(PWD)/static/$(@F) $@ - -# publications bibliography -static/publications-partial.html: static/bandali.bib static/bandali-bib-* -static/publications-partial.html: $(filter-out static/publications-partial.html, $(wildcard static/publications-*)) -static/publications-partial.html: - $(MAKE) -C $(@D) $(@F) -out/publications.html: static/publications-partial.html -out/bandali-bib.html: static/bandali-bib-partial.html - -clean: - rm -rf out/ - -deploy: - rsync -avzLP out/ bandali@shemshak.org:~/public_html/ - -watch: - while true; do \ - echo $(SRC) header.html footer.html \ - static/bandali.bib static/bandali-bib-* static/publications-* \ - GNUmakefile static/GNUmakefile | \ - tr " " "\n" | entr -d make; done - -.PHONY: deploy watch diff --git a/LICENSE b/LICENSE deleted file mode 120000 index d24842f..0000000 --- a/LICENSE +++ /dev/null @@ -1 +0,0 @@ -COPYING \ No newline at end of file diff --git a/bandali-bib.m4 b/bandali-bib.m4 deleted file mode 100644 index 00c5e83..0000000 --- a/bandali-bib.m4 +++ /dev/null @@ -1,10 +0,0 @@ -dnl -*- html -*- -define(__title, `bandali.bib')dnl -define(__slug, `bandali-bib')dnl -include(header.html)dnl - -
    -include(static/bandali-bib-partial.html) -
    - -include(footer.html)dnl diff --git a/bandali-computing.txt b/bandali-computing.txt new file mode 100644 index 0000000..c403b44 --- /dev/null +++ b/bandali-computing.txt @@ -0,0 +1,62 @@ +How I do my Computing +by bandali on September 14, 2019 (2019-09-14) +last update on February 28, 2021 (2021-02-28) + + + inspired by the computing page of rms: + https://stallman.org/stallman-computing.html + + +COMPUTERS + + My librebooted[1] ThinkPad X200 computer is the machine I use the + most and where I do most of my computing. I also have the privilege + of having access to a fleet of servers through our school's Computer + Science Club[2] that I use for some more computationally intensive + tasks every now and again. + + [1] https://libreboot.org + [2] https://csclub.uwaterloo.ca + + +GNU/LINUX DISTRIBUTION + + I used a wide variety of distros over the years; but I have + since found Trisquel[3] to be my favourite and it's put my + ``distro-hopping'' days behind me. Sometimes I pair it up with + GNU Guix[4]. For the kernel, I usually use GNU Linux-libre[5] + from jxself's APT repository[6]. + + [3] https://trisquel.info + [4] https://guix.gnu.org + [5] https://www.fsfla.org/ikiwiki/selibre/linux-libre/ + [6] https://jxself.org/linux-libre/ + + +ACTUAL COMPUTING + + I spend most of my time in GNU Emacs[7]. + + [7] https://www.gnu.org/software/emacs/ + + TODO: elaborate + + +MAINTAINING THIS SITE + + The pages of this site are (manually) written in plain HTML using + GNU Emacs. You can run git clone https://bndl.org in a terminal + to get the git repository containing all the pages of the site and + the history of changes to them. + + + -*- + +Copyright (c) 2019, 2020, 2021 bandali + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without any warranty. + +this file: https://bndl.org/bandali-computing.txt diff --git a/bandali-contact.txt b/bandali-contact.txt new file mode 100644 index 0000000..2511355 --- /dev/null +++ b/bandali-contact.txt @@ -0,0 +1,21 @@ +bandali's contact information +https://bndl.org/bandali-contact.txt + + +Email is by far my preferred method of communication, and you can +write to me at bandali@gnu.org. For GPG-encrypted mail, you can use +my public key[1] with the fingerprint +BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103. To learn how to +send encrypted email, see the email self-defense[2] guide by the Free +Software Foundation. + +[1] https://bndl.org/bandali-pubkey.txt +[2] https://emailselfdefense.fsf.org/en/ + +Besides email, I can also usually be reached via IRC, particularly the +libera[3] and oftc[4] networks, where I idle as bandali. For other +means of communication, please send me an email and we can figure +something out if needed. + +[3] https://libera.chat +[4] https://www.oftc.net diff --git a/bandali-cv.txt b/bandali-cv.txt new file mode 100644 index 0000000..544c70a --- /dev/null +++ b/bandali-cv.txt @@ -0,0 +1,310 @@ + CURRICULUM VITAE + + Amin Bandali + +------------------------------------------ +site: https://bndl.org +email: bandali@uwaterloo.ca + bandali@gnu.org +phone: available upon request via email + +this file: https://bndl.org/bandali-cv.txt +last update: 2021-07-23 +------------------------------------------ + + +SUMMARY OF QUALIFICATIONS + + - Experience in building software for diverse areas and platforms + in various programming languages such as C, Python, and Haskell. + + - Passionate about applying scientific and engineering methods + while designing and building software systems. + + - Using formal specification techniques to find specification-level + bugs early in the design stage rather than implementation. + + - GNU/Linux system administration on both the client and the server + side. + + - Problem-solving and communication skills, honed through research + and teaching roles held in graduate school, as well as holding + tutorials discussing complex concepts with fellow students and + peers throughout undergraduate studies and high school. + + - Organizational and teamwork skills, strengthened thanks to + community service in form of volunteer activities including + organizing the EmacsConf conference and volunteer work for + charities such as the Free Software Foundation and St. Brigid's + Summer Camp. + + +EDUCATION + + Master of Mathematics in Computer Science, University of Waterloo, + 2020 + + Research focus: + formal logic, model checking, verification + Thesis: + A Comprehensive Study of Declarative Modelling Languages + Supervisor: + Prof. Nancy A. Day + GPA: + 3.7/4.0 + + Bachelor of Science with Honours in Computer Science, York + University, 2017 + + Favourite courses: + System Specification & Refinement, Software Requirements + Engineering, Software Design, Operating Systems, Computational + Complexity, Design & Analysis of Algorithms + GPA: + 7.84/9.0 + + +RESEARCH INTERESTS + + formal logic, model checking, theorem proving, verification + + +PUBLICATIONS & PRESENTATIONS + + The complete bibliography of my publications is available as + a BibTeX bibliography file from https://bndl.org/bandali.bib. + + PAPERS + + A Comparison of the Declarative Modelling Languages B, DASH, + and TLA+ + + Ali Abbassi, Amin Bandali, Nancy A. Day, Jose Serna + 8th IEEE International Model-Driven Requirements + Engineering Workshop, MoDRE@RE 2018 + Copyright (c) 2018 IEEE. All Rights Reserved. Sadly. + + pdf: https://p.bndl.org/modre2018-declarative.pdf + models: https://cs.uwaterloo.ca/~nday/artifacts/2018-modre/ + + THESES + + A Comprehensive Study of Declarative Modelling Languages + + Amin Bandali + MMath Thesis, University of Waterloo, David R. Cheriton + School of Computer Science, July 2020. + + pdf: https://p.bndl.org/bandali-mmath-thesis.pdf + hdl: https://hdl.handle.net/10012/16059 + http: https://bndl.org/mmath.html + + TALKS + + Jami and how it empowers users + + Amin Bandali + Presented at the LibrePlanet 2021 Conference, March 20, 2021. + + slides: https://p.bndl.org/bandali-jami-libreplanet-2021.pdf + slides with notes: + https://p.bndl.org/bandali-jami-libreplanet-2021-with-notes.pdf + http: https://bndl.org/libreplanet-2021.html + + The Magic of Specifications and Type Systems + + Amin Bandali, Simon Hudon, Jonathan S. Ostroff + Slides presented at the Canadian Undergraduate Computer Science + Conference 2017, University of Toronto, Canada, June 15-17, + 2017. + Poster presented at the Lassonde Undergraduate Summer Student + Research Conference, York University, Toronto, Canada, + August 15, 2017. + + slides: https://p.bndl.org/cucsc-2017-slides.pdf + poster: https://p.bndl.org/eecs4080-poster.pdf + + Introducing YULUG + + Amin Bandali + Slides introducing YULUG -- (GNU/)Linux User Group at York + University -- presented at a Computing Students Hub (CSHub) tech + talk at York University, Toronto, Canada, February 12, 2015. + + +WORK & RESEARCH EXPERIENCE + + Savoir-faire Linux + + fall 2020-present | Free Software Consultant + | Consultant en logiciel libre + + I am part of the Jami core development team at Savoir-faire + Linux, where I get to work on various parts of Jami as a Free + Software Consultant. These include working on and maintaining + the GTK+-based jami-gnome client application written in C++ and + C, and packaging Jami for various GNU/Linux distributions and + other platforms. I also serve as a community liaison between + the Jami core team and the wider free software community around + Jami, with the goal of helping facilitate the communications and + relations between the two. + + Free Software Foundation (FSF) + + spring 2020 | Intern + + Working with the FSF tech team in a sysadmin role on a variety + of tasks including installation of the Sourcehut free software + forge on the FSF infrastructure for evaluation for the FSF forge + project, as well as a series of enhancements for www.gnu.org. + + Cheriton School of Science, University of Waterloo + + winter 2018-spring 2020 | TA, IA, RA [*] + + SE 465 (Software Testing and Quality Assurance): + TA in winter 2020 + SE 212 (Logic and Computation): + IA in Fall 2019, TA in fall 2018 + SE 463 (Software Requirement Specification and Analysis): + TA in spring 2019 and 2018 + CS 136 (Elementary Algorithm Design and Data Abstraction): + TA in winter 2018 + + [*]: Teaching Assistant (marking exams and assignments), + Instructional Apprentice (holding tutorials and marking), + Research Assistant (doing research for/with supervisor) + + Department of Electrical Engineering & Computer Science, York + University + + fall 2017 | Teaching Assistant + + EECS 1012 (Net-Centric Introduction to Computing): + TA in fall 2017, running labs and marking labs and exams + + Software Engineering Lab, York University + + summer 2017 | Research Assistant + + Worked on an implementation of Lampsort in Eiffel. + Extended the mathmodels library, implementing a rational + class for working with arbitrarily large rational numbers. + + summer 2016 | Research Student + + Worked on Literate Unit-B, the verifier for Unit-B, a new formal + method focused on formal verification of reactive, concurrent + and distributed systems. From the Literate Unit-B codebase + (written in Haskell), decoupled the logic module and used it to + build Unit-B Web, a web interface using Literate Unit-B to do + predicate calculus proofs. Unit-B Web, also written in Haskell, + supports the LaTeX syntax of the Unit-B logic, renders user + input on the page, and calls the sequent prover of the logic + module, which uses the Z3 SMT solver to check the validity of + user input. + + Separated Literate Unit-B's type checker from its parser in a + large refactoring, allowing easier substitution of other type + checking algorithms, and in preparation for implementing + subtyping. + + Lotek Wireless Inc. + + summer 2016 | Software Developer + + Designed and developed an Employee Portal web application in C# + and the MVC framework, used by employees for accessing various + data catalogs and archives. + + summer 2015 | Software Developer + + Designed and implemented various applications in C# and C for + analyzing and testing a satellite pass prediction algorithm for + predicting the pass windows of Argos satellites, for scheduling + send times of data collected by the company's wildlife tracking + products. + + Athlete Builder + + 2013-2014 | Software Developer + + Developed the Backend of Athlete Builder platform in C# and MVC. + + Key role in development of the platform core. + + Developed the alpha version of Athlete Builder Android + application in Java. + + +SKILLS + + Programming languages + C, C++, Haskell, Emacs Lisp, Guile Scheme, Python, Eiffel, Bash, + C#, Java, JavaScript + + Tools + GNU Emacs, Git, Alloy, TLA+, ProB, LaTeX, continuous integration + systems + + Platforms + GNU/Linux distributions, including Trisquel, GNU Guix, Debian + + Languages + Persian (mother tongue), English (fluent), French (beginner) + + +COMMUNITY SERVICE + + EmacsConf conference + + 2019-present + + Chief organizer and maintainer of conference infrastructure, + including the streaming servers. + + 2015 + + One of the organizers and in charge of setting up + and maintaining vital pieces of infrastructure. + + Computer Science Club (CSC) of the University of Waterloo + + Served as the CSC System Administrator in Winter and Spring 2020. + Present member of the CSC Systems Committee, overseeing and + maintaining a large fleet of GNU/Linux servers for CSC members, + as well as running the CSC mirror for free software projects. + + Notable projects include launching the CSC web IRC client + as part of an effort in bringing modern user freedom- and + privacy-respecting communication tools to club members. + + Free/libre software contributions + + Co-maintainer of GNUzilla and IceCat, the GNU version of + the Mozilla suite and the Firefox browser respectively. + + Maintainer of ERC, the powerful, modular, and extensible + IRC client distributed with GNU Emacs. + + Committer and regular contributor to GNU Emacs and GNU Guix. + + GNU webmaster and GNU Savannah hacker. + + Volunteer work + + spring 2013 | Application Developer for VONICAL Inc. + + Worked on development of the Employment Accessibility Resource + Network (EARN) portal using the Anahita social networking + platform, written in PHP and running on GNU/Linux. + + winter 2013 | Mobile & Web Developer for Hire Works Inc. + + Worked on a variety of web and mobile development projects for + Hire Works. + + summer 2012 | Web Developer for St. Brigid's Summer Camp + + Redesigned and revamped the codebase for the photo gallery + section of the camp's website in PHP and JavaScript. diff --git a/bandali-mmath.txt b/bandali-mmath.txt new file mode 100644 index 0000000..9d41ee2 --- /dev/null +++ b/bandali-mmath.txt @@ -0,0 +1,94 @@ +bandali's master of mathematics +https://bndl.org/bandali-mmath.txt + + +I graduated from the University of Waterloo with the degree of Master +of Mathematics in Computer Science in Spring 2020. My research at the +Waterloo Formal Methods group focused on formal logic, model checking, +and verification; under supervision of Prof. Nancy Day. + + + A Comprehensive Study of Declarative Modelling Languages + +THESIS + + Reference version: + - https://p.bndl.org/bandali-mmath-thesis.pdf + LaTeX sources: + - https://p.bndl.org/bandali-mmath-thesis.tar.gz + - https://p.bndl.org/bandali-mmath-thesis.zip + + Abstract: + + Declarative behavioural modelling is a powerful modelling paradigm + that enables users to model system functionality abstractly and + formally. An abstract model is a concise and compact + representation of key characteristics of a system, and enables the + stakeholders to reason about the correctness of the system in the + early stages of development. + + There are many different declarative languages and they have + greatly varying constructs for representing a transition system, + and they sometimes differ in rather subtle ways. In this thesis, + we compare seven formal declarative modelling languages B, + Event-B, Alloy, Dash, TLA+, PlusCal, and AsmetaL on several + criteria. We classify these criteria under three main categories: + structuring transition systems (control modelling), data + descriptions in transition systems (data modelling), and + modularity aspects of modelling. We developed this comparison by + completing a set of case studies across the data- + vs. control-oriented spectrum in all of the above languages. + + Structurally, a transition system is comprised of a snapshot + declaration and snapshot space, initialization, and a transition + relation, which is potentially composed of individual transitions. + We meticulously outline the differences between the languages with + respect to how the modeller would express each of the above + components of a transition system in each language, and include + discussions regarding stuttering and inconsistencies in the + transition relation. Data-related aspects of a formal model + include use of basic and composite datatypes, well-formedness and + typechecking, and separation of name spaces with respect to global + and local variables. Modularity criteria includes subtransition + systems and data decomposition. We employ a series of small and + concise exemplars we have devised to highlight these differences + in each language. To help modellers answer the important question + of which declarative modelling language may be most suited for + modelling their system, we present recommendations based on our + observations about the differentiating characteristics of each of + these languages. + + License: + + This thesis is free software: you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of + the License, or (at your option) any later version. + + This thesis is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this thesis. If not, see + . + + A copy of the GNU General Public License is available from the + COPYING file included in both of the LaTeX source archives linked + above. + +PRESENTATION + + Reference version: (coming soon) + LaTeX sources: (coming soon) + + This is the presentation I delivered to my supervisor and the second + readers of my thesis on Jun 30, 2020, as announced on the Cheriton + School of Computer Science website: + + https://cs.uwaterloo.ca/events/masters-thesis-presentation-formal-methods-comprehensive-study-declarative-modelling-languages + +MODELS + + Reference version: (coming soon) diff --git a/bandali-projects.txt b/bandali-projects.txt new file mode 100644 index 0000000..5e91c4e --- /dev/null +++ b/bandali-projects.txt @@ -0,0 +1,13 @@ +bandali's projects +https://bndl.org/bandali-projects.txt + + +This page used to contain a list of some of the free software projects +I had started or contributed to at some point, but it started to get a +bit unwieldy and frequently out-of-date, so I decided to retire it. + +I'll instead directly refer you to my public git repositories[1] and +my Savannah profile[2]. + +[1] https://git.shemshak.org/~bandali +[2] https://savannah.gnu.org/users/bandali diff --git a/static/bandali-pubkey.txt b/bandali-pubkey.txt similarity index 100% rename from static/bandali-pubkey.txt rename to bandali-pubkey.txt diff --git a/static/bandali.bib b/bandali.bib similarity index 100% rename from static/bandali.bib rename to bandali.bib diff --git a/bandali.txt b/bandali.txt new file mode 100644 index 0000000..8b59525 --- /dev/null +++ b/bandali.txt @@ -0,0 +1,53 @@ +bandali's personal site +https://bndl.org + + +I am a free/libre software activist and computing scientist. +I'm a GNU maintainer of Jami and GNU IceCat. I also wear a few +other hats around GNU, including helping run the Savannah forge +for GNU and non-GNU software as a Savannah hacker, and serving +as an assistant GNUisance. + + +NOTES + + Here are notes and writings about topics or issues I care about: + + 2021-03-20 + LibrePlanet 2021: Jami and how it empowers users + https://bndl.org/libreplanet-2021.txt + + 2020-12-18 + My internship with the FSF tech team and beyond + https://bndl.org/fsf-internship-beyond.txt + + 2020-05-29 + Internship with the FSF tech team + https://bndl.org/fsf-internship-intro.txt + + 2019-09-14 + How I do my Computing + https://bndl.org/bandali-computing.txt + + +OTHER PAGES + + Some other pages of bndl.org that may be of interest: + + https://bndl.org/bandali-projects.txt + https://bndl.org/bandali-cv.txt + https://bndl.org/bandali-contact.txt + https://bndl.org/bandali-mmath.txt + https://bndl.org/fa/bandali.fa.txt + + + -*- + +Copyright (c) 2012-2021 bandali + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without any warranty. + +this file: https://bndl.org/bandali.txt diff --git a/computing.html b/computing.html new file mode 100644 index 0000000..08c75f1 --- /dev/null +++ b/computing.html @@ -0,0 +1,90 @@ + + + + + + +How I do my Computing — bandali + + + + + + +

    How I do my Computing

    +

    by bandali +on September 14, 2019 (last update: February 28, 2021) +(also in plain text)

    + +

    inspired by the computing page of +rms

    + +

    Computers

    +

    My librebooted ThinkPad X200 +computer is the machine I use the most and where I do most of my +computing. I also have the privilege of having access to a fleet of +servers through our school's +Computer Science Club that I +use for some more computationally intensive tasks every now and again, +and also for hosting this very website.

    + +

    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 from jxself's +APT repository.

    + +

    Actual computing

    +

    I spend most of my time in +GNU Emacs.

    +

    TODO: elaborate

    + +

    Maintaining this site

    +

    The pages of this site are (manually) written in plain HTML using +GNU Emacs. You can run git clone +https://bndl.org in a terminal to get the git repository +containing all the pages of the site and the history of changes to +them.

    + +
    +
    +Copyright © 2019, 2020, 2021 bandali +

    Copying and distribution of this file, with or without +modification, are permitted in any medium without royalty provided the +copyright notice and this notice are preserved. This file is offered +as-is, without any warranty.

    +
    + + diff --git a/computing.m4 b/computing.m4 deleted file mode 100644 index 8428af6..0000000 --- a/computing.m4 +++ /dev/null @@ -1,51 +0,0 @@ -dnl -*- html -*- -define(__title, `How I do my Computing')dnl -define(__pub, 2019-09-14T12:00:00Z)dnl -define(__upd, 2021-02-28T12:00:00Z)dnl -define(__id, 1)dnl -include(header.html)dnl - -

    inspired by the computing page of -rms

    - -

    Computers

    -

    My librebooted ThinkPad X200 -computer is the machine I use the most and where I do most of my -computing. I also have the privilege of having access to a fleet of -servers through our school's -Computer Science Club that I -use for some more computationally intensive tasks every now and again, -and also for hosting this very website.

    - -

    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 from jxself's -APT repository.

    - -

    Actual computing

    -

    I spend most of my time in -GNU Emacs.

    -

    TODO: elaborate

    - -

    Maintaining this site __anc(`colophon')

    -

    I took a great amount of inspiration -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 -convenient make rules to build and publish the site. The -bibliography of my publications is -generated from bandali.bib -using bibtex2html, -and further processed and put together using GNU sed and -another GNUmakefile. The git repository containing all -the sources used to build this site are available -here.

    - -define(__copy, `2019, 2020')dnl -include(footer.html)dnl diff --git a/contact.html b/contact.html new file mode 100644 index 0000000..8eca864 --- /dev/null +++ b/contact.html @@ -0,0 +1,43 @@ + + + + + + +contact information — bandali + + + + + +

    bandali's contact information

    + +

    Email is by far my preferred method of communication, and you can +write to me at bandali@gnu.org. For GPG-encrypted mail, you can use +my public key with the fingerprint +BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103. +To learn how to send encrypted email, see +the email +self-defense guide by the Free Software Foundation.

    + +

    Besides email, I can also usually be reached via IRC, particularly +the libera +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.

    + + diff --git a/contact.m4 b/contact.m4 deleted file mode 100644 index 6f7986a..0000000 --- a/contact.m4 +++ /dev/null @@ -1,20 +0,0 @@ -dnl -*- html -*- -define(__title, `contact information')dnl -define(__slug, `contact')dnl -include(header.html)dnl - -
    -

    __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.html b/cv.html new file mode 100644 index 0000000..2973a4b --- /dev/null +++ b/cv.html @@ -0,0 +1,404 @@ + + + + + + +curriculum vitae — bandali + + + + + + +

    bandali's curriculum vitae

    + +

    also available in plain text as +as bandali-cv.txt

    + + + +

    Summary of Qualifications

    + +
      +
    • Experience in building software for diverse areas and platforms in +various programming languages such as C, Python, and Haskell.
    • +
    • Passionate about applying scientific and engineering methods while +designing and building software systems.
    • +
    • Using formal specification techniques to find specification-level +bugs early in the design stage rather than implementation.
    • +
    • GNU/Linux system administration on both the client and the server +side.
    • +
    • Problem-solving and communication skills, honed through research +and teaching roles held in graduate school, as well as holding +tutorials discussing complex concepts with fellow students and peers +throughout undergraduate studies and high school.
    • +
    • Organizational and teamwork skills, strengthened thanks to +community service in form of volunteer activities including organizing +the EmacsConf conference and volunteer work for charities such as the +Free Software Foundation and St. Brigid's Summer Camp.
    • +
    + +

    Education

    + +
    +
    Master of Mathematics in Computer Science, University of Waterloo, +2020
    +
    Research focus: formal logic, model checking, verification
    +
    Thesis: A Comprehensive Study of Declarative +Modelling Languages
    +
    Supervisor: Prof. Nancy +A. Day
    +
    GPA: 3.7/4.0
    + +
    Bachelor of Science with Honours in Computer Science, York +University, 2017
    +
    Favourite courses: System Specification & Refinement, Software +Requirements Engineering, Software Design, Operating Systems, +Computational Complexity, Design & Analysis of Algorithms
    +
    GPA: 7.84/9.0
    +
    + +

    Research Interests

    + +formal logic, model checking, theorem proving, verification + +

    Publications & Presentations

    + +

    The complete bibliography of my publications is available as +a bandali.bib +BibTeX bibliography +file.

    + +

    Papers

    + +
    +
    A Comparison of the Declarative Modelling Languages B, DASH, and +TLA+ + +[ pdf +| models +] + +
    +
    +Ali Abbassi, Amin Bandali, +Nancy A. Day, Jose Serna
    +8th IEEE International Model-Driven Requirements Engineering Workshop, MoDRE@RE 2018
    +Copyright © 2018 IEEE. All Rights Reserved. Sadly. +
    +
    + +

    Theses

    + +
    +
    A Comprehensive Study of Declarative Modelling +Languages + +[ pdf +| hdl +| http +] + +
    +
    +Amin Bandali
    +MMath Thesis, +University of Waterloo, David R. Cheriton School of Computer Science, +July 2020. +
    +
    + +

    Talks

    + +
    +
    Jami and how it empowers users + +[ pdf +(with +notes) +| http +] + +
    +
    +Amin Bandali
    +Presented at the LibrePlanet 2021 Conference, March 20, 2021. +
    + +
    The Magic of Specifications and Type Systems + +[ slides +| poster +] + +
    +
    +Amin Bandali, +Simon Hudon, +Jonathan S. Ostroff
    +Slides presented at the Canadian Undergraduate Computer Science +Conference 2017, University of Toronto, Canada, June 15–17, 2017.
    +Poster presented at the Lassonde Undergraduate Summer Student Research +Conference, York University, Toronto, Canada, August 15, 2017.
    +
    + +
    Introducing YULUG
    +
    +Amin Bandali
    +Slides introducing YULUG — (GNU/)Linux User Group at York +University — presented at a Computing Students Hub (CSHub) tech +talk at York University, Toronto, Canada, February 12, 2015. +
    +
    + +

    Work & Research Experience

    + +
    +
    Savoir-faire Linux
    +
    fall 2020–present | Free Software Consultant | Consultant en +logiciel libre
    +
    +
    +
    I am part of the Jami core development team at Savoir-faire Linux, +where I work on various parts of Jami as a Free Software Consultant. +These include working on and maintaining the GTK+-based jami-gnome +client application written in C++ and C, and packaging Jami for +various GNU/Linux distributions and other platforms. I also serve as +a community liaison between the Jami core team and the wider free +software community around Jami, with the goal of helping facilitate +the communications and relations between the two.
    +
    +
    + +
    Free Software Foundation (FSF)
    +
    spring 2020 | Intern
    +
    +
    +
    Working with the FSF tech team in a sysadmin role on a variety of +tasks including installation of the Sourcehut free software forge on +the FSF infrastructure for evaluation for the FSF forge project, as +well as a series of enhancements +for www.gnu.org.
    +
    +
    + +
    Cheriton School of Science, University of Waterloo
    +
    winter 2018–spring 2020 | TA, IA, RA [*]
    +
    +
    +
    SE 465 (Software Testing and Quality Assurance): TA in winter +2020
    +
    SE 212 (Logic and Computation): IA in +Fall 2019, TA in fall 2018
    +
    SE 463 (Software Requirement Specification and Analysis): TA in +spring 2019 and 2018
    +
    CS 136 (Elementary Algorithm Design and Data Abstraction): TA in +winter 2018
    +
    +
    +
    [*]: Teaching Assistant (marking exams and assignments), +Instructional Apprentice (holding tutorials and marking), Research +Assistant (doing research for/with supervisor)
    + +
    Department of Electrical Engineering & Computer Science, York +University
    +
    fall 2017 | Teaching Assistant
    +
    +
    +
    EECS 1012 (Net-Centric Introduction to Computing): TA in fall +2017, running labs and marking labs and exams
    +
    +
    + +
    Software Engineering Lab, York University
    +
    +
    +
    summer 2017 | Research Assistant
    +
    Worked on an implementation +of Lampsort +in Eiffel. Extended +the mathmodels +library, implementing a rational class for working with +arbitrarily large rational numbers.
    +
    +
    +
    +
    +
    summer 2016 | Research Student
    +
    Worked on Literate Unit-B, the verifier for Unit-B, a +new formal method focused on formal verification of reactive, +concurrent and distributed systems. From the Literate Unit-B codebase +(written in Haskell), decoupled the logic module and used it to build +Unit-B Web, a web interface using Literate Unit-B to do +predicate calculus proofs. Unit-B Web, also written in Haskell, +supports the LaTeX +syntax of the Unit-B logic, renders user input on the page, and calls +the sequent prover of the logic module, which uses the Z3 SMT solver +to check the validity of user input.
    +
    Separated Literate Unit-B's type checker from its parser in a +large refactoring, allowing easier substitution of other type checking +algorithms, and in preparation for implementing subtyping.
    +
    +
    + +
    Lotek Wireless Inc.
    +
    +
    +
    summer 2016 | Software Developer
    +
    Designed and developed an Employee Portal web application in C# +and the MVC framework, used by employees for accessing various data +catalogs and archives.
    +
    +
    +
    +
    +
    summer 2015 | Software Developer
    +
    Designed and implemented various applications in C# and C for +analyzing and testing a satellite pass prediction algorithm for +predicting the pass windows of Argos satellites, for scheduling send +times of data collected by the company's wildlife tracking +products.
    +
    +
    + +
    Athlete Builder
    +
    +
    +
    2013–2014 | Software Developer
    +
    Developed the Backend of Athlete Builder platform in C# and +MVC.
    +
    Key role in development of the platform core.
    +
    Developed the alpha version of Athlete Builder Android application +in Java.
    +
    +
    +
    + +

    Skills

    +
    +
    Programming languages
    +
    C, C++, Haskell, Emacs Lisp, Guile Scheme, Python, Eiffel, Bash, +C#, Java, JavaScript
    +
    Tools
    +
    GNU Emacs, Git, Alloy, TLA+, +ProB, LaTeX, continuous +integration systems
    +
    Platforms
    +
    GNU/Linux distributions, including Trisquel, GNU Guix, Debian
    +
    Languages
    +
    Persian (mother tongue), English (fluent), French (beginner)
    +
    + +

    Community Service

    +
    +
    EmacsConf conference
    +
    +
    +
    2019–present
    +
    Chief organizer and maintainer of conference infrastructure, +including the streaming servers.
    +
    2015
    +
    One of the organizers and in charge of setting up and maintaining +vital pieces of infrastructure.
    +
    +
    +
    Computer Science Club (CSC) of the University of Waterloo
    +
    Served as the CSC System Administrator in Winter and Spring 2020. +Present member of the CSC Systems Committee, overseeing and +maintaining a large fleet of GNU/Linux servers for CSC members, as +well as running the CSC mirror for free software projects.
    +
    Notable projects +include launching +the CSC web IRC client as part of an effort in bringing modern +user freedom- and privacy-respecting communication tools to club +members.
    +
    Free/libre software contributions
    +
    Co-maintainer +of GNUzilla +and IceCat, the GNU version of the Mozilla suite and the Firefox +browser respectively.
    +
    Maintainer +of ERC, the +powerful, modular, and extensible IRC client distributed with GNU +Emacs.
    +
    Committer and regular contributor +to GNU +Emacs and GNU Guix.
    +
    GNU +webmaster +and GNU +Savannah hacker.
    +
    Volunteer work
    +
    +
    +
    spring 2013 | Application Developer for VONICAL Inc.
    +
    Worked on development of the Employment Accessibility Resource +Network (EARN) portal using the Anahita social networking platform, +written in PHP and running on GNU/Linux.
    +
    winter 2013 | Mobile & Web Developer for Hire Works Inc.
    +
    Worked on a variety of web and mobile development projects for +Hire Works.
    +
    summer 2012 | Web Developer for St. Brigid's Summer Camp
    +
    Redesigned and revamped the codebase for the photo gallery section +of the camp's website in PHP and JavaScript.
    +
    +
    +
    + + diff --git a/cv.m4 b/cv.m4 deleted file mode 100644 index 7d66710..0000000 --- a/cv.m4 +++ /dev/null @@ -1,66 +0,0 @@ -dnl -*- html -*- -define(__title, `Curriculum vitae')dnl -define(__slug, `cv')dnl -include(header.html)dnl - -

    Curriculum vitae (PDF)

    - - - - - - - - - - - - - - - - -
    Siteshemshak.org/~bandali
    Emailbandali at gnu dot org
    Phoneavailable upon request via email
    - -

    Education

    - -

    Master of Mathematics (Computer Science) | 2018–present

    -

    University of Waterloo, Canada

    -

    Supervised by Dr. Nancy Day | GPA: 3.7/4.0 | Expected completion: April 2020

    -

    Research focusing on formal logic, model checking, and verification.

    - -

    B.Sc. Honours Computer Science | 2013–2017

    -

    York University, Toronto, Canada

    -

    GPA: 7.84/9.0

    Relevant courses: System Specification & -Refinement, Software Requirements Eng., Software Design, Operating -Systems, Computational Complexity, Design & Analysis of Algorithms.

    -

    Finished first year (2013-14) at Carleton University with -a GPA of 11.0/12.0, then transferred to York University in -Fall 2014.

    - -

    Publications

    - -

    Listed on my homepage

    - -

    Work & Research Experience

    - -

    Cheriton School of Computer Science, University of Waterloo | 2018–present

    -

    Instructional Apprentice, Teaching Assistant, Research Assistant

    - -
      -
    • SE 212: -IA in Fall 2019, -TA in Fall 2018
    • -
    • SE 463: -TA in Summer 2019 and 2018
    • -
    • CS 136: -TA in Winter 2018
    • -
    - -

    EECS -Department, York University | Fall 2017

    -

    Teaching Assistant

    -

    EECS 1012: -TA in Fall 2017

    - -include(footer.html)dnl diff --git a/fa/404.fa.txt b/fa/404.fa.txt new file mode 100644 index 0000000..c316609 --- /dev/null +++ b/fa/404.fa.txt @@ -0,0 +1,10 @@ +خطای Û´Û°Û´ - صفحه پیدا نشد + + +متأسفم، صفحهٔ مورد نظر پیدا نشد. آیا آدرس صفحه درست است؟ + +اگر تمایل دارید به صفحهٔ اصلی[Û±] بروید یا در این باره با +بندعلی تماس بگیرید[Û²]. + +[Û±] https://bndl.org/fa/bandali.fa.txt +[Û²] https://bndl.org/fa/bandali-contact.fa.txt diff --git a/fa/404.html b/fa/404.html new file mode 100644 index 0000000..d578fde --- /dev/null +++ b/fa/404.html @@ -0,0 +1,33 @@ + + + + + + +صفحه پیدا نشد — بندعلی + + + +

    خطای ۴۰۴

    +

    متأسفم، صفحهٔ مورد نظر پیدا نشد. آیا آدرس صفحه درست است؟

    + +

    اگر تمایل دارید به صفحهٔ اصلی +بروید یا در این باره با +بندعلی تماس بگیرید.

    + + diff --git a/fa/bandali-computing.fa.txt b/fa/bandali-computing.fa.txt new file mode 100644 index 0000000..d619c41 --- /dev/null +++ b/fa/bandali-computing.fa.txt @@ -0,0 +1,67 @@ +چگونه از رایانه استفاده می‌کنم +نوشتهٔ بندعلی در Û±Û´ سپتامبر Û²Û°Û±Û¹ (2019-09-14) +آخرین به‌روزرسانی در Û²Û¸ فوریه Û²Û°Û²Û± (2021-02-28) + + + با الهام از صفحهٔ استالمن در این باره: + https://stallman.org/stallman-computing.html + + +رایانه‌ها + + لپ‌تاپ ThinkPad X200 لیبره‌بوت[Û±] شده‌م رایانه ایست که اکثر مواقع از + آن استفاده می‌کنم. همچنین از طریق باشگاه علوم رایانه[Û²] دانشگاه‌مان + به تعدادی سرور دسترسی دارم که هر از گاهی ازشان برای کارهای محاسباتی + سنگین‌تر استفاده می‌کنم. به غیر از این‌ها یک Dell XPS 15 و ThinkPad + X220T نیز دارم که کمتر ازشان استفاده می‌کنم. + + [Û±] https://libreboot.org + [Û²] https://csclub.uwaterloo.ca + + +توزیع گنو/لینوکس + + در طول سالیان از طیف مختلفی از توزیع‌های گنو/لینوکس استفاده کرده‌م، + اما پس از پیدا کردن تریسکل[Û³] و استفاده از آن در سال‌های اخیر، به + عنوان توزیع مورد علاقه‌م در بیشتر جاها ازش استفاده می‌کنم. گاهی اوقات + با گنو گیکس[Û´] ترکیبش می‌کنم. برای هسته سیستم عامل هم معمولا از گنو + لینوکس-لیبره[Ûµ] از مخزن APT[Û¶] اداره شده توسط jxself استفاده می‌کنم. + + [Û³] https://trisquel.info + [Û´] https://guix.gnu.org + [Ûµ] https://www.fsfla.org/ikiwiki/selibre/linux-libre/ + [Û¶] https://jxself.org/linux-libre/ + + +کارهای پردازشی و محاسباتی + + بیشتر وقتم را در گنو ایمکس[Û·] می‌گذارنم و برای بسیاری کارهای مختلف از + آن استفاده می‌کنم. + + [Û·] https://www.gnu.org/software/emacs/ + + TODO: توضیح بیشتر + + +به‌روزرسانی این سایت + + صفحات این سایت با استفاده از گنو ایمکس و به صورت دستی با HTML ساده + نوشته شده‌اند. با اجرای دستور git clone https://bndl.org در یک + ترمینال می‌توانید مخرن گیت شامل تمامی صفحات این سایت و تاریخچهٔ + تغییرات آن‌ها را دریافت کنید. + + + -*- + +Copyright (c) 2019, 2020, 2021 bandali + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without any warranty. + +رونوشت و توزیع این پرونده، با یا بدون تغییر، در سراسر دنیا بدون حق +امتیاز و در هر رسانه‌ای مجاز است، به شرطی که این اعلان و اعلان حق تکثیر +حفظ شود. این پرونده به صورت موجود و بدون هیچ گونه ضمانت ارائه می‌شود. + +این پرونده: https://bndl.org/fa/bandali-computing.fa.txt diff --git a/fa/bandali-contact.fa.txt b/fa/bandali-contact.fa.txt new file mode 100644 index 0000000..8df27e3 --- /dev/null +++ b/fa/bandali-contact.fa.txt @@ -0,0 +1,22 @@ +اطلاعات تماس بندعلی +https://bndl.org/fa/bandali-contact.fa.txt + + +بهترین راه تماس با من ارسال رایانامه (ایمیل) به نشانی bandali@gnu.org +است. برای مکاتبهٔ امن با من می‌توانید از کلید عمومی من[Û±] برای +رمزنگاری پیام‌تان استفاده کنید. اثر انگشت (fingerprint) این کلید +BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103 است. +برای یادگیری چگونگی رمزنگاری رایانامه می‌توانید به راهنمای محافظت +از ایمیل شخصی[Û²] تهیه شده توسط بنیاد نرم‌افزار آزاد مراجعه کنید. + +[Û±] https://bndl.org/bandali-pubkey.txt +[Û²] https://emailselfdefense.fsf.org/fa/ + +به غیر از رایانامه می‌توانید با من از طریق برخی شبکه‌های آی‌آرسی (IRC) +تماس بگیرید. برای این کار، به حساب bandali در شبکه‌های libera[Û³] و +oftc[Û´] پیغام بفرستید. برای دیگر راه‌های ارتباطی، لطفا ابتدا از طریق +نشانی رایانامه بالا با من تماس بگیرید تا در صورت لزوم راه مناسب دیگری +پیدا کنیم. + +[Û³] https://libera.chat +[Û´] https://www.oftc.net diff --git a/fa/bandali-projects.fa.txt b/fa/bandali-projects.fa.txt new file mode 100644 index 0000000..57cd0f8 --- /dev/null +++ b/fa/bandali-projects.fa.txt @@ -0,0 +1,13 @@ +پروژه‌های بندعلی +https://bndl.org/fa/bandali-projects.fa.txt + + +در گذشته صفحهٔ پروژه‌هایم فهرستی از پروژه‌های نرم‌افزار آزادی که شروع کرده +یا در آن‌ها مشارکت کرده‌بودم داشت، اما به مرور بروز نگهداری فهرست +دشوارتر شد؛ لذا تصمیم به حذف آن گرفتم. + +برای دیدن برخی از پروژه‌های خودم و دیگر پروژه‌هایی که در آن‌ها مشارکت +می‌کنم، به مخازن گیت من[Û±] و همچنین نمایهٔ ساوانای من[Û²] سری بزنید. + +[Û±] https://git.shemshak.org/~bandali +[Û²] https://savannah.gnu.org/users/bandali diff --git a/fa/bandali.fa.txt b/fa/bandali.fa.txt new file mode 100644 index 0000000..2e39966 --- /dev/null +++ b/fa/bandali.fa.txt @@ -0,0 +1,57 @@ +سایت شخصی بندعلی +https://bndl.org/fa/ + + +من یک فعال نرم‌افزار آزاد و کارشناس ارشد علوم رایانه هستم. به عنوان یک +عضو پروژهٔ گنو، سرپرستی نرم‌افزارهای جمی و گنو آیس‌کت را بر عهده دارم و +همچنین در توسعهٔ تعداد دیگری از برنامه‌ها و بخش‌های گنو مثل ایمکس و +ساوانا مشارکت می‌کنم. + + +نوشته‌ها + + در اینجا می‌توانید برخی یادداشت‌ها و نوشته‌هایم در رابطه با موضوعات + مورد علاقه‌م یا مسائلی که برایم مهم هستند را بخوانید: + + Û²Û° مارس Û²Û°Û²Û± + LibrePlanet 2021: جمی و اینکه چگونه به کاربران قدرت می‌بخشد (انگلیسی) + https://bndl.org/libreplanet-2021.txt + + Û±Û¸ دسامبر Û²Û°Û²Û° + کارآموزی من با تیم فنی بنیاد نرم‌افزار آزاد و فراتر از آن + https://bndl.org/fa/fsf-internship-beyond.fa.txt + + Û²Û¹ مه Û²Û°Û²Û° + کارآموزی با تیم فنی بنیاد نرم‌افزار آزاد + https://bndl.org/fa/fsf-internship-intro.fa.txt + + Û±Û´ سپتامبر Û²Û°Û±Û¹ + چگونه از رایانه استفاده می‌کنم + https://bndl.org/fa/bandali-computing.fa.txt + + +دیگر صفحات + + برخی صفحات دیگر bndl.org که ممکن است مورد توجه واقع‌شوند: + + https://bndl.org/fa/bandali-projects.fa.txt + https://bndl.org/bandali-cv.txt + https://bndl.org/fa/bandali-contact.fa.txt + https://bndl.org/bandali-mmath.txt + https://bndl.org/bandali.txt + + + -*- + +Copyright (c) 2012-2021 bandali + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without any warranty. + +رونوشت و توزیع این پرونده، با یا بدون تغییر، در سراسر دنیا بدون حق +امتیاز و در هر رسانه‌ای مجاز است، به شرطی که این اعلان و اعلان حق تکثیر +حفظ شود. این پرونده به صورت موجود و بدون هیچ گونه ضمانت ارائه می‌شود. + +این پرونده: https://bndl.org/fa/bandali.fa.txt diff --git a/fa/computing.html b/fa/computing.html new file mode 100644 index 0000000..147f59d --- /dev/null +++ b/fa/computing.html @@ -0,0 +1,98 @@ + + + + + + +چگونه از رایانه استفاده می‌کنم — بندعلی + + + + + + +

    چگونه از رایانه استفاده می‌کنم

    +

    نوشتهٔ بندعلی در ۱۴ +سپتامبر ۲۰۱۹ (آخرین به‌روزرسانی: ۲۸ فوریه ۲۰۲۱) (همچنین +در متن ساده)

    + +

    با الهام از +صفحهٔ استالمن +در این باره

    + +

    رایانه‌ها

    +

    لپ‌تاپ ThinkPad X200 لیبره‌بوت +شده‌م رایانه ایست که اکثر مواقع از آن استفاده می‌کنم. همچنین از +طریق باشگاه علوم رایانه +دانشگاه‌مان به تعدادی سرور دسترسی دارم که هر از گاهی ازشان برای کارهای +محاسباتی سنگین‌تر استفاده می‌کنم. به غیر از این‌ها یک Dell XPS 15 و +ThinkPad X220T نیز دارم که کمتر ازشان استفاده می‌کنم.

    + +

    توزیع گنو/لینوکس

    +

    در طول سالیان از طیف مختلفی از توزیع‌های گنو/لینوکس استفاده کرده‌م، +اما پس از پیدا کردن تریسکل و +استفاده از آن در سال‌های اخیر، به عنوان توزیع مورد علاقه‌م در بیشتر جاها +ازش استفاده می‌کنم. گاهی اوقات با گنو +گیکس ترکیبش می‌کنم. برای هسته سیستم +عامل هم معمولا +از گنو +لینوکس-لیبره از مخزن +APT اداره شده توسط jxself استفاده می‌کنم.

    + +

    کارهای پردازشی و محاسباتی

    +

    بیشتر وقتم را در گنو +ایمکس می‌گذارنم و برای بسیاری کارهای مختلف از آن استفاده می‌کنم.

    +

    TODO: توضیح بیشتر

    + +

    به‌روزرسانی این سایت

    +

    صفحات این سایت با استفاده از گنو ایمکس و به صورت دستی با HTML ساده +نوشته شده‌اند. با اجرای دستور git clone +https://bndl.org در یک ترمینال می‌توانید مخرن گیت شامل تمامی +صفحات این سایت و تاریخچهٔ تغییرات آن‌ها را دریافت کنید.

    + +
    +
    +Copyright © 2019, 2020, 2021 bandali +

    Copying and distribution of this file, with or without +modification, are permitted in any medium without royalty provided the +copyright notice and this notice are preserved. This file is offered +as-is, without any warranty.

    + +

    رونوشت و توزیع این پرونده، با یا بدون تغییر، در سراسر دنیا بدون حق +امتیاز و در هر رسانه‌ای مجاز است، به شرطی که این اعلان و اعلان حق تکثیر +حفظ شود. این پرونده به صورت موجود و بدون هیچ گونه ضمانت ارائه +می‌شود.

    +
    + + diff --git a/fa/contact.html b/fa/contact.html new file mode 100644 index 0000000..713733e --- /dev/null +++ b/fa/contact.html @@ -0,0 +1,49 @@ + + + + + + +اطلاعات تماس — بندعلی + + + + + +

    اطلاعات تماس بندعلی

    + +

    بهترین راه تماس با من ارسال رایانامه (ایمیل) به نشانی +bandali@gnu.org است. برای مکاتبهٔ امن با من می‌توانید +از کلید عمومی من برای رمزنگاری +پیام‌تان استفاده کنید. اثر انگشت (fingerprint) این کلید +BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103 است. +برای یادگیری چگونگی رمزنگاری رایانامه می‌توانید به +راهنمای محافظت از ایمیل +شخصی تهیه شده توسط بنیاد نرم‌افزار آزاد مراجعه کنید.

    + +

    به غیر از رایانامه می‌توانید با من از طریق برخی شبکه‌های آی‌آرسی (IRC) +تماس بگیرید. برای این کار، به حساب bandali در +شبکه‌های libera +و oftc پیغام بفرستید. برای دیگر +راه‌های ارتباطی، لطفا ابتدا از طریق نشانی رایانامه بالا با من تماس +بگیرید تا در صورت لزوم راه مناسب دیگری پیدا کنیم.

    + + diff --git a/fa/fsf-internship-beyond.fa.txt b/fa/fsf-internship-beyond.fa.txt new file mode 100644 index 0000000..9fcbd61 --- /dev/null +++ b/fa/fsf-internship-beyond.fa.txt @@ -0,0 +1,104 @@ +کارآموزی من با تیم فنی بنیاد نرم‌افزار آزاد و فراتر از آن +نوشتهٔ بندعلی در Û±Û¸ دسامبر Û²Û°Û²Û° (2020-12-18) + + + نسخهٔ انگلیسی این مقاله ابتدا در وبلاگ مدیر سامانه بنیاد نرم‌افزار + آزاد منتشر شد: + https://www.fsf.org/blogs/sysadmin/my-internship-with-the-fsf-tech-team-and-beyond + +سلام! من امین بندعلی هستم و این دومین پست من در وبلاگ مدیر سامانه FSF +در انتهای کارآموزیم است. + +در طول کارآموزیم با FSF، عمدتا در وظایف مدیریت سامانه‌ای مربوط به +راه‌اندازی و یا مدیریت سرورهای گنو/لینوکس FSF کار کردم. شاید قابل توجه +ترین کارم در طول این کارآموزی راه‌اندازی یک سرور سورس‌هات[Û±] برای کمک به +ارزیابی[Û²] آن به عنوان یک کاندید برای پروژهٔ میزبانی نرم‌افزار آزاد +FSF[Û³] است. من مراحل نصب و راه‌اندازی اجزای مختلف سورس‌هات را به صورت +یک پروندهٔ ادیبانه اُرگ-مُد گنو ایمکس (literate GNU Emacs Org-mode file) +مستندسازی کردم، که در آن بلوک‌های کد با توضیحات لازم همراهی شده‌اند. در +این صورت خوانندهٔ پرونده می‌تواند به مرور هر بلوک کد را ارزیابی و اجرا +کند و به طور اختیاری نتایج آن‌ها را در همان پرونده برای مستندسازی ذخیره +کند. + +[Û±] https://sourcehut.org +[Û²] https://libreplanet.org/wiki/FSF_2020_forge_evaluation +[Û³] https://www.fsf.org/blogs/sysadmin/coming-soon-a-new-site-for-fully-free-collaboration + +من همچنین به آهستگی مشغول کار بر تغییرات مختلف برای بهبود سروری که +www.gnu.org روی آن اجرا می‌شود بوده‌م، و بعد از اتمام کارآموزیم نیز به +طور داوطلبانه به آن ادامه خواهم داد. امیدوارم این بهبودها برای مدیران +سامانه FSF که مدیریت آن سرور را بر عهده دارند، برای وب‌مسترهای گنو که +روی gnu.org کار می‌کنند، و برای عوام مردم که صفحات gnu.org را مرور کرده +یا می‌خوانند مفید واقع شوند. به ویژه این تغییرات شامل ارتقای سبستم‌عامل +سرور به آخرین نسخهٔ توزیع گنو/لینوکس تریسکل و بازسازی و بهبود مکانیزم +جستجوی صفحات gnu.org می‌شوند. علاوه بر این، چند پروژهٔ دیگر نیز هستند +که تمایل دارم در آیندهٔ نزدیک با تیم فنی FSF به انجام برسانم. + +در طول کارآموزیم با تیم فنی FSF، انواع گوناگونی مهارت‌های جدید کسب کرده +و درمورد مجموعه‌ی متنوعی از موضوعات و ابزارهای مختلف مربوط به مدیریت +سامانه سرورهای گنو/لینوکسی یاد گرفتم. این شامل کامپایل/ساخت و نصب +نرم‌افزار پیچیده‌ای مثل سورس‌هات و رفع‌اشکال مسائلی که به آن‌ها برخوردم، +استفاده از Ansible برای مدیریت و استقرار (deploy) زیرساخت‌های +نرم‌افزاری، و یادگیری دربارهٔ عامل انتقال پیام (Mail Transfer Agent +(MTA)) Exim که FSF بر روی سرورهای دریافت و ارسال رایانامه‌های خود از آن +استفاده می‌کند می‌شود. + +در انتهای کارآموزیم و سال ۲۰۲۰، می‌توان گفت امسال سال...جالب و پراتقافی +برای بیشتر مردم، از جمله خودم، بوده است. من کارآموزیم را در آخرین ماه +مه شروع کردم، و به عنوان یک دانشجوی کارشناسی ارشد، انتظار داشتم یک بار +کاری معقول و متعادل برای کارم روی پایان‌نامه‌م در ماه‌های آتی داشته‌باشم. +اما کمتر از دو هفته پس از شروع کارآموزیم متوجه شدم که به چند دلیل +مجبورم که دورهٔ کارشناسی ارشدم را در عرض دو ماه به پایان برسانم. این +مسئله را به اطلاع تیم فنی FSF رساندم و اجازه گرفتم تا یک وقفه در +کارآموزیم بگذارم تا بتوانم پایان‌نامه‌م را بدون لطمه به کارآموزی یا +تحصیلاتم به اتمام برسانم. عمیقا قدردان تیم فنی و سایر کارمندان FSF +هستم که با انعطاف فراوان به من اجازه دادند تا موقتا کارآموزیم را متوقف +کنم تا روی تکمیل پایان‌نامه‌م و اتمام دوره کارشناسی ارشدم تمرکز کنم. +خوشبختانه با زحمت و مشقت فراوان موفق شدم درسم را در آن بازهٔ زمانی +فوق‌العاده کوتاه تمام کرده و پس از آن به انجام کارآموزیم بپردازم. + +با این حال، تمام چیزهای خوب در نهایت به پایان می‌رسند، از جمله این +کارآموزی. از صمیم قلبم از اعضای تیم فنی FSF -- ایان و اندرو و روبن و +مایکل -- برای پذیرش و استقبال از من در تیم به عنوان یک کارآموز، +راهنمایی و پاسخ دادن به پرسش‌های فراوانم و کمک به یادگیری بیشترم +سپاس‌گذارم. کار کردن در کنار شما و دیدن انرژی و همتی که صرف کار و +مسئولیت‌هایتان به عنوان یک مدیر سامانه و توسعه‌دهندهٔ وب FSF می‌کنید برای +من یک افتخار و تجربهٔ فوق‌العاده بوده است. در حالی که بیشتر ارتباطات من +با اعضای تیم فنی FSF بوده است، من فرصت تعامل با اعضای دیگر تیم‌های FSF +را نیز در طول کارآموزیم داشتم و بابت گفتگوهایمان و فرصت یادگیری دربارهٔ +کارها و وظایف پراهمیتتان و تخصیصتان به انجامشان سپاس‌گذارم. + +این کارآموزی به پایان رسیده، اما همه خاطرات خوب و درس‌هایی که در طول +کارآموزیم یاد گرفتم را همیشه با خود خواهم داشت و مشتاقانه به عنوان یک +داوطلب به همکاری با شما ادامه خواهم داد. مطالبی که در طول کارآموزیم +یادگرفته و تجربه‌هایی که کسب کردم در شغل جدیدم به عنوان یک مشاور +نرم‌افزار آزاد در شرکت Savoir-faire Linux برایم بسیار با ارزش و مفید +واقع شده‌اند. در Savoir-faire Linux روی اجزا و قسمت‌های مختلف جمی -- یک +برنامهٔ گنو برای ارتباطات جامع که به آزادی‌ها و حریم خصوصی کاربرانش +احترام می‌گذارد -- کار می‌کنم. + +دوست دارم از FSF برای فرصت عالی کار کردن در کنار تیم فنی FSF به عنوان +یک کارآموز قدردانی کنم، که تجربه‌ی عالی و به یاد ماندنی‌ای بود و درس‌هایی +ارزشمند و خاطرات خوب به من هدیه داد. + + علاقه‌مند به کارآموزی برای بنیاد نرم‌افزار آزاد هستید؟ + دورهٔ درخواست کارآموزی بهار Û²Û°Û²Û± در حال حاضر باز است. + صفحهٔ https://www.fsf.org/volunteer/internships را + برای اطلاعات بیشتر در مورد درخواست کارآموزی ببینید! + + + -*- + +Copyright (c) 2020, 2021 bandali + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without any warranty. + +رونوشت و توزیع این پرونده، با یا بدون تغییر، در سراسر دنیا بدون حق +امتیاز و در هر رسانه‌ای مجاز است، به شرطی که این اعلان و اعلان حق تکثیر +حفظ شود. این پرونده به صورت موجود و بدون هیچ گونه ضمانت ارائه می‌شود. + +این پرونده: https://bndl.org/fa/fsf-internship-beyond.fa.txt + diff --git a/fa/fsf-internship-beyond.html b/fa/fsf-internship-beyond.html new file mode 100644 index 0000000..cb18297 --- /dev/null +++ b/fa/fsf-internship-beyond.html @@ -0,0 +1,155 @@ + + + + + + +کارآموزی من با تیم فنی بنیاد نرم‌افزار آزاد و فراتر از آن — بندعلی + + + + + + + +

    کارآموزی من با تیم فنی بنیاد نرم‌افزار آزاد و فراتر از آن

    +

    نوشتهٔ بندعلی +در ۱۸ دسامبر ۲۰۲۰ (همچنین +در متن ساده)

    + +

    نسخهٔ انگلیسی +این مقاله ابتدا در وبلاگ مدیر سامانه بنیاد نرم‌افزار آزاد منتشر +شد:
    +My +internship with the FSF tech team and beyond

    + +

    سلام! +من امین +بندعلی هستم و این دومین پست من در وبلاگ مدیر سامانه FSF در انتهای +کارآموزیم است.

    + +

    در طول کارآموزیم با FSF، عمدتا در وظایف مدیریت سامانه‌ای مربوط به +راه‌اندازی و یا مدیریت سرورهای گنو/لینوکس FSF کار کردم. شاید قابل توجه +ترین کارم در طول این کارآموزی راه‌اندازی یک +سرور سورس‌هات +برای کمک +به ارزیابی +آن به عنوان یک کاندید +برای پروژهٔ میزبانی نرم‌افزار آزاد FSF است. من +مراحل نصب و راه‌اندازی اجزای مختلف سورس‌هات را به صورت +یک پروندهٔ ادیبانه +اُرگ-مُد گنو ایمکس مستندسازی کردم، که در آن بلوک‌های کد با توضیحات +لازم همراهی شده‌اند. در این صورت خوانندهٔ پرونده می‌تواند به مرور هر +بلوک کد را ارزیابی +و اجرا کند و به طور اختیاری نتایج آن‌ها را +در همان پرونده برای مستندسازی ذخیره کند.

    + +

    من همچنین به آهستگی مشغول کار بر تغییرات مختلف برای بهبود سروری که +www.gnu.org روی آن اجرا می‌شود بوده‌م، و بعد از اتمام کارآموزیم نیز به +طور داوطلبانه به آن ادامه خواهم داد. امیدوارم این بهبودها برای مدیران +سامانه FSF که مدیریت آن سرور را بر عهده دارند، برای وب‌مسترهای گنو که +روی gnu.org کار می‌کنند، و برای عوام مردم که صفحات gnu.org را مرور کرده +یا می‌خوانند مفید واقع شوند. به ویژه این تغییرات شامل ارتقای سبستم‌عامل +سرور به آخرین نسخهٔ توزیع گنو/لینوکس تریسکل و بازسازی و بهبود مکانیزم +جستجوی صفحات gnu.org می‌شوند. علاوه بر این، چند پروژهٔ دیگر نیز هستند +که تمایل دارم در آیندهٔ نزدیک با تیم فنی FSF به انجام برسانم.

    + +

    در طول کارآموزیم با تیم فنی FSF، انواع گوناگونی مهارت‌های جدید کسب +کرده و درمورد مجموعه‌ی متنوعی از موضوعات و ابزارهای مختلف مربوط به +مدیریت سامانه سرورهای گنو/لینوکسی یاد گرفتم. این شامل کامپایل/ساخت و +نصب نرم‌افزار پیچیده‌ای مثل سورس‌هات و رفع‌اشکال مسائلی که به آن‌ها +برخوردم، استفاده از Ansible برای مدیریت و استقرار (deploy) زیرساخت‌های +نرم‌افزاری، و یادگیری +دربارهٔ عامل انتقال پیام +Exim که FSF بر روی سرورهای دریافت و ارسال رایانامه‌های خود از آن +استفاده می‌کند می‌شود.

    + +

    در انتهای کارآموزیم و سال ۲۰۲۰، می‌توان گفت امسال سال…جالب و +پراتقافی برای بیشتر مردم، از جمله خودم، بوده است. من کارآموزیم را در +آخرین ماه مه شروع کردم، و به عنوان یک دانشجوی کارشناسی ارشد، انتظار +داشتم یک بار کاری معقول و متعادل برای کارم روی پایان‌نامه‌م در ماه‌های +آتی داشته‌باشم. اما کمتر از دو هفته پس از شروع کارآموزیم متوجه شدم که +به چند دلیل مجبورم که دورهٔ کارشناسی ارشدم را در عرض دو ماه به پایان +برسانم. این مسئله را به اطلاع تیم فنی FSF رساندم و اجازه گرفتم تا یک +وقفه در کارآموزیم بگذارم تا بتوانم پایان‌نامه‌م را بدون لطمه به کارآموزی +یا تحصیلاتم به اتمام برسانم. عمیقا قدردان تیم فنی و سایر کارمندان FSF +هستم که با انعطاف فراوان به من اجازه دادند تا موقتا کارآموزیم را متوقف +کنم تا روی تکمیل پایان‌نامه‌م و اتمام دوره کارشناسی ارشدم تمرکز کنم. +خوشبختانه با زحمت و مشقت فراوان موفق شدم درسم را در آن بازهٔ زمانی +فوق‌العاده کوتاه تمام کرده و پس از آن به انجام کارآموزیم بپردازم.

    + +

    با این حال، تمام چیزهای خوب در نهایت به پایان می‌رسند، از جمله این +کارآموزی. از صمیم قلبم از اعضای تیم فنی FSF -- ایان و اندرو و روبن و +مایکل -- برای پذیرش و استقبال از من در تیم به عنوان یک کارآموز، +راهنمایی و پاسخ دادن به پرسش‌های فراوانم و کمک به یادگیری بیشترم +سپاس‌گذارم. کار کردن در کنار شما و دیدن انرژی و همتی که صرف کار و +مسئولیت‌هایتان به عنوان یک مدیر سامانه و توسعه‌دهندهٔ وب FSF می‌کنید برای +من یک افتخار و تجربهٔ فوق‌العاده بوده است. در حالی که بیشتر ارتباطات من +با اعضای تیم فنی FSF بوده است، من فرصت تعامل با اعضای دیگر تیم‌های FSF +را نیز در طول کارآموزیم داشتم و بابت گفتگوهایمان و فرصت یادگیری دربارهٔ +کارها و وظایف پراهمیتتان و تخصیصتان به انجامشان سپاس‌گذارم.

    + +

    این کارآموزی به پایان رسیده، اما همه خاطرات خوب و درس‌هایی که در طول +کارآموزیم یاد گرفتم را همیشه با خود خواهم داشت و مشتاقانه به عنوان یک +داوطلب به همکاری با شما ادامه خواهم داد. مطالبی که در طول کارآموزیم +یادگرفته و تجربه‌هایی که کسب کردم در شغل جدیدم به عنوان یک مشاور +نرم‌افزار آزاد در شرکت Savoir-faire Linux برایم بسیار با ارزش و مفید +واقع شده‌اند. در Savoir-faire Linux روی اجزا و قسمت‌های مختلف جمی +— یک برنامهٔ گنو برای ارتباطات جامع که به آزادی‌ها و حریم خصوصی +کاربرانش احترام می‌گذارد — کار می‌کنم. + +

    دوست دارم از FSF برای فرصت عالی کار کردن در کنار تیم فنی FSF به +عنوان یک کارآموز قدردانی کنم، که تجربه‌ی عالی و به یاد ماندنی‌ای بود و +درس‌هایی ارزشمند و خاطرات خوب به من هدیه داد.

    + +

    علاقه‌مند به کارآموزی برای بنیاد نرم‌افزار آزاد هستید؟ +دورهٔ درخواست کارآموزی بهار ۲۰۲۱ در حال حاضر باز است. صفحهٔ +https://www.fsf.org/volunteer/internships +را برای اطلاعات بیشتر در مورد درخواست کارآموزی ببینید!

    + +
    +
    +Copyright © 2020, 2021 bandali +

    Copying and distribution of this file, with or without +modification, are permitted in any medium without royalty provided the +copyright notice and this notice are preserved. This file is offered +as-is, without any warranty.

    + +

    رونوشت و توزیع این پرونده، با یا بدون تغییر، در سراسر دنیا بدون حق +امتیاز و در هر رسانه‌ای مجاز است، به شرطی که این اعلان و اعلان حق تکثیر +حفظ شود. این پرونده به صورت موجود و بدون هیچ گونه ضمانت ارائه +می‌شود.

    +
    + + diff --git a/fa/fsf-internship-intro.fa.txt b/fa/fsf-internship-intro.fa.txt new file mode 100644 index 0000000..ae3e763 --- /dev/null +++ b/fa/fsf-internship-intro.fa.txt @@ -0,0 +1,81 @@ +کارآموزی با تیم فنی بنیاد نرم‌افزار آزاد +نوشتهٔ بندعلی در Û²Û¹ مه Û²Û°Û²Û° (2020-05-29) + + + نسخهٔ انگلیسی این مقاله ابتدا در وبلاگ مدیر سامانه بنیاد نرم‌افزار + آزاد منتشر شد: + https://www.fsf.org/blogs/sysadmin/introducing-bandali-intern-with-the-fsf-tech-team + +سلام، امین بندعلی هستم و معمولا از نام کاربری bandali در اینترنت +استفاده می‌کنم. در پروژهٔ گنو به عنوان یک سرپرست (maintainer) و وب‌مستر +و مدیر سامانه ساوانا فعالیت می‌کنم، و خرسندم که مشارکتم در زمینهٔ +نرم‌افزار آزاد را به بنیاد نرم‌افزار آزاد یا همان FSF (مخفف Free +Software Foundation) به عنوان یک کارآموز تیم فنی FSF در بهار Û²Û°Û²Û° +گسترش دهم. + +به واسطهٔ ارتباط کار والدینم با رایانه‌ها به عنوان دو مهندس و برنامه‌نویس +رایانه، از کودکی به بازی و کار با رایانه‌ها علاقه‌مند شدم و بعدها برای +اولین بار در اوایل نوجوانی با گنو/لینوکس آشنا شدم. البته اولین آشنایی +من با دنیای نرم‌افزارهای آزاد هنگامی اتفاق افتاد که چند سال بعد یکی از +دوستان مجازیم به من اشاره کرد که چیزی که به طور مبهم‌وار به عنوان +نرم‌افزار «متن باز» می‌شناختم بهتر است که با عنوان «نرم‌افزار آزاد» از آن +یاد شود، و این دوست عزیز به من کمک کرد متوجه شوم که چرا متن‌باز هدف +اصلی نرم‌افزار آزاد را برآورده نمی‌کند[Û±]. پس از یادگیری و خو گرفتن با +ایده‌ها و ایده‌آل‌های نرم‌افزار آزاد، به مرور شروع به فعالیت در عرصهٔ +نرم‌افزار آزاد کردم. به عنوان یک علاقه‌مند و محصل در شاخهٔ علوم رایانه +که از مطالعه و دستکاری کد متن برنامه‌های مختلف لذت می‌برد و هر از گاهی +برنامه‌های خودش را می‌نویسد، تا می‌توانم کدم را تحت مجوزهای کپی‌لفت قوی +مثل GNU AGPL[Û²] منتشر می‌کنم. + +[Û±] https://www.gnu.org/philosophy/open-source-misses-the-point.fa.html +[Û²] https://www.gnu.org/licenses/agpl.html + +مشارکت من در پروژهٔ گنو[Û³] ابتدا در سال Û²Û°Û±Û¶ به عنوان یک وب‌مستر داوطلب +آغاز شد، و بعدا از آخر سال گذشتهٔ میلادی به عنوان یکی از سرپرستان +گنوزیلا و آیس‌کت[Û´]. تقریبا در همان زمان، من گروهی از داوطلبان را برای +سازمان‌دهی و برگذاری EmacsConf 2019[Ûµ] به عنوان یک کنفرانس مجازی و +تماما با استفاده از نرم‌افزارهای آزاد (همانند کنفرانس عالی +LibrePlanet 2020[Û¶]) سرپرستی کردم. من بسیار گنو ایمکس را دوست دارم و +بیش از هر نرم‌افزار دیگری از آن استفاده می‌کنم. گنو ایمکس[Û·] به من در +انجام کارهای متنوعی مانند برنامه نویسی و خواندن و نوشتن رایانامه و چت +از طریق IRC کمک می‌کند. + +[Û³] https://www.gnu.org/home.fa.html +[Û´] https://www.gnu.org/software/gnuzilla/ +[Ûµ] https://emacsconf.org/2019 +[Û¶] https://libreplanet.org/wiki/LibrePlanet:Conference/2020 +[Û·] https://www.gnu.org/software/emacs/ + +در جهت کارآموزیم با تیم فنی FSF، اخیرا با کمک باب پرو (Bob Proulx)، یک +مدیر سامانه خبرهٔ گنو ساوانا[Û¸]، خودم را با اجزای مختلف زیرساخت آن و +برخی وظایف مدیریتی و سرپرستی ساوانا آشنا کرده و به تدریج بر عهده +گرفتم. من همچنین یکی از اعضای کمیته سیستم‌های باشگاه علوم رایانه +دانشگاه‌مان هستم، که نظارت و سرپرستی گروه بزرگی سرورهای گنو/لینوکس برای +اعضای باشگاه را بر عهده دارد. + +[Û¸] https://savannah.gnu.org + +برای کارآموزیم با تیم فنی FSF، با اعضای تیم روی چند کار و پروژهٔ مختلف +کار خواهم‌کرد، از جمله کمک به پیشبرد پروژهٔ میزبان نرم‌افزار آزاد[Û¹] و +چندین تغییر و بهبود مختلف برای gnu.org. مشتاقانه به استقبال یادگیری +نکات جدید و کسب مهارت‌های ارزشمند به واسطهٔ کارآموزیم با تیم فنی +فوق‌العادهٔ FSF می‌روم، که زحمات بسیاری برای پروژهٔ گنو و جامعهٔ بزرگتر +نرم‌افزار آزاد می‌کشند. + +[Û¹] https://www.fsf.org/blogs/sysadmin/coming-soon-a-new-site-for-fully-free-collaboration + + + -*- + +Copyright (c) 2020, 2021 bandali + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without any warranty. + +رونوشت و توزیع این پرونده، با یا بدون تغییر، در سراسر دنیا بدون حق +امتیاز و در هر رسانه‌ای مجاز است، به شرطی که این اعلان و اعلان حق تکثیر +حفظ شود. این پرونده به صورت موجود و بدون هیچ گونه ضمانت ارائه می‌شود. + +این پرونده: https://bndl.org/fa/fsf-internship-intro.fa.txt diff --git a/fa/fsf-internship-intro.html b/fa/fsf-internship-intro.html new file mode 100644 index 0000000..7e66d8c --- /dev/null +++ b/fa/fsf-internship-intro.html @@ -0,0 +1,124 @@ + + + + + + +کارآموزی با تیم فنی بنیاد نرم‌افزار آزاد — بندعلی + + + + + + + +

    کارآموزی با تیم فنی بنیاد نرم‌افزار آزاد

    +

    نوشتهٔ بندعلی +در ۲۹ مه ۲۰۲۰ (همچنین +در متن ساده)

    + +

    نسخهٔ انگلیسی این +مقاله ابتدا در وبلاگ مدیر سامانه بنیاد نرم‌افزار آزاد منتشر +شد:
    +Introducing Amin +Bandali, intern with the FSF tech team

    + +

    سلام، امین بندعلی هستم و معمولا از نام کاربری bandali +در اینترنت استفاده می‌کنم. در پروژهٔ گنو به عنوان +یک سرپرست و وب‌مستر و مدیر سامانه +ساوانا فعالیت می‌کنم، و خرسندم که مشارکتم در زمینهٔ نرم‌افزار آزاد را به +بنیاد نرم‌افزار آزاد یا همان FSF (مخفف Free Software Foundation) به +عنوان یک کارآموز تیم فنی FSF در بهار ۲۰۲۰ گسترش دهم.

    + +

    به واسطهٔ ارتباط کار والدینم با رایانه‌ها به عنوان دو مهندس و +برنامه‌نویس رایانه، از کودکی به بازی و کار با رایانه‌ها علاقه‌مند شدم و +بعدها برای اولین بار در اوایل نوجوانی با گنو/لینوکس آشنا شدم. البته +اولین آشنایی من با دنیای نرم‌افزارهای آزاد هنگامی اتفاق افتاد که چند +سال بعد یکی از دوستان مجازیم به من اشاره کرد که چیزی که به طور مبهم‌وار +به عنوان نرم‌افزار «متن باز» می‌شناختم بهتر است که با عنوان «نرم‌افزار +آزاد» از آن یاد شود، و این دوست عزیز به من کمک کرد متوجه شوم +که چرا +متن‌باز هدف اصلی نرم‌افزار آزاد را برآورده نمی‌کند. پس از یادگیری و +خو گرفتن با ایده‌ها و ایده‌آل‌های نرم‌افزار آزاد، به مرور شروع به فعالیت +در عرصهٔ نرم‌افزار آزاد کردم. به عنوان یک علاقه‌مند و محصل در شاخهٔ علوم +رایانه که از مطالعه و دستکاری کد متن برنامه‌های مختلف لذت می‌برد و هر از +گاهی برنامه‌های خودش را می‌نویسد، تا می‌توانم کدم را تحت مجوزهای کپی‌لفت +قوی مثل GNU AGPL +منتشر می‌کنم.

    + +

    مشارکت من در پروژهٔ +گنو ابتدا در سال ۲۰۱۶ به عنوان یک وب‌مستر داوطلب آغاز شد، و بعدا از +آخر سال گذشتهٔ میلادی به عنوان یکی از +سرپرستان گنوزیلا و +آیس‌کت. تقریبا در همان زمان، من گروهی از داوطلبان را برای +سازمان‌دهی و برگذاری EmacsConf +2019 به عنوان یک کنفرانس مجازی و تماما با استفاده از نرم‌افزارهای +آزاد (همانند کنفرانس +عالی LibrePlanet +2020) سرپرستی کردم. من +بسیار گنو ایمکس را +دوست دارم و بیش از هر نرم‌افزار دیگری از آن استفاده می‌کنم. گنو ایمکس +به من در انجام کارهای متنوعی مانند برنامه نویسی و خواندن و نوشتن +رایانامه و چت از طریق IRC کمک می‌کند.

    + +

    در جهت کارآموزیم با تیم فنی FSF، اخیرا با +کمک باب پرو، یک مدیر سامانه +خبرهٔ گنو ساوانا، خودم را با +اجزای مختلف زیرساخت آن و برخی وظایف مدیریتی و سرپرستی ساوانا آشنا کرده +و به تدریج بر عهده گرفتم. من همچنین یکی از اعضای کمیته سیستم‌های +باشگاه علوم رایانه دانشگاه‌مان هستم، که نظارت و سرپرستی گروه بزرگی +سرورهای گنو/لینوکس برای اعضای باشگاه را بر عهده دارد.

    + +

    برای کارآموزیم با تیم فنی FSF، با اعضای تیم روی چند کار و پروژهٔ +مختلف کار خواهم‌کرد، از جمله کمک به پیشبرد +پروژهٔ میزبان نرم‌افزار آزاد و چندین تغییر و +بهبود مختلف برای gnu.org. مشتاقانه به استقبال یادگیری نکات جدید و کسب +مهارت‌های ارزشمند به واسطهٔ کارآموزیم با تیم فنی فوق‌العادهٔ FSF می‌روم، که +زحمات بسیاری برای پروژهٔ گنو و جامعهٔ بزرگتر نرم‌افزار آزاد می‌کشند.

    + +
    +
    +Copyright © 2020, 2021 bandali +

    Copying and distribution of this file, with or without +modification, are permitted in any medium without royalty provided the +copyright notice and this notice are preserved. This file is offered +as-is, without any warranty.

    + +

    رونوشت و توزیع این پرونده، با یا بدون تغییر، در سراسر دنیا بدون حق +امتیاز و در هر رسانه‌ای مجاز است، به شرطی که این اعلان و اعلان حق تکثیر +حفظ شود. این پرونده به صورت موجود و بدون هیچ گونه ضمانت ارائه +می‌شود.

    +
    + + diff --git a/fa/index.html b/fa/index.html new file mode 100644 index 0000000..4266bf5 --- /dev/null +++ b/fa/index.html @@ -0,0 +1,88 @@ + + + + + + +سایت شخصی بندعلی + + + + + + +

    سایت شخصی بندعلی

    + + +

    من یک +فعال نرم‌افزار +آزاد و کارشناس ارشد علوم رایانه هستم. +به عنوان یک عضو پروژهٔ گنو، سرپرستی +نرم‌افزارهای جمی +و گنو آیس‌کت را بر +عهده دارم و همچنین در توسعهٔ تعداد دیگری از برنامه‌ها و بخش‌های گنو +مثل ایمکس +و ساوانا مشارکت می‌کنم.

    + +

    نوشته‌ها

    +

    در اینجا می‌توانید برخی یادداشت‌ها و نوشته‌هایم در رابطه با موضوعات +مورد علاقه‌م یا مسائلی که برایم مهم هستند را بخوانید. این نوشته‌ها +همچنین از طریق خوراک‌های اتم +و آراس‌اس در دسترس هستند.

    + + + +
    +
    +Copyright © 2012–2021 bandali +

    Copying and distribution of this file, with or without +modification, are permitted in any medium without royalty provided the +copyright notice and this notice are preserved. This file is offered +as-is, without any warranty.

    + +

    رونوشت و توزیع این پرونده، با یا بدون تغییر، در سراسر دنیا بدون حق +امتیاز و در هر رسانه‌ای مجاز است، به شرطی که این اعلان و اعلان حق تکثیر +حفظ شود. این پرونده به صورت موجود و بدون هیچ گونه ضمانت ارائه +می‌شود.

    +
    + + diff --git a/fa/projects.html b/fa/projects.html new file mode 100644 index 0000000..12ce1bc --- /dev/null +++ b/fa/projects.html @@ -0,0 +1,40 @@ + + + + + + +پروژه‌ها — بندعلی + + + + + +

    پروژه‌های بندعلی

    +

    در گذشته صفحهٔ پروژه‌هایم فهرستی از پروژه‌های نرم‌افزار آزادی که شروع +کرده یا در آن‌ها مشارکت کرده‌بودم داشت، اما به مرور بروز نگهداری فهرست +دشوارتر شد؛ لذا تصمیم به حذف آن گرفتم.

    + +

    برای دیدن برخی از پروژه‌های خودم و دیگر پروژه‌هایی که در آن‌ها مشارکت +می‌کنم، به مخازن گیت من +و همچنین نمایهٔ +ساوانای من سری بزنید.

    + + diff --git a/footer.html b/footer.html deleted file mode 100644 index 61653ae..0000000 --- a/footer.html +++ /dev/null @@ -1,16 +0,0 @@ -ifdef(`__feed_atom', `]]>', -`ifdef(`__feed_rss', `]]>', -`ifdef(`__pub', -`

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

    -
    -')dnl -
    -ifdef(`__copy', -`
    -

    Copyright © __copy Amin Bandali. -See the ifelse(__slug,`license',`above for license conditions',`license conditions'). -Please copy and share.

    -
    ') - -')')dnl diff --git a/fsf-internship-beyond.m4 b/fsf-internship-beyond.html similarity index 75% rename from fsf-internship-beyond.m4 rename to fsf-internship-beyond.html index 48eb683..63e31c1 100644 --- a/fsf-internship-beyond.m4 +++ b/fsf-internship-beyond.html @@ -1,12 +1,51 @@ -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, 3)dnl -include(header.html)dnl + + + + + + +My internship with the FSF tech team and beyond — bandali + + + + + + + +

    My internship with the FSF tech team and beyond

    +

    by bandali +on December 18, 2020 (also +in plain text)

    Originally published on the Free Software Foundation's sysadmin blog:
    -My internship with the FSF tech team and beyond.

    +My internship with the FSF tech team and beyond

    Hello! I'm Amin Bandali, @@ -95,5 +134,13 @@ currently open. Please see https://www.fsf.org/volunteer/internships for more details and information on how to apply!

    -define(__copy, `2020')dnl -include(footer.html)dnl +
    +
    +Copyright © 2020 bandali +

    Copying and distribution of this file, with or without +modification, are permitted in any medium without royalty provided the +copyright notice and this notice are preserved. This file is offered +as-is, without any warranty.

    +
    + + diff --git a/fsf-internship-beyond.txt b/fsf-internship-beyond.txt new file mode 100644 index 0000000..9778adb --- /dev/null +++ b/fsf-internship-beyond.txt @@ -0,0 +1,114 @@ +My internship with the FSF tech team and beyond +by bandali on December 18, 2020 (2020-12-18) + + + Originally published on the Free Software Foundation's sysadmin + blog: + https://www.fsf.org/blogs/sysadmin/my-internship-with-the-fsf-tech-team-and-beyond + +Hello! I'm Amin Bandali, and this is my second blog post on the FSF +sysadmin blog, concluding my internship with the FSF tech team this +year. + +Throughout my internship with the tech team, I have worked mainly on +sysadmin tasks related to setting up and/or managing FSF's GNU/Linux +servers. Perhaps most significantly, I set up an instance of the +Sourcehut[1] forge software to help evaluate[2] it as a candidate +for the upcoming FSF forge project[3]. I documented the installation +and setup process of Sourcehut's various components in the form of a +literate GNU Emacs Org-mode file, where source blocks are interspersed +with comments and prose explaining them. One can then progressively +evaluate and execute the source blocks, and optionally have their +results stored back in the Org file itself to help with +documentation/demonstration. + +[1] https://sourcehut.org +[2] https://libreplanet.org/wiki/FSF_2020_forge_evaluation +[3] https://www.fsf.org/blogs/sysadmin/coming-soon-a-new-site-for-fully-free-collaboration + +I have also been slowly working on various improvements for the server +running www.gnu.org, and will continue doing work on it as a volunteer +after the end of my internship. This will hopefully be beneficial to +the FSF sysadmins running the server, the GNU webmasters who do +webmastering work on gnu.org, and the general public browsing and +using gnu.org's pages. Notably, changes included upgrading the server +to the latest release of Trisquel GNU/Linux, and revamping and +improving the search mechanism for gnu.org's pages. Additionally, +there are several other projects that I would like to tackle with the +tech team in the near future. + +During my internship with the FSF tech team, I picked up a variety of +new skills and learned more about a diverse set of topics and tools. +This included building and installing a complex piece of software like +Sourcehut and debugging issues encountered along the way, using +Ansible for managing and deploying infrastructure, as well as learning +more about the Exim mail transfer agent used to run FSF and GNU's +array of mail servers. + +In conclusion to my internship and the year 2020, it's safe to say +that this year has been an eventful year for many people, including +myself. I started my internship with the tech team back in May, and +as a graduate student at the time, I was expecting a reasonable and +balanced workload for my work on my thesis over the coming months. +However, early on (less than two weeks) into my internship I learned +that due to a number of reasons, I needed to complete my master's +studies on a two-month deadline. I told the tech team about the +issue, asking whether I could take a hiatus to complete my studies +without affecting my internship. I am beyond thankful to the tech +team and the FSF as whole for being accommodating, and for their +flexibility in allowing me to take a leave to focus on writing my +thesis and wrapping up my master's studies. I managed to successfully +wrap up my studies in that short timeline, and focus on my internship +afterwards. + +However, all good things must come to an end, and this internship is +no exception. I am incredibly grateful to the members of the FSF tech +team -- Ian, Andrew, Ruben, and Michael -- for welcoming me to the +team as an intern and mentoring me, answering my many questions, and +helping me learn more. It has been an honour and a wonderful +experience for me all around working with you all and seeing the +energy and passion with which you take on the work and +responsibilities that come with being an FSF sysadmin and Web +developer. While most of my interactions were with the tech team, I +also got to interact with FSF staffers from several other teams during +my internship, and I'm thankful for our conversations and the chance +to get to know and appreciate the important work you do. + +This internship has come to an end, but I will carry with me all of +the good memories and the lessons I learned along the way, and will +happily to continue working with you as a volunteer. The things I +learned have been invaluable and greatly helpful to me, as I +transitioned into my new full-time job at Savoir-faire Linux as a Free +Software Consultant, where I get to work on various parts and aspects +of Jami, a GNU package for universal communication which respects the +freedoms and privacy of its users. + +This internship has come to an end, but I will carry with me all of +the good memories and the lessons I learned along the way, and will +happily to continue working with you as a volunteer. The things I +learned have been invaluable and greatly helpful to me, as I +transitioned into my new full-time job at Savoir-faire Linux as a Free +Software Consultant, where I get to work on various parts and aspects +of Jami, a GNU package for universal communication which respects the +freedoms and privacy of its users. + +I would like to thank the FSF for providing me this excellent +opportunity to work alongside the tech team as an intern, and take +away so many valuable lessons and great memories. + + Interested in interning for the Free Software Foundation? + The application period for spring 2021 internships is currently + open. Please see https://www.fsf.org/volunteer/internships for + more details and information on how to apply! + + + -*- + +Copyright (c) 2020 bandali + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without any warranty. + +this file: https://bndl.org/fsf-internship-beyond.txt diff --git a/fsf-internship-intro.m4 b/fsf-internship-intro.html similarity index 66% rename from fsf-internship-intro.m4 rename to fsf-internship-intro.html index 79af930..611853b 100644 --- a/fsf-internship-intro.m4 +++ b/fsf-internship-intro.html @@ -1,13 +1,52 @@ -dnl -*- html -*- -define(__title, `Internship with the FSF tech team')dnl -define(__pub, 2020-05-29T14:38:00-04:00)dnl -define(__id, 2)dnl -include(header.html)dnl + + + + + + +Internship with the FSF tech team — bandali + + + + + + + +

    Internship with the FSF tech team

    +

    by bandali +on May 29, 2020 (also +in plain text)

    Originally published on the Free Software Foundation's sysadmin blog:
    Introducing -Amin Bandali, intern with the FSF tech team.

    +Amin Bandali, intern with the FSF tech team

    Hi there, I'm Amin Bandali, often just bandali on the interwebs. I wear a few different hats around GNU as a maintainer, @@ -67,5 +106,13 @@ valuable skills through my internship with the FSF's exceptional tech team, who do so much for the GNU project and the wider free software community.

    -define(__copy, `2020')dnl -include(footer.html)dnl +
    +
    +Copyright © 2020 bandali +

    Copying and distribution of this file, with or without +modification, are permitted in any medium without royalty provided the +copyright notice and this notice are preserved. This file is offered +as-is, without any warranty.

    +
    + + diff --git a/fsf-internship-intro.txt b/fsf-internship-intro.txt new file mode 100644 index 0000000..8c9658d --- /dev/null +++ b/fsf-internship-intro.txt @@ -0,0 +1,80 @@ +Internship with the FSF tech team +by bandali on May 29, 2020 (2020-05-29) + + + Originally published on the Free Software Foundation's sysadmin + blog: + https://www.fsf.org/blogs/sysadmin/introducing-bandali-intern-with-the-fsf-tech-team + +Hi there, I'm Amin Bandali, often just `bandali' on the interwebs. +I wear a few different hats around GNU as a maintainer, webmaster, and +Savannah hacker, and I'm very excited to be extending that to the Free +Software Foundation (FSF) as an intern with the FSF tech team for +spring 2020. + +Growing up around parents with backgrounds in computer engineering and +programming, it did not take long for me to find an interest in +tinkering and playing with computers as a kid, and I first came into +contact with GNU/Linux in my teenage years. My first introduction to +the world of free software came a few years later, when a friend +kindly pointed out to me that what I had vaguely known and referred to +as "open source" software is more properly referred to as free +software, and helped me see why "open source" misses the point of free +software[1]. After learning about and absorbing the ideas and ideals +of free software, I have since become a free software activist. As a +computer scientist who enjoys studying and hacking on various programs +and sometimes writing my own, I have made a point of releasing all I +can under strong copyleft licenses, particularly the GNU AGPL[2] +license. + +[1] https://www.gnu.org/philosophy/open-source-misses-the-point.html +[2] https://www.gnu.org/licenses/agpl.html + +My involvement with the GNU Project[3] started in 2016, first as a +volunteer webmaster, and later as one of the maintainers of GNUzilla +and IceCat[4] late last year. Also around the same time, I led a +group of volunteers in organizing and holding EmacsConf 2019[5] as a +completely online conference, using only free software tools, much +like the excellent LibrePlanet 2020[6]. I love GNU Emacs[7], and use +it more than any other program. GNU Emacs helps me do a wide variety +of tasks such as programming, reading and composing emails, and +chatting via IRC. + +[3] https://www.gnu.org +[4] https://www.gnu.org/software/gnuzilla/ +[5] https://emacsconf.org/2019 +[6] https://libreplanet.org/wiki/LibrePlanet:Conference/2020 +[7] https://www.gnu.org/software/emacs/ + +More closely related to my internship with the FSF tech team, I have +been familiarizing myself with various pieces of the GNU Savannah[8] +infrastructure with help from veteran Savannah hacker Bob Proulx, +gradually learning and picking up tasks helping with the +administration and maintenance of Savannah. I am also a member of the +Systems Committee of my university's computer science club, overseeing +and maintaining a large fleet of GNU/Linux servers for our club +members. + +[8] https://savannah.gnu.org + +For my internship with the Free Software Foundation, I will be working +with the FSF tech team on a number of tasks, including helping with +the free software forge[9] project, as well as various improvements +for gnu.org. I look forward to learning many new things and picking +up valuable skills through my internship with the FSF's exceptional +tech team, who do *so much* for the GNU project and the wider free +software community. + +[9] https://www.fsf.org/blogs/sysadmin/coming-soon-a-new-site-for-fully-free-collaboration + + + -*- + +Copyright (c) 2020 bandali + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without any warranty. + +this file: https://bndl.org/fsf-internship-intro.txt diff --git a/get-notes.sh b/get-notes.sh deleted file mode 100755 index fa6483b..0000000 --- a/get-notes.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -i=1 -n=$(echo '__latest' | m4 meta_defs.m4 -) - -while [ $i -le $n ]; do - echo "_get(\`notes', $i).m4" | m4 meta_defs.m4 - - i=$(($i+1)) -done diff --git a/header.html b/header.html deleted file mode 100644 index 892805b..0000000 --- a/header.html +++ /dev/null @@ -1,60 +0,0 @@ -include(meta_defs.m4)dnl -ifdef(`__slug',,`define(__slug, _get(`notes', __id))')dnl -ifdef(`__feed_atom', -` -bandali -tag:shemshak.org,2020:__p/notes.atom:__slug -__pub -ifdef(`__upd',`__upd',`__pub')dnl - -__title - - -__title -__d`'__p/__slug.html -tag:shemshak.org,2020:__p/notes.rss:__slug -syscmd(date "-uRd __pub" | tr -d \\n) -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(__slug,`home',`

    __site__title

    ', -`__site__title') -
    - -
    -ifdef(`__pub', -`
    -
    -

    __title

    -

    Published on syscmd(date "-d __pub" "+%B %e`,' %Y" | tr -d \\n)`'ifdef(`__upd',`
    -Last updated on syscmd(date "-d __upd" "+%B %e`,' %Y" | tr -d \\n)')

    -
    ')')')dnl diff --git a/index.html b/index.html new file mode 100644 index 0000000..1888e27 --- /dev/null +++ b/index.html @@ -0,0 +1,80 @@ + + + + + + +bandali's personal site + + + + + + + + +

    bandali's personal site

    + + +

    I am a free +software activist and computing +scientist. I'm a GNU maintainer +of Jami +and GNU IceCat. +I also wear a few other hats around GNU, including helping run the +Savannah forge for GNU and non-GNU software as a Savannah hacker, and +serving as an assistant GNUisance.

    + +

    notes

    +

    Here are notes and writings about topics or issues I care about, +which you can also read via Atom +or RSS feeds.

    + + + +
    +
    +Copyright © 2012–2021 bandali +

    Copying and distribution of this file, with or without +modification, are permitted in any medium without royalty provided the +copyright notice and this notice are preserved. This file is offered +as-is, without any warranty.

    +
    + + diff --git a/index.m4 b/index.m4 deleted file mode 100644 index a760e7f..0000000 --- a/index.m4 +++ /dev/null @@ -1,62 +0,0 @@ -dnl -*- html -*- -define(__title, __site__title)dnl -define(__slug, `home')dnl -define(__nts)dnl -include(header.html)dnl - -
    -

    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 -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 __anc(`notes')

    -

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

    - - - - - - - - - - - - - - - - - - - - -
    LibrePlanet 2021: Jami and how it empowers -usersMarch 20, 2021
    My internship with the FSF -tech team and beyond (concluding)December 18, 2020
    Internship with the FSF tech -team (intro)May 29, 2020
    How I do my ComputingSeptember 14, 2019
    -
    - -define(__copy, `2016–2021')dnl -include(footer.html)dnl diff --git a/lp2021.m4 b/libreplanet-2021.html similarity index 54% rename from lp2021.m4 rename to libreplanet-2021.html index 0b01333..7f50e1b 100644 --- a/lp2021.m4 +++ b/libreplanet-2021.html @@ -1,9 +1,63 @@ -dnl -*- html -*- -define(__title, `LibrePlanet 2021: Jami and how it empowers users')dnl -define(__pub, 2021-03-20T09:00:00-04:00)dnl -define(__upd, 2021-03-21T01:15:00-04:00)dnl -define(__id, 4)dnl -include(header.html)dnl + + + + + + +LibrePlanet 2021: Jami and how it empowers users — bandali + + + + + + +

    LibrePlanet 2021: Jami and how it empowers users

    +

    by bandali +on March 20, 2021 (last update: March 21, 2021) +(also in plain text)

    I am giving my very first LibrePlanet talk today on @@ -24,7 +78,7 @@ freedom.

    LibrePlanet 2021's speakers page: -
    +

    Jami is free software for universal communication that respects the freedoms and privacy of its users. Jami is an official GNU package with a main goal of providing a framework for virtual communications, @@ -52,13 +106,13 @@ from the LibrePlanet 2021 at https://u.fsf.org/lp21-sp.

    Presentation slides: -pdf -(with notes) | -bib
    +pdf +(with notes) | +bib
    -__latex sources: -tar.gz | -zip

    +LaTeX sources: +tar.gz | +zip

    I hope to see you around this year's all-online LibrePlanet conference this weekend!

    @@ -71,5 +125,13 @@ learn skills, celebrate free software accomplishments, and face upcoming challenges. Newcomers are always welcome, and LibrePlanet 2021 will feature programming for all ages and experience levels.

    -define(__copy, `2021')dnl -include(footer.html)dnl +
    +
    +Copyright © 2021 bandali +

    Copying and distribution of this file, with or without +modification, are permitted in any medium without royalty provided the +copyright notice and this notice are preserved. This file is offered +as-is, without any warranty.

    +
    + + diff --git a/libreplanet-2021.txt b/libreplanet-2021.txt new file mode 100644 index 0000000..1eac211 --- /dev/null +++ b/libreplanet-2021.txt @@ -0,0 +1,81 @@ +LibrePlanet 2021: Jami and how it empowers users +by bandali on March 20, 2021 (2021-03-20) + + +I am giving my very first LibrePlanet[1] talk today on March 20th. +I will be talking about Jami[2], the GNU package for universal +communication that respects the freedoms and privacy of its users. +I'll be giving an introduction to Jami and its architecture, sharing +important and exciting development news from the Jami team about +rendezvous points[3], JAMS[4], the plugin SDK[5], Swarm chats[6], +and more; and how these features help empower users to communicate +with their loved ones without sacrificing their privacy or freedom. + +[1] https://libreplanet.org/2021/ +[2] https://jami.net +[3] https://jami.net/together-the-new-version-of-jami-and-a-new-step-forward +[4] https://jami.biz/jams-user-guide +[5] https://jami.net/plugins-sdk +[6] https://jami.net/swarm-introducing-a-new-generation-of-group-conversations + +Here is the abstract for my talk, also available on the LibrePlanet +2021's speakers page[7]: + + Jami is free software for universal communication that respects + the freedoms and privacy of its users. Jami is an official GNU + package with a main goal of providing a framework for virtual + communications, along with a series of end-user applications for + audio/video calling and conferencing, text messaging, and file + transfer. + + With the outbreak of the COVID-19 pandemic, working from home has + become the norm for many workers around the world. More and more + people are using videoconferencing tools to work or communicate + with their loved ones. The emergence of these tools has been + followed by many questions and scandals concerning the privacy and + freedom of users. + + This talk gives an introduction to Jami, a free/libre, truly + distributed, and peer-to-peer solution, and explains why and how + it differs from all other existing solutions and how it empowers + users. + +[7] https://libreplanet.org/2021/speakers/#4285 + +I have been an attendee of LibrePlanet for some years, and am very +excited to be giving my first ever talk at LibrePlanet 2021 this year! +You can watch my talk and other speakers' talks live this weekend, +from the https://libreplanet.org/2021/live/ page. Attendance is +gratis (no cost) and you can register at https://u.fsf.org/lp21-sp. + +Presentation slides: + - https://p.bndl.org/bandali-jami-libreplanet-2021.pdf + - https://p.bndl.org/bandali-jami-libreplanet-2021-with-notes.pdf + - https://bndl.org/bandali.bib +LaTeX sources: + - https://p.bndl.org/bandali-jami-libreplanet-2021.tar.gz + - https://p.bndl.org/bandali-jami-libreplanet-2021.zip + +I hope to see you around this year's all-online LibrePlanet conference +this weekend! + + LibrePlanet is a conference about software freedom, happening + March 20 through 21, 2021. The event is hosted by the Free + Software Foundation (FSF), and brings together software + developers, law and policy experts, activists, students, and + computer users to learn skills, celebrate free software + accomplishments, and face upcoming challenges. Newcomers are + always welcome, and LibrePlanet 2021 will feature programming + for all ages and experience levels. + + + -*- + +Copyright (c) 2021 bandali + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without any warranty. + +this file: https://bndl.org/libreplanet-2021.txt diff --git a/license.m4 b/license.m4 deleted file mode 100644 index 6510179..0000000 --- a/license.m4 +++ /dev/null @@ -1,34 +0,0 @@ -dnl -*- html -*- -define(__title, `licensing information')dnl -define(__slug, `license')dnl -include(header.html)dnl - -
    -

    __title

    -

    I strongly believe in -free culture -and that all creative works everywhere should be -free.

    - -

    Unless otherwise noted, material on this site is licensed under the -GNU General Public License as published by the Free Software -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:

    - -
    - -define(__copy, `2019')dnl -include(footer.html)dnl diff --git a/meta_defs.m4 b/meta_defs.m4 deleted file mode 100644 index 4ec0a77..0000000 --- a/meta_defs.m4 +++ /dev/null @@ -1,12 +0,0 @@ -define(`__latest', 4)dnl -define(`_put', `define(`$1[$2]', `$3')')dnl -define(`_get', `defn(`$1[$2]')')dnl -_put(`notes', 1, `computing')dnl -_put(`notes', 2, `fsf-internship-intro')dnl -_put(`notes', 3, `fsf-internship-beyond')dnl -_put(`notes', 4, `lp2021')dnl -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 deleted file mode 100644 index 32af856..0000000 --- a/meta_feed_atom.m4 +++ /dev/null @@ -1,16 +0,0 @@ -include(meta_defs.m4)dnl - - -Amin Bandali's Personal Site -Notes and blog posts by Amin Bandali -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(m4 -D__feed_atom -D__d=__d -D__p=__p _get(`notes', __i).m4)') - diff --git a/meta_feed_rss.m4 b/meta_feed_rss.m4 deleted file mode 100644 index 220a517..0000000 --- a/meta_feed_rss.m4 +++ /dev/null @@ -1,22 +0,0 @@ -include(meta_defs.m4)dnl - - - -Amin Bandali's Personal Site -Notes and blog posts by Amin Bandali -__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(m4 -D__feed_rss -D__d=__d -D__p=__p _get(`notes', __i).m4)') - - diff --git a/mmath.m4 b/mmath.html similarity index 50% rename from mmath.m4 rename to mmath.html index eb6d07d..e187918 100644 --- a/mmath.m4 +++ b/mmath.html @@ -1,37 +1,86 @@ -dnl -*- html -*- -define(__title, `Master of Mathematics')dnl -define(__slug, `mmath')dnl -include(header.html)dnl - -
    -

    Master of Mathematics

    - -

    I graduated from the University of Waterloo with -the degree of Master of Mathematics in Computer Science in Spring -2020. My research at the Waterloo -Formal Methods group focused on formal logic, model checking, and -verification; under supervision of -Prof. Nancy Day.

    + + + + + + +master of mathematics — bandali + + + + + +

    bandali's master of mathematics

    + +

    I graduated from the University of Waterloo with the degree of +Master of Mathematics in Computer Science in Spring 2020. My research +at the Waterloo Formal Methods +group focused on formal logic, model checking, and verification; under +supervision of +Prof. Nancy Day.

    A Comprehensive Study of Declarative Modelling Languages

    -dnl -dnl

    Jump to: -dnlthesis | -dnlpresentation | -dnlmodels

    + +

    Thesis

    Reference version: -pdf | -bib
    -__latex sources: -tar.gz | -zip

    +pdf | +bib
    -
    +LaTeX sources: +tar.gz | +zip

    + +
    Abstract -
    +

    Declarative behavioural modelling is a powerful modelling paradigm that enables users to model system functionality abstractly and formally. An abstract model is a concise and compact representation @@ -53,16 +102,16 @@ above languages.

    Structurally, a transition system is comprised of a snapshot declaration and snapshot space, initialization, and a transition -relation, which is potentially composed of individual transitions. We -meticulously outline the differences between the languages with +relation, which is potentially composed of individual transitions. +We meticulously outline the differences between the languages with respect to how the modeller would express each of the above components of a transition system in each language, and include discussions regarding stuttering and inconsistencies in the transition relation. Data-related aspects of a formal model include use of basic and composite datatypes, well-formedness and typechecking, and separation of name spaces with respect to global and local variables. Modularity -criteria includes subtransition systems and data decomposition. We -employ a series of small and concise exemplars we have devised to +criteria includes subtransition systems and data decomposition. +We employ a series of small and concise exemplars we have devised to highlight these differences in each language. To help modellers answer the important question of which declarative modelling language may be most suited for modelling their system, we present @@ -71,7 +120,7 @@ characteristics of each of these languages.

    -
    +
    License
     This thesis is free software: you can redistribute it and/or modify
    @@ -89,28 +138,35 @@ along with this thesis.  If not, see <
     
    -

    A copy of the GNU General Public License is available -from gpl-3.0.html, as well as in -the COPYING file included in both of the __latex source +

    A copy of the GNU General Public License is available from the +COPYING file included in both of +the LaTeX source archives linked above.

    Presentation

    Reference version: pdf (coming soon)
    -__latex sources: +LaTeX sources: tar.gz | zip (coming soon)

    This is the presentation I delivered to my supervisor and the second readers of my thesis on Jun 30, 2020, as -announced +announced on the Cheriton School of Computer Science website.

    Models

    Reference version: tar.gz | zip (coming soon)

    -
    -define(__copy, `2020')dnl -include(footer.html)dnl +
    +
    +Copyright © 2020 bandali +

    Copying and distribution of this file, with or without +modification, are permitted in any medium without royalty provided the +copyright notice and this notice are preserved. This file is offered +as-is, without any warranty.

    +
    + + diff --git a/projects.html b/projects.html new file mode 100644 index 0000000..0ec9997 --- /dev/null +++ b/projects.html @@ -0,0 +1,38 @@ + + + + + + +projects — bandali + + + + + +

    bandali's projects

    +

    This page used to contain a list of some of the free software +projects I had started or contributed to at some point, but it started +to get a bit unwieldy and frequently out-of-date, so I decided to +retire it.

    + +

    I'll instead directly refer you to +my public git +repositories and +my Savannah +profile.

    + + diff --git a/publications.m4 b/publications.m4 deleted file mode 100644 index f8f4fab..0000000 --- a/publications.m4 +++ /dev/null @@ -1,15 +0,0 @@ -dnl -*- html -*- -define(__title, `publications')dnl -define(__slug, `publications')dnl -include(header.html)dnl - -
    -

    __title

    - -include(static/publications-partial.html) - -

    bibliography generated using -bibtex2html

    -
    - -include(footer.html)dnl diff --git a/se212-f19.html b/se212-f19.html new file mode 100644 index 0000000..86e7c48 --- /dev/null +++ b/se212-f19.html @@ -0,0 +1,65 @@ + + + + + + +SE 212 Material — bandali + + + + + +

    Material from SE 212 tutorials

    + +

    This page contains slides and other material from +SE 212 +tutorials held by me in Fall 2019. +If you have any questions, concerns, or suggestions about the +presented material, please email me at bandali@uwaterloo.ca or come +see me during +my Friday +office hours.

    + + + + diff --git a/se212-f19.m4 b/se212-f19.m4 deleted file mode 100644 index 8553aa6..0000000 --- a/se212-f19.m4 +++ /dev/null @@ -1,45 +0,0 @@ -dnl -*- html -*- -define(__title, `SE 212 Material')dnl -define(__slug, `se212-f19')dnl -include(header.html)dnl - -
    -

    Material from SE 212 tutorials

    -

    This page contains slides and other material from -SE 212 -tutorials held by me in Fall 2019. If you have any -questions, concerns, or suggestions about the presented material, -please email me at bandali@uwaterloo.ca or come see me during my -Friday -office hours.

    - - -
    - -include(footer.html)dnl diff --git a/serve.sh b/serve.sh new file mode 100755 index 0000000..57f05ea --- /dev/null +++ b/serve.sh @@ -0,0 +1,3 @@ +#!/bin/sh +port="${1:-8000}" +python -m http.server "${port}" || python -m SimpleHTTPServer "${port}" diff --git a/static/.htaccess b/static/.htaccess deleted file mode 100644 index 0558c36..0000000 --- a/static/.htaccess +++ /dev/null @@ -1,17 +0,0 @@ -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 -# .html files -RewriteCond %{REQUEST_FILENAME}.html -f -RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L] - -RewriteRule ^fsf-internship/intro$ /~bandali/fsf-internship-intro.html [R] - diff --git a/static/GNUmakefile b/static/GNUmakefile deleted file mode 100644 index 70ec972..0000000 --- a/static/GNUmakefile +++ /dev/null @@ -1,12 +0,0 @@ -publications-partial.html: bandali.bib bandali-bib-*.txt - bibtex2html --citefile bandali-bib-citefile.txt --html-entities \ - --named-field slides slides --named-field poster poster \ - --nodoc --no-header --no-footer --no-doi \ - --reverse-sort --revkeys --sort-by-date --unicode \ - --output publications \ - bandali.bib - mv publications.html publications-partial.html - mv publications_bib.html bandali-bib-partial.html - sed -i -f publications-sed.txt publications-partial.html - sed -i -f bandali-bib-sed.txt bandali-bib-partial.html -bandali-bib-partial.html: publications-partial.html diff --git a/static/bandali-bib-citefile.txt b/static/bandali-bib-citefile.txt deleted file mode 100644 index 9a6c65e..0000000 --- a/static/bandali-bib-citefile.txt +++ /dev/null @@ -1,5 +0,0 @@ -bandali-jami-libreplanet-2021 -bandali2020 -DBLP:conf/re/AbbassiBDS18 -bandali-magic-lassonde-2017 -bandali-magic-cucsc-2017 diff --git a/static/bandali-bib-partial.html b/static/bandali-bib-partial.html deleted file mode 100644 index 556941a..0000000 --- a/static/bandali-bib-partial.html +++ /dev/null @@ -1,100 +0,0 @@ -

    bandali.bib

    -@misc{bandali-jami-libreplanet-2021,
    -  author = {Amin Bandali},
    -  title = {Jami and how it empowers users},
    -  year = 2021,
    -  month = {March},
    -  howpublished = {Presented at the LibrePlanet 2021 Conference},
    -  slides = {https://p.bndl.org/bandali-jami-libreplanet-2021.pdf},
    -  pdf = {https://p.bndl.org/bandali-jami-libreplanet-2021-with-notes.pdf}
    -}
    -
    - -
    -@mastersthesis{bandali2020,
    -  type = {{MMath} thesis},
    -  author = {Amin Bandali},
    -  title = {{A Comprehensive Study of Declarative Modelling Languages}},
    -  school = {University of Waterloo, David R. Cheriton School of Computer Science},
    -  year = 2020,
    -  month = {July},
    -  publisher = {UWSpace},
    -  url = {http://hdl.handle.net/10012/16059},
    -  note = {\url{http://hdl.handle.net/10012/16059} and
    -                  \url{https://bndl.org/mmath}},
    -  pdf = {https://p.bndl.org/bandali-mmath-thesis.pdf}
    -}
    -
    - -
    -@inproceedings{DBLP:conf/re/AbbassiBDS18,
    -  author = {Ali Abbassi and
    -               Amin Bandali and
    -               Nancy A. Day and
    -               Jos{\'{e}} Serna},
    -  title = {A Comparison of the Declarative Modelling Languages
    -                  {B}, {Dash}, and {TLA\textsuperscript{+}}},
    -  booktitle = {8th {IEEE} International Model-Driven Requirements
    -                  Engineering Workshop, MoDRE@RE 2018, Banff, AB,
    -                  Canada, August 20, 2018},
    -  pages = {11--20},
    -  year = {2018},
    -  crossref = {DBLP:conf/re/2018modre},
    -  url = {https://doi.org/10.1109/MoDRE.2018.00008},
    -  doi = {10.1109/MoDRE.2018.00008},
    -  timestamp = {Thu, 16 Jul 2020 12:21:41 +0200},
    -  biburl = {https://dblp.org/rec/bib/conf/re/AbbassiBDS18},
    -  bibsource = {dblp computer science bibliography, https://dblp.org},
    -  pdf = {https://p.bndl.org/modre2018-declarative.pdf}
    -}
    -
    - -
    -@proceedings{DBLP:conf/re/2018modre,
    -  editor = {Ana Moreira and
    -               Gunter Mussbacher and
    -               Jo{\~{a}}o Ara{\'{u}}jo and
    -               Pablo S{\'{a}}nchez},
    -  title = {8th {IEEE} International Model-Driven Requirements
    -                  Engineering Workshop, MoDRE@RE 2018, Banff, AB,
    -                  Canada, August 20, 2018},
    -  publisher = {{IEEE} Computer Society},
    -  year = {2018},
    -  url = {http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=8500723},
    -  isbn = {978-1-5386-8406-1},
    -  timestamp = {Thu, 14 Feb 2019 15:07:29 +0100},
    -  biburl = {https://dblp.org/rec/bib/conf/re/2018modre},
    -  bibsource = {dblp computer science bibliography, https://dblp.org}
    -}
    -
    - -
    -@misc{bandali-magic-lassonde-2017,
    -  author = {Amin Bandali and
    -                  Simon Hudon and
    -                  Jonathan S. Ostroff},
    -  title = {The Magic of Specifications and Type Systems},
    -  year = 2017,
    -  month = {August},
    -  howpublished = {Presented at the 2017 Lassonde Undergraduate Summer
    -                  Student Research Conference, York University,
    -                  Toronto, Canada},
    -  poster = {https://p.bndl.org/eecs4080-poster.pdf}
    -}
    -
    - -
    -@misc{bandali-magic-cucsc-2017,
    -  author = {Amin Bandali and
    -                  Simon Hudon and
    -                  Jonathan S. Ostroff},
    -  title = {The Magic of Specifications and Type Systems},
    -  year = 2017,
    -  month = {June},
    -  howpublished = {Presented at the Canadian Undergraduate Computer
    -                  Science Conference 2017, University of Toronto,
    -                  Canada},
    -  slides = {https://p.bndl.org/cucsc-2017-slides.pdf}
    -}
    -
    - diff --git a/static/bandali-bib-sed.txt b/static/bandali-bib-sed.txt deleted file mode 100644 index 64ca551..0000000 --- a/static/bandali-bib-sed.txt +++ /dev/null @@ -1,2 +0,0 @@ -# linkify bandali.bib at the top -s|bandali.bib|&| diff --git a/static/feed-12x12.png b/static/feed-12x12.png deleted file mode 100644 index 3fe8b0a3043e77f11c47e5ee5976536061e1b861..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmVV2OJtV zhYl{iM1_{?)!JTr?NQDv*w3M%F~K)~`SRWq3UN`~pOuQ$q(UvF@@pwdJ*{Cs&}e2y zX|2U@9>p+Ip<*E}io*V^WSEly?9H3h6C>D*63$8pcU7jl9>L2g_**K+FQb_AvLRFx z5vqES)11_bcpvVbfsdXjG&35)&y+$vF~U)PgWlJ7^xGBy{fvSpW`qpHZ0#V$DSmT3Kx{@WrM7n*X#cPV5Th zi2$Y^MsU_f@p1~d)iY*idy>QaD*(#+We#S-2<^u){4JG!DG$DjyLkm?<0=51k2%`! zp8`-xk5ihK5v+Ua_kXWD9axzPQl1F# - - - - - - - - - - - - - - - - - diff --git a/static/gnu.ico b/static/gnu.ico deleted file mode 100644 index e36382694e3ce4597879a9460080a2aa34299bc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1406 zcmeH{*-I2q6o)_Cv{l<|(Q?u>H7%EMEqBYzE%(VZ*U2?Y#f4H+Txu#cvc+|REKDQA zB&~GHECrXMdNPC{5`5{c*UIjwq4XE@;JJMF{CjWTYP z7H~N`RrEH~mJ`EpOD!V;nS(hM83|;#m@(1+lh!jJDQO z8|6t>us5HEhlsY3P~m4woXDLe>6{7mVf;l0=}yL6m$?&dwUcsRYr0yLl=?||Q-6tT z5w29{XHpg7#N@|edOO8&L7MD47oBZ7#^8_^f(DyoZ$gnKA~I z)eH$rl4E$=pdi=HjFFem=ig{iE#AO?asy_o>=#ZFw9H`dLLY9ldiMhFw=v9jzx8|} zA#QzQd&>cU)XSLcY8 nb51)3rl;pHfZucc)P}!I3f->>B^t9himCgW;m$9Z`T>6c2I{&R diff --git a/static/gpl-3.0.html b/static/gpl-3.0.html deleted file mode 100644 index 1295136..0000000 --- a/static/gpl-3.0.html +++ /dev/null @@ -1,697 +0,0 @@ - - - - - - GNU General Public License v3.0 - - - -
    -

    GNU GENERAL PUBLIC LICENSE

    -

    Version 3, 29 June 2007

    - -

    Copyright © 2007 Free Software Foundation, Inc. - <https://fsf.org/>

    - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed.

    - -

    Preamble

    - -

    The GNU General Public License is a free, copyleft license for - software and other kinds of works.

    - -

    The licenses for most software and other practical works are designed - to take away your freedom to share and change the works. By contrast, - the GNU General Public License is intended to guarantee your freedom to - share and change all versions of a program--to make sure it remains free - software for all its users. We, the Free Software Foundation, use the - GNU General Public License for most of our software; it applies also to - any other work released this way by its authors. You can apply it to - your programs, too.

    - -

    When we speak of free software, we are referring to freedom, not - price. Our General Public Licenses are designed to make sure that you - have the freedom to distribute copies of free software (and charge for - them if you wish), that you receive source code or can get it if you - want it, that you can change the software or use pieces of it in new - free programs, and that you know you can do these things.

    - -

    To protect your rights, we need to prevent others from denying you - these rights or asking you to surrender the rights. Therefore, you have - certain responsibilities if you distribute copies of the software, or if - you modify it: responsibilities to respect the freedom of others.

    - -

    For example, if you distribute copies of such a program, whether - gratis or for a fee, you must pass on to the recipients the same - freedoms that you received. You must make sure that they, too, receive - or can get the source code. And you must show them these terms so they - know their rights.

    - -

    Developers that use the GNU GPL protect your rights with two steps: - (1) assert copyright on the software, and (2) offer you this License - giving you legal permission to copy, distribute and/or modify it.

    - -

    For the developers' and authors' protection, the GPL clearly explains - that there is no warranty for this free software. For both users' and - authors' sake, the GPL requires that modified versions be marked as - changed, so that their problems will not be attributed erroneously to - authors of previous versions.

    - -

    Some devices are designed to deny users access to install or run - modified versions of the software inside them, although the manufacturer - can do so. This is fundamentally incompatible with the aim of - protecting users' freedom to change the software. The systematic - pattern of such abuse occurs in the area of products for individuals to - use, which is precisely where it is most unacceptable. Therefore, we - have designed this version of the GPL to prohibit the practice for those - products. If such problems arise substantially in other domains, we - stand ready to extend this provision to those domains in future versions - of the GPL, as needed to protect the freedom of users.

    - -

    Finally, every program is threatened constantly by software patents. - States should not allow patents to restrict development and use of - software on general-purpose computers, but in those that do, we wish to - avoid the special danger that patents applied to a free program could - make it effectively proprietary. To prevent this, the GPL assures that - patents cannot be used to render the program non-free.

    - -

    The precise terms and conditions for copying, distribution and - modification follow.

    - -

    TERMS AND CONDITIONS

    - -

    0. Definitions.

    - -

    “This License” refers to version 3 of the GNU General Public License.

    - -

    “Copyright” also means copyright-like laws that apply to other kinds of - works, such as semiconductor masks.

    - -

    “The Program” refers to any copyrightable work licensed under this - License. Each licensee is addressed as “you”. “Licensees” and - “recipients” may be individuals or organizations.

    - -

    To “modify” a work means to copy from or adapt all or part of the work - in a fashion requiring copyright permission, other than the making of an - exact copy. The resulting work is called a “modified version” of the - earlier work or a work “based on” the earlier work.

    - -

    A “covered work” means either the unmodified Program or a work based - on the Program.

    - -

    To “propagate” a work means to do anything with it that, without - permission, would make you directly or secondarily liable for - infringement under applicable copyright law, except executing it on a - computer or modifying a private copy. Propagation includes copying, - distribution (with or without modification), making available to the - public, and in some countries other activities as well.

    - -

    To “convey” a work means any kind of propagation that enables other - parties to make or receive copies. Mere interaction with a user through - a computer network, with no transfer of a copy, is not conveying.

    - -

    An interactive user interface displays “Appropriate Legal Notices” - to the extent that it includes a convenient and prominently visible - feature that (1) displays an appropriate copyright notice, and (2) - tells the user that there is no warranty for the work (except to the - extent that warranties are provided), that licensees may convey the - work under this License, and how to view a copy of this License. If - the interface presents a list of user commands or options, such as a - menu, a prominent item in the list meets this criterion.

    - -

    1. Source Code.

    - -

    The “source code” for a work means the preferred form of the work - for making modifications to it. “Object code” means any non-source - form of a work.

    - -

    A “Standard Interface” means an interface that either is an official - standard defined by a recognized standards body, or, in the case of - interfaces specified for a particular programming language, one that - is widely used among developers working in that language.

    - -

    The “System Libraries” of an executable work include anything, other - than the work as a whole, that (a) is included in the normal form of - packaging a Major Component, but which is not part of that Major - Component, and (b) serves only to enable use of the work with that - Major Component, or to implement a Standard Interface for which an - implementation is available to the public in source code form. A - “Major Component”, in this context, means a major essential component - (kernel, window system, and so on) of the specific operating system - (if any) on which the executable work runs, or a compiler used to - produce the work, or an object code interpreter used to run it.

    - -

    The “Corresponding Source” for a work in object code form means all - the source code needed to generate, install, and (for an executable - work) run the object code and to modify the work, including scripts to - control those activities. However, it does not include the work's - System Libraries, or general-purpose tools or generally available free - programs which are used unmodified in performing those activities but - which are not part of the work. For example, Corresponding Source - includes interface definition files associated with source files for - the work, and the source code for shared libraries and dynamically - linked subprograms that the work is specifically designed to require, - such as by intimate data communication or control flow between those - subprograms and other parts of the work.

    - -

    The Corresponding Source need not include anything that users - can regenerate automatically from other parts of the Corresponding - Source.

    - -

    The Corresponding Source for a work in source code form is that - same work.

    - -

    2. Basic Permissions.

    - -

    All rights granted under this License are granted for the term of - copyright on the Program, and are irrevocable provided the stated - conditions are met. This License explicitly affirms your unlimited - permission to run the unmodified Program. The output from running a - covered work is covered by this License only if the output, given its - content, constitutes a covered work. This License acknowledges your - rights of fair use or other equivalent, as provided by copyright law.

    - -

    You may make, run and propagate covered works that you do not - convey, without conditions so long as your license otherwise remains - in force. You may convey covered works to others for the sole purpose - of having them make modifications exclusively for you, or provide you - with facilities for running those works, provided that you comply with - the terms of this License in conveying all material for which you do - not control copyright. Those thus making or running the covered works - for you must do so exclusively on your behalf, under your direction - and control, on terms that prohibit them from making any copies of - your copyrighted material outside their relationship with you.

    - -

    Conveying under any other circumstances is permitted solely under - the conditions stated below. Sublicensing is not allowed; section 10 - makes it unnecessary.

    - -

    3. Protecting Users' Legal Rights From Anti-Circumvention Law.

    - -

    No covered work shall be deemed part of an effective technological - measure under any applicable law fulfilling obligations under article - 11 of the WIPO copyright treaty adopted on 20 December 1996, or - similar laws prohibiting or restricting circumvention of such - measures.

    - -

    When you convey a covered work, you waive any legal power to forbid - circumvention of technological measures to the extent such circumvention - is effected by exercising rights under this License with respect to - the covered work, and you disclaim any intention to limit operation or - modification of the work as a means of enforcing, against the work's - users, your or third parties' legal rights to forbid circumvention of - technological measures.

    - -

    4. Conveying Verbatim Copies.

    - -

    You may convey verbatim copies of the Program's source code as you - receive it, in any medium, provided that you conspicuously and - appropriately publish on each copy an appropriate copyright notice; - keep intact all notices stating that this License and any - non-permissive terms added in accord with section 7 apply to the code; - keep intact all notices of the absence of any warranty; and give all - recipients a copy of this License along with the Program.

    - -

    You may charge any price or no price for each copy that you convey, - and you may offer support or warranty protection for a fee.

    - -

    5. Conveying Modified Source Versions.

    - -

    You may convey a work based on the Program, or the modifications to - produce it from the Program, in the form of source code under the - terms of section 4, provided that you also meet all of these conditions:

    - -
      -
    • a) The work must carry prominent notices stating that you modified - it, and giving a relevant date.
    • - -
    • b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - “keep intact all notices”.
    • - -
    • c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it.
    • - -
    • d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so.
    • -
    - -

    A compilation of a covered work with other separate and independent - works, which are not by their nature extensions of the covered work, - and which are not combined with it such as to form a larger program, - in or on a volume of a storage or distribution medium, is called an - “aggregate” if the compilation and its resulting copyright are not - used to limit the access or legal rights of the compilation's users - beyond what the individual works permit. Inclusion of a covered work - in an aggregate does not cause this License to apply to the other - parts of the aggregate.

    - -

    6. Conveying Non-Source Forms.

    - -

    You may convey a covered work in object code form under the terms - of sections 4 and 5, provided that you also convey the - machine-readable Corresponding Source under the terms of this License, - in one of these ways:

    - -
      -
    • a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange.
    • - -
    • b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge.
    • - -
    • c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b.
    • - -
    • d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements.
    • - -
    • e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d.
    • -
    - -

    A separable portion of the object code, whose source code is excluded - from the Corresponding Source as a System Library, need not be - included in conveying the object code work.

    - -

    A “User Product” is either (1) a “consumer product”, which means any - tangible personal property which is normally used for personal, family, - or household purposes, or (2) anything designed or sold for incorporation - into a dwelling. In determining whether a product is a consumer product, - doubtful cases shall be resolved in favor of coverage. For a particular - product received by a particular user, “normally used” refers to a - typical or common use of that class of product, regardless of the status - of the particular user or of the way in which the particular user - actually uses, or expects or is expected to use, the product. A product - is a consumer product regardless of whether the product has substantial - commercial, industrial or non-consumer uses, unless such uses represent - the only significant mode of use of the product.

    - -

    “Installation Information” for a User Product means any methods, - procedures, authorization keys, or other information required to install - and execute modified versions of a covered work in that User Product from - a modified version of its Corresponding Source. The information must - suffice to ensure that the continued functioning of the modified object - code is in no case prevented or interfered with solely because - modification has been made.

    - -

    If you convey an object code work under this section in, or with, or - specifically for use in, a User Product, and the conveying occurs as - part of a transaction in which the right of possession and use of the - User Product is transferred to the recipient in perpetuity or for a - fixed term (regardless of how the transaction is characterized), the - Corresponding Source conveyed under this section must be accompanied - by the Installation Information. But this requirement does not apply - if neither you nor any third party retains the ability to install - modified object code on the User Product (for example, the work has - been installed in ROM).

    - -

    The requirement to provide Installation Information does not include a - requirement to continue to provide support service, warranty, or updates - for a work that has been modified or installed by the recipient, or for - the User Product in which it has been modified or installed. Access to a - network may be denied when the modification itself materially and - adversely affects the operation of the network or violates the rules and - protocols for communication across the network.

    - -

    Corresponding Source conveyed, and Installation Information provided, - in accord with this section must be in a format that is publicly - documented (and with an implementation available to the public in - source code form), and must require no special password or key for - unpacking, reading or copying.

    - -

    7. Additional Terms.

    - -

    “Additional permissions” are terms that supplement the terms of this - License by making exceptions from one or more of its conditions. - Additional permissions that are applicable to the entire Program shall - be treated as though they were included in this License, to the extent - that they are valid under applicable law. If additional permissions - apply only to part of the Program, that part may be used separately - under those permissions, but the entire Program remains governed by - this License without regard to the additional permissions.

    - -

    When you convey a copy of a covered work, you may at your option - remove any additional permissions from that copy, or from any part of - it. (Additional permissions may be written to require their own - removal in certain cases when you modify the work.) You may place - additional permissions on material, added by you to a covered work, - for which you have or can give appropriate copyright permission.

    - -

    Notwithstanding any other provision of this License, for material you - add to a covered work, you may (if authorized by the copyright holders of - that material) supplement the terms of this License with terms:

    - -
      -
    • a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or
    • - -
    • b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or
    • - -
    • c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or
    • - -
    • d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or
    • - -
    • e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or
    • - -
    • f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors.
    • -
    - -

    All other non-permissive additional terms are considered “further - restrictions” within the meaning of section 10. If the Program as you - received it, or any part of it, contains a notice stating that it is - governed by this License along with a term that is a further - restriction, you may remove that term. If a license document contains - a further restriction but permits relicensing or conveying under this - License, you may add to a covered work material governed by the terms - of that license document, provided that the further restriction does - not survive such relicensing or conveying.

    - -

    If you add terms to a covered work in accord with this section, you - must place, in the relevant source files, a statement of the - additional terms that apply to those files, or a notice indicating - where to find the applicable terms.

    - -

    Additional terms, permissive or non-permissive, may be stated in the - form of a separately written license, or stated as exceptions; - the above requirements apply either way.

    - -

    8. Termination.

    - -

    You may not propagate or modify a covered work except as expressly - provided under this License. Any attempt otherwise to propagate or - modify it is void, and will automatically terminate your rights under - this License (including any patent licenses granted under the third - paragraph of section 11).

    - -

    However, if you cease all violation of this License, then your - license from a particular copyright holder is reinstated (a) - provisionally, unless and until the copyright holder explicitly and - finally terminates your license, and (b) permanently, if the copyright - holder fails to notify you of the violation by some reasonable means - prior to 60 days after the cessation.

    - -

    Moreover, your license from a particular copyright holder is - reinstated permanently if the copyright holder notifies you of the - violation by some reasonable means, this is the first time you have - received notice of violation of this License (for any work) from that - copyright holder, and you cure the violation prior to 30 days after - your receipt of the notice.

    - -

    Termination of your rights under this section does not terminate the - licenses of parties who have received copies or rights from you under - this License. If your rights have been terminated and not permanently - reinstated, you do not qualify to receive new licenses for the same - material under section 10.

    - -

    9. Acceptance Not Required for Having Copies.

    - -

    You are not required to accept this License in order to receive or - run a copy of the Program. Ancillary propagation of a covered work - occurring solely as a consequence of using peer-to-peer transmission - to receive a copy likewise does not require acceptance. However, - nothing other than this License grants you permission to propagate or - modify any covered work. These actions infringe copyright if you do - not accept this License. Therefore, by modifying or propagating a - covered work, you indicate your acceptance of this License to do so.

    - -

    10. Automatic Licensing of Downstream Recipients.

    - -

    Each time you convey a covered work, the recipient automatically - receives a license from the original licensors, to run, modify and - propagate that work, subject to this License. You are not responsible - for enforcing compliance by third parties with this License.

    - -

    An “entity transaction” is a transaction transferring control of an - organization, or substantially all assets of one, or subdividing an - organization, or merging organizations. If propagation of a covered - work results from an entity transaction, each party to that - transaction who receives a copy of the work also receives whatever - licenses to the work the party's predecessor in interest had or could - give under the previous paragraph, plus a right to possession of the - Corresponding Source of the work from the predecessor in interest, if - the predecessor has it or can get it with reasonable efforts.

    - -

    You may not impose any further restrictions on the exercise of the - rights granted or affirmed under this License. For example, you may - not impose a license fee, royalty, or other charge for exercise of - rights granted under this License, and you may not initiate litigation - (including a cross-claim or counterclaim in a lawsuit) alleging that - any patent claim is infringed by making, using, selling, offering for - sale, or importing the Program or any portion of it.

    - -

    11. Patents.

    - -

    A “contributor” is a copyright holder who authorizes use under this - License of the Program or a work on which the Program is based. The - work thus licensed is called the contributor's “contributor version”.

    - -

    A contributor's “essential patent claims” are all patent claims - owned or controlled by the contributor, whether already acquired or - hereafter acquired, that would be infringed by some manner, permitted - by this License, of making, using, or selling its contributor version, - but do not include claims that would be infringed only as a - consequence of further modification of the contributor version. For - purposes of this definition, “control” includes the right to grant - patent sublicenses in a manner consistent with the requirements of - this License.

    - -

    Each contributor grants you a non-exclusive, worldwide, royalty-free - patent license under the contributor's essential patent claims, to - make, use, sell, offer for sale, import and otherwise run, modify and - propagate the contents of its contributor version.

    - -

    In the following three paragraphs, a “patent license” is any express - agreement or commitment, however denominated, not to enforce a patent - (such as an express permission to practice a patent or covenant not to - sue for patent infringement). To “grant” such a patent license to a - party means to make such an agreement or commitment not to enforce a - patent against the party.

    - -

    If you convey a covered work, knowingly relying on a patent license, - and the Corresponding Source of the work is not available for anyone - to copy, free of charge and under the terms of this License, through a - publicly available network server or other readily accessible means, - then you must either (1) cause the Corresponding Source to be so - available, or (2) arrange to deprive yourself of the benefit of the - patent license for this particular work, or (3) arrange, in a manner - consistent with the requirements of this License, to extend the patent - license to downstream recipients. “Knowingly relying” means you have - actual knowledge that, but for the patent license, your conveying the - covered work in a country, or your recipient's use of the covered work - in a country, would infringe one or more identifiable patents in that - country that you have reason to believe are valid.

    - -

    If, pursuant to or in connection with a single transaction or - arrangement, you convey, or propagate by procuring conveyance of, a - covered work, and grant a patent license to some of the parties - receiving the covered work authorizing them to use, propagate, modify - or convey a specific copy of the covered work, then the patent license - you grant is automatically extended to all recipients of the covered - work and works based on it.

    - -

    A patent license is “discriminatory” if it does not include within - the scope of its coverage, prohibits the exercise of, or is - conditioned on the non-exercise of one or more of the rights that are - specifically granted under this License. You may not convey a covered - work if you are a party to an arrangement with a third party that is - in the business of distributing software, under which you make payment - to the third party based on the extent of your activity of conveying - the work, and under which the third party grants, to any of the - parties who would receive the covered work from you, a discriminatory - patent license (a) in connection with copies of the covered work - conveyed by you (or copies made from those copies), or (b) primarily - for and in connection with specific products or compilations that - contain the covered work, unless you entered into that arrangement, - or that patent license was granted, prior to 28 March 2007.

    - -

    Nothing in this License shall be construed as excluding or limiting - any implied license or other defenses to infringement that may - otherwise be available to you under applicable patent law.

    - -

    12. No Surrender of Others' Freedom.

    - -

    If conditions are imposed on you (whether by court order, agreement or - otherwise) that contradict the conditions of this License, they do not - excuse you from the conditions of this License. If you cannot convey a - covered work so as to satisfy simultaneously your obligations under this - License and any other pertinent obligations, then as a consequence you may - not convey it at all. For example, if you agree to terms that obligate you - to collect a royalty for further conveying from those to whom you convey - the Program, the only way you could satisfy both those terms and this - License would be to refrain entirely from conveying the Program.

    - -

    13. Use with the GNU Affero General Public License.

    - -

    Notwithstanding any other provision of this License, you have - permission to link or combine any covered work with a work licensed - under version 3 of the GNU Affero General Public License into a single - combined work, and to convey the resulting work. The terms of this - License will continue to apply to the part which is the covered work, - but the special requirements of the GNU Affero General Public License, - section 13, concerning interaction through a network will apply to the - combination as such.

    - -

    14. Revised Versions of this License.

    - -

    The Free Software Foundation may publish revised and/or new versions of - the GNU General Public License from time to time. Such new versions will - be similar in spirit to the present version, but may differ in detail to - address new problems or concerns.

    - -

    Each version is given a distinguishing version number. If the - Program specifies that a certain numbered version of the GNU General - Public License “or any later version” applies to it, you have the - option of following the terms and conditions either of that numbered - version or of any later version published by the Free Software - Foundation. If the Program does not specify a version number of the - GNU General Public License, you may choose any version ever published - by the Free Software Foundation.

    - -

    If the Program specifies that a proxy can decide which future - versions of the GNU General Public License can be used, that proxy's - public statement of acceptance of a version permanently authorizes you - to choose that version for the Program.

    - -

    Later license versions may give you additional or different - permissions. However, no additional obligations are imposed on any - author or copyright holder as a result of your choosing to follow a - later version.

    - -

    15. Disclaimer of Warranty.

    - -

    THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY - APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT - HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY - OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, - THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM - IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF - ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

    - -

    16. Limitation of Liability.

    - -

    IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING - WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS - THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY - GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE - USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF - DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD - PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), - EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGES.

    - -

    17. Interpretation of Sections 15 and 16.

    - -

    If the disclaimer of warranty and limitation of liability provided - above cannot be given local legal effect according to their terms, - reviewing courts shall apply local law that most closely approximates - an absolute waiver of all civil liability in connection with the - Program, unless a warranty or assumption of liability accompanies a - copy of the Program in return for a fee.

    - -

    END OF TERMS AND CONDITIONS

    - -

    How to Apply These Terms to Your New Programs

    - -

    If you develop a new program, and you want it to be of the greatest - possible use to the public, the best way to achieve this is to make it - free software which everyone can redistribute and change under these terms.

    - -

    To do so, attach the following notices to the program. It is safest - to attach them to the start of each source file to most effectively - state the exclusion of warranty; and each file should have at least - the “copyright” line and a pointer to where the full notice is found.

    - -
        <one line to give the program's name and a brief idea of what it does.>
    -    Copyright (C) <year>  <name of author>
    -
    -    This program is free software: you can redistribute it and/or modify
    -    it under the terms of the GNU General Public License as published by
    -    the Free Software Foundation, either version 3 of the License, or
    -    (at your option) any later version.
    -
    -    This program is distributed in the hope that it will be useful,
    -    but WITHOUT ANY WARRANTY; without even the implied warranty of
    -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    -    GNU General Public License for more details.
    -
    -    You should have received a copy of the GNU General Public License
    -    along with this program.  If not, see <https://www.gnu.org/licenses/>.
    -      
    - -

    Also add information on how to contact you by electronic and paper mail.

    - -

    If the program does terminal interaction, make it output a short - notice like this when it starts in an interactive mode:

    - -
        <program>  Copyright (C) <year>  <name of author>
    -    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    -    This is free software, and you are welcome to redistribute it
    -    under certain conditions; type `show c' for details.
    -      
    - -

    The hypothetical commands `show w' and `show c' should show the appropriate - parts of the General Public License. Of course, your program's commands - might be different; for a GUI interface, you would use an “about box”.

    - -

    You should also get your employer (if you work as a programmer) or school, - if any, to sign a “copyright disclaimer” for the program, if necessary. - For more information on this, and how to apply and follow the GNU GPL, see - <https://www.gnu.org/licenses/>.

    - -

    The GNU General Public License does not permit incorporating your program - into proprietary programs. If your program is a subroutine library, you - may consider it more useful to permit linking proprietary applications with - the library. If this is what you want to do, use the GNU Lesser General - Public License instead of this License. But first, please read - <https://www.gnu.org/licenses/why-not-lgpl.html>.

    -
    - - diff --git a/static/publications-partial.html b/static/publications-partial.html deleted file mode 100644 index 9c1d5af..0000000 --- a/static/publications-partial.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -[5] - -Amin Bandali. - Jami and how it empowers users. - Presented at the LibrePlanet 2021 Conference, March 2021. -[ bib | -slides | -.pdf ] - -
    -[4] - -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 | -http | -.pdf ] - -
    -[3] - -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 | -http | -.pdf ] - -
    -[2] - -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 | -poster ] - -
    -[1] - -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 | -slides ] - -
    \ No newline at end of file diff --git a/static/publications-sed.txt b/static/publications-sed.txt deleted file mode 100644 index 5e1b655..0000000 --- a/static/publications-sed.txt +++ /dev/null @@ -1,16 +0,0 @@ -# delete all leading blank lines -# tip: can use /[[:space:]]/,$!d to delete all leading space -/./,$!d - -# take the rename into consideration -s/publications_bib/bandali-bib/ - -# delete and -# s||| -# s||| - -# linkify author names -s|Amin Bandali|&| -s|Nancy A. Day|&| -s|Simon Hudon|&| -s|Jonathan S. Ostroff|&| diff --git a/static/se212-h02q04d-soln.grg b/static/se212-h02q04d-soln.grg deleted file mode 100644 index e395717..0000000 --- a/static/se212-h02q04d-soln.grg +++ /dev/null @@ -1,25 +0,0 @@ -#u abandali -#a h02 - -#q q04d - -p <=> q, p & q <=> (p | q) - -#check TP - -p <=> q <-> p & q <=> (p | q) - - 1) p & q <=> (p | q) - 2) (p & q => p | q) & (p | q => p & q) by equiv - 3) (!(p & q) | p | q) & (!(p | q) | p & q) by impl * 2 - 4) (!p | !q | p | q) & (!(p | q) | p & q) by dm - 5) (true | !q | q) & (!(p | q) | p & q) by lem - 6) true & (!(p | q) | p & q) by simp1 - 7) !(p | q) | p & q by simp1 - 8) !p & !q | p & q by dm - 9) (!p & !q | p) & (!p & !q | q) by distr -10) (!p | p) & (!q | p) & (!p | q) & (!q | q) by distr * 2 -11) true & (!q | p) & (!p | q) & true by lem * 2 -12) (!q | p) & (!p | q) by simp1 * 2 -13) (q => p) & (p => q) by impl * 2 -14) p <=> q by equiv diff --git a/static/se212-t01.org b/static/se212-t01.org deleted file mode 100644 index 12e9cdd..0000000 --- a/static/se212-t01.org +++ /dev/null @@ -1,78 +0,0 @@ -#+macro: topic Propositional Logic - -#+macro: room MC 4040 -#+macro: sec1 SE 212 TUT 101 -#+macro: sec2 SE 212 TUT 102 -#+macro: time1 02:30-03:20W -#+macro: time2 03:30-04:20W - -#+macro: sec {{{sec2}}} -#+macro: sectime {{{time2}}} - -#+title: {{{topic}}} -#+subtitle: ({{{sec}}}) -#+author: Amin Bandali -#+email: bandali@uwaterloo.ca -#+date: Wed Sep 11, 2019 -#+language: en -#+options: email:t num:t toc:nil \n:nil ::t |:t ^:t -:t f:t *:t <:t -#+options: tex:t d:nil todo:t pri:nil tags:not-in-toc -#+select_tags: export -#+exclude_tags: noexport -#+startup: beamer -#+latex_class: beamer -# #+latex_class_options: [bigger] -#+latex_header: \setbeamercovered{transparent} -#+latex: \setbeamertemplate{itemize items}[circle] -#+beamer_color_theme: beaver - -* Are you at the right place? - -We’re in {{{room}}}, for {{{sec}}} ({{{sectime}}}) - -* - -#+latex: \definecolor{darkred}{rgb}{0.8,0,0} -#+latex: {\Large \color{darkred} -#+begin_center -George -#+end_center -#+latex: } - -* - -#+latex: \vspace{-2.5em} -file:./george.png - -#+latex: {\footnotesize -https://www.student.cs.uwaterloo.ca/~se212/george/ask-george/ -#+latex: } - -* Tool support - -Over the years, students have developed a number of tools for using -George and/or editing =.grg= files, such as plugins for Vim and Atom. - -Check them out at - -#+begin_center -Course website → George User Manual → Contributions -#+end_center - -* George mode for Emacs (new!) - -- Syntax highlighting + a number of convenience functions -- Grab it from https://git.sr.ht/~bandali/george-mode \\ - (soon on Contributions page) - -* =a00q01.grg= (demo) - -Walk through answering =a00q01.grg= and submitting on MarkUs - -* Homework 1 -:PROPERTIES: -:BEAMER_act: [<+->] -:END: - -- Let’s do a couple of questions from Homework 1 -- Now you try the rest, let me know if you have any questions diff --git a/static/se212-t05.org b/static/se212-t05.org deleted file mode 100644 index a85896d..0000000 --- a/static/se212-t05.org +++ /dev/null @@ -1,272 +0,0 @@ -#+title: Predicate Logic -#+subtitle: (SE 212 Tutorial 5) -#+author: Amin Bandali -#+email: bandali@uwaterloo.ca -#+date: Wed Oct 9, 2019 -#+language: en -#+options: email:t num:t toc:nil \n:nil ::t |:t ^:t -:t f:t *:t <:t -#+options: tex:t d:nil todo:t pri:nil tags:not-in-toc -#+select_tags: export -#+exclude_tags: noexport -#+startup: beamer -#+latex_class: beamer -# #+latex_class_options: [bigger] -#+latex_header: \setbeamercovered{transparent} -#+latex: \setbeamertemplate{itemize items}[circle] -#+beamer_color_theme: beaver - -* Today’s plan -:PROPERTIES: -:BEAMER_act: [<+->] -:END: - -- do some semantics questions from homework 4 -- do some ND questions from homework 5 - -* =h04q05= - -Provide a counterexample to show that the following argument is not -valid and demonstrate that your answer is correct. - -#+begin_example -forall y : M . exists x : N . p(g(x), y) -|= -exists z : M . p(z, z) -#+end_example - -* =h04q05= \small{(cont’d)} - -#+begin_example -Domain: - M = {m1, m2} - N = {n1, n2} - -Mapping: - Syntax | Meaning - -------------------------- - g(.) | G(n1) := m1 - | G(n2) := m2 - -------------------------- - p(., .) | P(m1, m1) := F - | P(m1, m2) := T - | P(m2, m1) := T - | P(m2, m2) := F -#+end_example - -* =h04q05= \small{(cont’d)} - -#+begin_example -Premise: - [forall y : M . exists x : N . p(g(x), y)] - = [exists x: N. p(g(x), ^m1)] AND - [exists x: N . p(g(x), ^m2)] - = (P(G(n1), m1) OR P(G(n2), m1)) AND - (P(G(n1), m2) OR P(G(n2), m2)) - = (P(m1, m1) OR P(m2, m1)) AND - (P(m1, m2) OR P(m2, m2)) - = (F OR T) AND (T OR F) - = T -#+end_example - -* =h04q05= \small{(cont’d)} - -#+begin_example -Conclusion: - [exists z: M . p(z, z)] - = P(m1, m1) OR P(m2, m2) - = F OR F - = F -#+end_example - -* =h04q06= - -Express the following sentences in predicate logic. Use types in your -formalization. Is the set of formulas consistent? Demonstrate that -your answer is correct using the semantics of predicate logic. - -#+begin_example -All programmer like some computers. -Some programmers use MAC. -Therefore, some people who like some computers use MAC. -#+end_example - -* =h04q06= \small{(cont’d)} - -All programmer like some computers.\\ -Some programmers use MAC.\\ -Therefore, some people who like some computers use MAC. - -#+begin_example -Formalization: - programmer(x) means x is a programmer - usesmac(x) means x uses MAC - likes(x, y) means x likes y - -forall x: Person . programmer(x) => - exists y: Computer . likes(x, y), -exists x: Person . programmer(x) & usesmac(x) -|- -exists x: Person . - (exists y: Computer . likes(x, y) & usesmac(x)) -#+end_example - -* =h04q06= \small{(cont’d)} - -These sentences are /consistent/. Here is an interpretation in which -all the formulas are T: - -#+begin_example -Domain: - People = {John} - Computer = {MacPro} - -Mapping: - Syntax | Meaning - ------------------------------------------- - programmer(.) | programmer(John) = T - likes(.,.) | likes(John, MacPro) = T - usesmac(.) | usesmac(John) = T -#+end_example - -* =h04q06= \small{(cont’d)} - -#+begin_example -formula 1: - [forall x: Person . programmer(x) => - exists y: Computer . likes(x, y)] - = [programmer(^John) => - exists y: Computer . likes(^John, y)]] - = programmer(John) IMP likes(John, MacPro) - = T IMP T - = T - -formula 2: - [exists x: Person . programmer(x) & usesmac(x)] - = programmer(John) AND usesmac(John) - = T AND T - = T -#+end_example - -* =h04q06= \small{(cont’d)} - -#+begin_example -formula 3: - [exists x: Person . (exists y: Computer . - likes(x, y) & usesmac(x))] - = [exists y: Computer . - likes(^John, y) & usesmac(^John)] - = likes(John, MacPro) AND usesmac(John) - = T AND T - = T -#+end_example - -* =h05q01a= - -If the following arguments are valid, use natural deduction AND -semantic tableaux to prove them; otherwise, provide a counterexample. - -#+begin_example -forall x . s(x) | t(x), -forall x . s(x) => t(x) & k(c, x), -forall x . t(x) => m(x) -|- -m(c) -where c is a constant -#+end_example - -* =h05q01a= \small{(cont’d)} - -#+begin_example -#check ND -forall x . s(x) | t(x), -forall x . s(x) => t(x) & k(c, x), -forall x . t(x) => m(x) -|- -m(c) -#+end_example - -* =h05q01a= \small{(cont’d)} - -#+begin_example -1) forall x . s(x) | t(x) premise -2) forall x . s(x) => t(x) & k(c, x) premise -3) forall x . t(x) => m(x) premise -4) s(c) | t(c) by forall_e on 1 -5) s(c) => t(c) & k(c, c) by forall_e on 2 -6) t(c) => m(c) by forall_e on 3 -7) case s(c) { - 8) t(c) & k(c, c) by imp_e on 5, 7 - 9) t(c) by and_e on 8 - 10) m(c) by imp_e on 6, 9 -} -11) case t(c) { - 12) m(c) by imp_e on 6, 11 -} -13) m(c) by cases on 4, 7-10, 11-12 -#+end_example - -* =h05q01b= - -Is this formula a tautology? - -#+begin_example -|- (exists x . p(x)) => forall y . p(y) -#+end_example - -* =h05q01b= \small{(cont’d)} - -No, this formula is not a tautology. Interpretation: - -#+begin_example -1) Domain = {a, b} - -2) Mapping: - Syntax | Meaning - ---------------------- - p(.) | P(a) = T - | P(b) = F - -Conclusion: - [(exists x. p(x)) => forall y. p(y)] -= (P(a) OR P(b)) IMP (P(a) AND P(b)) -= (T OR F) IMP (T AND F) -= T IMP F -= F -#+end_example - -* =h05q01d= - -Is this argument valid? - -#+begin_example -forall x . p(x) | q(x), -forall x . !p(x) -|- -forall x . q(x) -#+end_example - -* =h05q01d= \small{(cont’d)} - -#+begin_example -#check ND - -forall x . p(x) | q(x), forall x . !p(x) |- forall x . q(x) - -1) forall x . p(x) | q(x) premise -2) forall x . !p(x) premise -3) for every xg { - 4) p(xg) | q(xg) by forall_e on 1 - 5) case p(xg) { - 6) !p(xg) by forall_e on 2 - 7) q(xg) by not_e on 5, 6 - } - 8) case q(xg) {} - 9) q(xg) by cases on 4, 5-7, 8-8 -} -10) forall x. q(x) by forall_i on 3-9 -#+end_example - -* Announcements - -- no tutorial next week (Oct 16) (reading week) -- no tutorial the week after (Oct 23) (midterm marking) diff --git a/static/style.css b/static/style.css deleted file mode 100644 index d54ddfe..0000000 --- a/static/style.css +++ /dev/null @@ -1,257 +0,0 @@ -body { - background: #d9d8d1; - font: 18px/1.6 sans-serif; - margin: 0; -} - -body > header, body > nav, main, body > footer { - padding: 0 2em; -} - -body > header { - padding-top: 1em; -} -body > header h1 { - margin: 0; - font-size: 1em; -} -header a { - color: inherit; -} -nav { - margin-bottom: 1em; -} -nav ul { - margin: 0; - padding: 0; -} -nav li { - display: inline; - text-transform: lowercase; -} -nav li + li { - margin-left: 0.5em; -} -nav a { - color: #333; -} -main { - background: #ebeae4; - padding-top: 1em; - padding-bottom: 1em; -} -article header >:not(h1) { - font-size: 0.875em; -} -header > h1 + p { - margin-top: -1em; -} -footer { - font-size: 0.84em; - margin-left: 0.4em; -} - -main > * { - max-width: 43rem; -} - -h1 { - font-size: 1.5em; -} -h2 { - font-size: 1.25em; -} -h3 { - font-size: 1.125em; -} - -a { - color: #036; -} -/* -a:hover, a:focus { - color: #005a6a; -} -*/ -a:active { - outline-offset: 2px; -} -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 { - font-weight: normal; - color: #777; -} - -.notice { - background-color: #efefef; - text-align: center; - position: relative; -} -.notice::before { - content: "↪"; - position: absolute; - left: 0.5em; - bottom: 0.05em; -} -.notice::after { - content: "↩"; - position: absolute; - right: 0.5em; - bottom: 0.05em; -} - -.center { - text-align: center; -} -.justify { - text-align: justify; -} - -details { - margin: 1em 0; - padding: 0.5em; -} -details summary { - cursor: pointer; -} - -sup, sub { - position: relative; - top: -0.4em; - vertical-align: baseline; -} -sub { - top: 0.4em; -} - -/* TeX logos */ -.t-logo { - font-family: "Tex Gyre Termes", serif; - /* letter-spacing: 1px; */ - white-space: nowrap; -} -.t-logo sup { - font-size: 0.85em; - letter-spacing: 1px; - margin-left: -0.36em; - margin-right: -0.15em; - text-transform: uppercase; - vertical-align: 0.15em; - top: 0; -} -.t-logo sub { - font-size: 1em; - margin-left: -0.1667em; - margin-right: -0.125em; - text-transform: uppercase; - vertical-align: -0.5ex; - top: 0; -} - -blockquote#abstract { - font-size: 0.95em; - text-align: justify; -} - -pre { - display: inline-block; - margin: 0.5em 0; - min-width: 100%; - padding: 1em; -} -pre > code { - padding: 0; - background: initial; -} -code { - text-transform: none; - padding: .2em .3em; -} -pre, code { - font-size: smaller; -} - -/* box effect */ -.box, details, pre, code { - background-color: #f4f4f4; - border: 1px solid #e6e6e6; - border-radius: 4px; - box-sizing: border-box; -} -details pre { - border: none; -} -p.box { - font-size: 0.95em; - padding: 0.6em 0.9em; -} - -table td { - padding: 0.125em 0.3em; -} -#publications td { - padding-top: 0.4em; - padding-bottom: 0.4em; -} -table td:first-child { - padding-left: 0; -} -table td:last-child { - padding-right: 0 -} -.post-list { - width: 100%; -} -.post-list tr:hover { - background: #efefe8; -} -.post-list td { - padding: 0.25em 0; -} -.post-list td:nth-child(2) { - text-align: right; -} - -small, dd, .small, .bibtexnumber, .bibtexitem, .bibtex2html { - font-size: 0.875em; -} -.muted { - color: #666; -} -.inbox, .bibtex2html { - margin-top: 2em; -} - -li, dd { - margin-bottom: 0.25em; -} - -.feed-icon { - background-image: url(feed-12x12.png); - background-position: center right; - background-repeat: no-repeat; - padding-right: 15px; -} -.smly { - display: inline-block; - transform: rotate(90deg); - margin-left: 0.2em; -} -.warn { - color: #a10029; -} - -#bandali-bib > a { - display: block -} -- 2.20.1 From fff36cd0d7f8a8ed0e20f9b2d2d486f60dc734ed Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sun, 25 Jul 2021 21:04:14 -0400 Subject: [PATCH 13/16] use the beautiful Sahel font for persian text specifically, the WOL (without latin) variant that doesn't have glyphs for latin characters (i prefer GNU FreeFont's FreeSans instead) https://rastikerdar.github.io/sahel-font/ --- fa/404.html | 17 +++++++++++++---- fa/computing.html | 12 +++++++++++- fa/contact.html | 15 ++++++++++++--- fa/fsf-internship-beyond.html | 12 +++++++++++- fa/fsf-internship-intro.html | 12 +++++++++++- fa/index.html | 12 +++++++++++- fa/projects.html | 15 ++++++++++++--- fa/sahel.woff2 | Bin 0 -> 21040 bytes fa/sahelb.woff2 | Bin 0 -> 21692 bytes 9 files changed, 81 insertions(+), 14 deletions(-) create mode 100644 fa/sahel.woff2 create mode 100644 fa/sahelb.woff2 diff --git a/fa/404.html b/fa/404.html index d578fde..5d08686 100644 --- a/fa/404.html +++ b/fa/404.html @@ -1,19 +1,28 @@ - + صفحه پیدا نشد — بندعلی - +

    خطای ۴۰۴

    متأسفم، صفحهٔ مورد نظر پیدا نشد. آیا آدرس صفحه درست است؟

    diff --git a/fa/computing.html b/fa/computing.html index 147f59d..40fae32 100644 --- a/fa/computing.html +++ b/fa/computing.html @@ -9,8 +9,18 @@