txt2pre: implement generation of atom and rss feeds
authorAmin Bandali <bandali@gnu.org>
Fri, 22 Oct 2021 03:15:08 +0000 (23:15 -0400)
committerAmin Bandali <bandali@gnu.org>
Fri, 22 Oct 2021 03:15:08 +0000 (23:15 -0400)
and remove the {,fa/}notes.{atom,rss} feed files from the repo

.gitignore
GNUmakefile
fa/notes.atom [deleted file]
fa/notes.rss [deleted file]
notes.atom [deleted file]
notes.rss [deleted file]
txt2pre

index 2d19fc7..d872455 100644 (file)
@@ -1 +1,3 @@
 *.html
+*.atom
+*.rss
index ae9eab7..44270e7 100644 (file)
@@ -8,26 +8,45 @@
 # without any warranty.
 
 
-gen-html = perl txt2pre $(1) < $< > $@
+gen = perl txt2pre $(1) < $< > $@
 port := $(if $(port),$(port),8000)
 
 TXT := $(filter-out bandali-pubkey.txt bandali.txt,$(wildcard *.txt))
 OUT := $(patsubst %.txt,%.html,$(TXT))
 OUT := $(patsubst bandali-%.html,%.html,$(OUT))
+FEEDS := $(wildcard *.atom) $(wildcard *.rss)
+NOTES := $\
+libreplanet-2021.txt $\
+fsf-internship-beyond.txt $\
+fsf-internship-intro.txt $\
+bandali-computing.txt $\
 
 TXT_FA := $(filter-out fa/bandali.fa.txt,$(wildcard fa/*.fa.txt))
 OUT_FA := $(patsubst fa/%.fa.txt,fa/%.html,$(TXT_FA))
 OUT_FA := $(patsubst fa/bandali-%.html,fa/%.html,$(OUT_FA))
-
-all: $(OUT) $(OUT_FA) index.html fa/index.html
-
-%.html: bandali-%.txt; $(gen-html)
-%.html: %.txt; $(gen-html)
-index.html: bandali.txt; $(call gen-html,--index)
-
-fa/%.html: fa/bandali-%.fa.txt; $(call gen-html,--lang='fa')
-fa/%.html: fa/%.fa.txt; $(call gen-html,--lang='fa')
-fa/index.html: fa/bandali.fa.txt; $(call gen-html,--lang='fa' --index)
+FEEDS_FA := $(wildcard fa/*.atom) $(wildcard fa/*.rss)
+NOTES_FA := $\
+fa/fsf-internship-beyond.fa.txt $\
+fa/fsf-internship-intro.fa.txt $\
+fa/bandali-computing.fa.txt $\
+
+all: $(OUT) $(FEEDS) index.html $(OUT_FA) $(FEEDS_FA) fa/index.html
+
+%.html: bandali-%.txt txt2pre; $(gen)
+%.html: %.txt txt2pre; $(gen)
+index.html: bandali.txt txt2pre; $(call gen,--index)
+notes.%: $(NOTES) txt2pre
+       perl txt2pre --index --header --format='$*' > $@
+       for n in $(NOTES); do perl txt2pre --format='$*' < "$$n" >> $@; done
+       perl txt2pre --index --footer --format='$*' >> $@
+
+fa/%.html: fa/bandali-%.fa.txt txt2pre; $(call gen,--lang='fa')
+fa/%.html: fa/%.fa.txt txt2pre; $(call gen,--lang='fa')
+fa/index.html: fa/bandali.fa.txt txt2pre; $(call gen,--lang='fa' --index)
+fa/notes.%: $(NOTES_FA) txt2pre
+       perl txt2pre --lang='fa' --index --header --format='$*' > $@
+       for n in $(NOTES_FA); do perl txt2pre --lang='fa' --format='$*' < "$$n" >> $@; done
+       perl txt2pre --lang='fa' --index --footer --format='$*' >> $@
 
 
 clean:
diff --git a/fa/notes.atom b/fa/notes.atom
deleted file mode 100644 (file)
index 0de9a1d..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<feed xml:lang="fa" xmlns="http://www.w3.org/2005/Atom">
-<title>سایت شخصی بندعلی</title>
-<subtitle>نوشته‌ها و بلاگ پست‌های بندعلی</subtitle>
-<id>tag:bndl.org,2020:fa/notes.atom</id>
-<link hreflang="en" href="https://bndl.org/notes.atom" rel="alternate" type="application/atom+xml" />
-<link hreflang="en" href="https://bndl.org/notes.rss" rel="alternate" type="application/rss+xml" />
-<link hreflang="en" href="https://bndl.org" rel="alternate" type="text/html" />
-<link hreflang="en" href="https://bndl.org/bandali.fa.txt" rel="alternate" type="text/plain" />
-<link href="https://bndl.org/fa/notes.atom" rel="self" type="application/atom+xml" />
-<link href="https://bndl.org/fa/notes.rss" rel="alternate" type="application/rss+xml" />
-<link href="https://bndl.org/fa/" rel="alternate" type="text/html" />
-<link href="https://bndl.org/fa/bandali.fa.txt" rel="alternate" type="text/plain" />
-<updated>2021-03-22T13:14:02+00:00</updated>
-
-<entry xml:base="https://bndl.org/fa/">
-<author><name>بندعلی</name></author>
-<id>tag:bndl.org,2020:fa/notes.atom:fsf-internship-beyond</id>
-<published>2020-12-18T15:31:00-04:00</published>
-<updated>2020-12-18T15:31:00-04:00</updated>
-<link hreflang="en" href="https://bndl.org/fsf-internship-beyond.html" rel="alternate" type="text/html" />
-<link hreflang="en" href="https://bndl.org/fsf-internship-beyond.txt" rel="alternate" type="text/plain" />
-<link href="https://bndl.org/fa/fsf-internship-beyond.html" rel="alternate" type="text/html" />
-<link href="https://bndl.org/fa/fsf-internship-beyond.fa.txt" rel="alternate" type="text/plain" />
-<title>کارآموزی من با تیم فنی بنیاد نرم‌افزار آزاد و فراتر از آن</title>
-<content type="html"><![CDATA[
-<p class="box"><a href="https://bndl.org/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>
-]]></content>
-</entry>
-
-<entry xml:base="https://bndl.org/fa/">
-<author><name>بندعلی</name></author>
-<id>tag:bndl.org,2020:fa/notes.atom:fsf-internship-intro</id>
-<published>2020-05-29T14:38:00-04:00</published>
-<updated>2020-05-29T14:38:00-04:00</updated>
-<link hreflang="en" href="https://bndl.org/fsf-internship-intro.html" rel="alternate" type="text/html" />
-<link hreflang="en" href="https://bndl.org/fsf-internship-intro.txt" rel="alternate" type="text/plain" />
-<link href="https://bndl.org/fa/fsf-internship-intro.html" rel="alternate" type="text/html" />
-<link href="https://bndl.org/fa/fsf-internship-intro.fa.txt" rel="alternate" type="text/plain" />
-<title>کارآموزی با تیم فنی بنیاد نرم‌افزار آزاد</title>
-<content type="html"><![CDATA[
-<p class="box"><a href="https://bndl.org/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>
-]]></content>
-</entry>
-
-<entry xml:base="https://bndl.org/fa/">
-<author><name>بندعلی</name></author>
-<id>tag:bndl.org,2020:fa/notes.atom:computing</id>
-<published>2019-09-14T12:00:00Z</published>
-<updated>2021-02-28T12:00:00Z</updated>
-<link hreflang="en" href="https://bndl.org/computing.html" rel="alternate" type="text/html" />
-<link hreflang="en" href="https://bndl.org/bandali-computing.txt" rel="alternate" type="text/plain" />
-<link href="https://bndl.org/fa/computing.html" rel="alternate" type="text/html" />
-<link href="https://bndl.org/fa/bandali-computing.fa.txt" rel="alternate" type="text/plain" />
-<title>چگونه از رایانه استفاده می‌کنم</title>
-<content type="html"><![CDATA[
-<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>
-]]></content>
-</entry>
-
-</feed>
diff --git a/fa/notes.rss b/fa/notes.rss
deleted file mode 100644 (file)
index 77830dc..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-<?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>سایت شخصی بندعلی</title>
-<description>نوشته‌ها و بلاگ پست‌های بندعلی</description>
-<link>https://bndl.org/fa/</link>
-<language>fa</language>
-<lastBuildDate>Mon, 22 Mar 2021 13:14:02 +0000</lastBuildDate>
-<pubDate>Mon, 22 Mar 2021 13:14:02 +0000</pubDate>
-<ttl>1800</ttl>
-<atom:link hreflang="en" href="https://bndl.org/notes.rss" rel="alternate" type="application/rss+xml" />
-<atom:link hreflang="en" href="https://bndl.org/notes.atom" rel="alternate" type="application/atom+xml" />
-<atom:link hreflang="en" href="https://bndl.org" rel="alternate" type="text/html" />
-<atom:link hreflang="en" href="https://bndl.org/bandali.fa.txt" rel="alternate" type="text/plain" />
-<atom:link href="https://bndl.org/fa/notes.rss" rel="self" type="application/rss+xml" />
-<atom:link href="https://bndl.org/fa/notes.atom" rel="alternate" type="application/atom+xml" />
-<atom:link href="https://bndl.org/fa/" rel="alternate" type="text/html" />
-<atom:link href="https://bndl.org/fa/bandali.fa.txt" rel="alternate" type="text/plain" />
-
-<item>
-<title>کارآموزی من با تیم فنی بنیاد نرم‌افزار آزاد و فراتر از آن</title>
-<link>https://bndl.org/fa/fsf-internship-beyond.html</link>
-<guid isPermaLink="false">tag:bndl.org,2020:fa/notes.rss:fsf-internship-beyond</guid>
-<pubDate>Fri, 18 Dec 2020 19:31:00 +0000</pubDate>
-<content:encoded>
-<![CDATA[
-<p class="box"><a href="https://bndl.org/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>
-]]></content:encoded>
-</item>
-
-<item>
-<title>کارآموزی با تیم فنی بنیاد نرم‌افزار آزاد</title>
-<link>https://bndl.org/fa/fsf-internship-intro.html</link>
-<guid isPermaLink="false">tag:bndl.org,2020:fa/notes.rss:fsf-internship-intro</guid>
-<pubDate>Fri, 29 May 2020 18:38:00 +0000</pubDate>
-<content:encoded>
-<![CDATA[
-<p class="box"><a href="https://bndl.org/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>
-]]></content:encoded>
-</item>
-
-<item>
-<title>چگونه از رایانه استفاده می‌کنم</title>
-<link>https://bndl.org/fa/computing.html</link>
-<guid isPermaLink="false">tag:bndl.org,2020:fa/notes.rss:computing</guid>
-<pubDate>Sat, 14 Sep 2019 12:00:00 +0000</pubDate>
-<atom:updated>2021-02-28T12:00:00Z</atom:updated>
-<content:encoded>
-<![CDATA[
-<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>
-]]></content:encoded>
-</item>
-
-</channel>
-</rss>
diff --git a/notes.atom b/notes.atom
deleted file mode 100644 (file)
index c964e7c..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom">
-<title>bandali's personal site</title>
-<subtitle>notes and blog posts by bandali</subtitle>
-<id>tag:bndl.org,2020:notes.atom</id>
-<link hreflang="fa" href="https://bndl.org/fa/notes.atom" rel="alternate" type="application/atom+xml" />
-<link hreflang="fa" href="https://bndl.org/fa/notes.rss" rel="alternate" type="application/rss+xml" />
-<link hreflang="fa" href="https://bndl.org/fa/" rel="alternate" type="text/html" />
-<link hreflang="fa" href="https://bndl.org/fa/bandali.fa.txt" rel="alternate" type="text/plain" />
-<link href="https://bndl.org/notes.atom" rel="self" type="application/atom+xml" />
-<link href="https://bndl.org/notes.rss" rel="alternate" type="application/rss+xml" />
-<link href="https://bndl.org" rel="alternate" type="text/html" />
-<link href="https://bndl.org/bandali.txt" rel="alternate" type="text/plain" />
-<updated>2021-03-22T13:14:02+00:00</updated>
-
-<entry xml:base="https://bndl.org">
-<author><name>bandali</name></author>
-<id>tag:bndl.org,2020:notes.atom:libreplanet-2021</id>
-<published>2021-03-20T09:00:00-04:00</published>
-<updated>2021-03-21T01:15:00-04:00</updated>
-<link href="https://bndl.org/libreplanet-2021.html" rel="alternate" type="text/html" />
-<link href="https://bndl.org/liberplanet-2021.txt" rel="alternate" type="text/plain" />
-<title>LibrePlanet 2021: Jami and how it empowers users</title>
-<content type="html"><![CDATA[
-<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="https://bndl.org/bandali.bib">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>
-]]></content>
-</entry>
-
-<entry xml:base="https://bndl.org">
-<author><name>bandali</name></author>
-<id>tag:bndl.org,2020:notes.atom:fsf-internship-beyond</id>
-<published>2020-12-18T15:31:00-04:00</published>
-<updated>2020-12-18T15:31:00-04:00</updated>
-<link hreflang="fa" href="https://bndl.org/fa/fsf-internship-beyond.html" rel="alternate" type="text/html" />
-<link hreflang="fa" href="https://bndl.org/fa/fsf-internship-beyond.fa.txt" rel="alternate" type="text/plain" />
-<link href="https://bndl.org/fsf-internship-beyond.html" rel="alternate" type="text/html" />
-<link href="https://bndl.org/fsf-internship-beyond.txt" rel="alternate" type="text/plain" />
-<title>My internship with the FSF tech team and beyond</title>
-<content type="html"><![CDATA[
-<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>
-]]></content>
-</entry>
-
-<entry xml:base="https://bndl.org">
-<author><name>bandali</name></author>
-<id>tag:bndl.org,2020:notes.atom:fsf-internship-intro</id>
-<published>2020-05-29T14:38:00-04:00</published>
-<updated>2020-05-29T14:38:00-04:00</updated>
-<link hreflang="fa" href="https://bndl.org/fa/fsf-internship-intro.html" rel="alternate" type="text/html" />
-<link hreflang="fa" href="https://bndl.org/fa/fsf-internship-intro.fa.txt" rel="alternate" type="text/plain" />
-<link href="https://bndl.org/fsf-internship-intro.html" rel="alternate" type="text/html" />
-<link href="https://bndl.org/fsf-internship-intro.txt" rel="alternate" type="text/plain" />
-<title>Internship with the FSF tech team</title>
-<content type="html"><![CDATA[
-<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>
-]]></content>
-</entry>
-
-<entry xml:base="https://bndl.org">
-<author><name>bandali</name></author>
-<id>tag:bndl.org,2020:notes.atom:computing</id>
-<published>2019-09-14T12:00:00Z</published>
-<updated>2021-02-28T12:00:00Z</updated>
-<link hreflang="fa" href="https://bndl.org/fa/computing.html" rel="alternate" type="text/html" />
-<link hreflang="fa" href="https://bndl.org/fa/bandali-computing.fa.txt" rel="alternate" type="text/plain" />
-<link href="https://bndl.org/computing.html" rel="alternate" type="text/html" />
-<link href="https://bndl.org/bandali-computing.txt" rel="alternate" type="text/plain" />
-<title>How I do my Computing</title>
-<content type="html"><![CDATA[
-<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>
-]]></content>
-</entry>
-
-</feed>
diff --git a/notes.rss b/notes.rss
deleted file mode 100644 (file)
index ad4ea6c..0000000
--- a/notes.rss
+++ /dev/null
@@ -1,314 +0,0 @@
-<?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>bandali's personal site</title>
-<description>notes and blog posts by bandali</description>
-<link>https://bndl.org</link>
-<language>en</language>
-<lastBuildDate>Mon, 22 Mar 2021 13:14:02 +0000</lastBuildDate>
-<pubDate>Mon, 22 Mar 2021 13:14:02 +0000</pubDate>
-<ttl>1800</ttl>
-<atom:link hreflang="fa" href="https://bndl.org/fa/notes.rss" rel="self" type="application/rss+xml" />
-<atom:link hreflang="fa" href="https://bndl.org/fa/notes.atom" rel="alternate" type="application/atom+xml" />
-<atom:link hreflang="fa" href="https://bndl.org/fa/" rel="alternate" type="text/html" />
-<atom:link hreflang="fa" href="https://bndl.org/fa/bandali.fa.txt" rel="alternate" type="text/plain" />
-<atom:link href="https://bndl.org/notes.rss" rel="self" type="application/rss+xml" />
-<atom:link href="https://bndl.org/notes.atom" rel="alternate" type="application/atom+xml" />
-<atom:link href="https://bndl.org" rel="alternate" type="text/html" />
-<atom:link href="https://bndl.org/bandali.txt" rel="alternate" type="text/plain" />
-
-<item>
-<title>LibrePlanet 2021: Jami and how it empowers users</title>
-<link>https://bndl.org/libreplanet-2021.html</link>
-<guid isPermaLink="false">tag:bndl.org,2020:notes.rss:libreplanet-2021</guid>
-<pubDate>Sat, 20 Mar 2021 13:00:00 +0000</pubDate>
-<atom:updated>2021-03-21T01:15:00-04:00</atom:updated>
-<content:encoded><![CDATA[
-<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="https://bndl.org/bandali.bib">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>
-]]></content:encoded>
-</item>
-
-<item>
-<title>My internship with the FSF tech team and beyond</title>
-<link>https://bndl.org/fsf-internship-beyond.html</link>
-<guid isPermaLink="false">tag:bndl.org,2020:notes.rss:fsf-internship-beyond</guid>
-<pubDate>Fri, 18 Dec 2020 19:31:00 +0000</pubDate>
-<content:encoded>
-<![CDATA[
-<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>
-]]></content:encoded>
-</item>
-
-<item>
-<title>Internship with the FSF tech team</title>
-<link>https://bndl.org/fsf-internship-intro.html</link>
-<guid isPermaLink="false">tag:bndl.org,2020:notes.rss:fsf-internship-intro</guid>
-<pubDate>Fri, 29 May 2020 18:38:00 +0000</pubDate>
-<content:encoded>
-<![CDATA[
-<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>
-]]></content:encoded>
-</item>
-
-<item>
-<title>How I do my Computing</title>
-<link>https://bndl.org/computing.html</link>
-<guid isPermaLink="false">tag:bndl.org,2020:notes.rss:computing</guid>
-<pubDate>Sat, 14 Sep 2019 12:00:00 +0000</pubDate>
-<atom:updated>2021-02-28T12:00:00Z</atom:updated>
-<content:encoded>
-<![CDATA[
-<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>
-]]></content:encoded>
-</item>
-
-</channel>
-</rss>
diff --git a/txt2pre b/txt2pre
index e288a69..31fdb78 100644 (file)
--- a/txt2pre
+++ b/txt2pre
@@ -26,12 +26,40 @@ use strict;
 use warnings 'all';
 use Getopt::Long;
 
-my $opt_lang = 'en';
-my $opt_index;
-GetOptions ('lang=s' => \$opt_lang,
-            'index' => \$opt_index)
+my $format = 'html';
+my $lang = 'en';
+my $index = '';
+my $header = '';
+my $footer = '';
+
+GetOptions ('format=s' => \$format,
+            'lang=s' => \$lang,
+            'index' => \$index,
+            'header' => \$header,
+            'footer' => \$footer)
     or die("bad command line arguments\n");
 
+my $author =
+    $lang eq 'en' ? 'bandali'
+    : $lang eq 'fa' ? 'بندعلی'
+    : '';
+my $site_title =
+    $lang eq 'en' ? "${author}'s personal site"
+    : $lang eq 'fa' ? "سایت شخصی $author"
+    : '';
+my $site_desc =
+    $lang eq 'en' ? "notes and blog posts by $author"
+    : $lang eq 'fa' ? "نوشته‌ها و بلاگ پست‌های $author"
+    : '';
+my $site_url =
+    ($lang eq 'en') ? 'https://bndl.org'
+    : ($lang eq 'fa') ? 'https://bndl.org/fa/'
+    : '';
+my $feed_id =
+    ($lang eq 'en') ? "tag:bndl.org,2020:notes.$format"
+    : ($lang eq 'fa') ? "tag:bndl.org,2020:fa/notes.$format"
+    : '';
+
 my $link_re =
     qr{([\('!])?\b((?:ftps?|https?|nntps?|imaps?|s?news|gopher)://
        [\@:\w\.-]+(?:/
@@ -96,15 +124,78 @@ sub linkify {
 }
 
 
+my $out = '';
+
+# atom/rss feed header and footer
+if ($index and ($format eq 'atom' or $format eq 'rss')) {
+    if ($header) {
+        my $now_iso8601 = `date -Iseconds -u | tr -d \\\\n`;
+        my $now_rfc5322 = `date -uR | tr -d \\\\n`;
+        my $atom_rel = $format eq 'atom' ? 'self' : 'alternate';
+        my $rss_rel = $format eq 'rss' ? 'self' : 'alternate';
+        my $link = $format eq 'atom' ? 'link' : 'atom:link';
+        my $links = '';
+        if ($lang eq 'en') {
+            $links = qq(
+<$link hreflang="fa" href="https://bndl.org/fa/notes.atom" rel="alternate" type="application/atom+xml" />
+<$link hreflang="fa" href="https://bndl.org/fa/notes.rss" rel="alternate" type="application/rss+xml" />
+<$link hreflang="fa" href="https://bndl.org/fa/bandali.fa.txt" rel="alternate" type="text/plain" />
+<$link hreflang="fa" href="https://bndl.org/fa/" rel="alternate" type="text/html" />
+<$link href="https://bndl.org/notes.atom" rel="$atom_rel" type="application/atom+xml" />
+<$link href="https://bndl.org/notes.rss" rel="$rss_rel" type="application/rss+xml" />
+<$link href="https://bndl.org/bandali.txt" rel="alternate" type="text/plain" />
+<$link href="https://bndl.org" rel="alternate" type="text/html" />);
+        } elsif ($lang eq 'fa') {
+            $links = qq(
+<link hreflang="en" href="https://bndl.org/notes.atom" rel="alternate" type="application/atom+xml" />
+<link hreflang="en" href="https://bndl.org/notes.rss" rel="alternate" type="application/rss+xml" />
+<link hreflang="en" href="https://bndl.org/bandali.txt" rel="alternate" type="text/plain" />
+<link hreflang="en" href="https://bndl.org" rel="alternate" type="text/html" />
+<link href="https://bndl.org/fa/notes.atom" rel="$atom_rel" type="application/atom+xml" />
+<link href="https://bndl.org/fa/notes.rss" rel="$rss_rel" type="application/rss+xml" />
+<link href="https://bndl.org/fa/bandali.fa.txt" rel="alternate" type="text/plain" />
+<link href="https://bndl.org/fa/" rel="alternate" type="text/html" />);
+        }
+        $links =~ s/^\n//;
+
+        $out .= '<?xml version="1.0" encoding="UTF-8" ?>';
+        $out .= ($format eq 'atom') ? qq(
+<feed xml:lang="$lang" xmlns="http://www.w3.org/2005/Atom">
+<title>$site_title</title>
+<subtitle>$site_desc</subtitle>
+<id>$feed_id</id>
+$links
+<updated>$now_iso8601</updated>)
+            : ($format eq 'rss') ? qq(
+<rss version="2.0"
+     xmlns:atom="http://www.w3.org/2005/Atom"
+     xmlns:content="http://purl.org/rss/1.0/modules/content/">
+<channel>
+<title>$site_title</title>
+<description>$site_desc</description>
+<link>$site_url</link>
+<language>$lang</language>
+<lastBuildDate>$now_rfc5322</lastBuildDate>
+<pubDate>$now_rfc5322</pubDate>
+<ttl>1800</ttl>
+$links)
+            : '';
+    } elsif ($footer) {
+        $out .= ($format eq 'atom') ? '</feed>'
+            : ($format eq 'rss') ? '</channel></rss>'
+            : '';
+    }
+
+    # we're done
+    goto PRINT;
+}
+
+
 my $txt = do { local $/; <STDIN> };
 
 my $title = html_esc($txt =~ /\A([^\n]+)/);
 $title =~ s/^\s+|\s+$//g;
-if ($opt_lang eq 'fa') {
-    $title .= ' &mdash; بندعلی' if $title !~ /بندعلی/;
-} else {
-    $title .= ' &mdash; bandali' if $title !~ /bandali/;
-}
+$title .= " &mdash; $author" if $title !~ /$author/;
 
 my ($upd, $pub, $url) = $txt =~ /(.*)\r?\n(.*)\r?\n(.*)\r?\n?\z/;
 ($upd) = $upd =~ /(?:updated|ویرایش): (.*)/ if $upd;
@@ -116,32 +207,86 @@ $url = html_esc($url) if $url;
 
 $txt = linkify(html_esc($txt));
 
-print("<!doctype html>",
-      qq(<html lang="$opt_lang"),
-      $opt_lang eq 'fa' ? ' dir="rtl"' : '',
-      ">",
-      qq(<head>
+
+my $upd_iso8601 = `date -Iseconds -ud '$upd' | tr -d \\\\n` if $upd;
+my $pub_iso8601 = `date -Iseconds -ud '$pub' | tr -d \\\\n` if $pub;
+my $pub_rfc5322 = `date -uRd '$pub' | tr -d \\\\n` if $pub;
+my $url_html = $url =~ s/(?:[.]$lang)?[.]txt$/.html/r;
+$url_html =~ s|/bandali-(.*)|/$1|;
+my $slug = $url_html =~ s|.*/(.*)[.]html$|$1|r;
+my $note_id = "$feed_id:$slug";
+
+# note header
+if ($format eq 'html') {
+    $out .=
+        '<!doctype html>'
+        . qq(<html lang="$lang") . ($lang eq 'fa'
+                                    ? ' dir="rtl"'
+                                    : '' . '>')
+        . qq(<head>
 <meta http-equiv="Content-Type"
-content="text/html; charset=utf-8" />\n),
-      "<title>$title</title>\n",
-      qq(<link rel="icon" href="data:,">\n),
-      $url ? qq(<link rel="alternate" href="$url"
-title="plain text" type="text/plain" />\n) : '',
-      ($opt_index and $opt_lang eq 'en')
-      ? qq(<link rel="alternate" href="https://bndl.org/fa/"
+content="text/html; charset=utf-8" />\n)
+        . "<title>$title</title>\n"
+        . qq(<link rel="icon" href="data:,">\n)
+        . ($url
+           ? qq(<link rel="alternate" href="$url"
+title="plain text" type="text/plain" />\n)
+           : '')
+        . (($index and $lang eq 'en')
+           ? qq(<link rel="alternate" href="https://bndl.org/fa/"
 hreflang="fa" title="persian" />\n)
-      : ($opt_index and $opt_lang eq 'fa')
-      ? qq(<link rel="alternate" href="https://bndl.org/"
+           : ($index and $lang eq 'fa')
+           ? qq(<link rel="alternate" href="https://bndl.org/"
 hreflang="en" title="english" />\n)
-      : '',
-      qq(<style>\@media(prefers-color-scheme:dark){
+           : '')
+        . qq(<style>\@media(prefers-color-scheme:dark){
 body{background:#1c1c1c;color:white;}a:link{color:#acdeff;}
-a:visited{color:#f8f;}a:active{color:#e00;}}),
-      $opt_lang eq 'fa'
-      ? qq(\n\@font-face{font-family:sahel;font-weight:normal;
+a:visited{color:#f8f;}a:active{color:#e00;}})
+        . ($lang eq 'fa'
+           ? qq(\n\@font-face{font-family:sahel;font-weight:normal;
 src:local('Sahel WOL'),local('Sahel'),
 url('sahel.woff2')format('woff2');}pre{font-family:sahel})
-      : '',
-      "</style>\n",
-      "</head><body><pre>$txt</pre></body></html>\n");
+           : '')
+        . "</style>\n"
+        . '</head><body><pre>';
+} elsif ($format eq 'atom' or $format eq 'rss') {
+    my $atom_updated =
+        ($format eq 'atom') ? 'updated'
+        : ($format eq 'rss') ? 'atom:updated'
+        : '';
+    my $updated =
+        "<$atom_updated>$upd_iso8601</$atom_updated>\n" if $upd;
+    $out .= ($format eq 'atom') ? qq(
+<entry xml:base="$site_url">
+<author><name>$author</name></author>
+<id>$note_id</id>
+<published>$pub_iso8601</published>\n)
+. ($updated ? $updated : '') .
+qq(<link href="$url" rel="alternate" type="text/plain" />
+<link href="$url_html" rel="alternate" type="text/html" />
+<title>$title</title>
+<content type="html"><![CDATA[<pre>)
+        : ($format eq 'rss') ? qq(
+<item>
+<title>$title</title>
+<link>$url_html</link>
+<guid isPermaLink="false">$note_id</guid>
+<pubDate>$pub_rfc5322</pubDate>\n)
+. ($updated ? $updated : '') .
+qq(<content:encoded><![CDATA[<pre>)
+        : '';
+}
+# note body
+$out .= $txt;
+# note footer
+if ($format eq 'html') {
+    $out .= '</pre></body></html>';
+} elsif ($format eq 'atom') {
+    $out .= "</pre>]]></content></entry>";
+} elsif ($format eq 'rss') {
+    $out .= "</pre>]]></content:encoded></item>";
+}
+
+ PRINT:
+print("$out\n");
 STDOUT->flush;