revamp the site and go fully static
authorAmin Bandali <bandali@gnu.org>
Sun, 25 Jul 2021 18:08:52 +0000 (14:08 -0400)
committerAmin Bandali <bandali@gnu.org>
Sun, 25 Jul 2021 18:08:52 +0000 (14:08 -0400)
78 files changed:
.gitignore [deleted file]
404.html [new file with mode: 0644]
404.m4 [deleted file]
404.txt [new file with mode: 0644]
COPYING [deleted file]
GNUmakefile [deleted file]
LICENSE [deleted symlink]
bandali-bib.m4 [deleted file]
bandali-computing.txt [new file with mode: 0644]
bandali-contact.txt [new file with mode: 0644]
bandali-cv.txt [new file with mode: 0644]
bandali-mmath.txt [new file with mode: 0644]
bandali-projects.txt [new file with mode: 0644]
bandali-pubkey.txt [new file with mode: 0644]
bandali.bib [new file with mode: 0644]
bandali.txt [new file with mode: 0644]
computing.html [new file with mode: 0644]
computing.m4 [deleted file]
contact.html [new file with mode: 0644]
contact.m4 [deleted file]
cv.html [new file with mode: 0644]
cv.m4 [deleted file]
fa/404.fa.txt [new file with mode: 0644]
fa/404.html [new file with mode: 0644]
fa/bandali-computing.fa.txt [new file with mode: 0644]
fa/bandali-contact.fa.txt [new file with mode: 0644]
fa/bandali-projects.fa.txt [new file with mode: 0644]
fa/bandali.fa.txt [new file with mode: 0644]
fa/computing.html [new file with mode: 0644]
fa/contact.html [new file with mode: 0644]
fa/fsf-internship-beyond.fa.txt [new file with mode: 0644]
fa/fsf-internship-beyond.html [new file with mode: 0644]
fa/fsf-internship-intro.fa.txt [new file with mode: 0644]
fa/fsf-internship-intro.html [new file with mode: 0644]
fa/index.html [new file with mode: 0644]
fa/projects.html [new file with mode: 0644]
footer.html [deleted file]
fsf-internship-beyond.html [new file with mode: 0644]
fsf-internship-beyond.m4 [deleted file]
fsf-internship-beyond.txt [new file with mode: 0644]
fsf-internship-intro.html [new file with mode: 0644]
fsf-internship-intro.m4 [deleted file]
fsf-internship-intro.txt [new file with mode: 0644]
get-notes.sh [deleted file]
header.html [deleted file]
index.html [new file with mode: 0644]
index.m4 [deleted file]
libreplanet-2021.html [new file with mode: 0644]
libreplanet-2021.txt [new file with mode: 0644]
license.m4 [deleted file]
lp2021.m4 [deleted file]
meta_defs.m4 [deleted file]
meta_feed_atom.m4 [deleted file]
meta_feed_rss.m4 [deleted file]
mmath.html [new file with mode: 0644]
mmath.m4 [deleted file]
projects.html [new file with mode: 0644]
publications.m4 [deleted file]
se212-f19.html [new file with mode: 0644]
se212-f19.m4 [deleted file]
serve.sh [new file with mode: 0755]
static/.htaccess [deleted file]
static/GNUmakefile [deleted file]
static/bandali-bib-citefile.txt [deleted file]
static/bandali-bib-partial.html [deleted file]
static/bandali-bib-sed.txt [deleted file]
static/bandali-pubkey.txt [deleted file]
static/bandali.bib [deleted file]
static/feed-12x12.png [deleted file]
static/feed.svg [deleted file]
static/gnu.ico [deleted file]
static/gpl-3.0.html [deleted file]
static/publications-partial.html [deleted file]
static/publications-sed.txt [deleted file]
static/se212-h02q04d-soln.grg [deleted file]
static/se212-t01.org [deleted file]
static/se212-t05.org [deleted file]
static/style.css [deleted file]

