# 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:
+++ /dev/null
-<?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>در انتهای کارآموزیم و سال ۲۰۲۰، میتوان گفت امسال سال…جالب و
-پراتقافی برای بیشتر مردم، از جمله خودم، بوده است. من کارآموزیم را در
-آخرین ماه مه شروع کردم، و به عنوان یک دانشجوی کارشناسی ارشد، انتظار
-داشتم یک بار کاری معقول و متعادل برای کارم روی پایاننامهام در ماههای
-آتی داشتهباشم. اما کمتر از دو هفته پس از شروع کارآموزیم متوجه شدم که
-به چند دلیل مجبورم که دورهٔ کارشناسی ارشدم را در عرض دو ماه به پایان
-برسانم. این مسئله را به اطلاع تیم فنی FSF رساندم و اجازه گرفتم تا یک
-وقفه در کارآموزیم بگذارم تا بتوانم پایاننامهام را بدون لطمه به
-کارآموزی یا تحصیلاتم به اتمام برسانم. عمیقا قدردان تیم فنی و سایر
-کارمندان FSF هستم که با انعطاف فراوان به من اجازه دادند تا موقتا
-کارآموزیم را متوقف کنم تا روی تکمیل پایاننامهام و اتمام دوره کارشناسی
-ارشدم تمرکز کنم. خوشبختانه با زحمت و مشقت فراوان موفق شدم درسم را در
-آن بازهٔ زمانی فوقالعاده کوتاه تمام کرده و پس از آن به انجام کارآموزیم
-بپردازم.</p>
-
-<p>با این حال، تمام چیزهای خوب در نهایت به پایان میرسند، از جمله این
-کارآموزی. از صمیم قلبم از اعضای تیم فنی FSF -- ایان و اندرو و روبن و
-مایکل -- برای پذیرش و استقبال از من در تیم به عنوان یک کارآموز،
-راهنمایی و پاسخ دادن به پرسشهای فراوانم و کمک به یادگیری بیشترم
-سپاسگذارم. کار کردن در کنار شما و دیدن انرژی و همتی که صرف کار و
-مسئولیتهایتان به عنوان یک مدیر سامانه و توسعهدهندهٔ وب FSF میکنید برای
-من یک افتخار و تجربهٔ فوقالعاده بوده است. در حالی که بیشتر ارتباطات من
-با اعضای تیم فنی FSF بوده است، من فرصت تعامل با اعضای دیگر تیمهای FSF
-را نیز در طول کارآموزیم داشتم و بابت گفتگوهایمان و فرصت یادگیری دربارهٔ
-کارها و وظایف پراهمیتتان و تخصیصتان به انجامشان سپاسگذارم.</p>
-
-<p>این کارآموزی به پایان رسیده، اما همه خاطرات خوب و درسهایی که در طول
-کارآموزیم یاد گرفتم را همیشه با خود خواهم داشت و مشتاقانه به عنوان یک
-داوطلب به همکاری با شما ادامه خواهم داد. مطالبی که در طول کارآموزیم
-یادگرفته و تجربههایی که کسب کردم در شغل جدیدم به عنوان یک مشاور
-نرمافزار آزاد در شرکت Savoir-faire Linux برایم بسیار با ارزش و مفید
-واقع شدهاند. در Savoir-faire Linux روی اجزا و قسمتهای مختلف جمی
-— یک برنامهٔ گنو برای ارتباطات جامع که به آزادیها و حریم خصوصی
-کاربرانش احترام میگذارد — کار میکنم.
-
-<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>
+++ /dev/null
-<?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>در انتهای کارآموزیم و سال ۲۰۲۰، میتوان گفت امسال سال…جالب و
-پراتقافی برای بیشتر مردم، از جمله خودم، بوده است. من کارآموزیم را در
-آخرین ماه مه شروع کردم، و به عنوان یک دانشجوی کارشناسی ارشد، انتظار
-داشتم یک بار کاری معقول و متعادل برای کارم روی پایاننامهام در ماههای
-آتی داشتهباشم. اما کمتر از دو هفته پس از شروع کارآموزیم متوجه شدم که
-به چند دلیل مجبورم که دورهٔ کارشناسی ارشدم را در عرض دو ماه به پایان
-برسانم. این مسئله را به اطلاع تیم فنی FSF رساندم و اجازه گرفتم تا یک
-وقفه در کارآموزیم بگذارم تا بتوانم پایاننامهام را بدون لطمه به
-کارآموزی یا تحصیلاتم به اتمام برسانم. عمیقا قدردان تیم فنی و سایر
-کارمندان FSF هستم که با انعطاف فراوان به من اجازه دادند تا موقتا
-کارآموزیم را متوقف کنم تا روی تکمیل پایاننامهام و اتمام دوره کارشناسی
-ارشدم تمرکز کنم. خوشبختانه با زحمت و مشقت فراوان موفق شدم درسم را در
-آن بازهٔ زمانی فوقالعاده کوتاه تمام کرده و پس از آن به انجام کارآموزیم
-بپردازم.</p>
-
-<p>با این حال، تمام چیزهای خوب در نهایت به پایان میرسند، از جمله این
-کارآموزی. از صمیم قلبم از اعضای تیم فنی FSF -- ایان و اندرو و روبن و
-مایکل -- برای پذیرش و استقبال از من در تیم به عنوان یک کارآموز،
-راهنمایی و پاسخ دادن به پرسشهای فراوانم و کمک به یادگیری بیشترم
-سپاسگذارم. کار کردن در کنار شما و دیدن انرژی و همتی که صرف کار و
-مسئولیتهایتان به عنوان یک مدیر سامانه و توسعهدهندهٔ وب FSF میکنید برای
-من یک افتخار و تجربهٔ فوقالعاده بوده است. در حالی که بیشتر ارتباطات من
-با اعضای تیم فنی FSF بوده است، من فرصت تعامل با اعضای دیگر تیمهای FSF
-را نیز در طول کارآموزیم داشتم و بابت گفتگوهایمان و فرصت یادگیری دربارهٔ
-کارها و وظایف پراهمیتتان و تخصیصتان به انجامشان سپاسگذارم.</p>
-
-<p>این کارآموزی به پایان رسیده، اما همه خاطرات خوب و درسهایی که در طول
-کارآموزیم یاد گرفتم را همیشه با خود خواهم داشت و مشتاقانه به عنوان یک
-داوطلب به همکاری با شما ادامه خواهم داد. مطالبی که در طول کارآموزیم
-یادگرفته و تجربههایی که کسب کردم در شغل جدیدم به عنوان یک مشاور
-نرمافزار آزاد در شرکت Savoir-faire Linux برایم بسیار با ارزش و مفید
-واقع شدهاند. در Savoir-faire Linux روی اجزا و قسمتهای مختلف جمی
-— یک برنامهٔ گنو برای ارتباطات جامع که به آزادیها و حریم خصوصی
-کاربرانش احترام میگذارد — کار میکنم.
-
-<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>
+++ /dev/null
-<?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>
+++ /dev/null
-<?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>
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\.-]+(?:/
}
+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 .= ' — بندعلی' if $title !~ /بندعلی/;
-} else {
- $title .= ' — bandali' if $title !~ /bandali/;
-}
+$title .= " — $author" if $title !~ /$author/;
my ($upd, $pub, $url) = $txt =~ /(.*)\r?\n(.*)\r?\n(.*)\r?\n?\z/;
($upd) = $upd =~ /(?:updated|ویرایش): (.*)/ if $upd;
$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;