diff --git a/.gitignore b/.gitignore
deleted file mode 100644 (file)
index 89f9ac0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-out/
diff --git a/404.html b/404.html
new file mode 100644 (file)
index 0000000..b855b9f
--- /dev/null
+++ b/404.html
@@ -0,0 +1,31 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="bandali" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>404 not found &mdash; bandali</title>
+<style>
+body {
+  line-height: 1.6;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+}
+</style>
+</head>
+<body>
+<h1>404</h1>
+<p>Sorry, that page does not exist.  Are you at the right address?</p>
+
+<p>Feel free to go back <a href="https://bndl.org">home</a>
+or <a href="https://bndl.org/contact.html">contact</a> bandali
+about this.</p>
+</body>
+</html>
diff --git a/404.m4 b/404.m4
deleted file mode 100644 (file)
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
-
-<h1>__slug</h1>
-<p>Sorry, that page does not exist.</p>
-
-include(footer.html)dnl
diff --git a/404.txt b/404.txt
new file mode 100644 (file)
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 (file)
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. <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/GNUmakefile b/GNUmakefile
deleted file mode 100644 (file)
index 321b19d..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-# GNUmakefile --- GNU Makefile for building my personal site
-
-# Copyright (C) 2020-2021 Amin Bandali <bandali@gnu.org>
-
-# 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/>.
-
-
-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 (symlink)
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 (file)
index 00c5e83..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-dnl -*- html -*-
-define(__title, `bandali.bib')dnl
-define(__slug, `bandali-bib')dnl
-include(header.html)dnl
-
-<article id="bandali-bib">
-include(static/bandali-bib-partial.html)
-</article>
-
-include(footer.html)dnl
diff --git a/bandali-computing.txt b/bandali-computing.txt
new file mode 100644 (file)
index 0000000..c403b44
--- /dev/null
@@ -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 (file)
index 0000000..2511355
--- /dev/null
@@ -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 (file)
index 0000000..544c70a
--- /dev/null
@@ -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 (file)
index 0000000..9d41ee2
--- /dev/null
@@ -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
+    <https://www.gnu.org/licenses/>.
+
+  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 (file)
index 0000000..5e91c4e
--- /dev/null
@@ -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/bandali-pubkey.txt b/bandali-pubkey.txt
new file mode 100644 (file)
index 0000000..551889f
--- /dev/null
@@ -0,0 +1,391 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+vhM+q4339VYMt/RYM0PIraejWttGAtb6bQ==
+=7ozV
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/bandali.bib b/bandali.bib
new file mode 100644 (file)
index 0000000..b52761e
--- /dev/null
@@ -0,0 +1,104 @@
+% bandali.bib --- bandali's bibliography -*-bibtex-*-
+
+% Copyright (C) 2020-2021 Amin Bandali <bandali at gnu.org>
+% DBLP items under CC0 (<https://dblp.org/db/about/copyright.html>)
+
+%% ===================================================================
+%% string definitions
+%% ===================================================================
+
+@string{uwaterloo = "University of Waterloo"}
+@string{drc-scs = "David R. Cheriton School of Computer Science"}
+@string{uwaterloo-cs = uwaterloo # ", " # drc-scs}
+
+%% ===================================================================
+%% 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},
+  title     = {{A Comprehensive Study of Declarative Modelling Languages}},
+  school    = uwaterloo-cs,
+  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/bandali.txt b/bandali.txt
new file mode 100644 (file)
index 0000000..8b59525
--- /dev/null
@@ -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 (file)
index 0000000..08c75f1
--- /dev/null
@@ -0,0 +1,90 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="bandali" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>How I do my Computing &mdash; bandali</title>
+<link rel="canonical" href="https://bndl.org/computing.html" />
+<link rel="alternate" href="computing.txt" title="plain text" type="text/plain" />
+<link rel="next" href="fsf-internship-intro.html">
+<style>
+body {
+  line-height: 1.6;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+details { margin: 1em 0; }
+details summary { cursor: pointer; }
+#copy { font-size: 0.84em; }
+#copy p { padding: 0 2em; }
+h1 + p { color: #666; }
+.box {
+  background: #f8f8f8;
+  border: 1px solid #e6e6e6;
+  border-radius: 4px;
+  font-size: 0.95em;
+  padding: 0.6em 0.9em;
+}
+code.box { padding: 0.4em 0.8em; }
+code, kbd, pre { font-size: 1.2em; }
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+  .box { background: #1b1d1e; border-color: #373c34; }
+}
+</style>
+</head>
+<body>
+<h1>How I do my Computing</h1>
+<p>by <a href="https://bndl.org"><b>bandali</b></a>
+on September 14, 2019 <small>(last update: February 28, 2021)
+(also in <a href="bandali-computing.txt">plain text</a>)</small></p>
+
+<p class="box">inspired by the computing page of
+<a href="https://stallman.org/stallman-computing.html">rms</a></p>
+
+<h2>Computers</h2>
+<p>My <a href="https://libreboot.org">librebooted</a> ThinkPad X200
+computer is the machine I use the most and where I do most of my
+computing.  I also have the privilege of having access to a fleet of
+servers through our school's
+<a href="https://csclub.uwaterloo.ca">Computer Science Club</a> that I
+use for some more computationally intensive tasks every now and again,
+and also for hosting this very website.</p>
+
+<h2>GNU/Linux distribution</h2>
+<p>I used a wide variety of distros over the years; but I have since
+found <a href="https://trisquel.info">Trisquel</a> to be my favourite
+and it's put my "distro-hopping" days behind me.  Sometimes I pair it
+up with <a href="https://guix.gnu.org">GNU Guix</a>.  For the kernel,
+I usually use
+<a href="https://www.fsfla.org/ikiwiki/selibre/linux-libre/">GNU
+Linux-libre</a> from jxself's
+<a href="https://jxself.org/linux-libre/">APT repository</a>.</p>
+
+<h2>Actual computing</h2>
+<p>I spend most of my time in
+<a href="https://www.gnu.org/software/emacs/">GNU Emacs</a>.</p>
+<p>TODO: elaborate</p>
+
+<h2 id="colophon">Maintaining this site</h2>
+<p>The pages of this site are (manually) written in plain HTML using
+GNU Emacs.  You can run <code class="box">git clone
+https://bndl.org</code> in a terminal to get the git repository
+containing all the pages of the site and the history of changes to
+them.</p>
+
+<hr />
+<details id="copy">
+<summary>Copyright &copy; 2019, 2020, 2021 bandali</summary>
+<p>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.</p>
+</details>
+</body>
+</html>
diff --git a/computing.m4 b/computing.m4
deleted file mode 100644 (file)
index 8428af6..0000000
+++ /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
-
-<p class="box">inspired by the computing page of
-<a href="https://stallman.org/stallman-computing.html">rms</a></p>
-
-<h2>Computers</h2>
-<p>My <a href="https://libreboot.org">librebooted</a> ThinkPad X200
-computer is the machine I use the most and where I do most of my
-computing.  I also have the privilege of having access to a fleet of
-servers through our school's
-<a href="https://csclub.uwaterloo.ca">Computer Science Club</a> that I
-use for some more computationally intensive tasks every now and again,
-and also for hosting this very website.</p>
-
-<h2>GNU/Linux distribution</h2>
-<p>I used a wide variety of distros over the years; but I have since
-found <a href="https://trisquel.info">Trisquel</a> to be my favourite
-and it's put my "distro-hopping" days behind me.  Sometimes I pair it
-up with <a href="https://guix.gnu.org">GNU Guix</a>.  For the kernel,
-I usually use
-<a href="https://www.fsfla.org/ikiwiki/selibre/linux-libre/">GNU
-Linux-libre</a> from jxself's
-<a href="https://jxself.org/linux-libre/">APT repository</a>.</p>
-
-<h2>Actual computing</h2>
-<p>I spend most of my time in
-<a href="https://www.gnu.org/software/emacs/">GNU Emacs</a>.</p>
-<p>TODO: elaborate</p>
-
-<h2 id="colophon">Maintaining this site __anc(`colophon')</h2>
-<p>I took a great amount of inspiration
-from <a href="https://technomancy.us/colophon">technomancy</a>'s
-setup.  The pages of this site are written in plain HTML using GNU
-Emacs, with GNU M4 acting as a full-featured template engine.
-A <a href="__p/GNUmakefile"><code>GNUmakefile</code></a> provides
-convenient <code>make</code> rules to build and publish the site.  The
-bibliography of my <a href="__p/publications.html">publications</a> is
-generated from <a href="__p/bandali.bib"><code>bandali.bib</code></a>
-using <a href="https://www.lri.fr/~filliatr/bibtex2html/">bibtex2html</a>,
-and further processed and put together using GNU sed and
-another <code>GNUmakefile</code>.  The git repository containing all
-the sources used to build this site are available
-<a href="https://git.shemshak.org/~bandali/site">here</a>.</p>
-
-define(__copy, `2019, 2020')dnl
-include(footer.html)dnl
diff --git a/contact.html b/contact.html
new file mode 100644 (file)
index 0000000..8eca864
--- /dev/null
@@ -0,0 +1,43 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="bandali" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>contact information &mdash; bandali</title>
+<link rel="canonical" href="https://bndl.org/contact.html" />
+<link rel="alternate" href="bandali-contact.txt" title="plain text" type="text/plain" />
+<style>
+body {
+  line-height: 1.6;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+code { white-space: pre; }
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+}
+</style>
+</head>
+<body>
+<h1><a href=".">bandali</a>'s contact information</h1>
+
+<p>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 <a href="bandali-pubkey.txt">public key</a> with the fingerprint
+<code>BE62 7373 8E61 6D6D 1B3A  08E8 A21A 0202 4881 6103</code>.
+To learn how to send encrypted email, see
+the <a href="https://emailselfdefense.fsf.org/en/">email
+self-defense</a> guide by the Free Software Foundation.</p>
+
+<p>Besides email, I can also usually be reached via IRC, particularly
+the <a href="https://libera.chat">libera</a>
+and <a href="https://www.oftc.net">oftc</a> networks, where I idle
+as <code>bandali</code>.  For other means of communication, please
+send me an email and we can figure something out if needed.</p>
+</body>
+</html>
diff --git a/contact.m4 b/contact.m4
deleted file mode 100644 (file)
index 6f7986a..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-dnl -*- html -*-
-define(__title, `contact information')dnl
-define(__slug, `contact')dnl
-include(header.html)dnl
-
-<article>
-<h1>__title</h1>
-<p>Email is by far my preferred method of communication, and you can
-write to me at bandali at gnu dot org.  For GPG-encrypted mail, you
-can use my <a href="bandali-pubkey.txt">public key</a> with the
-fingerprint
-<code>BE62 7373 8E61 6D6D 1B3A  08E8 A21A 0202 4881 6103</code>.</p>
-
-<p>Besides email, I can also usually be reached via IRC, particularly
-the <a href="https://freenode.net">freenode</a> and
-<a href="https://www.oftc.net">oftc</a> networks, where I idle
-as <code>bandali</code>.  For other means of communication, please
-send me an email and we can figure something out if needed.</p>
-
-include(footer.html)dnl
diff --git a/cv.html b/cv.html
new file mode 100644 (file)
index 0000000..2973a4b
--- /dev/null
+++ b/cv.html
@@ -0,0 +1,404 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="bandali" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>curriculum vitae &mdash; bandali</title>
+<link rel="canonical" href="https://bndl.org/cv.html" />
+<link rel="alternate" href="bandali-cv.txt" title="plain text" type="text/plain" />
+<link rel="alternate" href="https://p.bndl.org/bandali-cv.pdf" title="pdf" type="application/pdf" />
+<style>
+body {
+  line-height: 1.6;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+.tex {
+  font-family: "Tex Gyre Termes", serif;
+  text-transform: uppercase;
+}
+.tex span {
+  font-size: 0.75em;
+  margin-left: -0.05em;
+  margin-right: -0.20em;
+}
+.tex sub {
+  font-size: 1em;
+  margin-left: -0.1667em;
+  margin-right: -0.125em;
+  vertical-align: -0.5ex;
+}
+.tex sup {
+  font-size: 0.85em;
+  margin-left: -0.36em;
+  margin-right: -0.15em;
+  vertical-align: 0.15em;
+}
+.box {
+  background: #f8f8f8;
+  border: 1px solid #e6e6e6;
+  border-radius: 4px;
+  font-size: 0.95em;
+  padding: 0.6em 0.9em;
+}
+#link-grid {
+  display: grid;
+  grid: none / auto 1fr;
+  gap: 0.2em 1em;
+}
+#link-grid dd { margin-left: 0; }
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+  .box { background: #1b1d1e; border-color: #373c34; }
+}
+</style>
+</head>
+<body>
+<h1><a href=".">bandali</a>'s curriculum vitae</h1>
+
+<p class="box">also available in plain text as
+as <a href="bandali-cv.txt">bandali-cv.txt</a></p>
+
+<dl id="link-grid">
+<dt>Site</dt>
+<dd><a href="https://bndl.org">bndl.org</a></dd>
+<dt>Email</dt>
+<dd>bandali@gnu.org</dd>
+<dt>Phone</dt>
+<dd>available upon request via email</dd>
+</dl>
+
+<h2>Summary of Qualifications</h2>
+
+<ul>
+<li>Experience in building software for diverse areas and platforms in
+various programming languages such as C, Python, and Haskell.</li>
+<li>Passionate about applying scientific and engineering methods while
+designing and building software systems.</li>
+<li>Using formal specification techniques to find specification-level
+bugs early in the design stage rather than implementation.</li>
+<li>GNU/Linux system administration on both the client and the server
+side.</li>
+<li>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.</li>
+<li>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.</li>
+</ul>
+
+<h2>Education</h2>
+
+<dl>
+<dt>Master of Mathematics in Computer Science, University of Waterloo,
+2020</dt>
+<dd>Research focus: formal logic, model checking, verification</dd>
+<dd>Thesis: <a href="#mmath">A Comprehensive Study of Declarative
+Modelling Languages</a></dd>
+<dd>Supervisor: <a href="https://cs.uwaterloo.ca/~nday/">Prof. Nancy
+A. Day</a></dd>
+<dd>GPA: 3.7/4.0</dd>
+
+<dt>Bachelor of Science with Honours in Computer Science, York
+University, 2017</dt>
+<dd>Favourite courses: System Specification &amp; Refinement, Software
+Requirements Engineering, Software Design, Operating Systems,
+Computational Complexity, Design &amp; Analysis of Algorithms</dd>
+<dd>GPA: 7.84/9.0</dd>
+</dl>
+
+<h2 id="research">Research Interests</h2>
+
+formal logic, model checking, theorem proving, verification
+
+<h2 id="publications">Publications &amp; Presentations</h2>
+
+<p>The complete bibliography of my publications is available as
+a <a href="bandali.bib">bandali.bib</a>
+<span class="tex">B<span>ib</span>T<sub>e</sub>X</span> bibliography
+file.</p>
+
+<h3>Papers</h3>
+
+<dl>
+<dt>A Comparison of the Declarative Modelling Languages B, DASH, and
+TLA<sup>+</sup>
+<small>
+[ <a href="https://p.bndl.org/modre2018-declarative.pdf">pdf</a>
+| <a href="https://cs.uwaterloo.ca/~nday/artifacts/2018-modre/">models</a>
+]
+</small>
+</dt>
+<dd>
+Ali Abbassi, <a href="https://bndl.org">Amin Bandali</a>,
+<a href="https://cs.uwaterloo.ca/~nday/">Nancy A. Day</a>, Jose Serna<br />
+<em>8th IEEE International Model-Driven Requirements Engineering Workshop, MoDRE@RE 2018</em><br />
+Copyright &copy; 2018 IEEE.  All Rights Reserved.  Sadly.
+</dd>
+</dl>
+
+<h3>Theses</h3>
+
+<dl>
+<dt id="mmath">A Comprehensive Study of Declarative Modelling
+Languages
+<small>
+[ <a href="https://p.bndl.org/bandali-mmath-thesis.pdf">pdf</a>
+| <a href="https://hdl.handle.net/10012/16059">hdl</a>
+| <a href="https://bndl.org/mmath.html">http</a>
+]
+</small>
+</dt>
+<dd>
+<a href="https://bndl.org">Amin Bandali</a><br />
+<em><abbr title="Master of Mathematics">MMath</abbr> Thesis,
+University of Waterloo, David R. Cheriton School of Computer Science,
+July 2020.</em>
+</dd>
+</dl>
+
+<h3>Talks</h3>
+
+<dl>
+<dt>Jami and how it empowers users
+<small>
+[ <a href="https://p.bndl.org/bandali-jami-libreplanet-2021.pdf">pdf</a>
+(<a href="https://p.bndl.org/bandali-jami-libreplanet-2021-with-notes.pdf">with
+notes</a>)
+| <a href="https://bndl.org/libreplanet-2021.html">http</a>
+]
+</small>
+</dt>
+<dd>
+<a href="https://bndl.org">Amin Bandali</a><br />
+<em>Presented at the LibrePlanet 2021 Conference, March 20, 2021.</em>
+</dd>
+
+<dt>The Magic of Specifications and Type Systems
+<small>
+[ <a href="https://p.bndl.org/cucsc-2017-slides.pdf">slides</a>
+| <a href="https://p.bndl.org/eecs4080-poster.pdf">poster</a>
+]
+</small>
+</dt>
+<dd>
+<a href="https://bndl.org">Amin Bandali</a>,
+<a href="https://github.com/cipher1024">Simon Hudon</a>,
+<a href="https://www.eecs.yorku.ca/~jonathan/">Jonathan S. Ostroff</a><br />
+<em>Slides presented at the Canadian Undergraduate Computer Science
+Conference 2017, University of Toronto, Canada, June 15&ndash;17, 2017.<br />
+Poster presented at the Lassonde Undergraduate Summer Student Research
+Conference, York University, Toronto, Canada, August 15, 2017.</em>
+</dd>
+
+<dt>Introducing YULUG</dt>
+<dd>
+<a href="https://bndl.org">Amin Bandali</a><br />
+<em>Slides introducing YULUG &mdash; (GNU/)Linux User Group at York
+University &mdash; presented at a Computing Students Hub (CSHub) tech
+talk at York University, Toronto, Canada, February 12, 2015.</em>
+</dd>
+</dl>
+
+<h2>Work &amp; Research Experience</h2>
+
+<dl>
+<dt>Savoir-faire Linux</dt>
+<dd>fall 2020&ndash;present | Free Software Consultant | Consultant en
+logiciel libre</dd>
+<dd>
+<dl>
+<dd>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.</dd>
+</dl>
+</dd>
+
+<dt>Free Software Foundation (FSF)</dt>
+<dd>spring 2020 | Intern</dd>
+<dd>
+<dl>
+<dd>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 <a href="https://www.gnu.org">www.gnu.org</a>.</dd>
+</dl>
+</dd>
+
+<dt>Cheriton School of Science, University of Waterloo</dt>
+<dd>winter 2018&ndash;spring 2020 | TA, IA, RA <sup>[*]</sup></dd>
+<dd>
+<dl>
+<dd>SE 465 (Software Testing and Quality Assurance): TA in winter
+2020</dd>
+<dd>SE 212 (Logic and Computation): <a href="se212-f19.html">IA in
+Fall 2019</a>, TA in fall 2018</dd>
+<dd>SE 463 (Software Requirement Specification and Analysis): TA in
+spring 2019 and 2018</dd>
+<dd>CS 136 (Elementary Algorithm Design and Data Abstraction): TA in
+winter 2018</dd>
+</dl>
+</dd>
+<dd><small>[*]: Teaching Assistant (marking exams and assignments),
+Instructional Apprentice (holding tutorials and marking), Research
+Assistant (doing research for/with supervisor)</small></dd>
+
+<dt>Department of Electrical Engineering &amp; Computer Science, York
+University</dt>
+<dd>fall 2017 | Teaching Assistant</dd>
+<dd>
+<dl>
+<dd>EECS 1012 (Net-Centric Introduction to Computing): TA in fall
+2017, running labs and marking labs and exams</dd>
+</dl>
+</dd>
+
+<dt>Software Engineering Lab, York University</dt>
+<dd>
+<dl>
+<dt>summer 2017 | Research Assistant</dt>
+<dd>Worked on an implementation
+of <a href="https://bertrandmeyer.com/2014/12/07/lampsort/">Lampsort</a>
+in Eiffel.  Extended
+the <a href="https://svn.eecs.yorku.ca/repos/sel-open/mathmodels/">mathmodels</a>
+library, implementing a <code>rational</code> class for working with
+arbitrarily large rational numbers.</dd>
+</dl>
+</dd>
+<dd>
+<dl>
+<dt>summer 2016 | Research Student</dt>
+<dd>Worked on <em>Literate Unit-B</em>, 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
+<em>Unit-B Web</em>, a web interface using Literate Unit-B to do
+predicate calculus proofs.  Unit-B Web, also written in Haskell,
+supports the <span class="tex">L<sup>a</sup>T<sub>e</sub>X</span>
+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.</dd>
+<dd>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.</dd>
+</dl>
+</dd>
+
+<dt>Lotek Wireless Inc.</dt>
+<dd>
+<dl>
+<dt>summer 2016 | Software Developer</dt>
+<dd>Designed and developed an Employee Portal web application in C#
+and the MVC framework, used by employees for accessing various data
+catalogs and archives.</dd>
+</dl>
+</dd>
+<dd>
+<dl>
+<dt>summer 2015 | Software Developer</dt>
+<dd>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.</dd>
+</dl>
+</dd>
+
+<dt>Athlete Builder</dt>
+<dd>
+<dl>
+<dt>2013&ndash;2014 | Software Developer</dt>
+<dd>Developed the Backend of Athlete Builder platform in C# and
+MVC.</dd>
+<dd>Key role in development of the platform core.</dd>
+<dd>Developed the alpha version of Athlete Builder Android application
+in Java.</dd>
+</dl>
+</dd>
+</dl>
+
+<h2>Skills</h2>
+<dl>
+<dt>Programming languages</dt>
+<dd>C, C++, Haskell, Emacs Lisp, Guile Scheme, Python, Eiffel, Bash,
+C#, Java, JavaScript</dd>
+<dt>Tools</dt>
+<dd>GNU Emacs, Git, Alloy, TLA<sup>+</sup>,
+ProB, <span class="tex">L<sup>a</sup>T<sub>e</sub>X</span>, continuous
+integration systems</dd>
+<dt>Platforms</dt>
+<dd>GNU/Linux distributions, including Trisquel, GNU Guix, Debian</dd>
+<dt>Languages</dt>
+<dd>Persian (mother tongue), English (fluent), French (beginner)</dd>
+</dl>
+
+<h2>Community Service</h2>
+<dl>
+<dt>EmacsConf conference</dt>
+<dd>
+<dl>
+<dt>2019&ndash;present</dt>
+<dd>Chief organizer and maintainer of conference infrastructure,
+including the streaming servers.</dd>
+<dt>2015</dt>
+<dd>One of the organizers and in charge of setting up and maintaining
+vital pieces of infrastructure.</dd>
+</dl>
+</dd>
+<dt>Computer Science Club (CSC) of the University of Waterloo</dt>
+<dd>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.</dd>
+<dd>Notable projects
+include <a href="https://mailman.csclub.uwaterloo.ca/pipermail/csc-general/2020-July/000837.html">launching
+the CSC web IRC client</a> as part of an effort in bringing modern
+user freedom- and privacy-respecting communication tools to club
+members.</dd>
+<dt>Free/libre software contributions</dt>
+<dd>Co-maintainer
+of <a href="https://www.gnu.org/software/gnuzilla/gnuzilla.html">GNUzilla
+and IceCat</a>, the GNU version of the Mozilla suite and the Firefox
+browser respectively.</dd>
+<dd>Maintainer
+of <a href="https://www.gnu.org/software/emacs/erc.html">ERC</a>, the
+powerful, modular, and extensible IRC client distributed with GNU
+Emacs.</dd>
+<dd>Committer and regular contributor
+to <a href="https://www.gnu.org/software/emacs/emacs.html">GNU
+Emacs</a> and <a href="https://guix.gnu.org">GNU Guix</a>.</dd>
+<dd><a href="https://www.gnu.org/people/webmeisters.html#bandali">GNU
+webmaster</a>
+and <a href="https://savannah.gnu.org/maintenance/SavannahHacker/">GNU
+Savannah hacker</a>.</dd>
+<dt>Volunteer work</dt>
+<dd>
+<dl>
+<dt>spring 2013 | Application Developer for VONICAL Inc.</dt>
+<dd>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.</dd>
+<dt>winter 2013 | Mobile &amp; Web Developer for Hire Works Inc.</dt>
+<dd>Worked on a variety of web and mobile development projects for
+Hire Works.</dd>
+<dt>summer 2012 | Web Developer for St. Brigid's Summer Camp</dt>
+<dd>Redesigned and revamped the codebase for the photo gallery section
+of the camp's website in PHP and JavaScript.</dd>
+</dl>
+</dd>
+</dl>
+</body>
+</html>
diff --git a/cv.m4 b/cv.m4
deleted file mode 100644 (file)
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
-
-<h1>Curriculum vitae (<a href="//p.bndl.org/bandali-cv.pdf">PDF</a>)</h1>
-
-<table>
-<tbody>
-<tr>
-<td>Site</td>
-<td><a href="//shemshak.org/~bandali">shemshak.org/~bandali</a></td>
-</tr>
-<tr>
-<td>Email</td>
-<td>bandali at gnu dot org</td>
-</tr>
-<tr>
-<td>Phone</td>
-<td>available upon request via email</td>
-</tr>
-</tbody>
-</table>
-
-<h2>Education</h2>
-
-<h3>Master of Mathematics (Computer Science) | 2018–present</h3>
-<p>University of Waterloo, Canada</p>
-<p>Supervised by Dr. Nancy Day | GPA: 3.7/4.0 | Expected completion: April 2020</p>
-<p>Research focusing on formal logic, model checking, and verification.</p>
-
-<h3>B.Sc. Honours Computer Science | 2013–2017</h3>
-<p>York University, Toronto, Canada</p>
-<p>GPA: 7.84/9.0</p><p>Relevant courses: System Specification &amp;
-Refinement, Software Requirements Eng., Software Design, Operating
-Systems, Computational Complexity, Design &amp; Analysis of Algorithms.</p>
-<p>Finished first year (2013-14) at <em>Carleton University</em> with
-a GPA of 11.0/12.0, then transferred to <em>York University</em> in
-Fall 2014.</p>
-
-<h2>Publications</h2>
-
-<p>Listed on my <a href="/#papers">homepage</a></p>
-
-<h2>Work &amp; Research Experience</h2>
-
-<h3>Cheriton School of Computer Science, University of Waterloo | 2018–present</h3>
-<p>Instructional Apprentice, Teaching Assistant, Research Assistant</p>
-
-<ul>
-<li><abbr title="Logic and Computation">SE 212</abbr>:
-<a href="se212-f19"><abbr title="Instructional Apprentice">IA</abbr> in Fall 2019</a>,
-<abbr title="Teaching Assistant">TA</abbr> in Fall 2018</li>
-<li><abbr title="Software Requirements Specification and Analysis">SE 463</abbr>:
-TA in Summer 2019 and 2018</li>
-<li><abbr title="Elementary Algorithm Design and Data Abstraction">CS 136</abbr>:
-TA in Winter 2018</li>
-</ul>
-
-<h3><abbr title="Electrical Engineering &amp; Computer Science">EECS</abbr>
-Department, York University | Fall 2017</h3>
-<p>Teaching Assistant</p>
-<p><abbr title="Net-Centric Introduction to Computing">EECS 1012</abbr>:
-TA in Fall 2017</p>
-
-include(footer.html)dnl
diff --git a/fa/404.fa.txt b/fa/404.fa.txt
new file mode 100644 (file)
index 0000000..c316609
--- /dev/null
@@ -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 (file)
index 0000000..d578fde
--- /dev/null
@@ -0,0 +1,33 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="bandali" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>صفحه پیدا نشد &mdash; بندعلی</title>
+<style>
+body {
+  font-family: Sahel WOL, sans-serif;
+  line-height: 1.8;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+.rtl { direction: rtl; }
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+}
+</style>
+</head>
+<body class="rtl">
+<h1>خطای ۴۰۴</h1>
+<p>متأسفم، صفحهٔ مورد نظر پیدا نشد.  آیا آدرس صفحه درست است؟</p>
+
+<p>اگر تمایل دارید به <a href="https://bndl.org/fa/">صفحهٔ اصلی</a>
+بروید یا در این باره با
+بندعلی <a href="https://bndl.org/fa/contact.html">تماس بگیرید</a>.</p>
+</body>
+</html>
diff --git a/fa/bandali-computing.fa.txt b/fa/bandali-computing.fa.txt
new file mode 100644 (file)
index 0000000..d619c41
--- /dev/null
@@ -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 (file)
index 0000000..8df27e3
--- /dev/null
@@ -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 (file)
index 0000000..57cd0f8
--- /dev/null
@@ -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 (file)
index 0000000..2e39966
--- /dev/null
@@ -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 (file)
index 0000000..147f59d
--- /dev/null
@@ -0,0 +1,98 @@
+<!doctype html>
+<html lang="fa" dir="rtl">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="بندعلی" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>چگونه از رایانه استفاده می‌کنم &mdash; بندعلی</title>
+<link rel="canonical" href="https://bndl.org/fa/computing.html" />
+<link rel="alternate" href="computing.fa.txt" title="plain text" type="text/plain" />
+<link rel="next" href="fsf-internship-intro.html">
+<style>
+body {
+  font-family: Sahel WOL, sans-serif;
+  line-height: 1.8;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+a { text-decoration: none; }
+a:hover, a:focus { text-decoration: underline; }
+details { margin: 1em 0; }
+details summary { cursor: pointer; }
+#copy { font-size: 0.84em; line-height: normal; }
+#copy p { padding: 0 2em; }
+h1 + p { color: #666; }
+.box {
+  background: #f8f8f8;
+  border: 1px solid #e6e6e6;
+  border-radius: 4px;
+  font-size: 0.95em;
+  padding: 0.6em 0.9em;
+}
+code.box { padding: 0.4em 0.8em; }
+code, kbd, pre { font-size: 1.2em; }
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+  .box { background: #1b1d1e; border-color: #373c34; }
+}
+</style>
+</head>
+<body>
+<h1>چگونه از رایانه استفاده می‌کنم</h1>
+<p>نوشتهٔ <a href="https://bndl.org/fa/"><b>بندعلی</b></a> در ۱۴
+سپتامبر ۲۰۱۹ <small>(آخرین به‌روزرسانی: ۲۸ فوریه ۲۰۲۱) (همچنین
+در <a href="bandali-computing.fa.txt">متن ساده</a>)</small></p>
+
+<p class="box">با الهام از
+صفحهٔ <a href="https://stallman.org/stallman-computing.html">استالمن</a>
+در این باره</p>
+
+<h2>رایانه‌ها</h2>
+<p>لپ‌تاپ ThinkPad X200 <a href="https://libreboot.org">لیبره‌بوت</a>
+شده‌م رایانه ایست که اکثر مواقع از آن استفاده می‌کنم.  همچنین از
+طریق <a href="https://csclub.uwaterloo.ca">باشگاه علوم رایانه</a>
+دانشگاه‌مان به تعدادی سرور دسترسی دارم که هر از گاهی ازشان برای کارهای
+محاسباتی سنگین‌تر استفاده می‌کنم.  به غیر از این‌ها یک Dell XPS 15 و
+ThinkPad X220T نیز دارم که کمتر ازشان استفاده می‌کنم.</p>
+
+<h2>توزیع گنو/لینوکس</h2>
+<p>در طول سالیان از طیف مختلفی از توزیع‌های گنو/لینوکس استفاده کرده‌م،
+اما پس از پیدا کردن <a href="https://trisquel.info">تریسکل</a> و
+استفاده از آن در سال‌های اخیر، به عنوان توزیع مورد علاقه‌م در بیشتر جاها
+ازش استفاده می‌کنم.  گاهی اوقات با <a href="https://guix.gnu.org">گنو
+گیکس</a> ترکیبش می‌کنم.  برای <abbr title="kernel">هسته</abbr> سیستم
+عامل هم معمولا
+از <a href="https://www.fsfla.org/ikiwiki/selibre/linux-libre/">گنو
+لینوکس-لیبره</a> از <a href="https://jxself.org/linux-libre/">مخزن
+APT</a> اداره شده توسط jxself استفاده می‌کنم.</p>
+
+<h2>کارهای پردازشی و محاسباتی</h2>
+<p>بیشتر وقتم را در <a href="https://www.gnu.org/software/emacs/">گنو
+ایمکس</a> می‌گذارنم و برای بسیاری کارهای مختلف از آن استفاده می‌کنم.</p>
+<p>TODO: توضیح بیشتر</p>
+
+<h2 id="colophon">به‌روزرسانی این سایت</h2>
+<p>صفحات این سایت با استفاده از گنو ایمکس و به صورت دستی با HTML ساده
+نوشته شده‌اند.  با اجرای دستور <code class="box">git clone
+https://bndl.org</code> در یک ترمینال می‌توانید مخرن گیت شامل تمامی
+صفحات این سایت و تاریخچهٔ تغییرات آن‌ها را دریافت کنید.</p>
+
+<hr />
+<details id="copy">
+<summary dir="ltr">Copyright &copy; 2019, 2020, 2021 bandali</summary>
+<p dir="ltr">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.</p>
+
+<p>رونوشت و توزیع این پرونده، با یا بدون تغییر، در سراسر دنیا بدون حق
+امتیاز و در هر رسانه‌ای مجاز است، به شرطی که این اعلان و اعلان حق تکثیر
+حفظ شود.  این پرونده به صورت موجود و بدون هیچ گونه ضمانت ارائه
+می‌شود.</p>
+</details>
+</body>
+</html>
diff --git a/fa/contact.html b/fa/contact.html
new file mode 100644 (file)
index 0000000..713733e
--- /dev/null
@@ -0,0 +1,49 @@
+<!doctype html>
+<html lang="fa">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="bandali" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>اطلاعات تماس &mdash; بندعلی</title>
+<link rel="canonical" href="https://bndl.org/fa/contact.html" />
+<link rel="alternate" href="bandali-contact.txt" title="plain text" type="text/plain" />
+<style>
+body {
+  direction: rtl;
+  font-family: Sahel WOL, sans-serif;
+  line-height: 1.8;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+a { text-decoration: none; }
+a:hover, a:focus { text-decoration: underline; }
+code { white-space: pre; }
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+}
+</style>
+</head>
+<body>
+<h1>اطلاعات تماس <a href=".">بندعلی</a></h1>
+
+<p>بهترین راه تماس با من ارسال رایانامه (ایمیل) به نشانی
+bandali@gnu.org است.  برای مکاتبهٔ امن با من می‌توانید
+از <a href="../bandali-pubkey.txt">کلید عمومی من</a> برای رمزنگاری
+پیام‌تان استفاده کنید.  اثر انگشت (fingerprint) این کلید
+<code>BE62 7373 8E61 6D6D 1B3A  08E8 A21A 0202 4881 6103</code> است.
+برای یادگیری چگونگی رمزنگاری رایانامه می‌توانید به
+راهنمای <a href="https://emailselfdefense.fsf.org/fa/">محافظت از ایمیل
+شخصی</a> تهیه شده توسط بنیاد نرم‌افزار آزاد مراجعه کنید.</p>
+
+<p>به غیر از رایانامه می‌توانید با من از طریق برخی شبکه‌های آی‌آرسی (IRC)
+تماس بگیرید.  برای این کار، به حساب <code>bandali</code> در
+شبکه‌های <a href="https://libera.chat">libera</a>
+و <a href="https://www.oftc.net">oftc</a> پیغام بفرستید.  برای دیگر
+راه‌های ارتباطی، لطفا ابتدا از طریق نشانی رایانامه بالا با من تماس
+بگیرید تا در صورت لزوم راه مناسب دیگری پیدا کنیم.</p>
+</body>
+</html>
diff --git a/fa/fsf-internship-beyond.fa.txt b/fa/fsf-internship-beyond.fa.txt
new file mode 100644 (file)
index 0000000..9fcbd61
--- /dev/null
@@ -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 (file)
index 0000000..cb18297
--- /dev/null
@@ -0,0 +1,155 @@
+<!doctype html>
+<html lang="fa" dir="rtl">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="بندعلی" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>کارآموزی من با تیم فنی بنیاد نرم‌افزار آزاد و فراتر از آن &mdash; بندعلی</title>
+<link rel="canonical" href="https://bndl.org/fa/fsf-internship-beyond.html" />
+<link rel="alternate" href="fsf-internship-beyond.fa.txt" title="plain text" type="text/plain" />
+<link rel="prev" href="fsf-internship-intro.html">
+<link rel="next" href="libreplanet-2021.html">
+<style>
+body {
+  font-family: Sahel WOL, sans-serif;
+  line-height: 1.8;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+a { text-decoration: none; }
+a:hover, a:focus { text-decoration: underline; }
+details { margin: 1em 0; }
+details summary { cursor: pointer; }
+#copy { font-size: 0.84em; line-height: normal; }
+#copy p { padding: 0 2em; }
+h1 + p { color: #666; }
+.box {
+  background: #f8f8f8;
+  border: 1px solid #e6e6e6;
+  border-radius: 4px;
+  font-size: 0.95em;
+  padding: 0.6em 0.9em;
+}
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+  .box { background: #1b1d1e; border-color: #373c34; }
+}
+</style>
+</head>
+<body>
+<h1>کارآموزی من با تیم فنی بنیاد نرم‌افزار آزاد و فراتر از آن</h1>
+<p>نوشتهٔ <a href="https://bndl.org/fa/"><b>بندعلی</b></a>
+در ۱۸ دسامبر ۲۰۲۰ <small>(همچنین
+در <a href="fsf-internship-beyond.fa.txt">متن ساده</a>)</small></p>
+
+<p class="box"><a href="../fsf-internship-beyond.html">نسخهٔ انگلیسی
+این مقاله</a> ابتدا در وبلاگ مدیر سامانه بنیاد نرم‌افزار آزاد منتشر
+شد:<br/>
+<a href="https://www.fsf.org/blogs/sysadmin/my-internship-with-the-fsf-tech-team-and-beyond"
+title="کارآموزی من با تیم فنی بنیاد نرم‌افزار آزاد و فراتر از آن">My
+internship with the FSF tech team and beyond</a></p>
+
+<p>سلام!
+من <a href="https://www.fsf.org/blogs/sysadmin/introducing-bandali-intern-with-the-fsf-tech-team">امین
+بندعلی</a> هستم و این دومین پست من در وبلاگ مدیر سامانه FSF در انتهای
+کارآموزیم است.</p>
+
+<p>در طول کارآموزیم با FSF، عمدتا در وظایف مدیریت سامانه‌ای مربوط به
+راه‌اندازی و یا مدیریت سرورهای گنو/لینوکس FSF کار کردم.  شاید قابل توجه
+ترین کارم در طول این کارآموزی راه‌اندازی یک
+سرور <a href="https://sourcehut.org" title="Sourcehut">سورس‌هات</a>
+برای کمک
+به <a href="https://libreplanet.org/wiki/FSF_2020_forge_evaluation">ارزیابی</a>
+آن به عنوان یک کاندید
+برای <a href="https://www.fsf.org/blogs/sysadmin/coming-soon-a-new-site-for-fully-free-collaboration"
+title="FSF forge project">پروژهٔ میزبانی نرم‌افزار آزاد FSF</a> است.  من
+مراحل نصب و راه‌اندازی اجزای مختلف سورس‌هات را به صورت
+یک <abbr title="literate GNU Emacs Org-mode file">پروندهٔ ادیبانه
+اُرگ-مُد گنو ایمکس</abbr> مستندسازی کردم، که در آن بلوک‌های کد با توضیحات
+لازم همراهی شده‌اند.  در این صورت خوانندهٔ پرونده می‌تواند به مرور هر
+بلوک کد را <abbr title="evaluate">ارزیابی</abbr>
+و <abbr title="execute">اجرا</abbr> کند و به طور اختیاری نتایج آن‌ها را
+در همان پرونده برای مستندسازی ذخیره کند.</p>
+
+<p>من همچنین به آهستگی مشغول کار بر تغییرات مختلف برای بهبود سروری که
+www.gnu.org روی آن اجرا می‌شود بوده‌م، و بعد از اتمام کارآموزیم نیز به
+طور داوطلبانه به آن ادامه خواهم داد.  امیدوارم این بهبودها برای مدیران
+سامانه FSF که مدیریت آن سرور را بر عهده دارند، برای وب‌مسترهای گنو که
+روی gnu.org کار می‌کنند، و برای عوام مردم که صفحات gnu.org را مرور کرده
+یا می‌خوانند مفید واقع شوند.  به ویژه این تغییرات شامل ارتقای سبستم‌عامل
+سرور به آخرین نسخهٔ توزیع گنو/لینوکس تریسکل و بازسازی و بهبود مکانیزم
+جستجوی صفحات gnu.org می‌شوند.  علاوه بر این، چند پروژهٔ دیگر نیز هستند
+که تمایل دارم در آیندهٔ نزدیک با تیم فنی FSF به انجام برسانم.</p>
+
+<p>در طول کارآموزیم با تیم فنی FSF، انواع گوناگونی مهارت‌های جدید کسب
+کرده و درمورد مجموعه‌ی متنوعی از موضوعات و ابزارهای مختلف مربوط به
+مدیریت سامانه سرورهای گنو/لینوکسی یاد گرفتم.  این شامل کامپایل/ساخت و
+نصب نرم‌افزار پیچیده‌ای مثل سورس‌هات و رفع‌اشکال مسائلی که به آن‌ها
+برخوردم، استفاده از Ansible برای مدیریت و استقرار (deploy) زیرساخت‌های
+نرم‌افزاری، و یادگیری
+دربارهٔ <abbr title="Mail Transfer Agent (MTA)">عامل انتقال پیام</abbr>
+Exim که FSF بر روی سرورهای دریافت و ارسال رایانامه‌های خود از آن
+استفاده می‌کند می‌شود.</p>
+
+<p>در انتهای کارآموزیم و سال ۲۰۲۰، می‌توان گفت امسال سال&hellip;جالب و
+پراتقافی برای بیشتر مردم، از جمله خودم، بوده است.  من کارآموزیم را در
+آخرین ماه مه شروع کردم، و به عنوان یک دانشجوی کارشناسی ارشد، انتظار
+داشتم یک بار کاری معقول و متعادل برای کارم روی پایان‌نامه‌م در ماه‌های
+آتی داشته‌باشم.  اما کمتر از دو هفته پس از شروع کارآموزیم متوجه شدم که
+به چند دلیل مجبورم که دورهٔ کارشناسی ارشدم را در عرض دو ماه به پایان
+برسانم.  این مسئله را به اطلاع تیم فنی FSF رساندم و اجازه گرفتم تا یک
+وقفه در کارآموزیم بگذارم تا بتوانم پایان‌نامه‌م را بدون لطمه به کارآموزی
+یا تحصیلاتم به اتمام برسانم.  عمیقا قدردان تیم فنی و سایر کارمندان FSF
+هستم که با انعطاف فراوان به من اجازه دادند تا موقتا کارآموزیم را متوقف
+کنم تا روی تکمیل پایان‌نامه‌م و اتمام دوره کارشناسی ارشدم تمرکز کنم.
+خوشبختانه با زحمت و مشقت فراوان موفق شدم درسم را در آن بازهٔ زمانی
+فوق‌العاده کوتاه تمام کرده و پس از آن به انجام کارآموزیم بپردازم.</p>
+
+<p>با این حال، تمام چیزهای خوب در نهایت به پایان می‌رسند، از جمله این
+کارآموزی.  از صمیم قلبم از اعضای تیم فنی FSF -- ایان و اندرو و روبن و
+مایکل -- برای پذیرش و استقبال از من در تیم به عنوان یک کارآموز،
+راهنمایی و پاسخ دادن به پرسش‌های فراوانم و کمک به یادگیری بیشترم
+سپاس‌گذارم.  کار کردن در کنار شما و دیدن انرژی و همتی که صرف کار و
+مسئولیت‌هایتان به عنوان یک مدیر سامانه و توسعه‌دهندهٔ وب FSF می‌کنید برای
+من یک افتخار و تجربهٔ فوق‌العاده بوده است.  در حالی که بیشتر ارتباطات من
+با اعضای تیم فنی FSF بوده است، من فرصت تعامل با اعضای دیگر تیم‌های FSF
+را نیز در طول کارآموزیم داشتم و بابت گفتگوهایمان و فرصت یادگیری دربارهٔ
+کارها و وظایف پراهمیتتان و تخصیصتان به انجامشان سپاس‌گذارم.</p>
+
+<p>این کارآموزی به پایان رسیده، اما همه خاطرات خوب و درس‌هایی که در طول
+کارآموزیم یاد گرفتم را همیشه با خود خواهم داشت و مشتاقانه به عنوان یک
+داوطلب به همکاری با شما ادامه خواهم داد.  مطالبی که در طول کارآموزیم
+یادگرفته و تجربه‌هایی که کسب کردم در شغل جدیدم به عنوان یک مشاور
+نرم‌افزار آزاد در شرکت Savoir-faire Linux برایم بسیار با ارزش و مفید
+واقع شده‌اند.  در Savoir-faire Linux روی اجزا و قسمت‌های مختلف جمی
+&mdash; یک برنامهٔ گنو برای ارتباطات جامع که به آزادی‌ها و حریم خصوصی
+کاربرانش احترام می‌گذارد &mdash; کار می‌کنم.
+
+<p>دوست دارم از FSF برای فرصت عالی کار کردن در کنار تیم فنی FSF به
+عنوان یک کارآموز قدردانی کنم، که تجربه‌ی عالی و به یاد ماندنی‌ای بود و
+درس‌هایی ارزشمند و خاطرات خوب به من هدیه داد.</p>
+
+<p class="box">علاقه‌مند به کارآموزی برای بنیاد نرم‌افزار آزاد هستید؟
+دورهٔ درخواست کارآموزی بهار ۲۰۲۱ در حال حاضر باز است.  صفحهٔ
+<a href="https://www.fsf.org/volunteer/internships">https://www.fsf.org/volunteer/internships</a>
+را برای اطلاعات بیشتر در مورد درخواست کارآموزی ببینید!</p>
+
+<hr />
+<details id="copy">
+<summary dir="ltr">Copyright &copy; 2020, 2021 bandali</summary>
+<p dir="ltr">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.</p>
+
+<p>رونوشت و توزیع این پرونده، با یا بدون تغییر، در سراسر دنیا بدون حق
+امتیاز و در هر رسانه‌ای مجاز است، به شرطی که این اعلان و اعلان حق تکثیر
+حفظ شود.  این پرونده به صورت موجود و بدون هیچ گونه ضمانت ارائه
+می‌شود.</p>
+</details>
+</body>
+</html>
diff --git a/fa/fsf-internship-intro.fa.txt b/fa/fsf-internship-intro.fa.txt
new file mode 100644 (file)
index 0000000..ae3e763
--- /dev/null
@@ -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 (file)
index 0000000..7e66d8c
--- /dev/null
@@ -0,0 +1,124 @@
+<!doctype html>
+<html lang="fa" dir="rtl">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="بندعلی" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>کارآموزی با تیم فنی بنیاد نرم‌افزار آزاد &mdash; بندعلی</title>
+<link rel="canonical" href="https://bndl.org/fa/fsf-internship-intro.html" />
+<link rel="alternate" href="fsf-internship-intro.fa.txt" title="نوشته ساده" type="text/plain" />
+<link rel="prev" href="computing.html">
+<link rel="next" href="fsf-internship-beyond.html">
+<style>
+body {
+  font-family: Sahel WOL, sans-serif;
+  line-height: 1.8;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+a { text-decoration: none; }
+a:hover, a:focus { text-decoration: underline; }
+details { margin: 1em 0; }
+details summary { cursor: pointer; }
+#copy { font-size: 0.84em; line-height: normal; }
+#copy p { padding: 0 2em; }
+h1 + p { color: #666; }
+.box {
+  background: #f8f8f8;
+  border: 1px solid #e6e6e6;
+  border-radius: 4px;
+  font-size: 0.95em;
+  padding: 0.6em 0.9em;
+}
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+  .box { background: #1b1d1e; border-color: #373c34; }
+}
+</style>
+</head>
+<body>
+<h1>کارآموزی با تیم فنی بنیاد نرم‌افزار آزاد</h1>
+<p>نوشتهٔ <a href="https://bndl.org/fa/"><b>بندعلی</b></a>
+در ۲۹ مه ۲۰۲۰ <small>(همچنین
+در <a href="fsf-internship-intro.fa.txt">متن ساده</a>)</small></p>
+
+<p class="box"><a href="../fsf-internship-intro.html">نسخهٔ انگلیسی این
+مقاله</a> ابتدا در وبلاگ مدیر سامانه بنیاد نرم‌افزار آزاد منتشر
+شد:<br/>
+<a href="https://www.fsf.org/blogs/sysadmin/introducing-bandali-intern-with-the-fsf-tech-team"
+title="معرفی امین بندعلی، کارآموز تیم فنی FSF">Introducing Amin
+Bandali, intern with the FSF tech team</a></p>
+
+<p>سلام، امین بندعلی هستم و معمولا از نام کاربری <code>bandali</code>
+در اینترنت استفاده می‌کنم.  در پروژهٔ گنو به عنوان
+یک <abbr title="maintainer">سرپرست</abbr> و وب‌مستر و مدیر سامانه
+ساوانا فعالیت می‌کنم، و خرسندم که مشارکتم در زمینهٔ نرم‌افزار آزاد را به
+بنیاد نرم‌افزار آزاد یا همان FSF (مخفف Free Software Foundation) به
+عنوان یک کارآموز تیم فنی FSF در بهار ۲۰۲۰ گسترش دهم.</p>
+
+<p>به واسطهٔ ارتباط کار والدینم با رایانه‌ها به عنوان دو مهندس و
+برنامه‌نویس رایانه، از کودکی به بازی و کار با رایانه‌ها علاقه‌مند شدم و
+بعدها برای اولین بار در اوایل نوجوانی با گنو/لینوکس آشنا شدم.  البته
+اولین آشنایی من با دنیای نرم‌افزارهای آزاد هنگامی اتفاق افتاد که چند
+سال بعد یکی از دوستان مجازیم به من اشاره کرد که چیزی که به طور مبهم‌وار
+به عنوان نرم‌افزار «متن باز» می‌شناختم بهتر است که با عنوان «نرم‌افزار
+آزاد» از آن یاد شود، و این دوست عزیز به من کمک کرد متوجه شوم
+که <a href="https://www.gnu.org/philosophy/open-source-misses-the-point.fa.html">چرا
+متن‌باز هدف اصلی نرم‌افزار آزاد را برآورده نمی‌کند</a>.  پس از یادگیری و
+خو گرفتن با ایده‌ها و ایده‌آل‌های نرم‌افزار آزاد، به مرور شروع به فعالیت
+در عرصهٔ نرم‌افزار آزاد کردم.  به عنوان یک علاقه‌مند و محصل در شاخهٔ علوم
+رایانه که از مطالعه و دستکاری کد متن برنامه‌های مختلف لذت می‌برد و هر از
+گاهی برنامه‌های خودش را می‌نویسد، تا می‌توانم کدم را تحت مجوزهای کپی‌لفت
+قوی مثل <a href="https://www.gnu.org/licenses/agpl.html">GNU AGPL</a>
+منتشر می‌کنم.</p>
+
+<p>مشارکت من در <a href="https://www.gnu.org/home.fa.html">پروژهٔ
+گنو</a> ابتدا در سال ۲۰۱۶ به عنوان یک وب‌مستر داوطلب آغاز شد، و بعدا از
+آخر سال گذشتهٔ میلادی به عنوان یکی از
+سرپرستان <a href="https://www.gnu.org/software/gnuzilla/">گنوزیلا و
+آیس‌کت</a>.  تقریبا در همان زمان، من گروهی از داوطلبان را برای
+سازمان‌دهی و برگذاری <a href="https://emacsconf.org/2019">EmacsConf
+2019</a> به عنوان یک کنفرانس مجازی و تماما با استفاده از نرم‌افزارهای
+آزاد (همانند کنفرانس
+عالی <a href="https://libreplanet.org/wiki/LibrePlanet:Conference/2020">LibrePlanet
+2020</a>) سرپرستی کردم.  من
+بسیار <a href="https://www.gnu.org/software/emacs/">گنو ایمکس</a> را
+دوست دارم و بیش از هر نرم‌افزار دیگری از آن استفاده می‌کنم.  گنو ایمکس
+به من در انجام کارهای متنوعی مانند برنامه نویسی و خواندن و نوشتن
+رایانامه و چت از طریق IRC کمک می‌کند. </p>
+
+<p>در جهت کارآموزیم با تیم فنی FSF، اخیرا با
+کمک <abbr title="Bob Proulx">باب پرو</abbr>، یک مدیر سامانه
+خبرهٔ <a href="https://savannah.gnu.org">گنو ساوانا</a>، خودم را با
+اجزای مختلف زیرساخت آن و برخی وظایف مدیریتی و سرپرستی ساوانا آشنا کرده
+و به تدریج بر عهده گرفتم.  من همچنین یکی از اعضای کمیته سیستم‌های
+باشگاه علوم رایانه دانشگاه‌مان هستم، که نظارت و سرپرستی گروه بزرگی
+سرورهای گنو/لینوکس برای اعضای باشگاه را بر عهده دارد.</p>
+
+<p>برای کارآموزیم با تیم فنی FSF، با اعضای تیم روی چند کار و پروژهٔ
+مختلف کار خواهم‌کرد، از جمله کمک به پیشبرد
+پروژهٔ <a href="https://www.fsf.org/blogs/sysadmin/coming-soon-a-new-site-for-fully-free-collaboration"
+title="free software forge">میزبان نرم‌افزار آزاد</a> و چندین تغییر و
+بهبود مختلف برای gnu.org.  مشتاقانه به استقبال یادگیری نکات جدید و کسب
+مهارت‌های ارزشمند به واسطهٔ کارآموزیم با تیم فنی فوق‌العادهٔ FSF می‌روم، که
+زحمات بسیاری برای پروژهٔ گنو و جامعهٔ بزرگتر نرم‌افزار آزاد می‌کشند.</p>
+
+<hr />
+<details id="copy">
+<summary dir="ltr">Copyright &copy; 2020, 2021 bandali</summary>
+<p dir="ltr">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.</p>
+
+<p>رونوشت و توزیع این پرونده، با یا بدون تغییر، در سراسر دنیا بدون حق
+امتیاز و در هر رسانه‌ای مجاز است، به شرطی که این اعلان و اعلان حق تکثیر
+حفظ شود.  این پرونده به صورت موجود و بدون هیچ گونه ضمانت ارائه
+می‌شود.</p>
+</details>
+</body>
+</html>
diff --git a/fa/index.html b/fa/index.html
new file mode 100644 (file)
index 0000000..4266bf5
--- /dev/null
@@ -0,0 +1,88 @@
+<!doctype html>
+<html lang="fa" dir="rtl">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="بندعلی" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>سایت شخصی بندعلی</title>
+<link rel="canonical" href="https://bndl.org/fa/" />
+<link rel="alternate" href="bandali.txt" title="plain text" type="text/plain" />
+<link rel="alternate" href="../" hreflang="en" title="english" />
+<style>
+body {
+  font-family: Sahel WOL, sans-serif;
+  line-height: 1.8;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+a { text-decoration: none; }
+a:hover, a:focus { text-decoration: underline; }
+details { margin: 1em 0; }
+details summary { cursor: pointer; }
+#copy { font-size: 0.84em; line-height: normal; }
+#copy p { padding: 0 2em; }
+ul { list-style-type: none; padding: 0; }
+ul li { margin: 0.25em 0; }
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+}
+</style>
+</head>
+<body>
+<h1>سایت شخصی بندعلی</h1>
+<nav>
+<a href="projects.html">پروژه‌ها</a>
+| <a href="../cv.html">رزومه</a> (انگلیسی)
+| <a href="contact.html">تماس</a>
+| <a href="bandali.fa.txt">متن ساده</a>
+| <a href="../" hreflang="en" title="English">english</a>
+</nav>
+
+<p>من یک
+فعال <a href="https://www.gnu.org/philosophy/free-sw.fa.html">نرم‌افزار
+آزاد</a> و <a href="../mmath.html">کارشناس ارشد علوم رایانه</a> هستم.
+به عنوان یک عضو پروژهٔ گنو، سرپرستی
+نرم‌افزارهای <a href="https://jami.net">جمی</a>
+و <a href="https://www.gnu.org/software/gnuzilla/">گنو آیس‌کت</a> را بر
+عهده دارم و همچنین در توسعهٔ تعداد دیگری از برنامه‌ها و بخش‌های گنو
+مثل <a href="https://www.gnu.org/software/emacs/">ایمکس</a>
+و <a href="https://savannah.gnu.org">ساوانا</a> مشارکت می‌کنم.</p>
+
+<h2 id="notes">نوشته‌ها</h2>
+<p>در اینجا می‌توانید برخی یادداشت‌ها و نوشته‌هایم در رابطه با موضوعات
+مورد علاقه‌م یا مسائلی که برایم مهم هستند را بخوانید.  این نوشته‌ها
+همچنین از طریق خوراک‌های <a href="notes.atom">اتم</a>
+و <a href="notes.rss">آراس‌اس</a> در دسترس هستند.</p>
+
+<ul>
+<li><a href="../libreplanet-2021.html" hreflang="en">LibrePlanet 2021:
+جمی و اینکه چگونه به کاربران قدرت می‌بخشد</a> <small>(انگلیسی)
+(۲۰ مارس ۲۰۲۱)</small></li>
+<li><a href="fsf-internship-beyond.html">کارآموزی من با تیم فنی بنیاد
+نرم‌افزار آزاد و فراتر از آن</a>
+<small>(۱۸ دسامبر ۲۰۲۰)</small></li>
+<li><a href="fsf-internship-intro.html">کارآموزی با تیم فنی بنیاد
+نرم‌افزار آزاد</a> <small>(۲۹ مه ۲۰۲۰)</small></li>
+<li><a href="computing.html">چگونه از رایانه استفاده
+می‌کنم</a> <small>(۱۴ سپتامبر ۲۰۱۹)</small></li>
+</ul>
+
+<hr />
+<details id="copy">
+<summary dir="ltr">Copyright &copy; 2012&ndash;2021 bandali</summary>
+<p dir="ltr">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.</p>
+
+<p>رونوشت و توزیع این پرونده، با یا بدون تغییر، در سراسر دنیا بدون حق
+امتیاز و در هر رسانه‌ای مجاز است، به شرطی که این اعلان و اعلان حق تکثیر
+حفظ شود.  این پرونده به صورت موجود و بدون هیچ گونه ضمانت ارائه
+می‌شود.</p>
+</details>
+</body>
+</html>
diff --git a/fa/projects.html b/fa/projects.html
new file mode 100644 (file)
index 0000000..12ce1bc
--- /dev/null
@@ -0,0 +1,40 @@
+<!doctype html>
+<html lang="fa">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="bandali" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>پروژه‌ها &mdash; بندعلی</title>
+<link rel="canonical" href="https://bndl.org/fa/projects.html" />
+<link rel="alternate" href="bandali-projects.txt" title="plain text" type="text/plain" />
+<style>
+body {
+  direction: rtl;
+  font-family: Sahel WOL, sans-serif;
+  line-height: 1.8;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+a { text-decoration: none; }
+a:hover, a:focus { text-decoration: underline; }
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+}
+</style>
+</head>
+<body>
+<h1>پروژه‌های <a href=".">بندعلی</a></h1>
+<p>در گذشته صفحهٔ پروژه‌هایم فهرستی از پروژه‌های نرم‌افزار آزادی که شروع
+کرده یا در آن‌ها مشارکت کرده‌بودم داشت، اما به مرور بروز نگهداری فهرست
+دشوارتر شد؛ لذا تصمیم به حذف آن گرفتم.</p>
+
+<p>برای دیدن برخی از پروژه‌های خودم و دیگر پروژه‌هایی که در آن‌ها مشارکت
+می‌کنم، به <a href="https://git.shemshak.org/~bandali">مخازن گیت من</a>
+و همچنین <a href="https://savannah.gnu.org/users/bandali">نمایهٔ
+ساوانای من</a> سری بزنید.</p>
+</body>
+</html>
diff --git a/footer.html b/footer.html
deleted file mode 100644 (file)
index 61653ae..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-ifdef(`__feed_atom', `]]></content></entry>',
-`ifdef(`__feed_rss', `]]></content:encoded></item>',
-`ifdef(`__pub',
-`<p class="muted inbox">Got a question or comment?  You can find my
-email address on my <a href="__p/contact.html">contact</a> page.  __smly</p>
-</article>
-')dnl
-</main>
-ifdef(`__copy',
-`<footer>
-<p>Copyright &copy; __copy Amin Bandali.
-See the ifelse(__slug,`license',`above for license conditions',`<a href="__p/license.html">license conditions</a>').
-Please copy and share.</p>
-</footer>')
-</body>
-</html>')')dnl
diff --git a/fsf-internship-beyond.html b/fsf-internship-beyond.html
new file mode 100644 (file)
index 0000000..63e31c1
--- /dev/null
@@ -0,0 +1,146 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="bandali" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>My internship with the FSF tech team and beyond &mdash; bandali</title>
+<link rel="canonical" href="https://bndl.org/fsf-internship-beyond.html" />
+<link rel="alternate" href="fsf-internship-beyond.txt" title="plain text" type="text/plain" />
+<link rel="prev" href="fsf-internship-intro.html">
+<link rel="next" href="libreplanet-2021.html">
+<style>
+body {
+  line-height: 1.6;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+details { margin: 1em 0; }
+details summary { cursor: pointer; }
+#copy { font-size: 0.84em; }
+#copy p { padding: 0 2em; }
+h1 + p { color: #666; }
+.box {
+  background: #f8f8f8;
+  border: 1px solid #e6e6e6;
+  border-radius: 4px;
+  font-size: 0.95em;
+  padding: 0.6em 0.9em;
+}
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+  .box { background: #1b1d1e; border-color: #373c34; }
+}
+</style>
+</head>
+<body>
+<h1>My internship with the FSF tech team and beyond</h1>
+<p>by <a href="https://bndl.org"><b>bandali</b></a>
+on December 18, 2020 <small>(also
+in <a href="fsf-internship-beyond.txt">plain text</a>)</small></p>
+
+<p class="box">Originally published on the Free Software Foundation's
+sysadmin blog:<br/>
+<a href="https://www.fsf.org/blogs/sysadmin/my-internship-with-the-fsf-tech-team-and-beyond">My internship with the FSF tech team and beyond</a></p>
+
+<p>Hello!  I'm
+<a href="https://www.fsf.org/blogs/sysadmin/introducing-bandali-intern-with-the-fsf-tech-team">Amin Bandali</a>,
+and this is my second blog post on the FSF sysadmin blog, concluding
+my internship with the FSF tech team this year.</p>
+
+<p>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 <a href="https://sourcehut.org">Sourcehut</a> forge software to
+help
+<a href="https://libreplanet.org/wiki/FSF_2020_forge_evaluation">evaluate</a>
+it as a candidate for the upcoming
+<a href="https://www.fsf.org/blogs/sysadmin/coming-soon-a-new-site-for-fully-free-collaboration">FSF forge project</a>.
+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.</p>
+
+<p>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.</p>
+
+<p>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.</p>
+
+<p>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.</p>
+
+<p>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.</p>
+
+<p>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.</p>
+
+<p>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.</p>
+
+<p class="box">Interested in interning for the Free Software
+Foundation?  The application period for spring 2021 internships is
+currently open.  Please see
+<a href="https://www.fsf.org/volunteer/internships">https://www.fsf.org/volunteer/internships</a>
+for more details and information on how to apply!</p>
+
+<hr />
+<details id="copy">
+<summary>Copyright &copy; 2020 bandali</summary>
+<p>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.</p>
+</details>
+</body>
+</html>
diff --git a/fsf-internship-beyond.m4 b/fsf-internship-beyond.m4
deleted file mode 100644 (file)
index 48eb683..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-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
-
-<p class="box">Originally published on the Free Software Foundation's
-sysadmin blog:<br/>
-<a href="https://www.fsf.org/blogs/sysadmin/my-internship-with-the-fsf-tech-team-and-beyond">My internship with the FSF tech team and beyond</a>.</p>
-
-<p>Hello!  I'm
-<a href="https://www.fsf.org/blogs/sysadmin/introducing-bandali-intern-with-the-fsf-tech-team">Amin Bandali</a>,
-and this is my second blog post on the FSF sysadmin blog, concluding
-my internship with the FSF tech team this year.</p>
-
-<p>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 <a href="https://sourcehut.org">Sourcehut</a> forge software to
-help
-<a href="https://libreplanet.org/wiki/FSF_2020_forge_evaluation">evaluate</a>
-it as a candidate for the upcoming
-<a href="https://www.fsf.org/blogs/sysadmin/coming-soon-a-new-site-for-fully-free-collaboration">FSF forge project</a>.
-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.</p>
-
-<p>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.</p>
-
-<p>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.</p>
-
-<p>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.</p>
-
-<p>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.</p>
-
-<p>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.</p>
-
-<p>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.</p>
-
-<p class="box">Interested in interning for the Free Software
-Foundation?  The application period for spring 2021 internships is
-currently open.  Please see
-<a href="https://www.fsf.org/volunteer/internships">https://www.fsf.org/volunteer/internships</a>
-for more details and information on how to apply!</p>
-
-define(__copy, `2020')dnl
-include(footer.html)dnl
diff --git a/fsf-internship-beyond.txt b/fsf-internship-beyond.txt
new file mode 100644 (file)
index 0000000..9778adb
--- /dev/null
@@ -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.html b/fsf-internship-intro.html
new file mode 100644 (file)
index 0000000..611853b
--- /dev/null
@@ -0,0 +1,118 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="bandali" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>Internship with the FSF tech team &mdash; bandali</title>
+<link rel="canonical" href="https://bndl.org/fsf-internship-intro.html" />
+<link rel="alternate" href="fsf-internship-intro.txt" title="plain text" type="text/plain" />
+<link rel="prev" href="computing.html">
+<link rel="next" href="fsf-internship-beyond.html">
+<style>
+body {
+  line-height: 1.6;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+details { margin: 1em 0; }
+details summary { cursor: pointer; }
+#copy { font-size: 0.84em; }
+#copy p { padding: 0 2em; }
+h1 + p { color: #666; }
+.box {
+  background: #f8f8f8;
+  border: 1px solid #e6e6e6;
+  border-radius: 4px;
+  font-size: 0.95em;
+  padding: 0.6em 0.9em;
+}
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+  .box { background: #1b1d1e; border-color: #373c34; }
+}
+</style>
+</head>
+<body>
+<h1>Internship with the FSF tech team</h1>
+<p>by <a href="https://bndl.org"><b>bandali</b></a>
+on May 29, 2020 <small>(also
+in <a href="fsf-internship-intro.txt">plain text</a>)</small></p>
+
+<p class="box">Originally published on the Free Software Foundation's
+sysadmin blog:<br/>
+<a href="https://www.fsf.org/blogs/sysadmin/introducing-bandali-intern-with-the-fsf-tech-team">Introducing
+Amin Bandali, intern with the FSF tech team</a></p>
+
+<p>Hi there, I'm Amin Bandali, often just <code>bandali</code> 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.</p>
+
+<p>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
+<a href="https://www.gnu.org/philosophy/open-source-misses-the-point.html">why
+"open source" misses the point of free software</a>.  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
+<a href="https://www.gnu.org/licenses/agpl.html">GNU AGPL</a>
+license.</p>
+
+<p>My involvement with the <a href="https://www.gnu.org">GNU
+Project</a> started in 2016, first as a volunteer webmaster, and later
+as one of the maintainers of
+<a href="https://www.gnu.org/software/gnuzilla/">GNUzilla and
+IceCat</a> late last year.  Also around the same time, I led a group
+of volunteers in organizing and holding
+<a href="https://emacsconf.org/2019">EmacsConf 2019</a> as a
+completely online conference, using only free software tools, much
+like the excellent
+<a href="https://libreplanet.org/wiki/LibrePlanet:Conference/2020">LibrePlanet
+2020</a>.  I love <a href="https://www.gnu.org/software/emacs/">GNU
+Emacs</a>, 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.</p>
+
+<p>More closely related to my internship with the FSF tech team, I
+have been familiarizing myself with various pieces of the
+<a href="https://savannah.gnu.org">GNU Savannah</a> 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.</p>
+
+<p>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 <a href="https://www.fsf.org/blogs/sysadmin/coming-soon-a-new-site-for-fully-free-collaboration">free
+software forge</a> 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 <em>so much</em> for the GNU project and the wider free
+software community.</p>
+
+<hr />
+<details id="copy">
+<summary>Copyright &copy; 2020 bandali</summary>
+<p>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.</p>
+</details>
+</body>
+</html>
diff --git a/fsf-internship-intro.m4 b/fsf-internship-intro.m4
deleted file mode 100644 (file)
index 79af930..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-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
-
-<p class="box">Originally published on the Free Software Foundation's
-sysadmin blog:<br/>
-<a href="https://www.fsf.org/blogs/sysadmin/introducing-bandali-intern-with-the-fsf-tech-team">Introducing
-Amin Bandali, intern with the FSF tech team</a>.</p>
-
-<p>Hi there, I'm Amin Bandali, often just <code>bandali</code> 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.</p>
-
-<p>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
-<a href="https://www.gnu.org/philosophy/open-source-misses-the-point.html">why
-"open source" misses the point of free software</a>.  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
-<a href="https://www.gnu.org/licenses/agpl.html">GNU AGPL</a>
-license.</p>
-
-<p>My involvement with the <a href="https://www.gnu.org">GNU
-Project</a> started in 2016, first as a volunteer webmaster, and later
-as one of the maintainers of
-<a href="https://www.gnu.org/software/gnuzilla/">GNUzilla and
-IceCat</a> late last year.  Also around the same time, I led a group
-of volunteers in organizing and holding
-<a href="https://emacsconf.org/2019">EmacsConf 2019</a> as a
-completely online conference, using only free software tools, much
-like the excellent
-<a href="https://libreplanet.org/wiki/LibrePlanet:Conference/2020">LibrePlanet
-2020</a>.  I love <a href="https://www.gnu.org/software/emacs/">GNU
-Emacs</a>, 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.</p>
-
-<p>More closely related to my internship with the FSF tech team, I
-have been familiarizing myself with various pieces of the
-<a href="https://savannah.gnu.org">GNU Savannah</a> 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.</p>
-
-<p>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 <a href="https://www.fsf.org/blogs/sysadmin/coming-soon-a-new-site-for-fully-free-collaboration">free
-software forge</a> 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 <em>so much</em> for the GNU project and the wider free
-software community.</p>
-
-define(__copy, `2020')dnl
-include(footer.html)dnl
diff --git a/fsf-internship-intro.txt b/fsf-internship-intro.txt
new file mode 100644 (file)
index 0000000..8c9658d
--- /dev/null
@@ -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 (executable)
index fa6483b..0000000
+++ /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 (file)
index 892805b..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-include(meta_defs.m4)dnl
-ifdef(`__slug',,`define(__slug, _get(`notes', __id))')dnl
-ifdef(`__feed_atom',
-`<entry xml:base="__d">
-<author><name>bandali</name></author>
-<id>tag:shemshak.org,2020:__p/notes.atom:__slug</id>
-<published>__pub</published>
-ifdef(`__upd',`<updated>__upd</updated>',`<updated>__pub</updated>')dnl
-<link href="__d`'__p/__slug.html" rel="alternate" type="text/html"/>
-<title>__title</title>
-<content type="html">
-<![CDATA[',
-`ifdef(`__feed_rss',
-`<item>
-<title>__title</title>
-<link>__d`'__p/__slug.html</link>
-<guid isPermaLink="false">tag:shemshak.org,2020:__p/notes.rss:__slug</guid>
-<pubDate>syscmd(date "-uRd __pub" | tr -d \\n)</pubDate>
-ifdef(`__upd',`<atom:updated>__upd</atom:updated>')dnl
-<content:encoded>
-<![CDATA[',
-`<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8"/>
-<meta name="author" content="bandali"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>__title`'ifdef(`__nts',,` &mdash; bandali')</title>
-<link rel="alternate" href="__p/notes.atom" type="application/atom+xml"/>
-<link rel="alternate" href="__p/notes.rss" type="application/rss+xml"/>
-<link rel="icon" href="__p/gnu.ico"/>
-<link rel="stylesheet" href="__p/style.css"/>
-ifdef(`__pub',
-define(__previd, `_get(`notes', decr(__id))')dnl
-define(__nextid, `_get(`notes', incr(__id))')dnl
-`ifelse(__previd,,,`<link rel="prev" href="__p/__previd.html">')'dnl
-`ifelse(__nextid,,,`<link rel="next" href="__p/__nextid.html">')')dnl
-</head>
-<body>
-<header>
-ifelse(__slug,`home',`<h1>__site__title</h1>',
-`<strong><a href="__p/">__site__title</a></strong>')
-</header>
-<nav>
-<ul>
-<li><a href="__p/#notes">notes</a></li>
-<li><a href="__p/publications.html">publications</a></li>
-<li><a href="__p/cv.html" title="curriculum vitae">cv</a></li>
-<li><a href="__p/contact.html">contact</a></li>
-dnl<li><a href="__p/fa/" title="Persian">فارسی</a></li>
-</ul>
-</nav>
-<main>
-ifdef(`__pub',
-`<article>
-<header>
-<h1>__title</h1>
-<p>Published on syscmd(date "-d __pub" "+%B %e`,' %Y" | tr -d \\n)`'ifdef(`__upd',`<br/>
-Last updated on syscmd(date "-d __upd" "+%B %e`,' %Y" | tr -d \\n)')</p>
-</header>')')')dnl
diff --git a/index.html b/index.html
new file mode 100644 (file)
index 0000000..1888e27
--- /dev/null
@@ -0,0 +1,80 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="bandali" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>bandali's personal site</title>
+<link rel="canonical" href="https://bndl.org" />
+<link rel="alternate" href="bandali.txt" title="plain text" type="text/plain" />
+<link rel="alternate" href="notes.atom" title="notes atom feed" type="application/atom+xml" />
+<link rel="alternate" href="notes.rss" title="notes rss feed" type="application/rss+xml" />
+<link rel="alternate" href="fa/" hreflang="fa" title="persian" />
+<style>
+body {
+  line-height: 1.6;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+details { margin: 1em 0; }
+details summary { cursor: pointer; }
+#copy { font-size: 0.84em; }
+#copy p { padding: 0 2em; }
+#fa { text-decoration: none; }
+#fa:hover, #fa:focus { text-decoration: underline; }
+ul { list-style-type: none; padding: 0; }
+ul li { margin: 0.25em 0; }
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+}
+</style>
+</head>
+<body>
+<h1>bandali's personal site</h1>
+<nav>
+<a href="projects.html">projects</a>
+| <a href="cv.html">cv</a>
+| <a href="contact.html">contact</a>
+| <a href="bandali.txt">plain text</a>
+| <a href="fa/" hreflang="fa" title="Persian" id="fa">فارسی</a>
+</nav>
+
+<p>I am a <a href="https://www.gnu.org/philosophy/free-sw.html">free
+software</a> activist and <a href="mmath.html">computing
+scientist</a>.  I'm a GNU maintainer
+of <a href="https://jami.net">Jami</a>
+and <a href="https://www.gnu.org/software/gnuzilla/">GNU IceCat</a>.
+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.</p>
+
+<h2 id="notes">notes</h2>
+<p>Here are notes and writings about topics or issues I care about,
+which you can also read via <a href="notes.atom">Atom</a>
+or <a href="notes.rss">RSS</a> feeds.</p>
+
+<ul>
+<li><a href="libreplanet-2021.html">LibrePlanet 2021: Jami and how it
+empowers users</a> <small>(March 20, 2021)</small></li>
+<li><a href="fsf-internship-beyond.html">My internship with the FSF
+tech team and beyond</a> <small>(December 18, 2020)</small></li>
+<li><a href="fsf-internship-intro.html">Internship with the FSF tech
+team</a> <small>(May 29, 2020)</small></li>
+<li><a href="computing.html">How I do my Computing</a>
+<small>(September 14, 2019)</small></li>
+</ul>
+
+<hr />
+<details id="copy">
+<summary>Copyright &copy; 2012&ndash;2021 bandali</summary>
+<p>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.</p>
+</details>
+</body>
+</html>
diff --git a/index.m4 b/index.m4
deleted file mode 100644 (file)
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
-
-<section id="intro">
-<p>I am a <a href="https://www.gnu.org/philosophy/free-sw.html">free
-software</a> activist and <a href="mmath.html">computing
-scientist</a>.  I'm a GNU maintainer
-of <a href="https://jami.net">Jami</a>
-and <a href="https://www.gnu.org/software/gnuzilla/">GNUzilla and
-IceCat</a>, and I wear a few other hats around GNU, like helping run
-the Savannah forge for GNU and non-GNU projects as a Savannah hacker.
-My current <code>$dayjob</code> is working on Jami as a Free Software
-Consultant, which includes hacking on various parts of Jami and its
-packaging for various GNU/Linux distributions.</p>
-
-<p>On the side, I enjoy
-<a href="https://stallman.org/articles/on-hacking.html">hacking on</a>
-GNU Emacs and Emacs Lisp.  I'm the current maintainer of
-<a href="https://www.gnu.org/software/emacs/erc.html">ERC</a> the
-powerful and modular IRC client built into GNU Emacs, an organizer of
-the <a href="https://emacsconf.org">EmacsConf</a> conference, and
-co-host of the <a href="https://emacsel.com">Emacs.el</a> podcast with
-<a href="https://www.pygopar.com">Gopar</a>.</p>
-</section>
-
-<section id="notes">
-<h2>notes __anc(`notes')</h2>
-<p>Here are notes about various topics or issues I care about.
-You can also read them via
-<a class="feed-icon" href="notes.atom">Atom</a> or
-<a class="feed-icon" href="notes.rss">RSS</a>.</p>
-
-<table class="post-list">
-<tbody>
-<tr>
-<td><a href="lp2021.html">LibrePlanet 2021: Jami and how it empowers
-users</a></td>
-<td><small>March 20, 2021</small></td>
-</tr>
-<tr>
-<td><a href="fsf-internship-beyond.html">My internship with the FSF
-tech team and beyond</a> (concluding)</td>
-<td><small>December 18, 2020</small></td>
-</tr>
-<tr>
-<td><a href="fsf-internship-intro.html">Internship with the FSF tech
-team</a> (intro)</td>
-<td><small>May 29, 2020</small></td>
-</tr>
-<tr>
-<td><a href="computing.html">How I do my Computing</a></td>
-<td><small>September 14, 2019</small></td>
-</tr>
-</tbody>
-</table>
-</section>
-
-define(__copy, `2016&ndash;2021')dnl
-include(footer.html)dnl
diff --git a/libreplanet-2021.html b/libreplanet-2021.html
new file mode 100644 (file)
index 0000000..7f50e1b
--- /dev/null
@@ -0,0 +1,137 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="bandali" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>LibrePlanet 2021: Jami and how it empowers users &mdash; bandali</title>
+<link rel="canonical" href="https://bndl.org/libreplanet-2021.html" />
+<link rel="alternate" href="libreplanet-2021.txt" title="plain text" type="text/plain" />
+<link rel="prev" href="fsf-internship-beyond.html">
+<style>
+body {
+  line-height: 1.6;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+details { margin: 1em 0; }
+details summary { cursor: pointer; }
+#copy { font-size: 0.84em; }
+#copy p { padding: 0 2em; }
+h1 + p { color: #666; }
+blockquote { text-align: justify; }
+.tex {
+  font-family: "Tex Gyre Termes", serif;
+  text-transform: uppercase;
+}
+.tex sub {
+  font-size: 1em;
+  margin-left: -0.1667em;
+  margin-right: -0.125em;
+  vertical-align: -0.5ex;
+}
+.tex sup {
+  font-size: 0.85em;
+  margin-left: -0.36em;
+  margin-right: -0.15em;
+  vertical-align: 0.15em;
+}
+.box {
+  background: #f8f8f8;
+  border: 1px solid #e6e6e6;
+  border-radius: 4px;
+  font-size: 0.95em;
+  padding: 0.6em 0.9em;
+}
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+  .box { background: #1b1d1e; border-color: #373c34; }
+}
+</style>
+</head>
+<body>
+<h1>LibrePlanet 2021: Jami and how it empowers users</h1>
+<p>by <a href="https://bndl.org"><b>bandali</b></a>
+on March 20, 2021 <small>(last update: March 21, 2021)
+(also in <a href="libreplanet-2021.txt">plain text</a>)</small></p>
+
+<p>I am giving my very first
+<a href="https://libreplanet.org/2021/">LibrePlanet</a> talk today on
+March 20th.  I will be talking about
+<a href="https://jami.net">Jami</a>, 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
+<a href="https://jami.net/together-the-new-version-of-jami-and-a-new-step-forward/">rendezvous
+points</a>, <a href="https://jami.biz/jams-user-guide">JAMS</a>,
+the <a href="https://jami.net/plugins-sdk">plugin SDK</a>,
+<a href="https://jami.net/swarm-introducing-a-new-generation-of-group-conversations">Swarm
+chats</a>, and more; and how these features each help empower users to
+communicate with their loved ones without sacrificing their privacy or
+freedom.</p>
+
+<p>Here is the abstract for my talk, also available on the
+<a href="https://libreplanet.org/2021/speakers/#4285">LibrePlanet
+2021's speakers</a> page:
+
+<blockquote>
+<p>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.</p>
+
+<p>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.</p>
+
+<p>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.</p>
+</blockquote>
+
+<p>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 <a href="https://libreplanet.org/2021/live/">LibrePlanet 2021
+- Live</a> page.  Attendance is gratis (no cost), and you can register
+at <a href="https://u.fsf.org/lp21-sp">https://u.fsf.org/lp21-sp</a>.</p>
+
+<p>Presentation slides:
+<a href="https://p.bndl.org/bandali-jami-libreplanet-2021.pdf">pdf</a>
+(<a href="https://p.bndl.org/bandali-jami-libreplanet-2021-with-notes.pdf">with notes</a>) |
+<a href="bandali-bib.html#bandali-jami-libreplanet-2021">bib</a><br/>
+
+<span class="tex">L<sup>a</sup>T<sub>e</sub>X</span> sources:
+<a href="https://p.bndl.org/bandali-jami-libreplanet-2021.tar.gz">tar.gz</a> |
+<a href="https://p.bndl.org/bandali-jami-libreplanet-2021.zip">zip</a></p>
+
+<p>I hope to see you around this year's all-online LibrePlanet
+conference this weekend!</p>
+
+<p class="box">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.</p>
+
+<hr />
+<details id="copy">
+<summary>Copyright &copy; 2021 bandali</summary>
+<p>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.</p>
+</details>
+</body>
+</html>
diff --git a/libreplanet-2021.txt b/libreplanet-2021.txt
new file mode 100644 (file)
index 0000000..1eac211
--- /dev/null
@@ -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 (file)
index 6510179..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-dnl -*- html -*-
-define(__title, `licensing information')dnl
-define(__slug, `license')dnl
-include(header.html)dnl
-
-<article>
-<h1>__title</h1>
-<p>I strongly believe in
-<a href="//questioncopyright.org/what_is_free_culture">free culture</a>
-and that all creative works everywhere should be
-<a href="//freedomdefined.org/Definition">free</a>.</p>
-
-<p>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
-<a href="gpl-3.0.html">gpl-3.0.html</a>.</p>
-
-<p>This website is statically generated using a series of GNU tools
-(<a href="computing.html#colophon">read more</a>), with the sources at
-<a href="//git.shemshak.org/~bandali/site">git.shemshak.org/~bandali/site</a>.
-The striped look was direct inspiration from iank's website,
-<a href="//iankelling.org">iankelling.org</a>.</p>
-
-<p>Some resources on free software and licenses:</p>
-<ul>
-<li><a href="//www.gnu.org/philosophy/free-sw.html">What is free software?</a></li>
-<li><a href="//www.gnu.org/licenses/license-list.html">Various Licenses and Comments about Them</a></li>
-<li><a href="//www.gnu.org/proprietary/proprietary.html">Proprietary Software Is Often Malware</a></li>
-</ul>
-</article>
-
-define(__copy, `2019')dnl
-include(footer.html)dnl
diff --git a/lp2021.m4 b/lp2021.m4
deleted file mode 100644 (file)
index 0b01333..0000000
--- a/lp2021.m4
+++ /dev/null
@@ -1,75 +0,0 @@
-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
-
-<p>I am giving my very first
-<a href="https://libreplanet.org/2021/">LibrePlanet</a> talk today on
-March 20th.  I will be talking about
-<a href="https://jami.net">Jami</a>, 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
-<a href="https://jami.net/together-the-new-version-of-jami-and-a-new-step-forward/">rendezvous
-points</a>, <a href="https://jami.biz/jams-user-guide">JAMS</a>,
-the <a href="https://jami.net/plugins-sdk">plugin SDK</a>,
-<a href="https://jami.net/swarm-introducing-a-new-generation-of-group-conversations">Swarm
-chats</a>, and more; and how these features each help empower users to
-communicate with their loved ones without sacrificing their privacy or
-freedom.</p>
-
-<p>Here is the abstract for my talk, also available on the
-<a href="https://libreplanet.org/2021/speakers/#4285">LibrePlanet
-2021's speakers</a> page:
-
-<blockquote id="abstract">
-<p>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.</p>
-
-<p>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.</p>
-
-<p>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.</p>
-</blockquote>
-
-<p>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 <a href="https://libreplanet.org/2021/live/">LibrePlanet 2021
-- Live</a> page.  Attendance is gratis (no cost), and you can register
-at <a href="https://u.fsf.org/lp21-sp">https://u.fsf.org/lp21-sp</a>.</p>
-
-<p>Presentation slides:
-<a href="//p.bndl.org/bandali-jami-libreplanet-2021.pdf">pdf</a>
-(<a href="//p.bndl.org/bandali-jami-libreplanet-2021-with-notes.pdf">with notes</a>) |
-<a href="__p/bandali-bib.html#bandali-jami-libreplanet-2021">bib</a><br/>
-
-__latex sources:
-<a href="//p.bndl.org/bandali-jami-libreplanet-2021.tar.gz">tar.gz</a> |
-<a href="//p.bndl.org/bandali-jami-libreplanet-2021.zip">zip</a></p>
-
-<p>I hope to see you around this year's all-online LibrePlanet
-conference this weekend!</p>
-
-<p class="box">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.</p>
-
-define(__copy, `2021')dnl
-include(footer.html)dnl
diff --git a/meta_defs.m4 b/meta_defs.m4
deleted file mode 100644 (file)
index 4ec0a77..0000000
+++ /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&apos;s personal site')dnl
-define(`__latex', `<span class="t-logo">L<sup>a</sup>T<sub>e</sub>X</span>')dnl
-define(`__smly', `<span class="smly">:-)</span>')dnl
-define(`__anc', `<a class="permalink" href="#$1" title="permalink">§</a>')dnl
diff --git a/meta_feed_atom.m4 b/meta_feed_atom.m4
deleted file mode 100644 (file)
index 32af856..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-include(meta_defs.m4)dnl
-<?xml version="1.0" encoding="UTF-8"?>
-<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
-<title>Amin Bandali's Personal Site</title>
-<subtitle>Notes and blog posts by Amin Bandali</subtitle>
-<id>tag:shemshak.org,2020:__p/notes.atom</id>
-<link href="__d`'__p/notes.atom" rel="self" type="application/atom+xml"/>
-<link href="__d`'__p/notes.rss" rel="alternate" type="application/rss+xml" />
-<link href="__d`'__p/" rel="alternate" type="text/html"/>
-<updated>syscmd(date -Iseconds -u | tr -d \\n)</updated>
-define(__feed_atom)dnl
-define(`fordown',`ifelse($#,0,``$0'',`ifelse(eval($2>=$3),1,
-  `pushdef(`$1',$2)$4`'popdef(`$1')$0(`$1',decr($2),$3,`$4')')')')
-fordown(`__i',__latest,eval(__latest-10),`
-  syscmd(m4 -D__feed_atom -D__d=__d -D__p=__p _get(`notes', __i).m4)')
-</feed>
diff --git a/meta_feed_rss.m4 b/meta_feed_rss.m4
deleted file mode 100644 (file)
index 220a517..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-include(meta_defs.m4)dnl
-<?xml version="1.0" encoding="UTF-8" ?>
-<rss version="2.0"
-     xmlns:atom="http://www.w3.org/2005/Atom"
-     xmlns:content="http://purl.org/rss/1.0/modules/content/">
-<channel>
-<title>Amin Bandali's Personal Site</title>
-<description>Notes and blog posts by Amin Bandali</description>
-<link>__d`'__p/</link>
-<lastBuildDate>syscmd(date -uR | tr -d \\n)</lastBuildDate>
-<pubDate>syscmd(date -uR | tr -d \\n)</pubDate>
-<ttl>1800</ttl>
-<atom:link href="__d`'__p/notes.rss" rel="self" type="application/rss+xml" />
-<atom:link href="__d`'__p/notes.atom" rel="alternate" type="application/atom+xml" />
-<atom:link href="__d`'__p/" rel="alternate" type="text/html" />
-define(__feed_rss)dnl
-define(`fordown',`ifelse($#,0,``$0'',`ifelse(eval($2>=$3),1,
-  `pushdef(`$1',$2)$4`'popdef(`$1')$0(`$1',decr($2),$3,`$4')')')')
-fordown(`__i',__latest,eval(__latest-10),`
-  syscmd(m4 -D__feed_rss -D__d=__d -D__p=__p _get(`notes', __i).m4)')
-</channel>
-</rss>
diff --git a/mmath.html b/mmath.html
new file mode 100644 (file)
index 0000000..e187918
--- /dev/null
@@ -0,0 +1,172 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="bandali" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>master of mathematics &mdash; bandali</title>
+<link rel="canonical" href="https://bndl.org/mmath.html" />
+<link rel="alternate" href="bandali-mmath.txt" title="plain text" type="text/plain" />
+<style>
+body {
+  line-height: 1.6;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+details { margin: 1em 0; }
+details summary { cursor: pointer; }
+#copy { font-size: 0.84em; }
+#copy p { padding: 0 2em; }
+blockquote { text-align: justify; }
+.tex {
+  font-family: "Tex Gyre Termes", serif;
+  text-transform: uppercase;
+}
+.tex sub {
+  font-size: 1em;
+  margin-left: -0.1667em;
+  margin-right: -0.125em;
+  vertical-align: -0.5ex;
+}
+.tex sup {
+  font-size: 0.85em;
+  margin-left: -0.36em;
+  margin-right: -0.15em;
+  vertical-align: 0.15em;
+}
+.box {
+  background: #f8f8f8;
+  border: 1px solid #e6e6e6;
+  border-radius: 4px;
+  font-size: 0.95em;
+  padding: 0.6em 0.9em;
+}
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+  .box { background: #1b1d1e; border-color: #373c34; }
+}
+</style>
+</head>
+<body>
+<h1><a href=".">bandali</a>'s master of mathematics</h1>
+
+<p>I graduated from the University of Waterloo with the degree of
+Master of Mathematics in Computer Science in Spring 2020.  My research
+at the <a href="https://watform.uwaterloo.ca">Waterloo Formal Methods</a>
+group focused on formal logic, model checking, and verification; under
+supervision of
+<a href="https://cs.uwaterloo.ca/~nday/">Prof. Nancy Day</a>.</p>
+
+<h2>A Comprehensive Study of Declarative Modelling Languages</h2>
+
+<!-- <p><em>Jump to:</em>
+<a href="#thesis">thesis</a> |
+<a href="#presentation">presentation</a> |
+<a href="#models">models</a></p> -->
+
+<h3 id="thesis">Thesis</h3>
+
+<p>Reference version:
+<a href="https://p.bndl.org/bandali-mmath-thesis.pdf">pdf</a> |
+<a href="bandali-bib.html#bandali2020">bib</a><br/>
+
+<span class="tex">L<sup>a</sup>T<sub>e</sub>X</span> sources:
+<a href="https://p.bndl.org/bandali-mmath-thesis.tar.gz">tar.gz</a> |
+<a href="https://p.bndl.org/bandali-mmath-thesis.zip">zip</a></p>
+
+<details class="box">
+<summary>Abstract</summary>
+<blockquote>
+<p>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.</p>
+
+<p>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<sup>+</sup>, 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.</p>
+
+<p>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.</p>
+</blockquote>
+</details>
+
+<details class="box" open>
+<summary>License</summary>
+<pre>
+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 &lt;<a href="https://www.gnu.org/licenses/">https://www.gnu.org/licenses/</a>&gt;.
+</pre>
+</details>
+
+<p>A copy of the GNU General Public License is available from the
+COPYING file included in both of
+the <span class="tex">L<sup>a</sup>T<sub>e</sub>X</span> source
+archives linked above.</p>
+
+<h3 id="presentation">Presentation</h3>
+
+<p>Reference version:
+pdf (coming soon)<br/>
+<span class="tex">L<sup>a</sup>T<sub>e</sub>X</span> sources:
+tar.gz | zip (coming soon)</p>
+
+<p>This is the presentation I delivered to my supervisor and the
+second readers of my thesis on Jun 30, 2020, as
+<a href="https://cs.uwaterloo.ca/events/masters-thesis-presentation-formal-methods-comprehensive-study-declarative-modelling-languages">announced</a>
+on the Cheriton School of Computer Science website.</p>
+
+<h3 id="models">Models</h3>
+
+<p>Reference version:
+tar.gz | zip (coming soon)</p>
+
+<hr />
+<details id="copy">
+<summary>Copyright &copy; 2020 bandali</summary>
+<p>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.</p>
+</details>
+</body>
+</html>
diff --git a/mmath.m4 b/mmath.m4
deleted file mode 100644 (file)
index eb6d07d..0000000
--- a/mmath.m4
+++ /dev/null
@@ -1,116 +0,0 @@
-dnl -*- html -*-
-define(__title, `Master of Mathematics')dnl
-define(__slug, `mmath')dnl
-include(header.html)dnl
-
-<article>
-<h1>Master of Mathematics</h1>
-
-<p class="justify">I graduated from the University of Waterloo with
-the degree of Master of Mathematics in Computer Science in Spring
-2020.  My research at the <a href="//watform.uwaterloo.ca">Waterloo
-Formal Methods</a> group focused on formal logic, model checking, and
-verification; under supervision of
-<a href="//cs.uwaterloo.ca/~nday/">Prof. Nancy Day</a>.</p>
-
-<h2>A Comprehensive Study of Declarative Modelling Languages</h2>
-dnl
-dnl<p><em>Jump to:</em>
-dnl<a href="#thesis">thesis</a> |
-dnl<a href="#presentation">presentation</a> |
-dnl<a href="#models">models</a></p>
-
-<h3 id="thesis">Thesis</h3>
-
-<p>Reference version:
-<a href="//p.bndl.org/bandali-mmath-thesis.pdf">pdf</a> |
-<a href="__p/bandali-bib.html#bandali2020">bib</a><br/>
-__latex sources:
-<a href="//p.bndl.org/bandali-mmath-thesis.tar.gz">tar.gz</a> |
-<a href="//p.bndl.org/bandali-mmath-thesis.zip">zip</a></p>
-
-<details>
-<summary>Abstract</summary>
-<blockquote id="abstract">
-<p>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.</p>
-
-<p>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<sup>+</sup>, 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.</p>
-
-<p>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.</p>
-</blockquote>
-</details>
-
-<details open>
-<summary>License</summary>
-<pre>
-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 &lt;<a href="https://www.gnu.org/licenses/">https://www.gnu.org/licenses/</a>&gt;.
-</pre>
-</details>
-
-<p>A copy of the GNU General Public License is available
-from <a href="gpl-3.0.html">gpl-3.0.html</a>, as well as in
-the <code>COPYING</code> file included in both of the __latex source
-archives linked above.</p>
-
-<h3 id="presentation">Presentation</h3>
-
-<p>Reference version:
-pdf (coming soon)<br/>
-__latex sources:
-tar.gz | zip (coming soon)</p>
-
-<p>This is the presentation I delivered to my supervisor and the
-second readers of my thesis on Jun 30, 2020, as
-<a href="//cs.uwaterloo.ca/events/masters-thesis-presentation-formal-methods-comprehensive-study-declarative-modelling-languages">announced</a>
-on the Cheriton School of Computer Science website.</p>
-
-<h3 id="models">Models</h3>
-
-<p>Reference version:
-tar.gz | zip (coming soon)</p>
-</article>
-
-define(__copy, `2020')dnl
-include(footer.html)dnl
diff --git a/projects.html b/projects.html
new file mode 100644 (file)
index 0000000..0ec9997
--- /dev/null
@@ -0,0 +1,38 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="bandali" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>projects &mdash; bandali</title>
+<link rel="canonical" href="https://bndl.org/projects.html" />
+<link rel="alternate" href="bandali-projects.txt" title="plain text" type="text/plain" />
+<style>
+body {
+  line-height: 1.6;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+}
+</style>
+</head>
+<body>
+<h1><a href=".">bandali</a>'s projects</h1>
+<p>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.</p>
+
+<p>I'll instead directly refer you to
+my <a href="https://git.shemshak.org/~bandali">public git
+repositories</a> and
+my <a href="https://savannah.gnu.org/users/bandali">Savannah
+profile</a>.</p>
+</body>
+</html>
diff --git a/publications.m4 b/publications.m4
deleted file mode 100644 (file)
index f8f4fab..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-dnl -*- html -*-
-define(__title, `publications')dnl
-define(__slug, `publications')dnl
-include(header.html)dnl
-
-<article id="publications">
-<h1>__title</h1>
-
-include(static/publications-partial.html)
-
-<p class="muted bibtex2html"><em>bibliography generated using
-<a href="//www.lri.fr/~filliatr/bibtex2html/">bibtex2html</a></em></p>
-</article>
-
-include(footer.html)dnl
diff --git a/se212-f19.html b/se212-f19.html
new file mode 100644 (file)
index 0000000..86e7c48
--- /dev/null
@@ -0,0 +1,65 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="author" content="bandali" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>SE 212 Material &mdash; bandali</title>
+<link rel="canonical" href="https://bndl.org/mmath.html" />
+<link rel="alternate" href="bandali-mmath.txt" title="plain text" type="text/plain" />
+<style>
+body {
+  line-height: 1.6;
+  max-width: 37.5em;
+  margin: 0 auto;
+  padding: 0 1em;
+}
+@media (prefers-color-scheme: dark) {
+  body { background: #1c1c1c; color: white; }
+  a:link { color: #acdeff; }
+  a:visited { color: #f8f; }
+  a:active { color: #e00; }
+}
+</style>
+</head>
+<body>
+<h1>Material from SE 212 tutorials</h1>
+
+<p>This page contains slides and other material from
+<a href="https://www.student.cs.uwaterloo.ca/~se212/times.html">SE 212
+tutorials</a> held by <a href="https://bndl.org">me</a> in Fall 2019.
+<del>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 <a href="https://www.student.cs.uwaterloo.ca/~se212/personnel.html">Friday
+office hours</a>.</del></p>
+
+<ul>
+<li>Tutorial 1:
+<ul>
+<li><a href="https://p.bndl.org/se212-t01-101.pdf">TUT 101 slides</a></li>
+<li><a href="https://p.bndl.org/se212-t01-102.pdf">TUT 102 slides</a></li>
+<li><a href="https://p.bndl.org/se212-t01.org">Org beamer sources</a></li>
+</ul>
+</li>
+<li>Tutorial 2:
+<ul>
+<li><a href="https://p.bndl.org/se212-h02q04d-soln.grg">Homework 2
+q04d solution</a></li>
+</ul>
+</li>
+<li>Tutorial 3: —</li>
+<li>Tutorial 4: —</li>
+<li>Tutorial 5:
+<ul>
+<li><a href="https://p.bndl.org/se212-t05.pdf">Slides</a></li>
+<li><a href="https://p.bndl.org/se212-t05.org">Org beamer sources</a></li>
+</ul>
+</li>
+<li>Tutorial 6: —</li>
+<li>Tutorial 7: worked through questions 1–5 of Homework 7</li>
+<li>Tutorial 8: —</li><li>Tutorial 9: —</li>
+<li>Tutorial 10: worked through questions 1–10 of Homework 10</li>
+</ul>
+</body>
+</html>
diff --git a/se212-f19.m4 b/se212-f19.m4
deleted file mode 100644 (file)
index 8553aa6..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-dnl -*- html -*-
-define(__title, `SE 212 Material')dnl
-define(__slug, `se212-f19')dnl
-include(header.html)dnl
-
-<article>
-<h1>Material from SE 212 tutorials</h1>
-<p>This page contains slides and other material from
-<a href="//www.student.cs.uwaterloo.ca/~se212/times.html">SE 212
-tutorials</a> held by me in Fall 2019.  <del>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
-<a href="//www.student.cs.uwaterloo.ca/~se212/personnel.html">Friday
-office hours</a>.</del></p>
-
-<ul>
-<li>Tutorial 1:
-<ul>
-<li><a href="//p.bndl.org/se212-t01-101.pdf">TUT 101 slides</a></li>
-<li><a href="//p.bndl.org/se212-t01-102.pdf">TUT 102 slides</a></li>
-<li><a href="se212-t01.org">Org beamer sources</a></li>
-</ul>
-</li>
-<li>Tutorial 2:
-<ul>
-<li><a href="se212-h02q04d-soln.grg">Homework 2 q04d
-solution</a></li>
-</ul>
-</li>
-<li>Tutorial 3: —</li>
-<li>Tutorial 4: —</li>
-<li>Tutorial 5:
-<ul>
-<li><a href="//p.bndl.org/se212-t05.pdf">Slides</a></li>
-<li><a href="se212-t05.org">Org beamer sources</a></li>
-</ul>
-</li>
-<li>Tutorial 6: —</li>
-<li>Tutorial 7: worked through questions 1–5 of Homework 7</li>
-<li>Tutorial 8: —</li><li>Tutorial 9: —</li>
-<li>Tutorial 10: worked through questions 1–10 of Homework 10</li>
-</ul>
-</article>
-
-include(footer.html)dnl
diff --git a/serve.sh b/serve.sh
new file mode 100755 (executable)
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 (file)
index 0558c36..0000000
+++ /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
-
-<IfModule mod_rewrite.c>
-# since we set Options -MultiViews in ../.htaccess, we now have to
-# explicitly tell apache that files with no extension are actually
-# .html files
-RewriteCond %{REQUEST_FILENAME}.html -f
-RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]
-
-RewriteRule ^fsf-internship/intro$ /~bandali/fsf-internship-intro.html [R]
-</IfModule>
diff --git a/static/GNUmakefile b/static/GNUmakefile
deleted file mode 100644 (file)
index 70ec972..0000000
+++ /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 (file)
index 9a6c65e..0000000
+++ /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 (file)
index 556941a..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-<h1><a href="bandali.bib">bandali.bib</a></h1><a name="bandali-jami-libreplanet-2021"></a><pre>
-@misc{<a href="publications.html#bandali-jami-libreplanet-2021">bandali-jami-libreplanet-2021</a>,
-  author = {Amin Bandali},
-  title = {Jami and how it empowers users},
-  year = 2021,
-  month = {March},
-  howpublished = {Presented at the LibrePlanet 2021 Conference},
-  slides = {<a href="https://p.bndl.org/bandali-jami-libreplanet-2021.pdf">https://p.bndl.org/bandali-jami-libreplanet-2021.pdf</a>},
-  pdf = {https://p.bndl.org/bandali-jami-libreplanet-2021-with-notes.pdf}
-}
-</pre>
-
-<a name="bandali2020"></a><pre>
-@mastersthesis{<a href="publications.html#bandali2020">bandali2020</a>,
-  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 = {<a href="http://hdl.handle.net/10012/16059">http://hdl.handle.net/10012/16059</a>},
-  note = {\url{http://hdl.handle.net/10012/16059} and
-                  \url{https://bndl.org/mmath}},
-  pdf = {https://p.bndl.org/bandali-mmath-thesis.pdf}
-}
-</pre>
-
-<a name="DBLP:conf/re/AbbassiBDS18"></a><pre>
-@inproceedings{<a href="publications.html#DBLP:conf/re/AbbassiBDS18">DBLP:conf/re/AbbassiBDS18</a>,
-  author = {Ali Abbassi and
-               Amin Bandali and
-               Nancy A. Day and
-               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 = {<a href="#DBLP:conf/re/2018modre">DBLP:conf/re/2018modre</a>},
-  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}
-}
-</pre>
-
-<a name="DBLP:conf/re/2018modre"></a><pre>
-@proceedings{<a href="publications.html#DBLP:conf/re/2018modre">DBLP:conf/re/2018modre</a>,
-  editor = {Ana Moreira and
-               Gunter Mussbacher and
-               Jo{\~{a}}o Ara{\'{u}}jo and
-               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 = {<a href="http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=8500723">http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=8500723</a>},
-  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}
-}
-</pre>
-
-<a name="bandali-magic-lassonde-2017"></a><pre>
-@misc{<a href="publications.html#bandali-magic-lassonde-2017">bandali-magic-lassonde-2017</a>,
-  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 = {<a href="https://p.bndl.org/eecs4080-poster.pdf">https://p.bndl.org/eecs4080-poster.pdf</a>}
-}
-</pre>
-
-<a name="bandali-magic-cucsc-2017"></a><pre>
-@misc{<a href="publications.html#bandali-magic-cucsc-2017">bandali-magic-cucsc-2017</a>,
-  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 = {<a href="https://p.bndl.org/cucsc-2017-slides.pdf">https://p.bndl.org/cucsc-2017-slides.pdf</a>}
-}
-</pre>
-
diff --git a/static/bandali-bib-sed.txt b/static/bandali-bib-sed.txt
deleted file mode 100644 (file)
index 64ca551..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# linkify bandali.bib at the top
-s|bandali.bib|<a href="bandali.bib">&</a>|
diff --git a/static/bandali-pubkey.txt b/static/bandali-pubkey.txt
deleted file mode 100644 (file)
index 551889f..0000000
+++ /dev/null
@@ -1,391 +0,0 @@
------BEGIN PGP PUBLIC KEY BLOCK-----
-
-mQINBFvGws8BEACyFkdcw1wRg42V1VBOjG/oWiuODYzRgaG/4U9kJe6RPTh5lY/2
-rSzmPVL5s3i2xSbONH74mzaEc+5tSNUTXUqNHr7PgDSo0mysI49KGep8SywFzBbe
-EEOThMnndQxJlYhWHs2fYayF821rsF+84BwfQYzx/WxaXw2tYSbNlcFqRTvkaoNt
-5oFFgPswOXI51zQ+ieCQs6ccoV/hbhj3R/MkjHF1vhDfmT3tAyxyV20rWaMlIQAf
-oJKxqHwPnsHZkvDJqo/LtofwzHr5fygT8uwqqTU4FaQ5OjTHIpnACF2pFnmxABLx
-Or31Z0UNjzW8ScZlnKizH9fSpHhKUpUyfd5j+IA+LZJ1odY0R10GICreXLeH9nfu
-Fc3ill8U/c2+q6DJBaGXyruAvD1en3APiWMA5+qLfvR2CWg14lBD/+7I1WSUeLzj
-xOajMR2KgxOfJ0JzNV8NFw7Sx9Hn61/y0nxoeMLhuCAW4n4i9/KFbms9iRDk4o6r
-d7eisHNbOxmgyHnDDUmCc+CLqSJNpQz6ROFL0OBHTZdOpwwiFNzhd7r8DqYLw8/C
-CY4yAHD8/h7YRpZ3HySNmanQM9Hmf212V5C2kHwNO2PHdzxx+wz0vW4B7K9KMz8E
-URBwbqXda+1k5mYxCnaRNiuUOHAL2RjDeop/cNPlUCvi7RPIwie9eK7JiQARAQAB
-tB5BbWluIEJhbmRhbGkgPGJhbmRhbGlAZ251Lm9yZz6JAlcEEwEIAEECGwEFCwkI
-BwIGFQoJCAsCBBYCAwECHgECF4ACGQEWIQS+YnNzjmFtbRs6COiiGgICSIFhAwUC
-XnKnmgUJB4VnyAAKCRCiGgICSIFhA/MlD/43wR6iwG6yuWUvwCGvsTHniVjBQK6x
-ftUpbvlxlH92aTXD0VrpVYWygmCdkwuOWCEhKdX3wLHfmBhL4GvB/aAigOQsxvCm
-We4Aa4CI088taE1fFpW576k2v/i2dZeQnlFpLoFoEiz4JND0FO66h3Ch1wGIYPBr
-NIR/sComUpUZN1VQg7VfTYWrZRbX51XV6p64F/JWMooLPoVLxRUuoyJK+maSFu81
-vNxcK2ok4+Fsjx2gFvaE3Z0qIdjedFwRzhE1dAkH8Z8jnWQiCrKHL1/qdCPas6JZ
-X7RWLfdYTjUYQIyhThNn+l/uC/2papedcBPfMJq2nq7YhttpCxrdRrOWYGtcc/2p
-acIob6TeaHBI8ABmg4+ymYUSl3c2yCLAYk8i5ugVg11RjIc8UmJV6wdGyd0dZNsW
-pVWkFYgLkqHeBEG5DAkZ9LE/MTOeB3n9Anv39HJyYB7tMunaap8BvHIiZrukoUvm
-AzSKkbOevxG4O1u+akweIGSwUziWHlzSsc6mAaycazqDGfxMGmNxwNKiWPU1Newe
-BuVishC03fVD8bzlv7jbo86Cd7xHRjbPXcOMSz38ugJ3ms8/GFgieR4P+JOq9ppx
-DZz1Hh2mYR3rSBHaUQKV7wy3W9pIsfo2YZ4YaiHGv/SRbqXCEwZxEdF2a5WnSqM3
-iZpmEVE6/4EY6IkCMwQQAQgAHRYhBM3edfkDU45xgTzaJ9H7o2Yn1lh2BQJbxsoK
-AAoJENH7o2Yn1lh205IP/Ax8eb3ywqO5N9QMQBvnysDq/fbJYG/HQF92yo3vzw/v
-vSkZmtDu5Zl3KxoxFB9Q7InzzcPLop1yhiwc/LQOXQ6JQeb0aV53kTgrwyWXkD2f
-sj0AMMlQiI9ypJNcaadF+PlUKQAoi922QsfwIokrfoiS6ouEF2Vluwn4dLmqf3Aa
-gIeRyRpca+8NW7mufB/l6/KAh7R4Zc8MgcFz+q6f7GPSNgOnkwkotc/o3o7T2lnv
-vjIuGONpNGGsFAh//bwJM75GpBqMblxNre0Ws7rr4T2gooAy36vY9zDvBA9zZdD7
-XOfBpa5hnrDFcZrX1lsivJpHG5CH8tbjhNRfk02BOX/l9ZnWMQlPiHAbY6qZUEHz
-9dmFtAaJBtZIesJzOz3PpsIQK8QO8Quj/t5EDNHrUrY8OC3aTdODBX11/8HWhdhN
-wntEOGSx3X17rXZ56j8wr16BxOMlW9K9kwr1W1YJBqcg1fZHqXh4qFOPl7CxAoaH
-WX8im37Cx5biYQCUBsKLemr5MpawaoocqjqjbN3zdqvjsEMzN9Bg/ggBVzj7BmFR
-jdasn3P1br0v9tRtL5YMS/3bKcVIpYq3Be8hCrXpXfsDuZG3rlME1yu5LhdascFk
-CCO6Snqm1/ovYR14D4I+q/Czgx4zloIhUZfVlGFgFWfFfEq3Nu4QEu6PpkD2Jn2D
-iQJUBBMBCAA+AhsBBQkDwmcABQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEEvmJz
-c45hbW0bOgjoohoCAkiBYQMFAl4f/W0ACgkQohoCAkiBYQMD1Q/9Hxhr7pTQZ5fA
-IqB9yAydcikO0j8vixEKlSjqzcH4fVZWX+skDbmd1lOr3gs948gIHneX2fIUwJTH
-9goIUyWmzBfnWyxMmO+ngiEn68o/QctqyE1WTR+cqFf7m1APxsNoerRw8orhKNhr
-EwXprlDxYvu4JnWEvy7lycBbZw23u9EHTVH7HjlR1jcfU9JWaI4Xg4eOhiKQpUt4
-xYTNn9PHWoR4QvCR7Pxitd7Qy086yxxVZPW1f4bdN8UB6GRisOAMvJvql9rFzK9d
-rgOvhURnrH13PY2pABI53e0XanCkDMdPKGbjMqp43Upw8ac12YuR6Xq/nt/9osHH
-FTbCUU8jsPExiJNCZDmcVf7Ec5Z5dXwU3yNFg6GdrXhDCXqnheXU1uO+OWZRVe7n
-HcRitxO0cVbxE64NyCD5n3+MiEfKSNWr1CxuiBjpnUwfGm3J2+5UZr9bi5rADC/K
-k6SNfw3JSK7VohpzddmqXyhSAiuc6lWn6whvy5z2Dm5NuQhWvU2nybys+2gXpAxc
-AJ/P7WO4UaMla6hbHfhhi8ZsmQN34RqwSKRT+QVLKDErRThMrcFvH3dOffV9Aw7f
-XX0Al7sT6ZUHFWgi1VEdtS/8JQOXVqTMjh1BNXxFW2yIA0IHjal3tFewtybl3whD
-JSxgyyIkBY/Ng5ZAygVY3E8KK8Kkn/eJAjMEEAEIAB0WIQSBW2OYKnn458cnhsR2
-K1e7eEIGrQUCXm2CFAAKCRB2K1e7eEIGratJEACLMPerDj/lG3x9lqVcO8fxSB9Q
-JOgra24yB8LCPSjmGVqdIQp5D2ETJ3To51PLv1pMAhNH72C+FW1j2mntYwQ1srjA
-UH8eric9GLg9tZ0OHxvX2uBVrnYyyAg+VcVN3+5kUeWWisWtLvdeZ2F86DiaLWjz
-vZ5jkSp5ouuGK4ZXR0Tvy3YSIh+GS2vfLKX/GDgfAJmUcegzBbCXygLxU+bSTRI6
-NmsJoPphYtq5t9Bv4RnZ5En0KKKVYv38S613cBtvhtVpt3TdyI4RD52bxTmyb4Bq
-4obtGZbZ5aFoxlgIqH9LMaEzg92JTokmM5K8ar5gO1sxPybMOdCruuYk8FpICMOq
-fvpr1QEmad5a7VAIXArA0jtiM2LJuiH5bZgLi5Qq+4JFs95HHC3BJZ3PaBaf05Po
-fGzrU/JJDdVPIAtXKZipXu8txW9mdMUKH9/kKBOAzF/blkzBgP9Q3BpMDRjRvzC4
-yHyczc+H9TTm4K+w8gHZr5LE5U8RJrV+7JaHnNCoJbsd+/zsgk7IbHtpvn4QQzXq
-MtA28A4ssdIVLn6faVtfAwU6IPgV/7+ccmoLXDoNdu0k5cVyBhvagGGQOK/ACwAU
-KKQq72ErT7neXZOh3BEKDV7uDa1WQutEM5v1Z6aM+KqFUnYltmppq82aL3DjfvVY
-gP8JKb7uACXigKfiDYkCMwQQAQgAHRYhBHoYgH8QCkVwxZaEIH5OZchyC3BrBQJe
-bYIoAAoJEH5OZchyC3BrPvoP/0TIciDundXOgKJcAaLOqBN8L0bfOnTJ61CYyfyo
-3hvLY3+0NFy01vp3ZS4pcYp7NS1mrRa94JCzEdl2xcv38mjHuDEnr0VUhIlwFKwL
-0oQfDEsddJlvrBBcbGQEqb+XspX4gF4gg0DEprRJNX90S5RO5MfeYV2nAIquj3fB
-Blm2wkf5m+I7g5ldvU+e2SY0/B4PgFNPsloM7r69unb7+qYQ7C+z0jLsz46KcDBC
-0sazkBkf1dTw3XNQW6WR9ZtbyapBZu6BbKFaxRnX/hugDw2QGXRx9+5/Mpm1PR6o
-Y7Sx6JfgSBB8xbQ8bZZpI41gcI3kvEFU6eWek0A92l6Px0ib98FBRYeUUe1mjLNZ
-BGFKnJJgQyPnYPrhcvSjQxfmyjxnDfydAO4hVtNRCZEUMma5w4iWw6dTDXBoPaj+
-jix+lYs/ebuZ7jQTp/JCHWZA9HYnNxUvkP8oagAM9NPj65IvHMhlaRTnUFXL2Nfn
-UvON84orypNXD3o2UqiQtk0yzs8PzgwXVJCGf+kqkqkcJXZaqWeQsRV7+y/AOJ3p
-dZdjUG1W+1hrYW/QEmPYtR8L/aOTKe2eWZEPB04CqHnfkIlsxrOD2vKA7PoIQHCy
-Ga3lAPsL1FQL9/p3UYX0IwmOYeKmMxgJDHlrTmG1xVzXCDIP62mWcOjv9/WQpKpu
-OxSptBpBbWluIEJhbmRhbGkgPG1hYkBnbnUub3JnPokCVQQTAQgAPwIbAQYLCQgH
-AwIGFQgCCQoLBBYCAwECHgECF4AWIQS+YnNzjmFtbRs6COiiGgICSIFhAwUCXnKn
-mgUJB4VnyAAKCRCiGgICSIFhA7gnEACx5AVwD8+aSLs1Dh3econKW0TxcpaZeIwx
-jPVLP9qDDnycrCp/2kcUuCLfDWlJEjHsCxu1TqPpZRjny15KVy2Pq/b5qBwT6czA
-fR/YMd4PbxAzSYX8KNqmrzOK7NAyWefBf1r5Vhc6/18EdV0rxdO8MTut+vMtXSZ6
-LxzmM78tWbq/wuSbBhi6cnXWYMAUjKVOxYcSle7cpTm/ETb0puFedBqIJmGZ/U+J
-JpfiGyatNr0+aIwOjHFrLEH0dldrSJjac5SXElCGVYqGjGZxJYZJnXkO9nZ2cvpX
-hZ9jit9x7JCwYFYnNEOy7HgGOybwGAIbJrvSfP+kHoOhO0yyCQbr/F0KNmsRWC6h
-i4bcE4+HGo0/B2AYE8Dg/FiAEGg8KyXQpWHeeAWaSWiran8Qwuj13406yqtRNjEc
-4whMpfvYKG991gCPwH2h+OvMGlcOjDBXHkfR5DNXL5COh8CJnp+wrHGqPxo1zST4
-RpDiXMksl5IeU7u+DnqZMNhu6dqJDcAx+WEyMwCnZ6i2kxkazHlPBxgq+w5h9EqU
-LA9KqmruOC7ypl6NUPEZKl+uaMK1y3qvdG9O0h8wdDqe7CJQThuikJpTIUQhRasW
-CM2IkRnizV9k52SqvHGLCpOBZFIQH2J4/RW55vzKlppqtviX8xvgT774o+V2ZAHS
-+1GR/SpS2IkCWAQTAQgAQgIbAQUJA8JnAAYLCQgHAwIGFQgCCQoLBBYCAwECHgEC
-F4AWIQS+YnNzjmFtbRs6COiiGgICSIFhAwUCXh/9bQIZAQAKCRCiGgICSIFhA+o1
-D/4g6d0gcUwM9ENxZKgsm1z8dXUK3KXfvk3RKIU1MyYBmGjdKmF5WxpilohsL9Dt
-RIbQlAfsaD8D+gaEz/h+H2Bj8vhPibXUNCrSN8h9TNrZd2o9kaOx+GT1ZsKKSVw2
-WG12unKVRoVNC+u5yFEGiMl9hdDwxvZWv5NajnYrHTuCbkofx0SlaYEYD7MjhKrD
-fgXje0aQ/LQFkGS10RBQhq1G9OTjmvWem0K3D8m7vSHdFM3p/rJIrgwDUTso8EJx
-OTQ68lf7/YmIdZEkI/syqnUFp7genrAaEyWDgBgPz855Bzr5cO6tIf3vv1CdAPAK
-wP3uXCGXIV/T/O74zh2qr1l81P2Bl6/zhiIwOuhoiS73CI22OAk0AJMNAQffDVvj
-75s5m7iJJvfwfQJXS2plXfGx8ci1+9GVhl681DLB6KjvvVCcXJhGNusgfjVM/5Y3
-1K42rD5akIE7vybndEFyo0IFEjCAVdW543RN86zNtCSEzRWMB1FnMM/UVrnrpmnr
-nbOs74UtA1SknlSF7V6/P4cjH6Qm6OLiwWWjpYhfTlcN/xK9L2Sf7DfsePPXeNxY
-gBRy2H3NONEcKo+f62DgmV7mtrO9u2vXbN/CdAQx35K5jYAAy1pV4d3x8G5iMlf2
-0xrjOZG3bVbvk6cWlxm4+o3BrreTFDtVdk3gyMU8q48CYokCMwQQAQgAHRYhBIFb
-Y5gqefjnxyeGxHYrV7t4QgatBQJebYILAAoJEHYrV7t4QgatZhsP/3WxGI+GMPJN
-6OmR5JAFWN+zdo88wqKyeWF8wZD9BjVBgBpNh6MvQsXR1iZUMNEfnVJLiSJ9s7bv
-jo0YZWmPtKMUudLgMFi39sXurfinVdq6SZK1jtIf0u6MsRP17tnc8ABSe1zv6qf3
-DS4n7zgj4YMcIExiSe3GvW2SQ7pmTMo+s5lvmtuwn+a6afN52jjJA7ooVzAbXwfJ
-SFH6GeoYYI6nVzSumBV+JsVmQErMA5eqWImvY9y0rmH6joNjIoAlwCQmxZKRTUmX
-Esj8qlQGUm80lwFpvnBU0Fw4e79lQD15ggCLsSNtK83mlfLwutwl8V2wmxPwHQLC
-O0cLvtUJWF9SIyS6HXCT1rqUqOm4KCkzbdHKeAewxNNVPYdE7avYI7OaJlp+U6NJ
-AZyiW0tkXpwWWKBKzG5yy5MoeCt1a5Ujefq4M6/HOR5r/8uq6SjtQ8CPjvIR5oNb
-f/yfy74irWrUMOJ6SPG9mO51dQl8cjNcZy+br/qtpvH3OJsdJL7hiMrriaP4D1qZ
-UGdIGEvm1xF3PBqGfM/lSv5WUTLoICtjv3R1nhirTsnENXCS1qn3ctRkA8d2QbX3
-NcV//YEcp2yKtEl40KCR+EwdbQoQj63pe1CAPLVpIA/agb9/9hJKPzvf23nT16xH
-kVI7MPiCLfMPrxQJypiAUbZvUxsejvLFiQIzBBABCAAdFiEEehiAfxAKRXDFloQg
-fk5lyHILcGsFAl5tgicACgkQfk5lyHILcGvn4w/8CT51xXUDeeoNeJrbk6ROrT7f
-tJ7vK7MlmRhoQdmWRKMjyv6S7eJdFGN8IOIyOJtuBIvZgZUhPG2laQCht2HhU72X
-9vkHDW8O0NBEyn6CLkCA/AzUIoYkGAiQxmGK6ZIKBkDw+JFJSNDsSRIBzLKONDvl
-4JSZ/wkau6M4GnK4peZhdk3hfu+n6813T3lQTl8YETLYptEf/3RdtAbIa04hXidG
-+4f62C20LCuNewFFXsxYT7+Y45oqpOpnUEbpDieQf7IeYYZQlmPd8i0JeRYcvhch
-xHU14TInRo0q9O5NhlB3vzX/PeLAP/mrfczh6QWs+6cpa0CeLUSZIL3MBOkleAws
-fmfG8dtD4AgLKhC7dohRWrQsIBVL/0ZsvNbiDYyAMIAnCLX4xnvG1r/xEOjJbKUq
-Yq5AQivJ+fRE37E0JjP+13cUfoWcZVQSlK5ZxF6iUh1wxTKB1xl4MqoA9+uZXGSp
-bZtBrw724CVcIkar2hYezzYzNmaqNu9gkgu+u/710+WdYLAOQ0q9pafdbbH9hXDU
-Nb1mMusDydNpWpNWYqQlVTZdlDMVAG0vmJkALvPZjmRN+7SszQbXpVWDQODpdInQ
-quj5OPrlYxhg1+HFETcWTNqLAQCCKaPYZd/CMiPjhcEfFBJIErzagB3qFdsbOPAt
-XGokxBhM39JN3nCxYBa0I0FtaW4gQmFuZGFsaSA8YmFuZGFsaUB1d2F0ZXJsb28u
-Y2E+iQJUBBMBCAA+AhsBBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEEvmJzc45h
-bW0bOgjoohoCAkiBYQMFAl5yp5oFCQeFZ8gACgkQohoCAkiBYQOx1xAAr++zyNuQ
-YJzS2b6lbssgA9/XEtngEf14X9ZPS/JH9KAohzI2ebM/isso1bE2dTbeDEo9IUby
-F4m7bwMjblCK8v3QYIwnwHr+usDRjza2ycyKyVDNvnJC1LYRpo7oQvtFku0ZvCCk
-Z8QsDSV+dnAuhBbg0x/9tJH6JfTEfb4su1N6hVoWBe82/purElIkP3BTUYV/YpW2
-VIBGN2j5e0Lm0vezUGzEVwp12KNHvY8Nxq2IlGmaTXJJISdXN6nKpChrIC1dsxmo
-mdS2AOb8NY+az9NL/dAJe/mrqkHBuEg/2Qpcrl3G6lr81MlCMWrC5+gKQdqq+feO
-okjSEdMSiygYag2ndcnCar70r7Wip6E5hooOQUuhKzdnxd9uOsjVz4sXT4StRm+T
-pPUTYvscYQfJoZMKHoBU55WlhDOaEXoasFQ/NxhunXXTfeH1lZyp1s1CgoWtgAk6
-+Gqej2JGo58z4j6fcfZnC7Y8lSyb7pRumoQVSPbp2JrW7v2F1+yiCczifa8fW16q
-OFXR803AH6+e53GJ8MTTqr9g1r2DMF+cX/1be25UqL7N7xaCm5aKkqaOmdheCb2M
-iMbBLAu6u5xpJQB4anyiGU6F5/IbsUjgBMurZYgumL7//lHNhl+d6xBjbU+fqPM/
-uWLdsAIQYEUU6MK/DfwSJker+aVweL/p8PyJAjMEEAEIAB0WIQSBW2OYKnn458cn
-hsR2K1e7eEIGrQUCXm2CFAAKCRB2K1e7eEIGrfiwD/424uDbE1qaQsqDIIJyHWrT
-DBLOkg4DLpEoeqp+vM76FJCy+zv47mfmZj8ybyaU+5eDeDuuOJJwsHHqybi0ULcw
-gBHPxPL6cTgJvuGrOw4wsZ2SGo7O46DIXfW+Ijw9wiebRh5ub3w3nztYtD5cZ+dD
-tfcLN5xcjbgUXHwIJJNBjZ9cbZpQeKS9TgcFJ+EJDItkmCIV1+qS/cYQWEpk2Bdo
-X63F1npnZ4+3uewQJn7BA2FOaHSP6+EyIuqTnU3AA7sAwCcbtt+w1WVj5GpbBQeJ
-YjfgYtiAL4bpG+6/egogo+tg4YYByg/gOCI8SoshZtNTeA0kNiMUXFz144IdzZ3H
-9SHsx4J6KsE3728HVqfKrIDbMnqN7EXKZ4sSrsKa16+RVavf3wDAz8fYDTSyYEdl
-aEcEcSC+WiSnzo83wOy8P7t0rFzr1SxjfL5ZNld+m4U5Ow6D+ya57T+53ZWXTQos
-M+GU+ElgleFuuNmoaupD8a2GOyPdq7k6uT72jthZxiHsfa7tPNgDXmnBTb2FnJX7
-viCVOLTiKXRmJnW9d3Jf+QBmzXSh+/KX1WkbW6lyU88YA0ucL/EaPiSXohbfCEI+
-J4GnTwV7s72hrLY0o2qSwjEUBmCdhrMSaoFIT/nfpui1hoh9svV5ykEI7BXZkhaU
-y6wy3rz1flV7fvwWNTPzMokCMwQQAQgAHRYhBHoYgH8QCkVwxZaEIH5OZchyC3Br
-BQJebYInAAoJEH5OZchyC3BrzCcP/RlF3+WCX8JOHQhptKV/yqWMalcZtYM6JCp+
-hdjNz8Lu+WKRoYOjKVgukxI/jQ17VqLp41yWtL9gOeEtDwDwruPMw2RNIq4tVl+4
-I8Zx+m69zGmIdm1eDOwvC8Z+8jwlxKJ4VrHoWyrZ4cb0TqZuq2S0A1Xb0nha8hOH
-5mTCaY6UA05NnC3cZULMJkcrFw2kpBKHAxGpr8ngB7oni9tfoRkzki5lQ+PLeZj1
-1ioxyfMT6IYZsMhPatO6rR2lU8gYXYQWLiGGYb9BBoRTFvt224Wv2rjE/X4mcbZB
-2W7B7TEWIqNys0VIht3LJj/zyJvoXmwXeU0+33xoJ6s1WTFTq6PX+fJCbKI0m3MW
-J4PZZxl7TkVBF4BCEB1Ka8q1mJ1yhlZDtQ6aDWeCiobjREkRRR1wK/UTlz3PIUti
-/clELagelmKBhgdUBklYnOM0z+9BqDUL9w2xFUvsNMkfXqnAdr7fcyuWWlleM9fu
-+qW5DTvGwEgCUrEz0pY6H8KXNbIqlbg/zum9UColJMZcXGP8FWLXo2+PSfW4W0JY
-XfdG0hV+kvt56AXbfbEHcMAEDpJ1MmbZLcHikEN9HvvRaKc70a/Wny413c6hc2YH
-4bCCQ5OmVs17sfwkjg+eqyvrbgyZ90XJ2yf8s1cLKiSnJUUBdWkYrEHJ2gFfwJOX
-4wTjK8RStCpBbWluIEJhbmRhbGkgPGJhbmRhbGlAY3NjbHViLnV3YXRlcmxvby5j
-YT6JAlQEEwEIAD4CGwEFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQS+YnNzjmFt
-bRs6COiiGgICSIFhAwUCXnKnmgUJB4VnyAAKCRCiGgICSIFhA8XhD/95H2ShWns5
-I2ZVlHrYUO6MxrDsGeukkByuD8pgektg/oE6x48AFeTZTdlsJtiRTNpSVyVJmGfS
-O5NYoQw0mhX1xDYgtMRuT7kUARjyO23BYaRlXWb90QE3tujnjeJjtH4HCEmj4fAv
-ihiNZhDG71JhlTp6AXzXKeMT+tHblb9083quQiKiEPnr2766J5wAxuRs2FHKVwMA
-kowrD3NcGYzfHBrdVlQXCp5jVT307gSQlcr3aRTajtQErAHWM/4ClvneKBY551XV
-AHLU9gd4Rvc2R0G6CapL5z3VihCVBNk4iIRkYLr1fceqYoLAjXTLFVL3xYr+sJLL
-mUCNikeZ1b0utubveXilPqMibrLQI4gsTj3KqJDAbexmik8yFkSyqyQodXOp5d0U
-vSe9/+wd3sIMnns7PptZDqDI2gj4irbZP0/Er6/ta9TanfNL0t+6tL04uiou9svf
-jq9TSjmDX8H/Q0FOxSqlv+iOdmOq2L7aRMU/Nr5NEjs1QktTcYyFHBLm0D4LG1Oj
-JmTV2SYPIGk4AlwteDVkKi+qnROvvMfp10tYq8vIOSQbJ9u/ihh+oygIkJrds4YI
-7M2C3Ni7SxKAPP08zu7W0O1Neep7LxMoy7bAavMVALlL+Eibba3QmYPJyQSkq39X
-hRRM2HvEeAKgF+HsKWgST7NGaDVP94QiH4kCMwQQAQgAHRYhBIFbY5gqefjnxyeG
-xHYrV7t4QgatBQJebYIUAAoJEHYrV7t4Qgat8NkP/02tGDpBUWSwytT0eajQWaaf
-Dc6v1iFZLlY05Uj2+AeB9Rm02Zu/zs0lpbvR+Z8TET5BuJpXIJ1nsBrgXBCv41bL
-D4cLB1cSlykl0KUnAPvgqd6I+W4sbxGOi9xmfvzzKRcMmAHY/VbiwHHPjLcu1AgF
-FAf4lCCkQT38Tc4VzQsOwQd1nFBEgWkkDsDFRuBkUcTAtAzm+83sEKOXTMxfYhAt
-//mF+aaVsuq0MzcBMC7wyxug40aS8vZ2Vhk476IK14vfIORGATK0TKNQYrmWp3dj
-irxHuYNq6NrMlj0ZJodgUUfiiRnxRKUgPdUNBWsxt8GCcgktE6NIGoR48qI4Bquf
-d8sqFA76xd5KdKguccEbVEWAcIaJxLSuuYrJi/FNtv+8D2oHtlyFXoL73DSNNbjh
-kGCFnCs+rqtn3jQgpc5agiu7idIeP0VU+dvXxne8ORLZWrpLk4yNuCM0ACBMjDzx
-OCCiNtJNT56Fr4rowRA7RaXIdwKRrNH/rnvi1HVrR6sCCy/1+HZ/fLB0zGMfJdnB
-u9BO7+4UlMKrRB1zuR6D9A4kK6YfkkehvHtxJVf4Wq5sMINP9X+3AAYsLl4R9wam
-qAjDrW/24vxVLLmypsrJg/3NoULaNw8Ursf6SAllaweNXCh6/0TbY/73C3BnaO3u
-y8diVhV/jjQFEhbKeXsAiQIzBBABCAAdFiEEehiAfxAKRXDFloQgfk5lyHILcGsF
-Al5tgicACgkQfk5lyHILcGupGBAAjqw0PlMFQH6J9iqJrHM6+rq8wRFmfhhm7uo3
-n2u2paM2+L/rMdhPwgFLgDpkMp7q74cae+5dSEmI9+Xcfc7aw8uLHMfChw+bGN0o
-CoL43s9MbDV324SNmSP+4WK3biGSK6in85xfPYR+u6dg1sVMRTZxev9IpcR8U3Fs
-ZOCXFaoWSZMxCEbBqoM4COk3DPle2PveAalwTxrS/Q98W9C0X7tRNPSEG6ynrCq+
-wvlaykjjbnSdAd56KL7ynPnBly+lu+l4Ey2/H+09EQ+7WzvN+E7jWp2cyTQ8NVQ8
-RU/fZsqJLzwAOHzJCZj5cOouGRYWgxte9q5pFPsDv01wVzXITjFCJt1JNz3tR8lS
-Bwc/2X8TqNgdtHGM/hG78HVkGzHzX/shMMKEvv3tP1cUU023aN1zXP8xM+cTtcp8
-jnyZULyqR6QVCbZhHbIQajpD8KL63Ay7htuERW9tKDqePEL9UGyMF3sY9uOFp08f
-8ebE9iqpgMUQOVtppyOp/+0dAAvyuEC9FepHHTRTUV9kVXb+n56lUxHfZaerrwV+
-Bf1/BycTBS6RHH2v86pX9KlXOMkEiVJiHjq0UGagbmLM1STIPls+Jj2jS1Pf+V6a
-oNNHm5J1np56UUnHarUpeVF+V+EFP+pOtjZt0WDkXQIvAK8Y6XA+Gghl08j6mHTG
-pyxlYkC0IEFtaW4gQmFuZGFsaSA8YW1pbkBzaGVtc2hhay5vcmc+iQJVBBMBCAA/
-AhsBBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgBYhBL5ic3OOYW1tGzoI6KIaAgJI
-gWEDBQJecqeaBQkHhWfIAAoJEKIaAgJIgWED0HEP/3Pvi52kd1XfjRJA927nh86t
-K3Uyo4ZESTZyElQJXcuwUCDnDu4mmTjJeOtMa4LSibaQsPCg5PStxx8RTWEhwPIe
-w0gMNOW3mM5IruwAb5Ag57TrfAWvOvtkDSW8wuoOQC9qTaoffvccttNGMIUztGMU
-kXXEksCWEEO51Yjdi1RhbpZ2uoTH/6QEck9WvtC6KMDLxj/3JWzXIn9pFlY/235H
-r5x56O1T3Pum3mm25IbozXOH0ajiqx5Hl+OvZ/2ef0/HKNhaCWnrBjsbF9/eFLZx
-Upf8VFnd3Y0/1rlJ+O+WMfaAPu6K8wFlgd1HgbXI8raFQx+NpONxj0OeuqWSQK2E
-6JNWQ2PrKpdZ6WzHjIaZi9znHCHLqQxrQ0ffH4izrukqFSeHgEvELH3U08tkVKEz
-fTiZj1lKs0XuSNITzNKSfLE1KtJKUaOopPqHZahAksT5nYgvN1tKaSnBUNwzv6rj
-RJBVmDZqB3ayVbw68ahc2w2d1SPUgg/GimDKsVaoNA2UI4/JomEgjkhUUH81T9bL
-4Gcw4NqWiAztE95xmR478u1+7SrMicj5IPfIhuf/JuXu9L/JGCRGEY5Ltr5/Xlu/
-oms/OVLXMIfWNub+uYZYdP3CBUpU/Hk3S6c3hR0AXBAtcx+fjD+FshqUQbg9I0uT
-tEOPOy/oZyvYnsuHzGoiiQIzBBABCAAdFiEEgVtjmCp5+OfHJ4bEditXu3hCBq0F
-Al5tghQACgkQditXu3hCBq3Y8g/7B+HNrNIg75/lI8chGspgYmGOPew2R7HbIFZ4
-/b9LpkeVhyw38qUfEmx49pya5Xmc1vdCvzd7o/eYtXnOhTorFt0RNI3MKqoJME6/
-Z63t7kzXPt8wbfJqjzOjxdW8SEyVSbwNsSAEIYY0Iy7DOq9Ahi55luZxHop4rZ+e
-R3j9tN2HdWPr2WZ2HOGysRS5nOtt8mrS14jJLRIpBkfNM9mPxkJzU+FMvGFieBkt
-7ghulT8FbAGN66JGNsOqn2HFSgM52iSJ9Ab7zSC7VNTNrZ34RV34BrRNs92/+HDC
-PqVS0tj23IWshiJIngqlU0NRidPTKx0/1crIz7j8vidVqWiHtChDu4Ot1Hhxuyz8
-VaEPKJaxsiMcyC2EUUfMYB2LNKFqyJNJ3PQM3HN40SjUowmzTBtJ4fABmiP25KMa
-+o5pmKA339Fp4QbyO5qwtW9iPTjLYP/Y5cdu/2DZOnV2MWpEBNmXrTt1kG+iBCQ6
-1BRl2Yha2h/2Jjawas799tIcuiDP+swwPBkvGwpIxnJ+nJKjtkDZqM1M0Dq253QX
-Kqd2/8O/zgfz45yHIxxV/KPCji+jHOl2HD9baFuAlf2lQKk6/+6F8tOC9tZDJHbR
-4z3fYoapUDTKzNT5IR6M4jGFSgh++n0BFCPie4p/JyZcFaDatPWvO4lw+yFYRrP5
-AFZevT+JAjMEEAEIAB0WIQR6GIB/EApFcMWWhCB+TmXIcgtwawUCXm2CKAAKCRB+
-TmXIcgtwa73/D/4tj9+Q3bvaX+dIYR028kHT1eeKDgWPAXbrezsB43NIZioTXCXU
-R4/wwvjVP4SrQJ2dkIdDcfkknbulNRmXhsdNySDEo6L9OwSTKVXwNTnPfbUJUz0B
-q0d458xpGCnDs8jOpqlcJj4n4PXtJiaBBuWaMPEI/UGUvn8NontK+nPpWB0Po8tu
-H9e7t0TiLZrR6dEbIiT0JWMCTzS9ycnz0M6ru12ZymQO/K6eMKoGWlaMC4hpVrtu
-h5raSnYYptHO8EC6uk2hYFRz2HJCujAwZ7EJmYEw9M0ENa1NpYPa0eKOGtrae488
-IGSnfovVNCrMX/2uXISGP2ol4fAejDQ9GpByUzQp8Slqq8377EC+URR+MVDZNlUH
-3b6OFuBajd9iCjImjYyauHaf/WJJwj7Tz8tHHRwQX0mdRgcEbosLQDgP0TcZMMyP
-atPDcVurHA22uGu4toRP9F1bDIIUupZp4HP72EUL/pco48aUuE2wC32xttNk4DR5
-Azg/Me4mDfsKEJagRM1MEHxIvofuhYir76KKn9t6HnYjqGzGrOS/ebH4KUabw2Gp
-REYtF5eok7oUFU/pnOpKUpGYz6cUscZZsE1k4af/s9x2sipe4By0UruGQlArpnb6
-ZIGJiEQPqW077SpnrOX6NxMfn3rz/tKbVrxIEEd3LfxtPpEvpJYc9gGAarQkQW1p
-biBCYW5kYWxpIDxhYmFuZGFsaUB1d2F0ZXJsb28uY2E+iQJVBBMBCAA/AhsBBgsJ
-CAcDAgYVCAIJCgsEFgIDAQIeAQIXgBYhBL5ic3OOYW1tGzoI6KIaAgJIgWEDBQJe
-cqeaBQkHhWfIAAoJEKIaAgJIgWEDMtAP/RSA33k9RfFy0QjWjYs8aoqIWold/Y55
-HA11Jn2WxQFRzQCS/zDeNdSIZHyYdLEMQCi8tuQj9rz0ZE7uu8N0T/o9dq19MriB
-1ndOPeVLk+4OanDtwtzhTUYmj9b8GNI5aNwyeertZnr9EQ5gz8Wo/gcNLG4/aKw0
-l6vfob9PuXLh/+uw3N9wTPq+7RckOKDWL3X2yIbGSP5uGhrcFt6j0LMyEzjAFd2p
-3aSViZ1FsFvWAgJWQWZFMzWGpbi5BZs4CKeQghVoZs5yZhZhUwGoD3/RdtD/rs0Y
-HbtO3UOMYH1ZO9LBdzbsqmnm/3Y9bxMPGk5OMfGCmzRvnonJP+f5JrnNihNvg2oi
-A2xSoLCx8IKbXwPPdzYd/yRmUKieqj4ffwM1b5Z9kL2j4PFOQMXUcUPizXWmP/+z
-3wPbF8eo+EysF0WEsj5p0IjnnNsNAABNc8zxEJgbDDZbU2m+vtFgLRIt6W0w7s62
-jaTqAAt2Zx42wEXg559MJI1weILb65s3Mb5erKSpn6NEDcq/98sBbmiPe4Okcgic
-cYZERvgMhtGOiqxAbCjavL61lIEMckBi0EIpPjEtHjkRc/5iHPGPSM0EgZTvWdxh
-e0sUX5SoZuhz9nMNqvGZtKMWVBa6kHbK63g8U36FL7rA+zBOj904wcE0adedASzq
-t6bqo7PmSTW1iQIzBBABCAAdFiEEgVtjmCp5+OfHJ4bEditXu3hCBq0FAl5tghUA
-CgkQditXu3hCBq0Byg//X1qtS9mqPpFa1uCocTN6Fa5YUcZfVcwIW3Dsp2JHVjJe
-4oTHTmJa0nQ03CtgRMMxhZQ9pFBhVUPJCAWuMh7M5jBThEvG69fQsBhPuZ1hdcj5
-FnMrsabqesL96H/cidBWaYk/QH3WZZQAq1IehkmvlVGt/iarrOdUCiktmJSpzwS3
-yiMEo7TE8jvKzLieKM/qmOwQqd2L/DYVbUsNdb3MbUXhQs9HvOKeEO4uza4off08
-oGIsToZc6xzI+4jRDL/ew/YFf5TyFSFlt4I7ZcCYrd39dk8Xn4T8QGOkZwVKxiro
-D1T1nzdlUs37MYCTix7xSI0SVdcQeuAOo0HvrkuYtis8vwFyzXL36JmIwQ0Aknvz
-o4Wyzd44Gf2gYdwfcaOs9mdbrhkotb0KIF91SuxyP+VReVoauqfqVYzxVLcE1/CX
-9hAzNNwqBwKCrXa+3UEfSd0qlJbANBbWsTnP1d70KJRROaQtpxsq8gm+2k3pghmG
-d3rkGwB6UiguyA0lbO1SPnmFUz0/rKSXmMX+2Xhg4hwKQqpy/89pTV+OQij4B2ld
-d+0IC1iy8FhsZCH/MQCtmoLNJ+UO9yz09ncj83J4QDerIqYwxMGpoK+JW2QJM0KC
-GCqPXeGqNuoPYxfEnhR9DzzycmBjSsUhlWmymWE06TyOlILWWiqZkZbIWJsBli6J
-AjMEEAEIAB0WIQR6GIB/EApFcMWWhCB+TmXIcgtwawUCXm2CKAAKCRB+TmXIcgtw
-a7amEACX8HQPXpd5+sDQv6uBn0RQ/7YON0J4eTwQMi+yyfC+O33wEPjEIC9mpxh2
-yiAF6VHfvI/f1rsaX9QmraeWah7/zwk8E8m9l22+SDUx0q0R9xWWlDkNvpK56ELN
-IgVx2GfbZbhbtEBkd4/28ltDGPO5xeQ78t6xFwYmVwPCu1Zl3ah9Xq4BrUCbkfGh
-1+dj+7PJFyP+tAHCrU4wKSpLyr0W79liRQLMxMfCztOnFiZO1eEbEMsPm/X1tp3r
-A9X0o0wrFQ10Dbo1vxuLcKi+jcIJNKqY/3YmcLlZz7dIuOzGtIu9Z18HQlgRF96d
-E324Ee8COl1/rBB6U0JFsbOtPOY4cCK8F7HXub7u8DjIDQzf5preAqeskJKg5nny
-VrfMEhZN1wGQyRXfDzKoy/qTgMFigX6WGHrihsufnbuyC9W7V5WP5XliyLnphxnT
-pV0F/+6r1m36dM2KjtiBLEfOr5S/1G0cwXXupWpoic6cZsyfcz8auhM+Cg7sb5Nk
-9eO2ex8Dcyvu6KIdruLfddwzk6DpxpXlDF8+lYQCKc2CTx/DvsF51qJzzDY6uBSQ
-ENirhgXT58D0fRYULaDzG0fudobKcbGUTwWZBfaBSgadtnwlAJqhQBO7LPegAMpB
-VNPSBaEay3d6lVq1mk2JJd/HGV5YEPpC9pVq8Lq94hFQwtNfvrQrQW1pbiBCYW5k
-YWxpIDxhYmFuZGFsaUBjc2NsdWIudXdhdGVybG9vLmNhPokCVQQTAQgAPwIbAQYL
-CQgHAwIGFQgCCQoLBBYCAwECHgECF4AWIQS+YnNzjmFtbRs6COiiGgICSIFhAwUC
-XnKnmwUJB4VnyAAKCRCiGgICSIFhAxw2EACeupp+fSgZ03AmDt2GkOGGIIESH01T
-2L1u8bJ005+uB4rvscGlM/a0ERSQqHH+tX2C6o6eTYUMBDpksld0r8oyP8bF4vXw
-ECHpenIgUdWl9pqPr5mVX2uZu32xmMWgmkv6xUahdeps0SbolCkIOmJ1A+qkpo4S
-qOTTLcdbthA48rIdl0BKApGEjfJTl59F3i1yzjqmZtG4U85q3xTVdWNFRBNAX0o+
-UDnmW7y4vrX+Ya+N/YxbKv1khzjfUP/Ap2UZ1BedTqcFWJiJrHzzKuDcSzTiiAbr
-0euHVGgo83V26GyTrL5/2zp5/0rUrViqWg//e5NzPp3AOOtOYOrHDIUNCr/lE6NA
-H+puq7RdThd/AO9PGjxGsjyz30S0z0JmjaSObl9MpsmLK5qUco1XHFyBOVkLCyw/
-XdkGh1D++q5Gth1RvBlLLltLUTHHMi2Iad+teRMFSeG5KsM5kYTjszrMSyF03rQo
-EunK5EZsDeMn5XMu33fk9dPCQUniwPvHuWHRopNQtK0lTVBSL96VHofHIb95zCRF
-OyvcuRpFLjMHycalHAKR0nnKjAqO8HL3LeL1NNFhqprb2cLYNRNWCEm1OGwsZBzX
-gfDHJWLlV3zX1mWhNMEzlUy1ZNoyZatUaCFroZmNP1IDM9OYeg6ISowr5YeTS8rD
-PcgJwl2w6wTkuYkCMwQQAQgAHRYhBIFbY5gqefjnxyeGxHYrV7t4QgatBQJebYIV
-AAoJEHYrV7t4QgatwXoP+waPhgf70IMsI6VvaW+prnT4/e5k8kA5Z153TZL/BLsl
-X/KDYS0Qi+DTZn1va2OO51sAyJliyE6hpOhHCwYMORMoSy6yT3rgYOLE/SygwjuL
-E9XNkVhcmYZE8nNCbuMUMA/r9SxL63TrcTE2kYHA5/Gxp+4y3v5Csz1VonW3I7Qt
-nXkhSOI9sXNCVphSPqMfM93tgq+DciIKkamamDtm0kWTRsHz453JTOgUtFSeEqTQ
-9q1SDcEgWm/h/E7gfFmmF7WRFVQkGvxH2l65QqqE5W4ZSQSPg1kuCAIz6iCSXx5b
-fDnK/cwd2yReLFQnOPxL2AnkjCoXpC7jlTesCSFzDPF05bQzib8HkPEpmvLsoG/4
-DYLOZAkfCVhAJ0lJPP64DTODiIqpSTBCcwMIsHo/7yGwtDqAAqeF2mVYLmQUnGy9
-oWzDdTDr/PSi83nfdF5Lis4JaXrv1yeHA+11x807W7LyXrpEf3dNGo8r/SAKdHeQ
-jiOiIXCep3F+POpQumtVNhwXgNJsu+rir+QJb4KszlwVzc3w9UHk8OjaoTG6MWOs
-PcfGHgwJ6Sc+nrFs3EE/BbMoIWy2AhDHonoB6m7TL/fEQ4zv4WDnBkmxFxhzJ1e0
-e/ol2mBo7/nGaGfO1uZmKy32a40Hkui1mQpL/tSGuQWLYq/k0/Qgym839t80wsV4
-iQIzBBABCAAdFiEEehiAfxAKRXDFloQgfk5lyHILcGsFAl5tgigACgkQfk5lyHIL
-cGuGvhAAise3CoUeT+0f289J8oGSshYldHvtkbac9WPQZQ16D+uxwHmrJ35Z9Eqw
-aKjlE05eX0c/Z6+ap3HLZ3AffF1iJ9VSrqLJ2UkSeXFHCo/aGq4s76bh0MYSWwOs
-5aVsyuVFG0JEhrm0R11ZG9eGArKhlX+kdITT/OHmPqr/xSYJMFlSv7yL7vsGrFyr
-IS1rmjRBHuLjIotGWreCQ1LETn7mcQkuSvvmxb2OmUraXBChtRg1sBlKX+OT9caP
-B7vIr3SzaM9B5JcpJAjwD1DmmUtI71xPwDXWrSksf+gQtjbiSG9PXuAGF5wRzzFa
-yCEYkMm88pyDa6BJAU5FJnOqWkKVFlsKig0C10c987+95ClEWmpekGF+oGMgGlQS
-VkiL6e42Rgb85L9YsqPFZOmMLLnWONo2aklKcY9+ZeT/noyASFxolsNSsymI1vMO
-J8HnYbHGIsnRYAVNuZ4B+luxywhAy6UeI2g7Npt46Q3FJHAmw43Nt/c9zkP1J0s5
-UUaoGxvGjahavQPDryvexFrW9jKOOCzP+QMnpL+HwylaGx5TVz5yDQmrxiFlCwc6
-CM3I4lBYgZfy1QE+SSPFaZZKNvF9QQNWoU4sO5rPgAtTcStbS2SrjyslZk9qC0oe
-D7b76ell+IG3tqzlhn+W2IkuV0q98RIFqzrJy8LQNz+jcfGRGpy5Ag0EW8bG6gEQ
-AKVanEC1p1QqALDGRVkaeNnrd1RO08OzlN0sRyBvCpyGUbZjuKLu+N1l29bnOL0E
-KpQcoPyM2meiR1W62y7s589OG2GyPD+whTkzsLdpAR6QnaHVBa3weKP18X9dGVqh
-k+knRLbKqv9/Jyy5R7NDEdh5IbbExsIWnb4AAFNaYCqsAyUeKLVWGQ4BnMzuB8Ni
-Sg4oKHMeACoFGSXQCwWmHaTRCg6PCgv7u7/RIwRcf5YqaiX02BabBRvJkZvsP2c0
-xK2nga5kN1JhonTN/aCxVaTDyFe0Eun7gb2K/7docx1j9Hek48lukRHy26yj1/ib
-OXf6+5OnHR6eJU8nOLjvJ9euyQZ5pl0uZwMFJFi/o+rKki5HpINNJz+ixbK8b6UH
-IXOZvtnwWIER3x2UiP2thTxIF8Hohp0BmcIWiFWfR0t+tj61gKnkz0FYvsyI0eHe
-USB3VUSa23tmknD953V+3Fq10Y0LgksEp4OweW+sBsZGmUdhEBm0FgB+2hOePKWw
-KutbLYNVffMuPSgvWEt/7zP9BLQDI6/lPCTUaKTeWYad3jGwhkPwIeVP6Li26oee
-K4wSRkcft9CZ4e2Vpst9x6eT+TBpg9Lvd75zvrtLOC8HVOt/OHOI0X9PS5qUnoYG
-zg93awl2/im733gaCKZKUEkb18c/d6srAJZhwFetKvwTABEBAAGJBHIEGAEIACYC
-GwIWIQS+YnNzjmFtbRs6COiiGgICSIFhAwUCXnKntAUJB4VjmAJAwXQgBBkBCAAd
-FiEEObM8jZRIDS3cwqSYi0Sgzce5VvIFAlvGxuoACgkQi0Sgzce5VvJRlw/9EKaG
-1PiWrKugCmliKP4e2vmFpc9dE8zXNZ5ja4eqhfOxcvq3nUgovXMcpWr5C8M+W1Rr
-M//5VPzc1cQYWs30EfqfvSseNU4JTzS6quLCKQaSAZ3u0qUeLvuTJ7rH2qV09CnD
-nrgUEKmf5Q5ZteWnighmtjybQ4xIfifYzYEI9hrGsKd8vdgEBh3mbwAdOZdEDcz6
-0Apv21S0Q9rgrD3Pr8oQ/6+2NgDQStTP5Z2zxM3YUkHi5j1iJTBs4MXUhntyQ2lL
-TFKfyYqQ3CABqiX2g/dsVVXT0sFcAu9vjFOKLbHUG8ijujlceEvqgigkZH8k2Ohd
-gINfA2TYs8nrkxL38n5v0xIZ47TSwoF7dd/dZf2XccaiKLj/UqtRqPJxvWb712L3
-vETzCuAQTrut9TAWWs6prtvH2yROSNPF7uoMXyx2JZkBp6o5WNAstV+c6rm1lOkH
-P9aSUJiXBdXScweIlWEv8ZyZCvnD1xdaF4lOErQfsaj2aZnKguANf3I1anO+J4Ku
-dbvSUhFNd2Zs07wr4nozkAI+F3Zm9Dm1llwTkCdP7JeXY+Sw4A7b17P+4SIiXAHo
-cQyOB/amtA0RnCLNy+hOcvQWBjEz/t/Mw7zv8HGgs3TaFA4HAvzmq+bCvEAQqO0n
-0VRhGsspI48+9oosrkhfWDc2/09z3n9bTn2twr4JEKIaAgJIgWEDwDYP+QFYpWHF
-QEv9d0BQiotnWdvtKVphbMLw/DNZO6o4HOl+57ilmq5pb/NhdXhLRsTsbSHZVVqr
-1fYK1Gb/wxSX+OhvWSWMPPM8+lfi6PPFAfC2QnIn2i5aUvSPArSpYTf61qSJ9c1O
-U7YxhOwsV5StvjUNLrUJkNGkPRUhvahcj77xrxcC3psvIS6eEIwrjDVTBL24/G9R
-BcrUDb3nsnYqduLlsv5HCEG0fNeaIbch/5+C2muY1NfU5DzofdvJ8usnmF3nCM5Z
-SLV4OFOYUYXXzYwrLSU9qgizp81hZo42fp2z3pouW9Uh097E7pe6znwVKe9ucPoC
-ufShVPlFWf1M2iEwhN8mN3TC0QBQDhgdSgcRY0v4GOfZaZFr4IUFDPQOA/jCXEdm
-fTirlbeJR2liOe4MOZ7IPFfePu6w4fXnT1m9OhcnBoJz4XI2BjsvlXwZ5tqv8gf8
-o7I6DcqAVjdqBHikJNvMenIZvF00anJ6bj/2hwZVP0IKLr023Pgm0cO3MNDrjVBV
-6oQvgq0wntuOFBYZajYnsGvoEb4KZ8S6ry36o4nQEPS4aWaSi0/BNQldYr+dKdrm
-kwoCttqPXOxpM515swytj/qNn2rgMfCtOUCnmSHBOBPLCN1ZRT/ZHHZd/zw+HNby
-n0kWRkUUq3sDlFtjq3f3VRDX7HKA72DN1HBkuQINBFvGxz8BEADkqTbsfu2TN/Q1
-37Uqn3YWwqCarZjDvdiQoFoFAd+sDVEID8K3NJ8zZnx/rgBXJsGqVsNnhfvCCotQ
-sJpB+/ZFYNsZoEFcSM6E4XuJDr2UV+6KXCYUW4oNwgWdGAsAXwyDNhpxp9e/9q7w
-5UhEaHoZFPp7XkoOV1/4XtJpDXDSoR63O1YZen5wdQR1s97bMqz7qyfmQYc3jSzX
-cAzRHtb7TSZPr6z7HqPJRjh2aMMzTLxINECQe/PLRTuk7lyOMRLpG+dTpiS+9A3V
-q0zNrT1DEO306Nzy+JtR60xeT5CKT2dy2Lz+UUM4ttn9J0WH9UvqDHRMdLn8JtUK
-8oHdnR/60aXCpWlNLCFXUwhKftjrZuy+cQg3U2vO+6ebL5ZGTqQ8Ss8oFdufVfxw
-pR9G5K4R2srbRqeq8cnI5+S60YP97rIBXh8Nn+BEqrbMMe7arlrc0Zv0F/Ry8utE
-uSgf8dTmoHRs49RD7A79q/zn9NbRuJX/ctt/RWnpdsK88vczTcXhAF4wm9UrgJXc
-1fga4HVrdmLMOtiYkT2v3RpA6sFuotgIkqm86fIe5s0bx75Y8EotfTiXXqnv9tmL
-fAP84Vxp2j2x4w9Ixp0aXamNlFIw05AHKaHv+2ap8jC3hcHvn7oGxbEh6wHPv+Ec
-RYbY62CuqUpPKozvEGyODLjBiWFSoQARAQABiQI8BBgBCAAmAhsMFiEEvmJzc45h
-bW0bOgjoohoCAkiBYQMFAl5yp7UFCQeFY0MACgkQohoCAkiBYQPCBRAAghc8O3Ok
-//tLzfgHAaXYaoT+LWWx9LCXtYGfknsY36hBLRWfwPoz7vncE2WAfRCUsN+SKaAW
-KDmXty6brzZ4fl7Wba4fxtY6rLKvKcL1uyehWyrcM/iiLW1RawLsdHVg/hbEAd0L
-qu+zSRNNcGahOngoFcxZigpflFOsssAJIqTxaMyFRMJqdxU9e6PiAk47pYaUQB9H
-h3BRSIbpIEBWeSFIVbvW6Z7J6RAOcCA0EQuFwu9smD7wJXtbv3v3PNN6osBb2Jqf
-PP3E1/mCdb4xWjeCZrz45gOTcsB+52j/yHrOQuzZRoEzdLfy5W0ImvgIX76BuIui
-uSaSSM9GvL/RLbdjCDV4ysICGIpkZeXq/ylir8RstBL3pFVDtr/Mg40RhKQIKHRk
-HiEDxpMVhTrWIPtqNZARLowW6ZRl/hoVVKyqLVxe+9O3bzj79onzb5vdZFQHsAlY
-mO5f8Ru9M7g0/gV/PVdh63ih4Y2EwvonSGRyHhWijdp4KDrJmc3OeCc6jZ/6oOJ7
-6DEl2BfHoKYLOqiLaD3xGVpmMNpaqgDFByybi0lTBnlTt2CNxeJy3vHE1fGHfOhE
-KN8S0d9k/7pH1w8+e/VKmRomDTDb7KfUT5Y2dbz6b4Pzap7xec175waa2l7eOGP3
-MGmzVKE9jgxMeBctdNxdF/M6ECDJxw5D/z65Ag0EW8bIBAEQAL9klJwDB7GT9gwv
-OATDRfd2NEL0DV2YoD7xdAqHec9XTk3zaCt3WlPomaEWAxmMkl/77liTI1x91UU6
-n2b2vRry1D9sbw5k508oyjs6DFD5JReLylFu4C+/Zq6tgskWvAV8eeuZfo5QRV+M
-/CB+ys41/zazSwTYcdUgZ/61hagXh1JReL93e8+XrJMokfcuMWISFtWwtF8fJmr5
-9rzRWz1OJZ6/k0K+J8VEXDUF7OnXTXOv4tH1flh14YI/EuEWglk4l6rkpwMGHIVG
-13D3oIsGWJgtOYaSOuMQaLpjYUKh/Er5GYt8JiLDg+iIrEHwrsGIVL+uLFeDHbVK
-tkDx97SJe8mjpUoXP2riJoUTOaXgYlqUioZu3U93FUTXVHK7+W9vBWO+Ck9WFv2B
-0HnVSWvvjlTBog/GRUAFIL50gJwaRm09fYLUCREy3Ik802DkwKY0jBTk+USHHeIZ
-EMbdlcsVuBcYnXoxviOV856J2E5XujLJVrCyrdQrNVeXzXNSGckNo5CFD3FpZ8jY
-QkAfYKO3dSCkdai2cV8TC7W6sT5gdKWIkRjOVzk8dA0eR8wfPBVMSPEdZhIfhJxn
-B93pB4sYxPT+1lxuyafbxnWlcoHufb5UHgWmlpZrmZIUw6fmaOMqKC9HlI6rZ/ID
-Se7H82Yp0ruzFui/BF24Gh1scg6NABEBAAGJAjwEGAEIACYCGyAWIQS+YnNzjmFt
-bRs6COiiGgICSIFhAwUCXnKntQUJB4VifgAKCRCiGgICSIFhAyskD/4mlxSNsQBq
-lrGQG9PUy3q0OB+QZfxFbmkHoKEc8IIQGTnb0fW8X+Q4XY0cC1vr1pzetCnKxBXX
-vNWT718O6f1jGsBOxAfjOBgRi+ihnPa2OhQytvpGWPAOCbwo41QthQ7O2SnxoD8Y
-sciM5Fa6l5lt1YXVzgntrF78qwfUBCa1htU37aImsw0LL+MZCL7Bx5O8/eg/fxbk
-Wsz7r4Ue7NXWk2hnuaNIIhp+Xxfb21oExg1oTm0ZEPMUVSGX9DYtdRgry6khcLn+
-kjx6LyXpKuRWDmRDm6hH1ri77FWtFhF4TOHhr1KX+omvfdWRvJuYWgzm83hylE9e
-eFELKs1O9F54gx2kOFXhxBhv+ApcDyUihUg7mHKSNykIiwKfOAz5VeLJiev2YJqE
-qGlW8HPerXUeK+SDfIAbp2n1UPhQvx9zjfvNQD1KEEJGRmnix78lFiakc/XIBSc3
-5djlREhX8FdLGMs9WClxeGE75r5H1CdM+ZtpQ3DOHLZuLa5khU/MqlmTHA9NT07f
-gzt9O2RUCngBXhf/qde0OjliQ8SLCredHlS5O2W6uI3CCAKAh87mPMePqifbTQFF
-x+/cK1rafilLsUusR7JNuRILQlt5JzhJEcSOVsz+SBudEkd84CZdTao0W6xBwweh
-vhM+q4339VYMt/RYM0PIraejWttGAtb6bQ==
-=7ozV
------END PGP PUBLIC KEY BLOCK-----
diff --git a/static/bandali.bib b/static/bandali.bib
deleted file mode 100644 (file)
index b52761e..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-% bandali.bib --- bandali's bibliography -*-bibtex-*-
-
-% Copyright (C) 2020-2021 Amin Bandali <bandali at gnu.org>
-% DBLP items under CC0 (<https://dblp.org/db/about/copyright.html>)
-
-%% ===================================================================
-%% string definitions
-%% ===================================================================
-
-@string{uwaterloo = "University of Waterloo"}
-@string{drc-scs = "David R. Cheriton School of Computer Science"}
-@string{uwaterloo-cs = uwaterloo # ", " # drc-scs}
-
-%% ===================================================================
-%% 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},
-  title     = {{A Comprehensive Study of Declarative Modelling Languages}},
-  school    = uwaterloo-cs,
-  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/feed-12x12.png b/static/feed-12x12.png
deleted file mode 100644 (file)
index 3fe8b0a..0000000
Binary files a/static/feed-12x12.png and /dev/null differ
diff --git a/static/feed.svg b/static/feed.svg
deleted file mode 100644 (file)
index 4efd2ef..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="128px" height="128px" id="RSSicon" viewBox="0 0 256 256">
-<defs>
-<linearGradient x1="0.085" y1="0.085" x2="0.915" y2="0.915" id="RSSg">
-<stop  offset="0.0" stop-color="#E3702D"/><stop  offset="0.1071" stop-color="#EA7D31"/>
-<stop  offset="0.3503" stop-color="#F69537"/><stop  offset="0.5" stop-color="#FB9E3A"/>
-<stop  offset="0.7016" stop-color="#EA7C31"/><stop  offset="0.8866" stop-color="#DE642B"/>
-<stop  offset="1.0" stop-color="#D95B29"/>
-</linearGradient>
-</defs>
-<rect width="256" height="256" rx="55" ry="55" x="0"  y="0"  fill="#CC5D15"/>
-<rect width="246" height="246" rx="50" ry="50" x="5"  y="5"  fill="#F49C52"/>
-<rect width="236" height="236" rx="47" ry="47" x="10" y="10" fill="url(#RSSg)"/>
-<circle cx="68" cy="189" r="24" fill="#FFF"/>
-<path d="M160 213h-34a82 82 0 0 0 -82 -82v-34a116 116 0 0 1 116 116z" fill="#FFF"/>
-<path d="M184 213A140 140 0 0 0 44 73 V 38a175 175 0 0 1 175 175z" fill="#FFF"/>
-</svg>
diff --git a/static/gnu.ico b/static/gnu.ico
deleted file mode 100644 (file)
index e363826..0000000
Binary files a/static/gnu.ico and /dev/null differ
diff --git a/static/gpl-3.0.html b/static/gpl-3.0.html
deleted file mode 100644 (file)
index 1295136..0000000
+++ /dev/null
@@ -1,697 +0,0 @@
-<!doctype html>
-<html lang="en">
-  <head>
-    <meta charset="utf-8"/>
-    <meta name=viewport content="width=device-width, initial-scale=1"/>
-    <title>GNU General Public License v3.0</title>
-    <link rel="stylesheet" href="style.css"/>
-  </head>
-  <body>
-    <main style="font-size: 0.92em;
-                 line-height: 1.5;">
-      <h3 style="text-align: center;">GNU GENERAL PUBLIC LICENSE</h3>
-      <p style="text-align: center;">Version 3, 29 June 2007</p>
-
-      <p>Copyright &copy; 2007 Free Software Foundation, Inc.
-        &lt;<a href="https://fsf.org/">https://fsf.org/</a>&gt;</p><p>
-        Everyone is permitted to copy and distribute verbatim copies
-        of this license document, but changing it is not allowed.</p>
-
-      <h3><a name="preamble"></a>Preamble</h3>
-
-      <p>The GNU General Public License is a free, copyleft license for
-        software and other kinds of works.</p>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <p>The precise terms and conditions for copying, distribution and
-        modification follow.</p>
-
-      <h3><a name="terms"></a>TERMS AND CONDITIONS</h3>
-
-      <h4><a name="section0"></a>0. Definitions.</h4>
-
-      <p>&ldquo;This License&rdquo; refers to version 3 of the GNU General Public License.</p>
-
-      <p>&ldquo;Copyright&rdquo; also means copyright-like laws that apply to other kinds of
-        works, such as semiconductor masks.</p>
-
-      <p>&ldquo;The Program&rdquo; refers to any copyrightable work licensed under this
-        License.  Each licensee is addressed as &ldquo;you&rdquo;.  &ldquo;Licensees&rdquo; and
-        &ldquo;recipients&rdquo; may be individuals or organizations.</p>
-
-      <p>To &ldquo;modify&rdquo; 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 &ldquo;modified version&rdquo; of the
-        earlier work or a work &ldquo;based on&rdquo; the earlier work.</p>
-
-      <p>A &ldquo;covered work&rdquo; means either the unmodified Program or a work based
-        on the Program.</p>
-
-      <p>To &ldquo;propagate&rdquo; 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.</p>
-
-      <p>To &ldquo;convey&rdquo; 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.</p>
-
-      <p>An interactive user interface displays &ldquo;Appropriate Legal Notices&rdquo;
-        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.</p>
-
-      <h4><a name="section1"></a>1. Source Code.</h4>
-
-      <p>The &ldquo;source code&rdquo; for a work means the preferred form of the work
-        for making modifications to it.  &ldquo;Object code&rdquo; means any non-source
-        form of a work.</p>
-
-      <p>A &ldquo;Standard Interface&rdquo; 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.</p>
-
-      <p>The &ldquo;System Libraries&rdquo; 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
-        &ldquo;Major Component&rdquo;, 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.</p>
-
-      <p>The &ldquo;Corresponding Source&rdquo; 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.</p>
-
-      <p>The Corresponding Source need not include anything that users
-        can regenerate automatically from other parts of the Corresponding
-        Source.</p>
-
-      <p>The Corresponding Source for a work in source code form is that
-        same work.</p>
-
-      <h4><a name="section2"></a>2. Basic Permissions.</h4>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <p>Conveying under any other circumstances is permitted solely under
-        the conditions stated below.  Sublicensing is not allowed; section 10
-        makes it unnecessary.</p>
-
-      <h4><a name="section3"></a>3. Protecting Users' Legal Rights From Anti-Circumvention Law.</h4>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <h4><a name="section4"></a>4. Conveying Verbatim Copies.</h4>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <h4><a name="section5"></a>5. Conveying Modified Source Versions.</h4>
-
-      <p>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:</p>
-
-      <ul>
-        <li>a) The work must carry prominent notices stating that you modified
-          it, and giving a relevant date.</li>
-
-        <li>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
-          &ldquo;keep intact all notices&rdquo;.</li>
-
-        <li>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.</li>
-
-        <li>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.</li>
-      </ul>
-
-      <p>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
-        &ldquo;aggregate&rdquo; 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.</p>
-
-      <h4><a name="section6"></a>6. Conveying Non-Source Forms.</h4>
-
-      <p>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:</p>
-
-      <ul>
-        <li>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.</li>
-
-        <li>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.</li>
-
-        <li>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.</li>
-
-        <li>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.</li>
-
-        <li>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.</li>
-      </ul>
-
-      <p>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.</p>
-
-      <p>A &ldquo;User Product&rdquo; is either (1) a &ldquo;consumer product&rdquo;, 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, &ldquo;normally used&rdquo; 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.</p>
-
-      <p>&ldquo;Installation Information&rdquo; 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.</p>
-
-      <p>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).</p>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <h4><a name="section7"></a>7. Additional Terms.</h4>
-
-      <p>&ldquo;Additional permissions&rdquo; 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.</p>
-
-      <p>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.</p>
-
-      <p>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:</p>
-
-      <ul>
-        <li>a) Disclaiming warranty or limiting liability differently from the
-          terms of sections 15 and 16 of this License; or</li>
-
-        <li>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</li>
-
-        <li>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</li>
-
-        <li>d) Limiting the use for publicity purposes of names of licensors or
-          authors of the material; or</li>
-
-        <li>e) Declining to grant rights under trademark law for use of some
-          trade names, trademarks, or service marks; or</li>
-
-        <li>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.</li>
-      </ul>
-
-      <p>All other non-permissive additional terms are considered &ldquo;further
-        restrictions&rdquo; 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.</p>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <h4><a name="section8"></a>8. Termination.</h4>
-
-      <p>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).</p>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <h4><a name="section9"></a>9. Acceptance Not Required for Having Copies.</h4>
-
-      <p>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.</p>
-
-      <h4><a name="section10"></a>10. Automatic Licensing of Downstream Recipients.</h4>
-
-      <p>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.</p>
-
-      <p>An &ldquo;entity transaction&rdquo; 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.</p>
-
-      <p>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.</p>
-
-      <h4><a name="section11"></a>11. Patents.</h4>
-
-      <p>A &ldquo;contributor&rdquo; 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 &ldquo;contributor version&rdquo;.</p>
-
-      <p>A contributor's &ldquo;essential patent claims&rdquo; 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, &ldquo;control&rdquo; includes the right to grant
-        patent sublicenses in a manner consistent with the requirements of
-        this License.</p>
-
-      <p>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.</p>
-
-      <p>In the following three paragraphs, a &ldquo;patent license&rdquo; 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 &ldquo;grant&rdquo; such a patent license to a
-        party means to make such an agreement or commitment not to enforce a
-        patent against the party.</p>
-
-      <p>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.  &ldquo;Knowingly relying&rdquo; 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.</p>
-
-      <p>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.</p>
-
-      <p>A patent license is &ldquo;discriminatory&rdquo; 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.</p>
-
-      <p>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.</p>
-
-      <h4><a name="section12"></a>12. No Surrender of Others' Freedom.</h4>
-
-      <p>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.</p>
-
-      <h4><a name="section13"></a>13. Use with the GNU Affero General Public License.</h4>
-
-      <p>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.</p>
-
-      <h4><a name="section14"></a>14. Revised Versions of this License.</h4>
-
-      <p>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.</p>
-
-      <p>Each version is given a distinguishing version number.  If the
-        Program specifies that a certain numbered version of the GNU General
-        Public License &ldquo;or any later version&rdquo; 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.</p>
-
-      <p>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.</p>
-
-      <p>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.</p>
-
-      <h4><a name="section15"></a>15. Disclaimer of Warranty.</h4>
-
-      <p>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 &ldquo;AS IS&rdquo; 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.</p>
-
-      <h4><a name="section16"></a>16. Limitation of Liability.</h4>
-
-      <p>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.</p>
-
-      <h4><a name="section17"></a>17. Interpretation of Sections 15 and 16.</h4>
-
-      <p>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.</p>
-
-      <p>END OF TERMS AND CONDITIONS</p>
-
-      <h3><a name="howto"></a>How to Apply These Terms to Your New Programs</h3>
-
-      <p>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.</p>
-
-      <p>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 &ldquo;copyright&rdquo; line and a pointer to where the full notice is found.</p>
-
-      <pre>    &lt;one line to give the program's name and a brief idea of what it does.&gt;
-    Copyright (C) &lt;year&gt;  &lt;name of author&gt;
-
-    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 &lt;https://www.gnu.org/licenses/&gt;.
-      </pre>
-
-      <p>Also add information on how to contact you by electronic and paper mail.</p>
-
-      <p>If the program does terminal interaction, make it output a short
-        notice like this when it starts in an interactive mode:</p>
-
-      <pre>    &lt;program&gt;  Copyright (C) &lt;year&gt;  &lt;name of author&gt;
-    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.
-      </pre>
-
-      <p>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 &ldquo;about box&rdquo;.</p>
-
-      <p>You should also get your employer (if you work as a programmer) or school,
-        if any, to sign a &ldquo;copyright disclaimer&rdquo; for the program, if necessary.
-        For more information on this, and how to apply and follow the GNU GPL, see
-        &lt;<a href="https://www.gnu.org/licenses/">https://www.gnu.org/licenses/</a>&gt;.</p>
-
-      <p>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
-        &lt;<a href="https://www.gnu.org/licenses/why-not-lgpl.html">https://www.gnu.org/licenses/why-not-lgpl.html</a>&gt;.</p>
-    </main>
-  </body>
-</html>
diff --git a/static/publications-partial.html b/static/publications-partial.html
deleted file mode 100644 (file)
index 9c1d5af..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-<table>
-
-<tr valign="top">
-<td align="right" class="bibtexnumber">
-[<a name="bandali-jami-libreplanet-2021">5</a>]
-</td>
-<td class="bibtexitem">
-<a href="https://shemshak.org/~bandali/">Amin Bandali</a>.
- Jami and how it empowers users.
- Presented at the LibrePlanet 2021 Conference, March 2021.
-[&nbsp;<a href="bandali-bib.html#bandali-jami-libreplanet-2021">bib</a>&nbsp;| 
-<a href="https://p.bndl.org/bandali-jami-libreplanet-2021.pdf">slides</a>&nbsp;| 
-<a href="https://p.bndl.org/bandali-jami-libreplanet-2021-with-notes.pdf">.pdf</a>&nbsp;]
-
-</td>
-</tr>
-
-
-<tr valign="top">
-<td align="right" class="bibtexnumber">
-[<a name="bandali2020">4</a>]
-</td>
-<td class="bibtexitem">
-<a href="https://shemshak.org/~bandali/">Amin Bandali</a>.
- A Comprehensive Study of Declarative Modelling Languages.
- MMath thesis, University of Waterloo, David R. Cheriton School of
-  Computer Science, July 2020.
- <a href="http://hdl.handle.net/10012/16059">http://hdl.handle.net/10012/16059</a> and
-  <a href="https://bndl.org/mmath">https://bndl.org/mmath</a>.
-[&nbsp;<a href="bandali-bib.html#bandali2020">bib</a>&nbsp;| 
-<a href="http://hdl.handle.net/10012/16059">http</a>&nbsp;| 
-<a href="https://p.bndl.org/bandali-mmath-thesis.pdf">.pdf</a>&nbsp;]
-
-</td>
-</tr>
-
-
-<tr valign="top">
-<td align="right" class="bibtexnumber">
-[<a name="DBLP:conf/re/AbbassiBDS18">3</a>]
-</td>
-<td class="bibtexitem">
-Ali Abbassi, <a href="https://shemshak.org/~bandali/">Amin Bandali</a>, <a href="https://cs.uwaterloo.ca/~nday/">Nancy&nbsp;A. Day</a>, and Jos&eacute; Serna.
- A comparison of the declarative modelling languages B, Dash, and
-  TLA<sup>+</sup>.
- In Ana Moreira, Gunter Mussbacher, Jo&atilde;o Ara&uacute;jo, and Pablo
-  S&aacute;nchez, editors, <em>8th IEEE International Model-Driven
-  Requirements Engineering Workshop, MoDRE@RE 2018, Banff, AB, Canada, August
-  20, 2018</em>, pages 11&#x2013;20. IEEE Computer Society, 2018.
-[&nbsp;<a href="bandali-bib.html#DBLP:conf/re/AbbassiBDS18">bib</a>&nbsp;| 
-<a href="https://doi.org/10.1109/MoDRE.2018.00008">http</a>&nbsp;| 
-<a href="https://p.bndl.org/modre2018-declarative.pdf">.pdf</a>&nbsp;]
-
-</td>
-</tr>
-
-
-<tr valign="top">
-<td align="right" class="bibtexnumber">
-[<a name="bandali-magic-lassonde-2017">2</a>]
-</td>
-<td class="bibtexitem">
-<a href="https://shemshak.org/~bandali/">Amin Bandali</a>, <a href="https://github.com/cipher1024">Simon Hudon</a>, and <a href="https://www.eecs.yorku.ca/~jonathan/">Jonathan&nbsp;S. Ostroff</a>.
- The magic of specifications and type systems.
- Presented at the 2017 Lassonde Undergraduate Summer Student Research
-  Conference, York University, Toronto, Canada, August 2017.
-[&nbsp;<a href="bandali-bib.html#bandali-magic-lassonde-2017">bib</a>&nbsp;| 
-<a href="https://p.bndl.org/eecs4080-poster.pdf">poster</a>&nbsp;]
-
-</td>
-</tr>
-
-
-<tr valign="top">
-<td align="right" class="bibtexnumber">
-[<a name="bandali-magic-cucsc-2017">1</a>]
-</td>
-<td class="bibtexitem">
-<a href="https://shemshak.org/~bandali/">Amin Bandali</a>, <a href="https://github.com/cipher1024">Simon Hudon</a>, and <a href="https://www.eecs.yorku.ca/~jonathan/">Jonathan&nbsp;S. Ostroff</a>.
- The magic of specifications and type systems.
- Presented at the Canadian Undergraduate Computer Science Conference
-  2017, University of Toronto, Canada, June 2017.
-[&nbsp;<a href="bandali-bib.html#bandali-magic-cucsc-2017">bib</a>&nbsp;| 
-<a href="https://p.bndl.org/cucsc-2017-slides.pdf">slides</a>&nbsp;]
-
-</td>
-</tr>
-</table>
\ No newline at end of file
diff --git a/static/publications-sed.txt b/static/publications-sed.txt
deleted file mode 100644 (file)
index 5e1b655..0000000
+++ /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 <font size="-1"> and </font>
-# s|<font size="-1">||
-# s|</font>||
-
-# linkify author names
-s|Amin Bandali|<a href="https://shemshak.org/~bandali/">&</a>|
-s|Nancy&nbsp;A. Day|<a href="https://cs.uwaterloo.ca/~nday/">&</a>|
-s|Simon Hudon|<a href="https://github.com/cipher1024">&</a>|
-s|Jonathan&nbsp;S. Ostroff|<a href="https://www.eecs.yorku.ca/~jonathan/">&</a>|
diff --git a/static/se212-h02q04d-soln.grg b/static/se212-h02q04d-soln.grg
deleted file mode 100644 (file)
index e395717..0000000
+++ /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 (file)
index 12e9cdd..0000000
+++ /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 (file)
index a85896d..0000000
+++ /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 (file)
index d54ddfe..0000000
+++ /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
-}