ahangarhahttps://amplifi.casa/@/ahangarha@fediverse.blog/atom.xml2024-01-25T22:45:54.884935+00:00<![CDATA[من، مدیریت دانش، لاگسیک و متن دوسویه]]>https://fediverse.blog/~/آزاد/من،%20مدیریت%20دانش،%20لاگسیک%20و%20متن%20دوسویه/2024-01-25T22:45:54.884935+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2024-01-25T22:45:54.884935+00:00<![CDATA[<p dir="auto">خیلی وقتها پیش میاد که نیاز دارم چیزی رو به خاطر بیاریم که مطمئنیم چند وقت پیش دربارهاش خونده یا شنیده بودیم اما الان هر چی فکر میکنیم همه چیز دربارهاش یادمون میاد غیر از اسمش. حتی با جستجو در اینترنت هم بهش نمیرسیم. نمیدونم برای شما چه قدر پیش اومده باشه این حالت برای من، خیلی زیاد اتفاق میافته. در واقع زیاد اتفاق میافتاد تا زمانی که علیرضا فریدونی من رو با مفهومی به نام «مدیریت دانش» و یک نرمافزار آزاد به نام <a href="https://fediverse.blog/tag/%D9%84%D8%A7%DA%AF%E2%80%8C%D8%B3%DB%8C%DA%A9" title="لاگسیک" rel="noopener noreferrer">#لاگسیک</a> آشنا کرد.</p>
<p dir="auto">اواسط تابستان ۱۴۰۲ بود که تصمیم گرفتم از این برنامه استفاده کنم. خیلی زود اثرات استفاده از این برنامه رو احساس کردم. هر چیز جالبی که میدیدم یا میشندیم رو وارد این برنامه میکردم. به لطفا شیوه عملکرد برنامه، به جای این که درگیر این بشید که چیزها رو باید کجا وارد کنید، فقط وارد میکنید و بعدا، اگر (که اگر خیلی بزرگی هست!) لازم شد به جاش فکر میکنید. لاگسیک کمک کرد نه فقط شنیدهها و دیدهها، بلکه ایدههام رو هم از ذهنم خارج و در یک جای متمرکز وارد کنم.</p>
<p dir="auto"><img src="https://fediverse.blog/static/media/394410AA-F55D-D143-3D55-10EDEAC18B7C.png" alt="گراف دانش در لاگسیک"> </p>
<p dir="auto">بعد از چند هفته که از این برنامه استفاده کردم، یک مشکل مهم خودش رو نشون داد: عدم پشتیبانی از زبانهای راست به چپ. البته میشد متن فارسی وارد این برنامه کرد اما نه تنها متون دست سمت چپ تراز میشدند، اگر اون متن دارای کلمات انگلیسی بود، ترتیب نمایش متن به هم میریخت. و خوب این مساله خیلی میتونست آزار دهنده باشه. خوشبختانه لاگسیک طوری نوشته شده بود که میشد برای افزونه نوشت و کسی هم یک افزونه نوشته بود که به کمک آن میشد جهت کل صفحه را بین چپ به راست و راست به چپ تغییر داد. برای شروع خوب بود اما راه حل ایدهآلی نبود. نه تنها در حرکت بین صفحهها لازم میشد که این افزونه را فعال و غیر فعال کنم، به دلیل اعمال جهت کلی به صفحه، صفحاتی که متون ترکیبی داشتند عملا مشکل پیدا میکردند.</p>
<p dir="auto"><img src="https://fediverse.blog/static/media/45F8D6BD-93BD-3388-DF39-E9E13B7D5E41.png" alt="اولین نسخه راه حل مشکل متن دوسویه در لاگسیک"> </p>
<p dir="auto">اینجا بود که آستین رو اندکی بالا زدم و بر اساس دانشی که درباره مفهومی به نام متندوسویه داشتم، شروع کردم به حل مساله. مراحل را هم از همان ابتدا (که از یک شرح مساله برای حل در آینده شروع میشد) در لاگسیک مینوشتم. چند روز بعد، یک کد ساده چند خطی درست کردم که باید با ترفندی به برنامه تزریق میشد. شروع خوبی بود. و هر مرحله از بهبود، انگیزه بیشتری میداد برای ادامه. آن چند خط کد در کمتر از یک ماه تبدیل شد به یک افزونه که با نام <a href="https://github.com/dobidi/logseq-bidi" rel="noopener noreferrer">logseq-bidi</a> منتشر شد. bidi مخفف bidirectional text هست که یعنی <a href="https://fa.wikipedia.org/wiki/%D9%85%D8%AA%D9%86_%D8%AF%D9%88%D8%B3%D9%88%DB%8C%D9%87" rel="noopener noreferrer">متن دوسویه</a>، که به زبان ساده یعنی کاری کنیم که بدون اشاره مستقیم به جهت متن، متن به طور خودکار و بر اساس اولین حرفی که در آن میآید، به صورت راست به چپ یا چپ به راست نمایش یابد.</p>
<p dir="auto">از زمان اولین انتشار تا امروز که نسخه ۰٫۳٫۰ این افزونه رو در دسترس عموم قرار دادم، این افزونه توسط بیش از ۷۰ کاربر دریافت و استفاده شده که مایهٔ خوشحالی منه. شما هم اگر نیاز به مغز دوم دارید، لاگسیک و این افزونه رو نصب کنید.</p>
]]><![CDATA[به یاد صابر راستیکردار و در باب گرامیداشت]]>https://fediverse.blog/~/آزاد/به%20یاد%20صابر%20راستیکردار%20و%20در%20باب%20گرامیداشت/2023-12-09T09:59:19.903905+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2023-12-09T09:59:19.903905+00:00<![CDATA[<p dir="auto">چرا یادبود و گرامیداشت میگیریم؟ برای که میگیریم؟ برای چه میگیریم؟ اگر محرم میشود، از حسین یاد میکنیم که روحش آرام بگیرد؟ یا از او یاد میکنیم که به خود یادآوری کنیم حسینوار زیستن یعنی چه! چه قدر مضحک میشود که کسانی زیر علم و بیرق حسین سینه بزنند که منش و روششان بیشتر به یزیدیان شبیه باشد؟ ما در فقدان کسی گرامیداشت نمیگیرم که او خوشش بیاید. گرامیداشت میگیریم که یک سری ارزشها را به خودمان یادآوری کنیم. این فرصت را بهانهای میکنیم برای جاری کردن آن ارزشها در زندگیمان. و اگر جز این باشد، جز ریاکاری، کار دیگری نکردهایم.</p>
<p dir="auto">کم نیستند کسانی که قلمهای فارسی زیبا تولید میکنند اما هیچ کدام، صابر نیستند. کار صابر از این جهت گرامیداشتنی است که او، قلمهای زیبای آزاد تولید کرد. گرامیداشتن این مساله به چه معناست؟ جز این است که بگوییم تولید <strong>با کیفیت</strong> و در عین حال <strong>آزاد</strong> برای ما ارزشمند است؟ آیا معنا دارد که من نوعی بگویم این کار ارزشمند است اما خودم (که اتفاقا دانش و تخصصی در حرفهٔ خودم دارم) قدمی در این مسیر بر ندارم؟ یادبود و گرامیداشت صابر تنها زمانی معنا دارد که ما، در مسیر صابر (تولید آزاد و با کیفیت) حرکت کنیم. زمانی معنا دارد که ما از تولید چنین آثاری حمایت کنیم.</p>
<p dir="auto">فقدان صابر از چند جهت دارای اهمیتی است:</p>
<ul dir="auto">
<li>صابر در شرایطی دست به تولید قلم آزاد زد که این موضوع برای کسی مهم نبود. یک گروهی هم که با جمع کردن حمایت مالی قصد تولید قلم آزاد داشتند با ترکیبی از بیتجرگی و بیمسئولیتی، کار را به نتیجه نرساندند. اما صابر، بدون این که تخصصی در این زمینه داشته باشد به تنهایی شروع به تولید این قلمها کرد. <a href="https://fediverse.blog/%7E/%D8%A2%D8%B2%D8%A7%D8%AF/%D9%87%D9%85%DB%8C%D8%B4%D9%87%20%D9%85%DB%8C%E2%80%8C%D8%AA%D9%88%D8%A7%D9%86%DB%8C%D9%85...%D8%9B%20%D8%A8%D8%B1%D8%A7%DB%8C%20%DB%B2%DB%B0%20%D8%B3%D8%A7%D9%84%DA%AF%DB%8C%20%D8%B1%D9%88%D8%B2%20%D8%A2%D8%B2%D8%A7%D8%AF%DB%8C%20%D9%86%D8%B1%D9%85%E2%80%8C%D8%A7%D9%81%D8%B2%D8%A7%D8%B1" rel="noopener noreferrer">او میتوانست تصمیم دیگری بگیرد</a> و با جریان همراه شود اما تصمیم گرفت جریان جدیدی ایجاد کند؛ ولو انفرادی.</li>
<li>حمایت مالی از صابر برای تولید این قلمها بسیار اندک بود. در حالی که که پروژه پیفونت ۸ سال پیش ۱۲ میلیون پول جمع کرد که یک قلم آزاد تولید کند (که نکرد)، از صابر در تمام این سالها، مجموعا ۲۷ میلیون حمایت صورت گرفت که اگر تورم را در آن لحاظ کنیم، عدد قابل توجهی به حساب نمیآید. این در حالی است که صابر قلمهای آزاد متعددی را تولید و به صورت آزاد منتشر کرده بود. با این حال، نبود حمایت مالی مناسب نتوانست جلوی صابر را بگیرد. مساله مالی، بهانهای نبود برای صابر که دست از کار بکشد.</li>
<li>نبود صابر به نوعی در حکم یتیم شدن قلم آزاد فارسی است. دیگرانی که قلم آزاد فارسی تولید کردهاند، نه در کمیت و نه در کیفیت با صابر قابل قیاس نیستند. میزان مشارکتهای عمومی روی قلمهای او نیز به روشنی به ما میگوید که در نبود صابر، آینده این قلمها در هالهای از ابهام است. تا جایی که من میدانم، صابر جز یک مقاله آموزش مقدماتی نرمافزار FontForge تلاشی برای آموزش و انتقال تجربه به دیگران نکرد. صابر به صورت فردی مؤثر بود اما فردی نگه داشتن فعالیتهایش منجر به به از دست رفتن آن تجربه و دانش شده است. این، مصداقی است از این که چرا باید به هر شکل، روی تقویت جامعه و انتشار آزاد دانش تاکید داشته باشیم مگر نه، با حذف فرد (به واسطه فوت، دستگیری، از کار افتادگی، خسته شدن و…) تمام آن دانش و تجربه نیز از دست میرود.</li>
</ul>
<p dir="auto">صابر، تجلی عینی «آیندهام را خودم میسازم» بود. جنبش نرمافزار آزاد پیش از هر چیز نیازمند فعالیتهای فردی خودانگیخته است اما این شرط لازم است و نه کافی. باید بتوانیم این فعالیتها را به سمتی ببریم که بشوند مصداق «آیندهمان را خودمان میسازیم».</p>
<p dir="auto">با خود میاندیشیدم که چه کاری میتواند یاد صابر را زنده نگاه دارد و مسیرش را ادامه دهد. دیدم تشکیل یک بنیاد به نام او برای حمایت از پروژههای آزاد میتواند جالب باشد. اما دریغ که حتی ۵ نفر را هم دارای صلاحیت برای مدیریت چنین بنیادی نمییابم. با افتخار، کلاهمان را بالاتر بگذاریم و به جای فعالیت سازنده، نگران مصادره شدن باشیم.</p>
<p dir="auto">یاد صابر راستیکردار گرامی و راهش، با قدرت بیشتر ادامهدار باد.</p>
]]><![CDATA[نقدی بر بیانیه مهر ۱۴۰۱ لاگ تهران]]>https://fediverse.blog/~/آزاد/نقدی%20بر%20بیانیه%20مهر%20۱۴۰۱%20لاگ%20تهران/2022-10-16T20:31:30.139673+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2022-10-16T20:31:30.139673+00:00<![CDATA[<p dir="auto">امروز (۲۴ مهرماه ۱۴۰۱) بیانیهای از طرف «جمعی از اعضای [جامعه] نرمافزار آزاد» در <a href="https://tehlug.org/news/statementforiran/" rel="noopener noreferrer">وبگاه لاگ تهران</a> در محکومیت سرکوبها و بازداشتهای اخیر در کشور منتشر شد. نکاتی را درباره این بیانیه لازم به ذکر میدانم.</p>
<p dir="auto">پیش از هر چیز و نظر به نزدیکی افراد پشت تهیه این بیانیه به «بیانیه تیر ۹۹» لازم میدانم تقدیر کنم بابت عدم استفاده از عنوان «فعال نرمافزار آزاد». بایستی تقدیر کنم که بر خلاف بیانیه تیر ۹۹، تلاش کردند کوتاه بنویسند بلکه احتمالاً کمتر مشکلاتشان برملا شود. با این وجود، بکار بردن عبارت اشتباه «اعضای نرمافزار آزاد» بجای «اعضای جامعه نرم افزار آزاد» در عنوان نشان میدهد که مشکلات عدیده بیانیه تیر ۹۹ ناشی از عجله و کمبود فرصت نبوده است.</p>
<p dir="auto">محتوای این بیانیه خیلی سرراست است: محکومیت سرکوب و بازداشتهای اخیر و درخواست آزادی بازداشتشدگان. متن بیانیه، یک متن به شدت عادی و سطحی در محکومیت سرکوب و بازداشتهای اخیر در کشور است. چنین محکومیتی تا آن حد بی معنی است که حتی بسیاری از طرفداران حکومت هم چنین میکنند. اما چرا چنین محکومیت سادهای باید به طور ناشناس منتشر شود؟ آن هم در زمانی که بسیاری از اعضای همین جامعه نرمافزار آزاد با صدای رسا و صریح و حتی بعضا رکیک علیه سیاستهای سرکوبگرانهٔ حکومت در شبکههای اجتماعی و با اسم و رسم واقعی خود موضع گرفته و اعتراض میکنند!</p>
<p dir="auto">آیا دون شان جامعه نرمافزار آزاد نیست که بعد از این همه بحرانهای عظیم در عرصه دیجیتال (همهگیری کرونا و مجازی شدن رویدادها، طرح صیانت و اکنون سرکوب اعتراضات و اختلال در ارتباطات) به جای دادن بیانیهای پیشرو و راهگشا در این خصوص، به یک بیانیه کلی اکتفا کند که اگر عنوانش را حذف کنیم، توسط هر گروه دیگری هم میتواند صادر شده باشد؟ اشکالی ندارد که چنین بیانیهای هم صادر شود اما آیا تنها بیانیه جامعه نرمافزار آزاد باید چنین بیانیهای باشد؟ آیا از جامعه نرمافزار آزاد، با آن شعارها و ارزشها و ایدههای ظاهرا انقلابی و ساختارشکن باید انتظار چنین بیانیهٔ کلی و عقیمی را داشت؟ آیا این جامعه نباید پیشرو باشد در ارائه ایدهها و راهکارهای آزاد برای حفاظت از حقوق دیجیتال مردم؟ اگر چنین نیست، فرق جامعه نرمافزار آزاد با باقی جوامع حوزه فناوری اطلاعات (IT) چیست؟ واقعیت میدانی به گواه تاریخ چند سال اخیر رویدادهای این جامعه و بهخصوص تعطیلی عمده رویدادهای نرمافزار آزاد، مخصوصا همین لاگ تهران به ما میگوید هیچ فرقی نیست.</p>
<p dir="auto">گفته میشود که این بیانیه نه از طرف لاگ تهران بلکه از طرف جمعی از اعضاست که میتواند ۲ یا تعداد بیشتری از افراد را شامل شود. گفته میشود که این بیانیه ادعایی از طرف دیگران نکرده و لذا اشکالی بر آن وارد نیست. این البته بهانه خوبی برای سلب مسئولیت است بهخصوص اینکه مشخص نیست چه کس یا کسانی این بیانیه را نوشته و منتشر کردهاند. این حرف زمانی درست بود که این بیانیه در جایی غیر از گروه هماهنگی لاگ تهران تنظیم و در جایی غیر از وبگاه رسمی لاگ تهران منتشر میشد. یک نکته مهم این است که لاگ تهران، ناشر این بیانیه بوده و نه بازنشر دهندهٔ آن. لاگ تهران هرگز بیانیههای جشن روز آزادی نرمافزار سالهای ۹۸ و ۱۴۰۰ را که به نظرم از نقاط افتخار تاریخ جامعه نرمافزار آزاد هستند بازنشر نکرد. لاگ تهران هرگز سابقه چنین کاری نداشته است و لذا نمیتوان به راحتی با چنین استدلالی اصل مساله را پاک کرد.</p>
<p dir="auto">ساعتی بعد از انتشار این بیانیه، ایران اینترنشنال این بیانیه را پوشش داد. این رسانه پدرسوختهتر از آن است که بخواهیم پاسخی شرافتمندانه برای اعمالش بیابیم. اما به نظر شما اگر این بیانیهٔ چند عضو (مثلاً ۲ یا بیشتر) جامعه نرمافزار آزاد را یک حساب شخصی منتشر میکرد آیا از چنین بازتابی برخوردار میشد؟ جامعه نرمافزار آزاد ایران چه زمانی این قدر اعتبار رسانهای داشته است که الان صدور بیانه توسط چند عضو آن چنین بازتابی بخواهد پیدا کند؟ جز این است که به طرز ناشیانهای، این افراد برای یک بیانیه به شدت معمولی، حتی حاضر نشدهاند از خودشان مایه بگذارند و خودشان را پشت اعتبار لاگ تهران پنهان کردهاند؟ </p>
<p dir="auto">این کار به راحتی و در عین بیخردی، لاگ تهران را تبدیل به نقطه کانونی توجه دستگاههای امنیتی میکند. اگر این کار توسط افراد فعال در لاگ نوشته و منتشر شده بود وضعیت متفاوت میبود. به هر حال اگر لاگ تهران متعلق به کسانی است که برگزارش میکنند منطقا این حق را دارند که فعالیت مورد نظرشان را انجام دهند. مشخص هم میبود که چه کسانی چنان کردهاند و مسئولیت با ایشان بود. اما الان با وضعیتی مواجهیم که کسانی لاگ تهران را هزینه میکنند که لااقل در چند سال گذشته یا نقشی در برگزاری جلسات لاگ تهران نداشتهاند یا مستقیم تصمیم به تعطیلی آن در دو سال گذشته گرفته بودند.</p>
<p dir="auto">این بیانیه خواهناخواه بیانیه لاگ تهران شناخته خواهد شد. سوال روشن من این است که چه کسانی پشت تنظیم این بیانیه و انتشارش در لاگ تهران بودهاند؟ به چه اعتباری دست به چنین کاری زدهاند؟ چگونه مسئولیت کاری که کردند را میپذیرند؟ البته انتظاری برای دریافت پاسخ ندارم چرا که سابقه این افراد (به خصوص در تیر ۹۹) پر است از اقدامات غیرشفاف برای داشتن امکان فرار از پذیرش مسئولیت. این، مشت نمونه خرواری است از رویههای غلط در جامعه نرمافزار آزاد. رویههایی که که صرفا اسیر شعار هستند تا درگیر یافتن راهکارهایی برای تقویت روحیه مشارکت، پویایی و خلاقیت در تولید، ارائه و تبلیغ ایدهها و راهکارهای آزاد به جامعه.</p>
<p dir="auto">متأسفانه و به واسطه فضای آلوده حاکم بر جامعه لازم است بیان واضحات کنم که سرکوب اعتراضات به حق جامعه و دستگیریهای فلهای و غیر قانونی به شدت محکوم است. ما به عنوان کسانی که لااقل در حرف، دغدغه ارزشهای جنبش نرمافزار آزاد را داریم اخلاقاً بایستی فعالیت متفاوتی داشته باشیم.</p>
<hr>
<p dir="auto"><em>بر خلاف تاریخی که در متن خبر تهلاگ به ۱۹ مهر اشاره دارد، این بیانیه در ۲۴ مهر منتشر شده است. این تاریخ از مخزن وبگاه تهرانلاگ روی گیتهاب قابل تشخیص بود که این مخزن هماکنون خصوصی شده است تا هیچ گونه ابهامی در خصوص ارتباط میان این بیانیه و لاگ تهران باقی نماند!</em></p>
]]><![CDATA[Collaboration is the key]]>https://fediverse.blog/~/LibreCode/Collaboration%20is%20the%20key/2022-07-24T13:04:17.943135+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2022-07-24T13:04:17.943135+00:00<![CDATA[<h2 dir="auto">The worry</h2>
<p dir="auto">Nearly from the beginning of the course in January I witnessed the lack of interest in collaboration among many students….</p>
<p dir="auto">My worry was that what if I get paired with those who don’t want to collaborate in the final capstone project. Thankfully I got paired with top collaborators in my cohort. So the module started with positive energy.</p>
<h2 dir="auto">Working</h2>
<p dir="auto">We knew each other from our previous modules. We knew we were responsible, passionate, and good team players. Maybe not the best, but we were also good in our programming skills. Soon we started to work. We came with different ideas (based on the core requirements of Microverse). Among all (almost all were good), we chose to make a website for mentorship. Not only we could relate to it, we could imagine it to be a real project (rather a useless car renting app which would remain the same after project submission) in the near future. We spent time to choose name and make logo for it. We chose “<a href="https://github.com/UpliftLab/al-mentoria-frontend/" rel="noopener noreferrer">Al mentoria</a>” which has a mixed vibe for Spanish and Arabic in it.</p>
<p dir="auto">We had discussion on how to divide our work. While we could divide tasks into two groups of front and back-end, we decided that all of us work on all parts. Each had its own benefits. I was supporting front/back division, but at the end I think the group decision was better (despite its problems).</p>
<p dir="auto"><img src="https://fediverse.blog/static/media/503C8465-189A-ADB9-8D91-0BB7EAD08517.jpeg" alt="Al-Mentoria Screenshot"> </p>
<p dir="auto">One interesting issue was that we had much more ideas than the project requirements. We wanted to make any ordinary user be able to apply for having mentorship profile. We wanted to use TypeScript. Unlike other group projects in which my worry was that the other teammates were not working, this time the issue was how to manage this motivation in a way we could keep the integrity of the app and still deliver the final project in best quality as per the minimum requirements.</p>
<p dir="auto">Apart from the above example, there were many other cases of disagreement. For instance I believed that it would be much better if we would implement the HTML/CSS design first and then convert it into React app. Others found it unnecessary, and of course we followed the group decision. In another case, we had disagreement on how to implement authentication on front end. The task we used to think shouldn’t take more than two hours, took two days to come to a relatively robust implementation. In all cases, whenever we had an issue that could impact everyone, we all were getting involved actively to make the best decision.</p>
<p dir="auto">As mentioned before, the unfortunate norm among many students in Microverse (despite the Microverse attempt for change) is that many students do not appreciate team work. In the morning sessions many students prefer to keep their mic and camera off; hardly some would attend mob programming. Standup is worse. People only attend for attendance while it could be a fun session to wrap up the day. But our group was totally the opposite. Right from morning till evening we had fun sessions while helping each other. Even there were days in which we continued our sessions after standup, not just for work but to have chat about other topics.</p>
<h2 dir="auto">Challenges</h2>
<p dir="auto">I mentioned before that our issue was how to limit ourselves. I was the leader in the group, and I tried my best making sure all ideas are heard. We made a list of desired features and refactoring candidates. I assured everyone that we will implement all these good ideas but let’s focus on delivering the first version according to the project requirements as best as we can. Thankfully the team accepted this proposal.</p>
<p dir="auto">We had another challenge: we all must have roughly equal contribution to the project. The rationale behind this condition is legitimate. Where many students do not do their tasks effectively in a group, Microverse tries to push people to work equally. This limitation pushes the fast teammates to work with others and help them to work better. But in our case, this rule was a big barrier. It prevented us utilizing our extra time and energy to add more features while others were working on their own features.</p>
<p dir="auto">It was interesting that after finishing our own tasks, instead of going and resting, we all would come to see if we could offer any help to the other teammates. We never said (or even thought) something like “I have done my task, you should do yours”. We all considered the whole project as ours. We respected others autonomy while tried to offer help.</p>
<h2 dir="auto">Outcome</h2>
<p dir="auto"><img src="https://fediverse.blog/static/media/342AFD2D-26B6-D92F-F8CD-7222DA6704E0.jpg" alt="Al-mentoria team virtual selfie before final assessment"> </p>
<p dir="auto">We presented our project on time. Not only we implemented all the core requirements, but also we implemented a relatively robust authentication and error handling in front-end. We wrote 100+ test cases for back-end and 50+ for front end while it was not a requirement. And for the design, we tried to be as loyal to <a href="https://www.behance.net/gallery/26425031/Vespa-Responsive-Redesign" rel="noopener noreferrer">the proposed design</a> as possible despite having disagreement with some part of it. I think we achieved this fully. So from technical point of view, we were successful. </p>
<p dir="auto">To me (and I guess other teammates), the main success was in our collaboration. We had three fun and joyful weeks. We worked together and much more than that. We were working, laughing, joking, and totally enjoying each others’ company. We strengthen our bond and friendship. And this is the most valuable achievement of this project.</p>
<p dir="auto">We made our project not in our personal profile but in an organization called “<a href="https://github.com/UpliftLab/" rel="noopener noreferrer">UpliftLab</a>”. We made our own workspace on slack to keep remaining connected and work collectively on projects that can help ourselves and other junior programmers to develop skills.</p>
<p dir="auto">At the end, I want to thank all my teammates: <a href="https://github.com/mirouhml" rel="noopener noreferrer">Ammar Hamlaoui</a>, <a href="https://github.com/awais-amjed" rel="noopener noreferrer">Awais Amjed</a>, and <a href="https://github.com/sboursen" rel="noopener noreferrer">Soufiane Boursen</a>, for their contributions in this wonderful experience. I want to thank <a href="https://microverse.org" rel="noopener noreferrer">Microverse</a> (despite all limitations) for its attempts to improve the students skills as developers and as effective team players especially in a remote environment.</p>
<p dir="auto">And the final word: value collective growth.</p>
]]><![CDATA[Enjoying web design using Tailwindcss]]>https://fediverse.blog/~/LibreCode/Enjoying%20web%20design%20using%20Tailwindcss/2022-04-01T11:15:35.393051+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2022-04-01T11:15:35.393051+00:00<![CDATA[<p dir="auto">Do you enjoy the pain of moving between HTML and CSS files for designing a web page? I don’t and I don’t think anybody would. Then what is the solution? Are there any CSS frameworks good enough to overcome this pain? If yes, which of them to use? My ultimate answer is <a href="https://tailwindcss.com" rel="noopener noreferrer">Tailwindcss</a> and here I am going to share some of my thoughts about it.</p>
<p dir="auto">An ordinary day for a frontend developer consists of opening an HTML file, a CSS file, and a web browser. We frequently go from HTML to CSS files, make new classes, combine them, make complex selectors, and deal with issues such as specificity. We wrestle with all these to get something we want. For years, many ideas came up to make this procedure more smooth and less painful. Many people use less, sass, scss, or frameworks like foundation and bootstrap. But still, the field on which we wrestle is the same, maybe just fancier.</p>
<p dir="auto">How nice would it be if we could remove one of HTML, CSS, and a web browser for design? Wrestle with two is much easier than with three. We cannot remove HTML since our content is there. Removing the web browser also is not practical since we need to examine our design step by step. What remains is CSS! But if we remove CSS, how can we design? One may say frameworks like Bootstrap have many premade styles so without touching any CSS files, we can use relevant classes to design the page. Yes! That is a good start but don’t you think this approach makes all websites look the same (and look ugly :D). This is why I say this is just a fancier wrestling field and not a different one.</p>
<p dir="auto">Let’s change the field and play differently. Tailwindcss is at your service. Tailwindcss provides us with a bunch of utility classes we can add to HTML elements. Do you want padding of 1rem? Add p-4 class. Do you want a red color text on the hover? Add hover:text-red-500 class. But wait! Isn’t this the same as Bootstrap classes? At once yes but deeply no.</p>
<p dir="auto">Bootstrap has two kinds of classes: utilities and components. Components are sets of classes that are related to each other and without one, the other won’t have any meaningful impact. Classes for making navbar or cards,… are among component classes. But also there are utility classes which are kind of independent of others and can be used anywhere. Classes related to typography, spacing,… are among this group.</p>
<p dir="auto">Tailwindcss is a utility-first framework. Unlike working with Bootstrap which provides a limited (really limited) number of utility classes, Tailwindcss provides many. And since version 3 practically we have an unlimited number of classes. You just make a new class right inside the HTML file and Tailwindcss generates the CSS style for that class on the fly. Isn’t it cool? This way one can implement nearly any possible design without leaving the HTML file. It is easy, fast, and fun!</p>
<p dir="auto">In short, Tailwindcss provides these advantages:</p>
<ul dir="auto">
<li>You only focus on design right in the HTML file.</li>
<li>You get a small CSS file since Tailwindcss only generates classes you have used in your HTML file</li>
<li>The HTML component becomes portable. Just copy it from one project to another and it fits the design system of that project.</li>
<li>No specificity issue anymore.</li>
<li>No garbage classes and style in CSS files</li>
<li>Perfect for React, Vue, Angular project</li>
</ul>
<p dir="auto">There is much more to talk about Tailwindcss. It has good <a href="https://tailwindcss.com/docs/" rel="noopener noreferrer">documentation</a> and also it has a <a href="https://play.tailwindcss.com/" rel="noopener noreferrer">playground</a>. At first, it may look weird and pointless but I promise if you start working with it, it shows up its power very soon. I am not sure how one can resist it then.</p>
]]><![CDATA[در حمایت از مطالبهگری حق پیرامون طرح صیانت]]>https://fediverse.blog/~/آزاد/در%20حمایت%20از%20مطالبهگری%20حق%20پیرامون%20طرح%20صیانت/2022-02-27T11:28:21.579883+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2022-02-27T11:28:21.579883+00:00<![CDATA[<p>طرح موسوم به <a href="//fediverse.blog/tag/%D8%B7%D8%B1%D8%AD_%D8%B5%DB%8C%D8%A7%D9%86%D8%AA" title="طرح_صیانت" rel="noopener noreferrer">#طرح_صیانت</a>، بحثهای گسترده بین فعالان و شبهفعالان فضای مجازی به راه انداخت. انتقاداتی به انتقادات دارم که آن را در جای دیگری باید بیان کنم اما در این نوشته، نه در موافقت یا مخالفت طرح یا واکنشها بلکه درباره نفس نقد کردن به ساز و کاری مینویسم که اساسا مشروعیتشان زیر سوالات جدی قرار دارد.</p>
<p>در گذشته، بارها و بارها پیش آمده است که بحثی شروع شود که یک سوی آن به دولت یا یک دستگاه عمومی مربوط باشد. به عنوان مثال میتوانم به بحثهایی پیرامون الزام حکومت به آموزش نرمافزارهای آزاد در مدارس و عدم ایجاد مانع بر سر راه انجام تکالیف دانشجویان با نرمافزارهای آزاد اشاره کرد؛ و یا الزام دولت و دستگاههای دولتی به انتشار و ارائه دادههای عمومی به صورت آزاد (شامل دادههای عمومی مربوط به نقشه) اشاره کرد.</p>
<p>در این بحثها همیشه یک پای ثابت وجود دارد که حرفش این است که حماقت است که تصور کنیم دولت به حرف ما گوش داده رفتارش را تغییر دهد. در توخالی بودن این موضع زیاد میتوان حرف زد گویی که کسی که تحت یک حاکمیت ناقض حقوق بشر، حرف از حقوق بشر بزند را احمق فرض کنیم! متاسفانه علیرغم ابتر و توخالی بودن این بحث، چنین گزارهبه در بسیاری موارد توانسته است از موج اعتراضات به حاکمیت بهرهبرداری کرده و مانع پیشبرد بحثهای مورد اشاره شود.</p>
<p>برگردیم به طرح صیانت. این طرح، در مجلسی در حال بررسی و تصویب است که کیفیت نمایندگان و پشتوانه مردمی آن اساسا مشروعیت قوانینی که در این مجلس تصویب میشود را با سوال جدی مواجه میکند. این البته در نهایت مانعی نمیشود برای لازمالاجرا شدن قوانین مصوب این مجلس. اگر این طرح تصویب شود هم که باید به دست دولتی اجرا شود که به لطف مهندسی انتخابات و با اتکا بر آرای بسیار پایین به قدرت رسیده است ولی همین هم حتی مانع شناسایی این دولت به عنوان یک دولت قانونی در سطح بینالمللی نیست.</p>
<p>اتفاق خوب در این ماهها این است که منتقدان، تسلیم آن گفتمان بنبست نشدند؛ نگفتند که حماقت است حرف زدن از حقوقمان در مقابل مجلسی که به واقع نماینده مردم نیست. منتقدان، برای دفاع از آن چه حقوق خود میپندارند نگفتند که بلاهت است که برویم به کسانی اعتراض کنیم که بررسی طرحها بردهاند پشت درهای بسته. تسلیم چنین گفتمانی نشدند و به جایش، از حقوقشان دفاع کردند.</p>
<p>حق، گرفتی است. اگر حکومتی برای حقوق اشخاص احترام قائل باشد که اساسا نیازی به فعالیت خاصی برای دفاع از آن حقوق نیست. دفاع از حقوق (شامل حق آموزش، حقوق بشر، حقوق زنان و…) همگی زمانی اهمیت واقعی پیدا ميکنند که این حقوق در خطر باشند. فعال و مدافع این حقوق، نه آن که احمق باشد و تصور کند با دو بار اعتراض، دستگاه ناقض حقوق نظرش را عوض میکند بلکه در کنار مطالبه حق، فرهنگ مطالبهگری را بین جامعه ترویج میکند. حق، گرفتنی است و این گرفتن حق، جز با مطالبهگری و طرح مساله حاصل نمیشود.</p>
<p>امیدوارم این اتفاق، شروعی باشد برای این که آن گفتمان ابتر و بیفایده به کلی محو شود و جامعه، به جای تقبیح تلاش برای استیفای حقوق و هزینهتراشی در مقابلش، آن را ارج نهاده و با آن همراه شود.</p>
]]><![CDATA[تغییر نام خلیج فارس در osm - روایت ابراهیم نجاتی]]>https://fediverse.blog/~/آزاد/تغییر%20نام%20خلیج%20فارس%20در%20osm%20-%20روایت%20ابراهیم%20نجاتی/2021-12-10T20:22:58.440044+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2021-12-10T20:22:58.440044+00:00<![CDATA[<p>این ماجرا از اوایل یا اواسط اردیبهشت شروع شد. تا پیش از این زمان نام خلیج فارس در نقشه اوپناستریتمپ، خلیج فارس بود. یعنی در برچسب name، این نام درج شده بود. اما برچسب name چیست؟ هر عارضهای در OSM میتونه چندین برچسب داشته داشد. این برچسبها اطلاعات مختلفی از آن عارضه را در خود ذخیره میکنند. یکی از این برچسبها name است که اسم آن عارضه رو نشان میدهد. البته ما بچسبهای دیرگی هم برای نام داریم که مثلا مشخص میکنند نام آن عارضه در زبانهای دیگر چیست و یا اگر آن عارضه دارای نامهای دیگری است میتوان از برچسبهایی برای ذخیرهشان استفاده کرد. همچنین برچسبهایی برای ذخیره نامهای محلی یا تاریخی وجود دارد و عارضه خلیج فارس هم از این برچسبها داشت.</p>
<p>ماجرا این گونه بود که چند ماه یک بار، یک نفر میآمد و نام خلیج فارس را میکرد خلیج عربی و این تغییر به سرع اصلاح میشد. هم تیم DWG (کارگروه داده) در بنیاد درستش میکرد هم این که ما خودمان میتوانستیم درستش کنیم. حساب کاربر خاطی هم به دلیل انجام ویرایش مهم بدون اطلاع و بحث قبلی مسدود میشد.</p>
<p>اما مشکل از زمانی شروع شد که این عارضه اسمش عوض شد به خلیج عربی و یک نفر از اعضای خود OSM ایران آمد و نه تنها این تغییر را برگرداند، بلکه یه سری تغییرات دیگری در داخل کشور عربستان اعمال کرد. این تغییرات عمدتا حذف مکانهای مختلفی بودند. هرکسی این ویرایش را ببیند برایش واضح است که این کار، یک اقدام خرابکارانه بده است که مثلا شخصی بیاید و هزار راه را پاک کند. این تغییرات به سرعت برگردانده شد و این بار ما برگشتیم به آن تغییر غلط که خلیج عربی بود. تیم DWG نمیدانست که واقعا جریان از چه قرار است. از این جا به بعد بود که به نوعی با یک حالت قفل شدگی مواجهیم. در این جا منظورم از قفل شدگی، قفل فنی نیست که کسی نتواند ویرایش کند. بلکه هر تغییری تا زمانی که این موضوع تعیین تکلیف نشده باشد، بازگردانده خواهد شد.</p>
<p>در نتیجه به مدت یک ماه نام خلیج عربی روی این عارضه ماند و کسی هم کاری دربارهاش نکرد. لازم است این را بگویم که همین تابل OSM الان توسط بیش از هفتاد شرکت در ایران (مثل همراه اول که این روزها مطرح شده است یا ایرانسل یا خیلی از شرکتهای دیگر) در حال استفاده و نمایش داده شدن است. یعنی از همان اواسط اردیبهشت تا الان این همه شرکت داشتند همین را نشان میدادند و این موضوع، به هیچ عنوان موضوع جدیدی نیست.</p>
<p>پس از این ماچرا کاری که من کردم این بود که اول خرداد اومدم یه فهرست جدید در فهرست پستی OSM باز کردم؛ یعنی جایی که باید در مورد آن صحبت کنیم. و این را از همان جایی فهمیدم که در متن همان تغییر نوشته و گفته شده بود که اگر کسی میخواد درمورد این موضوع صحبتی کند بیاید در فهرست پستی که تکلیف روشن شود و ما بتوانیم کاری انجام بدهیم. همان زمان هم در گروه OSM ایران این را فرستادم که اگر کسی میخواهد در مورد این موضوع نظری بدهد، بیاید این کار را انجام بدهیم؛ که آقای آهنگرها بعدا آمد و پیوست.</p>
<p>واقعیت این است که از همان زمان تا کنون یعنی از خرداد تا همین الان در فهرست پستی به یک نظر جمعی نرسیدهایم و موضوع در همان نقطهای که بوده متوقف است. و از آنجا که از نظر بنیاد OSM تکلیف مشخص نشده و ما به یک نظر جمعی مورد قبول جامعه ایران و جامعه عرب زبان نرسیدهایم، کسی نمیتواند تغییری در نقشه اعمال کند.</p>
<p>حالا یه سری پیشنهاداتی در فهرست پستی مطرح شده است که به اختصار به آنها اشاره میکنم:</p>
<ol>
<li>نام، خلیج فارس باشد.</li>
<li>تمام برچسبهای دیگر مانند اسم اصلی، اسم فرعی، اسم در زبانهای دیگر نگه داشته شود اما برچسب name پاک شود تا روی نقشه چیزی نمایش داده نشود.</li>
<li>هم خلیج فارس و هم خلیج عربی هردو در برچسب name قرار بگیرند و در نقشه نمایش داده شوند. یعنی نام این عارضه بشود مثلا «خلیج فارس / خلیج عربی»</li>
<li>نام، خلیج عربی باشد.</li>
</ol>
<p>در فهرست پستی در مورد این پیشنهادها صحبت کردیم. چیزی که من از همان اول گفتم این بود که یا باید نام این عارضه خلیج فارس باشد یا اگر میخواهیم این بحث را به یک جایی برسانیم، برچسب name را کلا حذف کنیم. ولی این پیشنهاد از سوی جامعه عرب زبان پذیرفته نشد و هنوز که هنوزه به یک اجماع نرسیدهایم.</p>
<p>و الان حقیقتا نمیدانم که چه کاری میتوان کرد. من در این مدت تمام چیزی که میدانستم و میتوانستم را گفتهام و انجام دادهام. بااینکه خودم فکر میکنم فرد مناسبی برای پیگیری این موضوع نیستم اما هر چه که میتوانستم را انجام دادم. و نظر شخصی من این است که اگر قرار است اتفاقی برای این موضوع رخ دهد لازم است افراد جدیدی که دانش تاریخی و سیاسی بیشتری دارند بیاند و روی این موضوع حرف بزنند و کار کنند. و پیگیری این موضوع برای کسی که سوادش را داشه باشد کار چندان سختی هم نیست.</p>
<hr>
<p><em>این مطلب، متن پیاده شده از صحبتهای ابراهیم نجاتی در جلسه عمومی گروه تلگرامی اوپناستریتمپ ایران است که در تاریخ پنجشنبه ۱۸ آذر ۱۴۰۰ بیان شده است.</em></p>
]]><![CDATA[با تغییر نام خلیج فارس در osm چه کنیم؟]]>https://fediverse.blog/~/آزاد/با%20تغییر%20نام%20خلیج%20فارس%20در%20osm%20چه%20کنیم؟/2021-12-08T21:28:54.530764+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2021-12-08T21:28:54.530764+00:00<![CDATA[<p>اگر اینجا هستید احتمالا در جریان این مسئله قرار دارید که در نقشهٔ اوپناستریتمپ نام خلیج فارس به نام خلیج عربی تغییر پیدا کرده و این باعث شده برخی حساسیتهابه وجود بیایند. به همین دلیل تصمیم گرفتم که در این خصوص به شکل عمومی صحبت کنم به این امید که بتوانیم راه کاری برای رفع این مشکل پیدا کنیم. طبیعتا اگر اینجا هستید به احتمال خیلی خیلی خیلی زیاد درباره اوپناستریتمپ اطلاعاتی دارید. ولی با این حال چون ممکن است افرادی باشند که خبر نداشته باشند یا به هر حال اطلاعاتشان ناقص باشد بد نیست که در ابتدا قدری در مورد این برنامه توضیح دهم.</p>
<h2>اوپناستریتمپ چیست؟</h2>
<p>اوپناستریتمپ یک نقشه آزاد است. شاید نزدیکترین تجربه ملموس دیگران به اوپناستریتمپ، ویکیپدیا باشد با این تفاوت که به جای متن، دادههای جغرافیایی در آن درج میشود. تصور کنید همونطور که در ویکیپدیا همگان میتوانند بروند و ویرایش بکنند، اطلاعات جدید اضافه بکنند، اطلاعات نادرست را اصلاح و حتی خراب کاری بکنند، در اوپناستریتمپ نیز همگان میتوانند بروند اطلاعات جغرافیایی را وارد بکنند، اصلاح، اضافه و کم بکنند و حتی دست به خرابکاری بزنند. درواقع اوپناستریتمپ یک پایگاه داده آزاد از اطلاعات جغرافیایی هست. نه تنها میتوان عوارضی به نقشه اضافه کرد بلکه هر عارضه میتواند حاوی برچسبهای متفاوتی باشد که کمک میکند تا بازتاب دیجیتالی آن عارضه بیش از پیش به ویژگیهای آن در دنیای واقعی نزدیکتر شود.</p>
<p>هر کسی که در <a href="https://openstreetmap.org" rel="noopener noreferrer">openstreetmap.org</a> حساب ساخته باشد میتواند در آن مشارکت کند. در اوپناستریتمپ برخلاف بسیاری از سامانههاى دیگر نیازی به تایید وجود ندارد. هر تغییری که انجام میشود، مستقیما و بدون نیاز به تایید یا رد کسی در پایگاه داده ذخیره میشود. بنابراین ما گروه تاییدکنندگان یا ناظران با دسترسیهای ویژه نداریم. معنی این اتفاق این است که هرچند ساختاری طبقاتی در اوپناستریتمپ وجود ندارد اما همین ویژگی میتواند طبیعتا امکان ویرایشهای مخرب را هم فراهم کند. اینجاست که اهمیت مشارکت جمعی بیشتر درک میشود چرا که این ما (مردم) هستیم که میتوانیم به عنوان اعضای مسئولیت پذیر، از دقت و صحت دادههای وارد شده حفاظت کنیم.</p>
<p>این مشارکت نیازمند ارتباط است تا بتوانیم در موارد اختلاف، مشکل را رفع کنیم. روشهایی برای این ارتباط وجود دارد که شاید بتوان گفت مهمترین آنها، <a href="https://fa.wikipedia.org/wiki/%D9%84%DB%8C%D8%B3%D8%AA_%D9%BE%D8%B3%D8%AA%E2%80%8C%D8%B3%D9%BE%D8%A7%D8%B1%DB%8C" rel="noopener noreferrer">فهرست پستی</a> است؛ جایی که افراد با فرستادن ایمیل، هم سوال میپرسند و هم موارد اختلافی را به بحث میگذارند. از مزایای فهرست پستی، عمومی بودن تاریخچه بحثهاست. (مثلا <a href="https://lists.openstreetmap.org/pipermail/talk/" rel="noopener noreferrer">تاریخچه فهرست talk</a> در بنیاد OSM)</p>
<p>همانطور که بالاتر هم اشاره شد، همه عوارض در اوپناستریتمپ دارای یک سری برچسب هستند. به کمک این برچسبها میتوان ویژگیهای مختلف آن عارضه را ثبت کرد. از بین این برچسبها بحث ما به یک مجموعه برچسبهایی مربوط میشود که برای نامگذاری مورد استفاده قرار میگیرند: برچسبهای خانواده نام یا name. به طور خلاصه، این برچسب حاوی مقادر نام اصلی است که ترجیحا به زبان محلی درج میشود. اما به کمک پسوندهایی میتوان نام عارضه در زبانهای دیگر را نیز وارد کرد. مثلا از name:en برای نام انگلیسی و از name:fr برای نام فرانسوی میتوانیم استفاده کنیم. وقتی این برچسبها وجود داشته باشند، برنامهها متناسب با موقعیت جغرافیایی کاربر یا زبان برنامه، نام متناسب با زبان مربوط را نمایش میدهند. الان هم دقیقا بحث ما به طور مشخص سر این برچسب نام است.</p>
<h2>مساله چیست؟</h2>
<p>بعد از این مقدمه نسبتا طولانی اجازه بدید که وارد بحث اصلی بشوم و شرح مختصری از دعوای جاری ارائه کنم. به طور ساده دعوا سر این است که در خلیج فارس درواقع آن برچسب name از خلیج فارس تغییر پیدا کرده است به خلیج عربی. این ماجرا چندین ماه شاید حتی تا یک سال یا بیش از آن سابقه دارد. بطور مشخص من چیزی حدود نه ماه است که در جریان این اتفاقات قرار دارم و از همان زمان در فهرست پستی حضور پیدا کردم، نظر دادم و تا حدی که میشد (و قطعا کافی نبوده) پیگیر ماجرا بودم. غیر از من هم البته دوستان دیگری همین کار را انجام دادند که حالا من خیلی وارد جزئیات نمیشم. میتوانید بحثها و افراد را تاریخچه فهرست پستی ملاحظه کنید.</p>
<p>عرض کردم که دعوا سر این است که نام این آبراه چه باشد. در خلال بحثها کلا چهار راهکار مورد بحث بوده است.</p>
<ul>
<li>نام این عارضه خلیج فارس یا Persian Gulf است پس باید همین نام باقی بماند.</li>
<li>اکثر کسانی که دور این آبراه زندگی میکنند به آن خلیج عربی یا Arabian Gulf میگویند پس نام باید این باشد.</li>
<li>نام، ترکیبی از هر دو باشد.</li>
<li>اصلا از برچسب name استفاده نشود و هر زبانی، نام مربوط به خودش را داشته باشد.</li>
</ul>
<p>طرفداران گزینه اول بحثشان این است که نام خلیج فارس، یک نام تاریخی با شواهد متعدد در طول تاریخ است. افزون بر آن نام مرسوم و معمول مورد استفاده در سطح بینالمللی برای این عارضه، خلیج فارس است. همین دو دلیل کافی است که این آبراه بینالمللی، خلیج فارس نامگذاری شود.</p>
<p>طرفداران گزینه دوم میگویند بر اساس قاعدهای در اوپناستریتمپ، در مواردی که اختلاف وجود دارد، نامگذاری باید بر اساس نظر کسانی انجام شود که در نزدیکی آن عارضه زندگی میکنند. بر همین اساس مدعی هستند که هم جمعیتشان و هم مرزشان با این آبراهه بیش از ایران است و در نتیجه نام آن باید مطابق با خواست آنها یعنی خلیج عربی باشد.</p>
<p>پیش از پرداختن به دو بحث دیگر، بد نیست قدری درباره نظر طرفین این بحث درباره بحث طرف دیگران بگویم. طبیعتا اساس مخالفت طرف عرب با نام خلیج فارس این است که اسناد دیگری هم وجود دارند که نشان میدهند هم در گذشته و هم در حال حاضر از نام خریج عربی استفاده شده است. حرفشان صحیح است اما نمیدانم نسبت این اسناد به تعداد اسنادی که نام خلیج فارس را استفاده کردهاند چه قدر باشد. بعید میدانم کسی بتواند ادعا کند تعداد این اسناد نه تنها بیشتر بلکه حتی به یک سوم اسناد اثبات تاریخی بودن نام خلیج فارس برسد. لذا این بحثی نیست که از آن بتوانند آبی گرم کنند.</p>
<p>بحث مربوط به جمعیت ساکن در اطراف عارضه هم در همان فهرست پستی بحث خوبی شکل گرفت که در آن عنوان شد اساسا فلسفه آن قاعده مربوط میشد به عوارضی که کاملا به ساکنان اطرافش مربوط باشد نه عارضهای مثل خلیج فارس که یک آبراهه بینالمللی است. کشورهای اطراف نهایتا در حد همان عمق تعریفشده بینالمللی بر این آبراهه تملک دارند نه بیش از آن. لذا نمیتوانند برای دیگران تعیین تکلیف کنند و این قاعده برای چنین عارضهای قابل استفاده نیست.</p>
<p>برای فهم بهتر این مساله میتوان به شمال نگاه کرد. در حالی که ما دریای شمال کشور را دریای خزر یا مازندران مینامیم، هیچ مشکلی با این نداریم نام بینالمللی آن، دریای کاسپین باشد. ما نمیتوانیم به جامعه جهانی تحمیل کنیم که به این عارضه چه بگویند. و همین طور آنها هم نمیتوانند به ما تحمیل کنند.</p>
<p>حالا اجازه بدهید به دو گزینه دیگر بپردازیم؛ دو گزینهای که به نوعی گزینههای میانی هستند. یک گزینه که البته پیشتر هم ظاهرا در اوپناستریتمپ سابقه استفاده دارد روش A/B است که یعنی هم زمان از هر دو نام مورد مناقشه استفاده شود؛ یعنی نام عارضه بشود چیزی مثل «خلیج عربی / خلیج فارس». فارغ از این که کدام نام اول بیاید و کدام دوم، این کار همچنان یعنی به تمسخر گرفتن سابقه تاریخی و اقبال بینالمللی به نام «خلیج فارس» و تلاش برای فرو کردن نام «خلیج عربی» در چشم جهانیان.</p>
<p>و اما گزینه آخر، حذف برچسب name است. من این گزینه را به عنوان گزینه راهبردی برای کاهش حساسیتها مناسب میدانم. موضع من این است که نام این عارضه، خلیج فارس است اما میشود به دلیل حساسیتهایی که وجود دارد لااقل مدتی متعهد شویم به عدم استفاده از برچسب name. در این روش، همچنان نامهای محلی مورد استفاده قرار خواهند گرفت و مثلا عربها میتوانند از name:ar برای عنوان «خلیج عربی» استفاده کنند اما حق ندارند نام بینالمللی را نیز به سود چیزی که مطلوبشان است مصادره کنند. یک پیشنهاد جنبی نیز برای این روش وجود دارد و آن، معرفی برچسبهایی است که علاوه بر زبان، به کشور هم اشاره کنند. مثلا name:ar:ir همچنان میتواند برای عربزبانان ایرانی، خلیج فارس نشان دهد.</p>
<p>اجرایی شدن این روش نیازمند این است که افرادی از طرفین دعوا به صورت عمومی متعهد شوند به مراقبت از برچسبهای نام خلیج فارس به طوری که هرگز کسی برچسبهای نام این آبراه را ویرایش نمیکند مگر آن که در فاصله کمتر از n روز (مثلا ۲ روز یا یک هفته) تغییرات داده شده به حالت اول باز گردانده شوند. جزئیات این توافق و اشخاص دخیل در آن نیز باید مشخص باشند تا بعدا کسی نتواند زیر آن بزند.</p>
<p>به کمک این روش، نام فارسی میشود «خلیج فارس» نام عربی میشود «الخلیج العربی» نام انگلیسی میشود «Persian Gulf» (و به همین شکل سایز زبانها).</p>
<p>نظر به این که این پیشنهاد توسط عربهای طرف بحث رد شده است، بیش از پیش روشن میشود که انگیزههای آنان، سیاسی است و ارجاعات مکررشان به «خرابکاری ایرانیها» صرفا بهانهتراشی برای پیش برد این اهداف است. اگر مسالهشان با «خرابکاری» در نام است، خوب منطقا نباید مشکلی با خالی گذاشتن این برچسب باشد. اما اصرار آنها این است که نام خلیج عربی ولو کنار نام خلیج فارس در عنوان نوشته شود. روشن است ماجرا! نه؟</p>
<h2>چه کارهایی صورت گرفته است تا کنون؟</h2>
<p>خوب اجازه بدهید صحبت بکنم درباره اینکه ما در این فاصله زمانی چه کردهایم. آنطور که من متوجه شدم ظاهرا بحث هایی خارج از فهرست پستی در جریان بوده که طبیعتا من نمیتوانم دربارهاش صحبتی کنم و کسانی هم که بخواهند صحبت بکنند صحبتشان مستند نیست. لذا به آنها نمیپردازم و به همین دلیل هم از همه این درخواست رو دارم که تمامی بحثها و تصمیمگیریها در خصوص این ماجرا به صورت عمومی در عمومیترین شکل ممکن صورت بپذیرد. این کار کمک میکند که شائبهای در خصوص زد و بندهای پشت پرده به وجود نیاد و همه چیز شفاف باشد. خوب است همگان بتوانند در هر زمان به تاریخچه بحث مراجعه کرده و متوجه شوند که مبنای فلان تصمیم مواضع طرفین دقیقا چه بوده است.</p>
<p>از زمانی که من وارد ماجرا شدم در خصوص یک مطلب هشدار دادم. از همان اول برای من روشن بود که کسانی که از موضع خلیج عربی در بحث شرکت میکنند کاملا موضع سیاسی دارند؛ یعنی فارغ از هر گونه بحث منطقی و ارائه سند و استدلال، این افراد به دنبال به کرسی نشاندن حرف خود بودند و این به هیچ عنوان خوب نبود. (این همان قدر خوب نیست که اگر عدهای در دفاع از «خلیج فارس» بخواهند بیایند و بحث بکنند که حتما باید خلیج فارس باشد ولی به کلی چشم بر اسناد و مستندات و استدلالهای طرف دیگر ببندند. از دید من تفاوتی بین این دو نیست. تلاش من این است که این ماجرا را نه از موضع یک ایرانی وطنپرست بلکه که تا حد امکان از موضع یک فرد بیطرف میبینم.) از همان ابتدا من هشدار دادم که مبادا شلوغکاریها و استفاده از ادبیات تند و نامناسب طرف دیگر باعث شود که دوستان ما در سمت ایران بیش از آن چیزی که باید، تسلیم خواستهٔ طرف مقابل شوند. از همان ابتدا چه در فهرست پستی، چه در گروه تلگرامی OSM ایران و چه به صورت خصوصی به دوستان عرض کردم که در هیچ صورتی زیر بار ورود نام خلیج عربی به نام خلیج فارس نباید بروند. (دلیلش هم بالاتر بیان شد) اما متاسفانه چنین نکردند.</p>
<p>در این میان البته اتفاقات رخ داد که باعث شد توپ طرف مقابل پر زورتر شود. ویرایش غیرمسوولانه یه ویرایش گر مرتبط با شرکت بلد یکی از آنها بود. پیشتر هم ظاهرا افراد دیگری (ظاهرا ایرانی) رفتارهای نامناسبی داشتند. حتی بعد از همه این ویرایشها افرادی (که ادعا میشود ایرانی بودهاند ولی هیچ سندی در اثباتش وجود ندارد) رفتند و ویرایش هایی در عربستان و در شهرهای مقدس این کشور انجام دادهاند که مایه شرمساری است. اساسا من مشکوکم که این ویرایشها چه بسا کار خود عربها بوده باشد تا بهانه بیشتری برای توهین و حاشیهسازی برای ایرانیها و سلب مشروعیت از موضعشان در بحث انجام شده باشد) و همین ها باعث شده بود که این افراد در عربستان با توپ پر وارد بحثها بشوند.</p>
<p>ناگفته نماند که باید از ابراهیم نجاتی به عنوان کسی که در این مدت به جرات فعالترین شخص ایرانی پیگیر این ماجرا بود تشکر کنم. در اوایل به وضوح تلاشاش را برای کاهش تنش شاهد بودم. با این حال متاسفم که ابراهیم پیشنهاد استفاده هم زمان از نام خلیج عربی و خلیج فارسی را پذیرفته است. البته مایه خوشحالی است که ابراهیم این پذیرش با صریحا به عنوان نظر شخصی بیان کرده است نه مانند نظر جامعه اوپناستریتمپ ایران.</p>
<p>به هرحال طی این مدت عملا جز در موارد محدودی هیچ گونه پیگیری از سوی جامعه اوپناستریتمپ ایران به معنای کل و به طور خاص انجمن یا گروه تلگرامی اوپناستریتمپ ایران صورت نگرفته است. بارها در این گروه درخواست کردم که جلسه گذاشته شود و در این خصوص صحبت بکنیم ولی هرگز چنین جلسه تشکیل نشد. و هرچند امیدوارم که کل تصور من نادرست باشد اما حس من همیشه این بوده است که تصمیمات در جای دیگری گرفته شده و صرفا ما در آن گروه نقش عروسک خیمهشببازی را ایفا میکردیم.</p>
<p>به هرحال من تلاشم رو کردم که بنشینیم صحبت بکنیم و به نتیجه برسیم ولی چنین عزمی را هرگز از سمت مدیران و تصمیمگیران گروه اوپناستریتمپ ایران شاهد نبودم.</p>
<h2>چه بکنیم</h2>
<p>مسأله از دو جنبه احتمالا مسأله همه ماست: از یک طرف اوپناستریتمپ و دادههای آن متعلق به همه ماست و این مسئولیت همه ماست که سلامت این اطلاعات را حفاظت کنیم. از سوی دیگر نباید از این واقعیت غافل بود که کسانی که به این شکل و در سطوح مختلف تلاش میکنند یک هویت تاریخی را حذف کنند، بی تردید اقداماتشان محدوده به آن نخواهد ماند. اگر امروز به این سادگی اجازه دهیم با قدرت و پولپاشی و کار رسانهای، یک هویت تاریخی (خلیح فارس) را تغییر دهند، فردا توان ایستادن در مقابل سایر اقداماتشان را نخواهیم داشت. واقعیت این است که دیگران از حسن نیت ما سوءاستفاده میکنند. لذا نه از موضع میهنپرستانه بلکه از موضع حمایت از موضع مستدل و مستند، این وظیفه و مسئولیت ما در قبال آیندگان است که مانع از آن شویم که نام این آبراه بینالمللی با چنین استدلالها و در واقع بهانههایی تغییر کند.</p>
<p>اگر احساس میکنید که برای اوپناستریتمپ و برای خلیج فارس نیاز است کاری کنید، آن کار را انجام دهید. تصور نکنید انجمن اوپناستریتمپ ایران میتواند شقالقمر کند. این گروه مشغولیتهای دیگری دارد که در مجموع بهتر است حسابی رویش باز نشود. اگر فکر میکنید کاری لازم است انجام شود انجام دهید. منتظر نمانید. اما لطفا یک سری ملاحظات را رعایت کنید. در گذشته افرادی نادان به اندازه کافی بهانه دست طرف عرب دعوا دادهاند که بیایند و از ما یک چهره بد و خرابکار بسازند و به این روش، برای استدلالهای بیاعتبارشان اعتبار بخرند. درخواست اکید من این است که اگر دیدید کسی میخواهد برود با داد و بیداد و فحاشی و توهین و شلوغ کاری علیه نامگذاری خلیج عربی اعتراض کند لطفا لطفا لطفا مانعاش شوید. چیزی که ما نیاز داریم، اعلام موضع است.</p>
<p>فراموش نشود که طرف دیگر این ماجرا، به اندازه کافی توان دارد تا مزدور اجیر کند برای دعواهای این چنینی. هر قدر ما بخواهیم شلوغ کاری بکنیم آنها شلوغ کاری بیشتری میتوانند بکنند. این روشی نیست که ما مطلوب ما باشد. کار درست، انتشار دیدگاه، مستندات و بخصوص مستنداتی است که از موضع ایرانی نیست. اسناد بینالمللی، اسناد تاریخی و بخصوص ارجاع دادن به نامی که در جامعه بینالمللی برای این آبراه استفاده میشود میتواند کمک رسانه جدی باشد. اگر دوستان در کشورهای دیگر دارید از آنها بخواهید نام این آبراه را بیان کنند. ما نیاز داریم نشان دهیم که این آبراه به لحاظ بینالمللی، خلیج فارس نامیده میشود و نمیشود این اسم را در سطح بینالمللی با شلوغکاری تغییر داد.</p>
]]><![CDATA[متن دوسویه در وب ۱: چیستی، چرایی، چگونگی]]>https://fediverse.blog/~/AzadCode/متن%20دوسویه؛%20چیستی،%20چرایی،%20چگونگی/2021-12-05T10:30:53.780176+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2021-12-05T10:30:53.780176+00:00<![CDATA[<p>موضوعی که در این مقاله میخواهم درباره آن بنویسم موضوعی تخصصی است. این موضوع نه به واسطه تحصیلات آکادمیک بلکه به واسطه مواجهه در فضای عملی به خصوص در فضای وب برای من جذابیت پیدا کرده است. لذا این مقاله نه از جانب یک متخصص بلکه از موضع شخصی است که در لااقل دو-سه سال گذشته با این موضوع به دفعات مواجه بوده و راهکارهایی را با آزمون و خطا به دست آورده است که به نظر میرسد در عمل میتوانند مشکلات کاربران زبانهای راست به چپ و بخصوص کسانی که محتوا به زبانهای ترکیبی تولید میکنند را رفع کند. در این مدت فعالیتهای مختلفی انجام دادهام که از بین آنها میتوانم به مشارکت فنی و مشاورهای برای افزودن پشتیبانی متن دوسویه به پروژههای متعددی ازجمله ماستودون، invidious، پلوم، Sengi و… اشاره کنم.</p>
<p>انگیزهٔ اصلی من برای نوشتن این مطلب، فقدان هر گونه محتوای قابل استفاده و عملی در این خصوص در فضای وب بوده است. از دوستانی که در این زمینه دانش و تخصص دارند درخواست میکنم که موارد محل اشکال در این مقاله را گوشزد و اصلاح کرده و کمک کنند به غنیتر شدن فضای محتوای وب فارسی و حتی انگلیسی برای ارائه راهکارهایی جهت رفع مشکلات متعددی که ما فارسی زبان و یا افراد دارای زبانهای راست به چپ در فضای دیجیتال با آن مواجه میشویم.</p>
<h2>متن دوسویه چیست؟</h2>
<p>قبل از اینکه بخواهم در مورد متن دوسویه صحبت کنیم لازم است که قدری در مورد تفاوت متن ساده و متن غنی مطالبی بنویسم. وقتی از متن غنی صحبت میکنیم در واقع درباره متنی حرف میزنیم که حاوی نشانهگذاریهای متعددی است که میتواند ویژگیهایی همچون رنگ، ضخامت، اندازه و غیره را به متن اعمال کند. پردازشگرهایی مانند لیبره آفیس رایتر (Libre Office Writer) و یا مایکروسافت آفیس ورد مثال هایی هستند از ویرایشگرهای متنهای غنی.</p>
<p>هرچند متنهای غنی همان طور که از اسمشان روشن است امکان تولید متنهای پیچیده با ویژگیهای متعدد را به ما میدهند اما کار با آن ها مستلزم استفاده از نرم افزارهای خاصی است. در موارد زیادی، از دنیای برنامهنویسی گرفته تا فضاهای انتشار محتوا در شبکههای اجتماعی یا حتی پیامرسانها، ما امکان استفاده از متن غنی را نداریم. متن هایی که در شبکههای اجتماعی، پیامرسانه و حتی بسیاری از وبلاگها منتشر میکنیم متنی ساده هستند.</p>
<p>متن ساده چندین ویژگى مهم دارد. پیش از هر چیز کل محتوا همان متنی است که نوشته میشود نه چیزی فراتر از آن. نه رنگی مشخص میشود نه اندازهای نه هیچ ویژگی دیگری. همچنین به واسطه ساده بودن محتوا و تمرکز متن ساده روی خود محتوا، امکان نمایش آن به شکلهای مختلف در پردازشگرها یا نمایش دهندگان مختلف وجود دارد. در نهایت در مواردی استفاده از متن ساده به ما این کمک را میکند که بین متنی که در ویرایشگر میبینیم و متنی که نهایتا نمایش داده میشود، همخوانی وجود داشته باشد.</p>
<p>یکی از ویژگیهایی که برای نمایش متن باید استفاده شود ویژگی جهت متن است. اگر از پردازشگرهای متون غنی استفاده کرده باشید حتما دیدهاید که گزینهای برای تعیین جهت متن به صورت راست به چپ یا چپ به راست وجود دارد. در این حالت، نویسنده به طور صریح اعلام میکند که این تکه از نوشته بایستی در این جهت دقیقا مشخص شده نمایش یابد. به لطف وجود این ویژگی در متنهای غنی، میتوان اطمینان حاصل کرد که آن متن در تمام محیطها در جهت مشخص شده توسط نویسنده نمایش مییابند. اما وقتی وارد فضای متن ساده میشویم طبیعتا از چنین ویژگی برخوردار نیستیم. اینجا هیچ گونه نشان گذاری برای ما وجود ندارد. فقط متن است و متن!</p>
<p>حتی در مواردی پیش میآید که ما متنی داریم که در میانهٔ آن متن دیگری با زبانی در جهت مخالف قرار دارد. ما به روش نیاز داریم که بتوانیم در همان محل به طور مشخص جهت درست متن را تشخیص داده و نهایتا متن را در جهت درست نمایش دهیم.</p>
<p>چیزی که مسئول پردازش و تصمیم گیری برای چنین مسالهای است متن دوسویه (bidirectional text) یا به اختصار bidi خوانده میشود. استفاده از متن دوسویه گسترده است. هدف من در این مقاله ارائه راهکارهایی است که میتواند به ما کمک کند در مواردی که با متن ساده مواجه هستیم و ابزاری برای تعیین صریح جهت دقیق متن نداریم، و اطمینان نداریم که متن وارد شده به زبان راست به چپ راست یا چپ به راست
بتوانیم این متن را در جهت درست نمایش دهیم.</p>
<p>در ادامه درباره شرایط و چگونگی پیاده سازی متن دو سوی صحبت میکنم.</p>
<h2>چرا به پشتیبانی از متن دوسویه نیاز داریم؟</h2>
<p>در بسیاری از موارد وقتی صحبت از رفع مشکل پشتیبانی فارسی (یا کلا متنهای راست به چپ) پیش میآید، ذهن افراد به سمت پشتیبانی از زبانهای راست به چپ میرود. نتیجه هم اغلب این میشود که یک حالت خاص راست به چپ به برنامه اضافه میشود. شاید این راهکار برای خیلی از موارد راهگشا باشد اما مواردی هستند که چنین کاری در آنها، گره و راهی نمیگشاید.</p>
<p>فرض کنید یک شبکه اجتماعی داریم. شبکه اجتماعی بر خلاف اغلب وبلاگهای شخصی یا شرکتی که محتوای تولیدی آنها مشخص است، کاربران متعدد با پسزمینهها،علایق و حتی زبانهای مختلف دارد. روی شبکههای اجتماعی هم افراد ممکن است راست به چپ محتوا تولید کنند و هم چپ به راست.</p>
<p>بنابراین یکی از چالشهای ما در نمایش متن این است که تصمیم بگیریم یک متن مشخص را در جهت راست به چپ یا چپ به راست نمایش دهیم. اما حالتهای ما فقط به انتشار محتوای با زبانها مختلف در شبکههای اجتمای یا پیامرسانها محدود نیست. در نظر بگیرید وبلاگی دارید (به خصوص وبلاگهای برنامه نویسی) که محتوای آن هم به صورت راست به چپ هم چپ به راست منتشر میشوند. نویسنده ممکن است در دو پاراگراف به زبان فارسی بنویسد و در پاراگراف بعدی بخواهد متنی از مستندات یک برنامه را منتشر کند که چپ به راست است. یا حالت را در نظر بگیرید که همین برنامه نویس ما بخواهد در وبلاگاش قطع کدی قرار دهد که همه میدانیم نود و نه درصد چپ به راست است.</p>
<p>شاید کسی بگوید که خب کلا تمام قسمت مربوط به کد را چپ به راست میکنیم اما وضعیت میتواند از این هم پیچیده تر باشد. چه میشود اگر در همان قطعه کد، توضیحات یا خطوطی به زبان فارسی قرار داشته باشد؟ اینجاست که اهمیت پردازش متن و تشخیص صحیح جهت متن اهمیت پیدا میکند.</p>
<p>و نکته ای که نباید فراموش بکنیم این است که اینجا ما با متن ساده سروکار داریم نه متن غنی! این یعنی ما ابزاری برای اعلام جهت دقیق متن وارد شده نداریم. اینجاست که نیاز به الگوریتمی داریم که به ما راهکاری نشان دهد که بر اساس آن بتوانیم به طور قابل پیشبینی تصمیم بگیریم که جهت یک متن، راست به چپ باشد یا چپ به راست. و این یکی از مهمترین چیزهایی است که در متن دوسویه به دنبال آن هستیم.</p>
<h2>چگونگی</h2>
<p>الگوریتمها مختلفی برای بحث متن دوسویه وجود دارد. از آنجایی که تخصصی در این بحث ندارم تنها به دو مورد از آنها اشاره میکنم. یکی از الگوریتمها بررسی میکند که چه میزان از متن وارد شده در محتوا به زبانی راست به چپ نوشته شده است. یعنی به طور پیش فرض متن را چپ به راست در نظر میگیرد مگر آنکه بیش از درصد مشخصی از متن به زبانی راست به چپ نوشته شده باشد. این الگوریتم قبلا در ماستودون استفاده شده بود. در گذشته ماستودون متن هر مطلب را پردازش میکرد و چنانچه بیش از سی درصد آن را متن راست به چپ تشکیل میداد جهت کلی آن مطلب را راست به چپ میکرد.</p>
<p>این روش به واسطه مکانیکی بودن مشکلاتی دارد. تعیین جهت متن میتواند خارج از کنترل کاربر و خارج از خواست او باشد. بعنوان مثال کاربری ممکن است جمله کوتاهی به زبان فارسی بنویسد مثلا بنویسد «انیشتین گفته است» و بعد نقل قولی به زبان انگلیسی از اون وارد کند. چیزی که انتظار میرود این است که متنی که به زبان فارسی نوشته شده است به صورت راست به چپ و نقل قولی که به زبان انگلیسی نوشته شده است چپ به راست نمایش یابد. اما این الگوریتم یا کل متن را چپ به راست و یا راست به چپ نمایش میدهد. و مشکل دیگر این است که پیادهسازی این الگوریتم در ویرایشگر تقریبا ناممکن است. اولا هیچ ویرایشگری تا کنون از چنین الگوریتیمی برای تشخیص جهت متن استفاده نمیکند. ثانیا، با توجه به این که جهت کلی متن وابسته به دصد حروف راست به چپ یا چپ به راست در کل متن است، نتیجه محاسبه میتواند با ورود هر حرف جدید تغییر کند و این، اصلا تجربه کاربری جالبی ارائه نمیکند.</p>
<p>افزون بر این، هیچ معیار مشخصی برای تعیین درصد دقیق محاسبه وجود ندارد. این یعنی که با تغییر درصد در نسخههای برنامه و یا در برنامههای مختلف، نمایش متن میتواند به کلی دگرگون شود. و این اصلا مطلوب نیست. در نهایت، استفاده از این الگوریتم در عمل برای کاربر آسان و قابل فهم نیست.</p>
<p>اما الگوریتم دیگری وجود دارد که کاربران با آن آشنا هستند. این الگوریتم بر اساس اولین نویسه یا حرف (قوی) یک متن عمل میکند. بر این اساس اگر اولین نویسه از یک متن به زبان راست به چپ باشد کل آن متن راست به چپ نمایش داده شده و اگر به زبان چپ به راست باشد، چپ به راست نمایش داده میشود. به کمک این الگوریتم میتوان هر بند از متن را در جهت متناسب با اولین نویسهٔ آن متن نمایش داد. این روش روش خوبی است. اول از همه این که کاملا قابل پیشبینی است. در این روش کاربرد دقیقا میداند که اولین حرفی که وارد میکند جهت کل متن را مشخص میکند. این میتواند به کاربر کمک بکند تا در مواردی با اصلاح جملهبندی یا در صورت ضرورت با درج نویسه تعیین جهت، از نمایش متن در جهت درست اطمینان حاصل کند. همچنین داشتن این ویژگی که هر تکه از متن میتواند جهت مختصر خود را داشته باشد انعطاف پذیری قابل توجهی به این الگوریتم میدهد.</p>
<p>جدایی از ویژگیهای فنی، این الگوریتم برای بسیاری از کاربران آشنا است. تقریبا همه شبکههای اجتماعی و پیامرسانهای موجود از این روش استفاده میکنند. لذا اگر از چنین روشی در برنامهها استفاده کنیم کاربر آن را میشناسد. از این رو، این روش روشی است که من در پیش میگیرم و پیشنهاد میکنم که دوستان هم از آن استفاده کنند</p>
<p>در مقاله بعدی درباره افزودن پشتیبانی متن دوسویه در محیط وب صحبت خواهم کرد.</p>
]]><![CDATA[Software Freedom Day in Iran, a close experience since 2017 to 2021]]>https://fediverse.blog/~/FreeMind/Software%20Freedom%20Day%20in%20Iran,%20a%20close%20experience%20since%202017%20to%202021/2021-09-26T20:56:18.136395+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2021-09-26T20:56:18.136395+00:00<![CDATA[<p>Like every other years, many Software Freedom enthusiasts organized events in mid September to celebrate Software Freedom Day. This is a symbolic occasion to raise awareness among people about the significance and necessity of Software Freedom. It is for many years that such events get organized in Iran as well and this year it was little different.</p>
<p>I formally started to participate Free Software Community’s events around 5 years ago; few month after the last grand SFD event in Iran in 2016. I wanted to make a documentary about Free Software and its community of selfless people making a freer future. I tried different approach to get the story-line but no success. Finally I decided to take SFD event organization as the thread in the story and built other parts around it. Surprisingly (at that time) no SFD was organized in 2017 which was the starting point for a massive change in my life. That documentary was never made since I realized that community was far far from what I used to imagine but coming to this realization, motivated me more to get some part in making a freer future. Gradually I realized there is no true community which truly value Software Freedom. I realized the way events were organized was more technical/business oriented rather than being a gathering of those who care about Software Freedom.</p>
<p>Long story short, I decided to actively do my bests for bringing the change I would like to be there. I tried to contribute to Free Software projects in my limited programming capacities, with my limited translation skills and maybe more importantly, by talking about Software Freedom and introducing Free Software solutions. I faced with make injustices from the “Free Software Community in Iran” but I didn’t stop. Since 2018, I expressed my strong will to celebrate SFD even if individually and do it by clicking a selfie on social media saying “Happy SFD”. I made by bottom-line very clear yet invited people to join and making it more interesting.</p>
<p>2018 we had a very different SFD. It was hosted in a very friendly environment in which people could move their sits and interact with each other freely. I heard from different people that this event was the best SFD ever, since it was very informal and friendly. Yet there were others who didn’t consider this event as a true SFD perhaps because it was not grand! This made me realize how people’s perception about SFD has strongly been damaged because of those grand events in past.</p>
<p>These inputs made me more serious to work on making SFD events with minimum requirements and remake people’s perception about SFD towards having many, easy and independent events rather than waiting for a grand one.</p>
<p>I pursue this approach in 2019 as well. Though we got message from some people in Tehran municipality expressing their interest in hosting SFD event. We welcomed their call and started discussion and came to this agreement that we credit them as host but not letting them to interfere with the content of the program. They agreed and never put any pressure on us. 2019 we made the program in Tehran Book Garden with the intention to reach to more non-programmers which was into some extent successful. But despite my attempt, no other program was made for SFD that year. I even requested the regular monthly programs like LUGs (Linux User Group) to mention SFD in their event close to SFD but that didn’t happen!</p>
<p>In 2020, Covid-19 changed the world. Though it could be seen as a harm to FLOSS events, but also it forced us to experience a new age of conducting events and have participants from all over the world. I myself tried to organize a 12 hour event of contribution. Of course it was a big thing to do alone. After 30 minutes, the BigBlueButton server got into some issue which later ended in fully collapse of server and hence my event (I didn’t have any more energy to continue the challenge on a different server). But I was still happy that another group (Ilam LUG) made their program a day before me on the same server. No other events reported that year in Iran.</p>
<p>This year (2021) I am pleased to inform the world community that we in Iran managed to conduct 5 online events. The first one was organized by people in Mashhad city and funded and supported by some companies and organizations. There are several criticism towards this particular program but that is out of the scope on this article. Next was Gnu Meetup special event for SFD with 6 non-technical talks addressing different issues related to significance of Software Freedom in today Iran. Organizers of this event including me, released a statement addressing people, free software community and government.</p>
<p>There were two other events organized by Blender House in Iran and also a telegram based community of front-end developers called Front Chapter in which people discussed the impact of free software in shaping the web. And finally, the last event was organized yesterday by me under Azad-on name focusing on contribution. Like last year, Azad-on tried to inform people that having share in a freer future in computation doesn’t necessarily require programming skills. The event encouraged people to provide non-technical contribution to OpenStreetMap, Mozilla Common Voices and software/documentation translations. After long time, we could achieve daily goal on Common Voice project for Persian language (1200 voice record and 2400 verification).</p>
<p>I am happy that this year, we had multiple groups organizing small but independent events for SFD rather waiting for a big and grand event that would address limited number of programmer whose majority at the end, doesn’t contribute to Free Software projects. I hope this experience could have some share in breaking the malformed imagination of so called Free Software Community in Iran around the way of celebrating Software Freedom Day.</p>
<p>I am not sure how much I had impact on this shift, but that doesn’t matter much. What is important is that this year we collectively could show that we can have multiple small, easy and independent events to celebrate Software Freedom Day.</p>
]]><![CDATA[روز آزادی نرمافزار؛ تجربهای ۵ ساله از نزدیک]]>https://fediverse.blog/~/آزاد/روز%20آزادی%20نرمافزار؛%20تجربهای%20۵%20ساله%20از%20نزدیک/2021-09-26T10:26:36.123698+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2021-09-26T10:26:36.123698+00:00<![CDATA[<p>همانند سالهای پیش، بسیاری علاقهمندان به آزادی نرمافزار در میانه سپتامبر/شهریور، روز آزادی نرمافزار را جشن گرفتند. این روز، یک مناسبت نمادین است برای افزایش آگاهی عمومی درباره اهمیت و ضرورت توجه به آزادی نرمافزار. این رویدادی در سالهای گذشته نیز در ایران برگزار شده است اما امسال قدری با سالهای پیش متفاوت بود. برای شرح این تفاوت شاید بد نباشد نگاهی به گذشته داشته باشم.</p>
<p>اولین حضور من در رویدادهای نرمافزار آزاد ایران به حدود پنج سال پیش بر میگردد؛ چند ماهی پس از برگزاری آخرین رویداد بزرگ روز آزادی نرمافزار (SFD) در سال ۹۵. آن زمان به جز علاقه من به ایده آزادی نرمافزار که ریشه در فلسفه سیاسی من و تعریف مورد علاقه من از عدالت دارد، هدفم از ورود به این جامعه، ساخت فیلمی مستند بود؛ فیلمی درباره نرمافزار آزاد و اینکه چه طور جامعه نرمافزار آزاد بی چشمداشت برای ساختن آیندهای آزادتر فعالیت میکند. رویکردهای متعددی را برای یافتن خط داستان بررسی کردم اما موفقیتی حاصل نشد. نهایتا تصمیم گرفتم خط داستانی را از روند سازماندهی و برگزاری جشن روز آزادی نرمافزار ۹۶ بگیرم و بحثها را حول آن به پیش ببرم. در کمال تعجب (در آن زمان) این رویداد در آن سال برگزار نشد که همین اتفاق منشا تغییرات مهمی حتی در زندگی من شد. آن فیلم مستند هرگز ساخته نشد چون متوجه شدم «جامعه نرمافزار آزاد ایران» فاصله بسیار زیادی از آن چیزی که داشت که من در ذهنم تصور میکردم. به مرور دریافتم که اساسا «جامعه»ای وجود ندارد که به معنای واقعای به آزادی نرمافزار ارزش بنهد. دریافتم که حتی بسیاری از رویدادها عملا رویدادهای با محوریت مباحث فنی/تجاری هستند نه رویدادهایی متشکل از افرادی که آزادی نرمافزار مسالهشان باشد.</p>
<p>خلاصه این که تصمیم گرفتم فعالانه تمام تلاشم را برای ایجاد تغییری که فکر میکردم باید ایجاد میشد انجام دهم. با تمام کاستیهایی که در دانش برنامهنویسی یا ترجمه داشتم تلاش کردم در پروژههای آزاد مشارکت کنم و چه بسا مهمتر تلاش کردم بیشتر درباره آزادی نرمافزار بگویم و راهکارهای آزاد را معرفی کنم. طی این مدت به اشکال مختلف، بیمهریهایی از طرف همین «جامعه نرمافزار آزاد» به من شد اما اینها باعث نشد که متوقف شوم.</p>
<p>سال ۹۷ اعلام کردم که ولو تنهایی و با گرفتن یک عکس سلفی و انتشارش در شبکههای اجتماعی و تبریک روز آزادی نرمافزار، من این روز را جشن خواهم گرفت. این، کف انتظارات من بود ولی دیگران را برای بهتر کردن این جشن تکنفره دعوت کردم.</p>
<p>جشن سال ۹۷ بسیار متفاوت از جشنهای پیشین برگزار شد. این جشن به میزبانی «رهنما کالج» و در محیطی دوستانه برگزار شد که به افراد امکان جابجایی و تعامل آزادانه را میداد. از افراد متفاوتی شنیدم که آن جشن، بهترین جشن روز آزادی نرمافزار تا آن زمان بوده است چرا که غیر رسمی و دوستانه برگزار شده بود. با این حال، کسانی هم بودند که عملا آن جشن را یک جشن واقعی SFD حساب نمیکردند؛ شاید چون بزرگ برگزار نشده بود! این مساله باعث شد متوجه عمق آسیبی که «بزرگ» برگزار کردن رویدادهای گذشته بر ذهن افراد گذاشته است پی ببرم. مجموع این اطلاعات مرا وادار کرد که به شکلی جدیتر روی برگزاری رویدادهای SFD با حداقل نیازمندیها و نیز اصلاح تصور افراد به سوی برگزاری چندین رویداد آسان و مستقل به جای یک رویداد بزرگ کار کنم.</p>
<p>سال ۹۸ هم همین رویکرد را پیش گرفتم. در خلال آمادهسازی در گروه دورهمی گنو، افرادی از سمت شهرداری تهران برای میزبانی رویداد اعلام آمادگی کردند. ما از این پیشنهاد استقبال کردیم اما طی گفتگویهایی به آنان اعلام کردیم که نامشان به عنوان میزبان در رویداد آورده خواهد شد اما ما اجازه نمیدهیم که در محتوای رویداد اعمال نظر و نفوذ کنند. آنها هم پذیرفتند و حقیقتا بدون ایجاد هیچ مانعی، به برگزاری بهتر رویداد کمک کردند. خاطرم هست که حتی برای پذیرایی گفتیم که ما چیزی نمیخواهیم مگر این که خودتان پذیرایی مختصری بتوانید آماده کنید. نهایتا هم فکر میکنم نیمی از پذیرایی را خودمان تهیه کردیم. </p>
<p>آن سال، رویداد در باغ کتاب تهران برگزار شد تا بیشتر بتوانیم با افراد غیر برنامهنویس ارتباط بگیریم که فکر میکنم موفق هم بودیم. حتی بخشی را هم برای کودکان در نظر گرفتیم که میتوانست شروعی باشد برای جدیتر گرفتن آگاهسازی نسل آینده درباره اهمیت داشتن آزادی و کنترل روی ابزارهای دیجیتال. در پایان هم بیانیهای صادر کردیم و از دولت، برای توجه به آزادی نرمافزار، استانداردها، قالب ذخیره مستندات و سختافزارها مطالباتی طرح کردیم. در کنار برنامه خودمان، من بارها از دیگران درخواست کردم که رویدادهای کوچکی برگزار کنند. حتی از رویدادهایی که به صورت ماهانه (مثل لاگها یا گروههای کاربری گنولینوکس) و مرتب برگزار میشدند خواستم رویداد نزدیک به SFD را با یادی از این روز برگزار کنند. با این حال، تا جایی که من در جریان هستم هیچ رویداد دیگری به این مناسبت برگزار نشد.</p>
<p>سال ۹۹، دنیاگیری کرونا خیلی چیزها را در جهان عوض کرد. هرچند این بیماری میتوانست به عنوان مانعی بر سر برگزاری رویدادها تلقی شود، اما در نقطه مقابل ما را مجبور کرد که دورهای جدید از برگزاری رویداد بدون مرز، بدون نیاز به هماهنگیهای اعصاب خورد کن و… را تجربه کنیم. آن سال، من تحت نام آزادان در حال ترتیب دادن رویدادی ۱۲ ساعته برای مشارکت در پروژههای آزاد بودم. مشخصا کار بسیار سختی بود که انجامش به صورت گروهی هم دردسرهای زیادی داشت چه برسد به برگزاریاش به صورت فردی. از شانس من، ۳۰ دقیقه بعد از شروع برنامه، نرمافزار BBB برگزاری رویداد با مشکل مواجه شد. این مشکل نهایتا به نابود شدن کامل بستر ارائه خدمات و رویداد من منجر شد (رویداد را به دلیل نداشتن انرژی بیشتر برای تغییر بستر برگزاری ادامه ندادم). اما هنوز یک دلخوشی وجود داشت. روز قبل از رویداد من، گروهی دیگری (لاگ ایلام) رویدادی مجازی را روی همان بستر برگزار کرده بودند. و باز تا جایی که میدانم، رویداد دیگری در ایران برگزار نشد.</p>
<p>امسال (۱۴۰۰) بسیار خوشحالم که لااقل ۵ رویداد به مناسبت روز آزادی نرمافزار در ایران برگزار شد. اولین رویداد توسط افرادی در مشهد ترتیب داده شد که از حمایت مالی و غیر مالی چند شرکت و سازمان برخوردار بود. رویداد دیگر را «دورهمی گنو» برگزار کرد؛ رویدادی که در آن شش ارائه غیر فنی از منظرهای گوناگون درباره اهمیت آزادی نرمافزار در ایران امروز به مخاطبان عرضه شد. برگزار کنندگان آن رویداد (از جمله من) در ادامه حرکتی سال ۹۸ انجام شده بود، بیانیهای را خطاب به مردم، جامعه نرمافزار آزاد و دولت صادر کردند.</p>
<p>دو رویداد دیگر، یکی توسط «خانه بلندر» و دیگری توسط «فرانتجپتر» روی تلگرام برگزار شد. و نهایتا، آخرین رویداد را هم من زیر نام آزادان روز گذشته برگزار کردم؛ رویدادی یک ساعته که تلاش داشت افراد را به مشارکت غیر فنی در پروژههای آزاد ترغیب کند؛ که به همه نشان دهد میتوانند در ساختن آیندهای آزادتر برای رایانش، الزاما نیاز به داشتن دانش برنامهنویسی نیست. برای این کار هم، مشارکت در بهبود نقشه اوپناستریتمپ، آواهای مشترک موزیلا، ترجمه و گزارش مشکلات را پیشنهاد دادیم. و بعد از مدتها توانستیم در یک حرکت گروهی به هدف روزانه پروژه آواهای مشترک موزیلا (۱۲۰۰ ضبط صدا و ۲۴۰۰ اعتبارسنجی) دست پیدا کنیم.</p>
<p>بسیار خوشحالم که علیرغم تمام اقدامات تخریبی، امسال به جای برگزاری یک رویداد بزرگ (که فقط برنامهنویسانی را مخاطب قرار میدهند که عمدتا هم مشارکتی در پروژههای آزاد ندارند) چندین گروه توانستند رویدادهای کوچک اما مستقل برگزار کنند. امیدوارم این تجربه توانسته باشد سهمی در شکست ذهنیت غلط جامعه نرمافزار آزاد حول شیوه برگزاری رویداد به مناسبت SFD داشته باشد.</p>
<p>مطمئن نیستم که سهم من در این تغییر احتمالی چه قدر باشد اما این اصلا مهم نیست. چیزی که اهمیت دارد این است که امسال توانستیم به صورت جمعی نشان دهیم که میشود با چندین رویداد کوچک، آسان و مستقل، روز آزادی نرمافزار را جشن بگیریم. بیش باد.</p>
]]><![CDATA[در باب اصلاحیه بیانیه OSM ایران و تقبیح برخی حواشی]]>https://fediverse.blog/~/آزاد/در باب اصلاحیه بیانیه OSM ایران و تقبیح برخی حواشی/2021-07-17T09:14:42.242684+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2021-07-17T09:14:42.242684+00:00<![CDATA[<p>در تاریخ ۱۳ تیر ۱۴۰۰ بیانیهای توسط حساب اوپناستریتمپ ایران روی <a href="https://twitter.com/OSM_IRAN/status/1411646650154733569" rel="noopener noreferrer">توییتر</a> منتشر شد. در این بیانیه، مطالبی از جانب «انجمن OSM ایران» عنوان شده بود بدون آن که از اعضای این انجمن (که مجموعهای غیر رسمی از مشارکتکنندگان در نقشه آزاد اوپناستریتمپ است نظرخواهی شده و یا آنها در جریاناش قرار گرفته باشند. این مساله اعتراض برخی اعضا را در پی داشت و من نیز <a href="https://fediverse.blog/%7E/%D8%A2%D8%B2%D8%A7%D8%AF/%D9%85%D8%AD%DA%A9%D9%88%D9%85%DB%8C%D8%AA%20%D8%B5%D8%AF%D9%88%D8%B1%20%D8%A8%DB%8C%D8%A7%D9%86%DB%8C%D9%87%20%D8%A8%D9%87%20%D9%86%D8%A7%D9%85%20%D8%A7%D9%86%D8%AC%D9%85%D9%86%20OSM%20%D8%A7%DB%8C%D8%B1%D8%A7%D9%86" rel="noopener noreferrer">در مطلبی</a>، این اقدام را محکوم کردم. هرچند سوشا <a href="https://fediverse.blog/%7E/%D8%A2%D8%B2%D8%A7%D8%AF/%D9%85%D8%AD%DA%A9%D9%88%D9%85%DB%8C%D8%AA%20%D8%B5%D8%AF%D9%88%D8%B1%20%D8%A8%DB%8C%D8%A7%D9%86%DB%8C%D9%87%20%D8%A8%D9%87%20%D9%86%D8%A7%D9%85%20%D8%A7%D9%86%D8%AC%D9%85%D9%86%20OSM%20%D8%A7%DB%8C%D8%B1%D8%A7%D9%86/comment/1077" rel="noopener noreferrer">در نظری</a> که زیر مقاله من منتشر کرده بود، توضیحاتی درباره چرایی وقوع چنین مسالهای توضیحاتی داد اما نیاز بود که واکنشی رسمیتر داده شود. نهایتا امروز شنبه ۲۶ تیر، در <a href="https://forum.osmiran.ir/t/topic/238" rel="noopener noreferrer">بیانیه دیگری</a>، سوشا مصلح از طرف نویسندگان آن بیانیه نسبت به دلخوریهایی که پیش آمده بود عذرخواهی کرد و انجمن را به بازنگری در رویههای جاری فراخواند.</p>
<p>هرچند این بیانیه با تاخیر بسیار زیاد صادر شده است اما نفس صدورش قابل تقدیر و ارزشمند است. از یک سو، این که سر چنین مسالهای (که شخص یا گروهی از طرف یک جامعه/انجمن/اجتماع بزرگ غیررسمی بخواهد صحبت کند) حساسیت وجود دارد امری نیکوست. از سوی دیگر، پذیرش خطا (ولو سهوی) و اقدام جهت جبران آن به خصوص در وضعیت حاکم بر جامعه (به معنای عام) امری بسیار پسندیده و شایسته تقدیر است. لذا ضمن استقبال از این اتفاق، امیدوارم چنین رویکردی در جهت اصلاح امور تبدیل به رویهای عادی شود. از اشتباه، گریزی نیست. چیزی که اهمیت دارد، شیوه مواجهه با آن و تلاش برای اصلاح و حرکت به جلوست.</p>
<p>فراتر از این مساله، میخواهم در این جا از تعاملی که بین سوشا و شرکت بلد شکل گرفت استقبال کنم. من، از کسانی بودم که پس از انتشار مقاله انتقادی سوشا، آن را مستند دیده و از آن حمایت کردم. بیانیه بلد نشان داد بخشهایی از آن مطلب دقیق نبوده است و حتی در موردی، تهدید به شکایت کرد. ضمن این که معتقدم بلد حق دارد در صورتی که مطالبی خلاف واقع گفته شده باشد از نویسنده مقاله شکایت کند، اما بیش از آن، از تعامل طرفین و رسیدن به درکی متقابل از مساله و به دنبالش پذیرش اشتباهات (از هر دو سو) و نمایش تمایل به همکاری در آینده را بسیار مثبت ارزیابی میکنم. چنین اتفاقی میتواند نقطه شروع خوبی برای حاکم شدن فرهنگ انتقاد (در هر دو سو) به جای هوچیگری باشد.</p>
<p>در حالی که طرفین درگیر در ماجرای بلد، به بهترین شکل در حال پیگیری مساله بودند، بداخلاقیهایی در فضای مجازی دیده شد. از بین آنها میخواهم به علی میرجمالی اشاره کنم که در یک مورد، به دروغ در توییتر به زبان انگلیسی نوشت که شرکت بلد، جامعه OSM ایران را تهدید به شکایت کرده <a href="https://web.archive.org/web/20210703155159/https://twitter.com/AliMirjamali/status/1411352003113062402" rel="noopener noreferrer">+</a> در حالی که بلد، نویسنده مقاله انتقادی (و نه انجمن) را، آن هم به خاطر یک مساله در ارتباط با قراردادهای انحصاری تهدید به شکایت کرده بود که عرفا، شرعا، قانونا و اخلاقا حق این شرکت است. در مساله بیانیه نیز در واکنش به درخواست من از نویسندگان بیانیه برای پذیرش اشتباه و اصلاح آن، در حالی که خود نویسنده/نویسندگان بیانیه به اشتباه بودن آن کار به صورت خصوصی و عمومی اذعان داشتند، تلاش میکند بحث را به سمت نظرسنجی برده و طبق رویهای تکراری و قابل پیشبینی، مساله را از اصلاش منحرف کند <a href="https://t.me/OpenStreetMap/29284" rel="noopener noreferrer">+</a>. گویی اگر اکثریت رای دهند که این کار صحیح بوده، در نفس غلط بودن صدور بیانیه از طرف کسانی که نه در جریان صدور بیانیه بودهاند نه نظرشان پرسیده شده، تغییری ایجاد میشود. این رفتارهای غیرحرفهای آلوده به حب و بغض شخصی، برای سلامت فعالیت گروهی در جوامعی نظیر جامعه نرمافزار آزاد و OSM مضر است.</p>
<p>در مجموع، پذیرش اشتباه و گام برداشتن برای اصلاح توسط نویسندگان بیانیه OSM میتواند نشانهای از بلوغ و رفتار مسئولانه از سوی نسل جدید جامعه نرمافزار آزاد باشد. امری که به تجربه نمیتوان از بسیاری از قدیمیها و پیشکسوتان این جامعه انتظار داشت. این، نشانه خوبی است برای آیندهای روشن که بار دیگر از آن استقبال میکنم. ولی همچنان این سوال در بیپاسخ باقی میماند که چرا آن کسانی که دقیقا یک سال پیش در ماجرای پیرامون انجمن نرمافزارهای آزاد/متنباز ایران، نگران بودند عدهای بیایند و ادعای نمایندگی از جامعه نرمافزار آزاد کنند، در خصوص صدور بیانیهای به نام انجمن OSM ایران هیچ واکنشی نشان ندادند.</p>
]]><![CDATA[ننگ تیر ۹۹ - بخش سوم - عریضه و جمعبندی]]>https://fediverse.blog/~/آزاد/ننگ تیر ۹۹ - بخش سوم - عریضه و جمعبندی/2021-07-13T20:56:42.418560+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2021-07-13T20:56:42.418560+00:00<![CDATA[<p>ادامه از: <a href="https://fediverse.blog/%7E/%D8%A2%D8%B2%D8%A7%D8%AF/%D9%86%D9%86%DA%AF%20%D8%AA%DB%8C%D8%B1%20%DB%B9%DB%B9%20-%20%D8%A8%D8%AE%D8%B4%20%D8%AF%D9%88%D9%85%20-%20%D9%BE%D8%B3%20%D8%A7%D8%B2%20%D9%85%D8%AC%D9%85%D8%B9%20" rel="noopener noreferrer">بخش دوم - پس از مجمع</a></p>
<h2>انتشار عریضه</h2>
<p>در نهایت عصاره این اعتراضات، تبدیل شد به یک عریضه تحت عنوان «<a href="https://www.petitions.net/278143" rel="noopener noreferrer">انجمن (بنیاد) نرم افزارهای آزاد/متنباز، پشت پرده مصادره یک هویت</a>». عریضهای که از عنواناش گرفته تا جزءجزء محتوایش، محل اشکالات جدی است. به طور مفصل و بند به بند در مقاله «<a href="https://fediverse.blog/%7E/%D8%A2%D8%B2%D8%A7%D8%AF/%DA%86%D9%87%D8%A7%D8%B1%D8%B5%D8%AF-%D9%86%D9%81%D8%B1-%D8%AF%D9%82%DB%8C%D9%82%D8%A7-%DA%86%D9%87-%DA%86%DB%8C%D8%B2%DB%8C-%D8%B1%D8%A7-%D8%AF%D8%B1-%D8%B9%D8%B1%DB%8C%D8%B6%D9%87-%D9%85%D8%B5%D8%A7%D8%AF%D8%B1%D9%87-%DB%8C%DA%A9-%D9%87%D9%88%DB%8C%D8%AA-%D8%A7%D9%85%D8%B6%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86%D8%AF" rel="noopener noreferrer">چهارصد نفر دقیقا چه چیزی را در عریضه مصادره یک هویت امضا کردند؟</a>» به مشکلات این عریضه پرداختهام. هر چند پس از ۱۱ ماه، هیچ نقدی به این مقاله دریافت نکردهام. تنها واکنش به متن آن را بهداد عابدی نشان داد: «نوشته شما چرت زیاد توش داره». این مقاله را اگر عصاره تفکر و نظام فکری/ارزشی امضاکنندگان آن درباره انجمن بدانیم (که دلیلی نیست که ندانیم) لکه ننگی است بر پیشانی جامعه نرمافزار آزاد ایران. بر خلاف میثم <a href="https://web.archive.org/web/20200820071449/https://twitter.com/cenaps/status/1296344788598431744" rel="noopener noreferrer">+</a> که تعداد امضاها را شاهدی بر حقانیت آن گرفته و تیر ۹۹ را افتخار جامعه نرمافزار آزاد میداند، اینکه بیش از ۴۶۰ نفر، با امضایشان، بند به بند، جمله به جمله و کلمه به کلمه عریضهای را تأیید کردهاند که حاوی دروغ و تحریف و اتهامات بیاساس است مایه سرافنکندگی جامعه نرمافزار آزاد از منظر اخلاقی است.</p>
<p>از نکات جالب این عریضه این است که اسم کسانی مانند علی میرجمالی بین امضا کنندگان دیده میشود که از پیش از مجمع در جریان انجمن بودند. همانها امضا کردهاند که «انتشار خبری مبنی بر انتخاب اعضای هیئت مدیره جدید «انجمن نرمافزارهای آزاد/متنباز» موجب شد افراد فعال در این زمینه از وجود چنین انجمنی مطلع شوند.» همانهایی که دعوت به حضور در انجمن را رد کردند، در این عریضه مدعی شدهاند که این انجمن به دنبال استفاده از نام جامعه نرمافزار آزاد «برای جمعی محدود از دوستان و همفکران خود» است. حتی دو نفر از افرادی که وارد انجمن شده بودند (حصارکی و ضیابری) هم این عریضه را امضا کردهاند. توضیح اینکه چرا چنین کردند را به خودشان محول میکنم.</p>
<p>بیش از این درباره آن عریضه در اینجا نمینویسم چرا که تقریباً هر آنچه را میتوانستم بگویم، همان پارسال در مقالهام آوردهام. تنها مسالهای که اینجا به آن اشاره گذرا میکنم این است که این عریضه، تفاوتی میان انجمن پیش از مجمع و پس از مجمع قائل نشده است. عریضه، در عنوانش عملاً صحبت از مصادره میکند گویی که این مصادره رخ داده که پشت پردهای داشته باشد. هیچ مصداقی از چنین مصادرهای ارائه نشده است چون وجود نداشته است. طبیعتاً سؤال من درباره اینکه دقیقاً چه چیزی قابلیت مصادره را دارد هم بیجواب مانده است. نکته جالبتر این است که ظاهراً دوستان (همینهایی که عملاً خودخواسته رویدادهای نرمافزار آزاد را که به راحتی میتوانند هر روز (اگر نه هر هفته و هر ماه) به صورت مجازی برگزار شوند را از اسفند ۹۷ تا به همین امروز تعطیل کردهاند اما از احتمال تلاش دولت و دولتیها از طریق انجمن برای محدودسازی رویدادها نگران شدهاند. جزئیات بیشتر را در مقاله «چهارصدنفر…» بخوانید.</p>
<h2>جمعبندی</h2>
<p>چه شد که کسانی شدند دغدغهمند استقلال جامعه نرمافزار آزاد که لااقل در سه-چهار سال گذشته، هیچ اقدامی برای این جامعه صورت ندادهاند؟ نقششان در تشکیل برنامههایی نظیر لاگ یا جشن انتشار یا روز آزادی نرمافزار چه بوده است؟ نگاهشان و راهبردشان برای تحقق استقلال جامعه نرمافزار آزاد دقیقاً چیست؟ راهبردشان در مواجهه با دولت جز نگاه سلبی چیست؟ چند بار در سالیان گذشته، درباره مسئولیتها حکومت در پاسداشت و احترام به آزادی رایانش کاربران و مسائلی نظیر حقوق دیجیتال، DRM و… دست به اقدام عملی، انتشار بیانیه یا حتی نوشتن یک مطلب ساده وبلاگی کردهاند؟ این آقایان، چه مطلبی غیر از یک گزارش بی سر و ته و فاقد جزئیات مفید در شماره ۵ مجله سلام دنیا نوشتهاند که بتواند چراغ راه کسانی باشد که خیال میکنند شاید بتوانند در تعاملی با دستگاههای دولتی، اقدامی به سود آزادی نرمافزار انجام دهند. پاسخ این سوالها، به هیچ شکلی تأیید کننده ادعای دغدغهمندی این آقایان نیست.</p>
<p>من نمیخوام وارد این بشم که چرا چنین کردند. اینکه چرا افراد به ظاهر آبرومند و دارای اعتبار جامعه نرمافزار آزاد، راضی به این شدند که اتهامات واهی بزنند، توهین کنند و دروغ بگویند. نمیخوام بحث کنم که شاید این افراد هویتشان را به عنوان منجیان استقلال جامعه نرمافزار آزاد در خطر میدیدند. نمیخوام بحث کنم که شاید این آقایان همانند برخی مخالفان خارجنشین، هویتشان در مخالفت با نظام حاکم تعریف میشود نه در فکر و عمل و گفتارشان. من نمیخوام وارد این بحث بشوم که اگر ما میتوانستیم انجمن را به شکل مناسبی اصلاح کنیم، پاسخ این آقایان برای ترساندن همگان در این سالها از نزدیک شدن به دولت و دولتیها چه میتوانست باشد. چه میتوانستند بگویند در پاسخ به این سؤال که چرا این همه سال، همه چیز را معطل یک ماجرا خاص کردید و همه چیز را به آن گره زدهاید به آن؟</p>
<p>اما در دو مورد دو نفر از افرادی که در حول و حوش بحثهای تیر ۹۹ و پس از آن فعالانه حضور داشتند حرفهایی زدهاند که شاید بتواند کمک کند در فهم دلیل این همه بیاخلاقی. میثم <a href="https://web.archive.org/web/20210706210102/https://twitter.com/cenaps/status/1399787646449340418" rel="noopener noreferrer">+</a> و علی میرجمالی <a href="https://web.archive.org/web/20210626113356/https://mastodon.social/@AliMirjamali/106476793408875239" rel="noopener noreferrer">+</a> در دو مطلب جداگانه اما نزدیک به هم، ۱۰ یا ۱۱ ماه بعد از اتفاقات تیر ۹۹، تعابیری را به کار میبرند که معنیاش روشن است: هدف، زدن انجمن بوده است. اصلاً مهم نبوده که چه کسانی در آن انجمن باشند. یکی میگوید که «دوستان»مان را بیرون کشیدم که راحتتر بتوانیم بزنیم و دیگری میگوید با استعفای اعضای هیات مدیره، عملاً انجمن دیگر مردمنهاد نیست و حالا میتوان نه تنها در داخل، بلکه در خارج علیهاش اقدام کنیم. معنی این حرفها این است که اصلاً مهم نبوده که اعضا، چه نگاهی داشته باشند و واقعاً بتوانند در عمل کار مثبتی انجام دهند یا خیر. هدف، زدن بوده است. و برای این زدن، لولوسازی شده است. همه هم باید از لولو بترسند به جای اینکه وقت را سر شناخت و فهم مساله هدر بدهند.</p>
<p>این، بیان عریان واقعیت تیر ۹۹ است. لازم بوده است فارغ از واقعیتهای میدانی، لولویی ساخته و پرداخته شود و به هر شکل ممکن، جو علیه آن ایجاد شود. برای رسیدن به چنین هدفی، هم دروغگویی، هم توهین، هم فحاشی نه تنها مجاز تلقی شده بلکه پسندیده و بازنشر میشود. تلاشی همسو برای ایجاد فضایی پر نویز شکل میگیرد تا صدایی از طرف مقابل شنیده نشود. و این همان چیزی است که از آن تحت عنوان «هوچیگری» یاد کردم. هدف هوچیگری این است که از طرفی نگذاریم حرف طرف مقابل شنیده شود و طرف دیگر به هر قیمتی، حرف خودمان را به کرسی بنشانیم. هزینه ایستادن در مقابلشان تا جایی بالا برده میشود که دیگران هم از اعلام حمایت از طرف مقابل واهمه پیدا کنند. کار تا جایی پیش میرود که حتی پس از گذشت یک سال، برخی دوستان نگران باشند که اگر نام من و برخی دیگر کنار نامشان بیاید شاید برایشان مشکل ایجاد شود.</p>
<p>من، از آن زمان تا به امروز، این اقدامها را هوچیگری خواندم و اکنون نیز چنین میکنم. بر خلاف تصویری که همین هوچیگران از من ساختهاند و همچنان میسازند، مشکل من مخالفت با انجمن نبوده و نیست. البته نقد من به نظر مخالف آنها بر سر جایش است. منظور من از هوچیگری، مجموعهای از دروغها، توهینها و فحاشیهاست که نه تنها گویندگانشان عزمی برای شنیدن (نه پذیرش) حرف طرف مقابل نداشتند بلکه با سنگین کردن فضا، هزینه همراهی دیگران با این رویکرد و نگاه را افزایش میدادند.</p>
<p>آزادی نرمافزار، پیشنیاز تحقق جامعهای عادلانه و آزاد است. این امر نه با شعار بلکه با عمل محقق میشود. تحقق واقعی چنین چیزی جز در سایه داشتن جامعهای مستقل و فعال ناممکن است. جامعه نرمافزار آزاد بایستی جامعهای پیشرو در ترسیم چشمانداز، مطالبه و حرکت به سمت ارزشهایی باشد به طور تاریخی از آنها دفاع کرده است. جامعه نرمافزار آزاد ایران لااقل در سالهای اخیر به یک جمع صرفاً برنامهنویسی تقلیل یافته است که گاهی نمیتوان تمایزی میان آن با دیگر گردهمآییهای حوزه برنامهنویسی قائل شد. جامعه نرمافزار آزاد ایران، به جامعهای بیربط با جامعه پیرامونیاش تبدیل شده است. ناتوانی عمومی جامعه نرمافزار آزاد در برگزاری رویدادهای برخط در دوران همهگیری کرونا، نشان داد نه تنها این جامعه نمیتواند کمکی به مردم کند بلکه از برآوردن نیازهای اولیه خود نیز ناتوان است.</p>
<p>در نهایت لازم است اشاره کنم که اگر در این مقاله و بسیاری مطالب دیگری که نوشتهام، من در محور بحثها هستم مطلقاً به این معنا نیست که من، مرکز و محور حملهها بودهام. من سخنگوی دیگران نیستم. اگر دیگران تصمیمگرفتهاند برای سلامت روانشان سکوت پیشه کنند، به تصمیمشان احترام میگذارم. من، نظر به تجربیاتی که در این سالها پیدا کردم به این نتیجه رسیدم که استدلال و برهان، در بخش مهمی از این جامعه کار نمیکند. لذا نیاز دیدم روی نکاتی انگشت بگذارم که فهم درستی/غلطیشان نیازمند استدلال و بحث نباشد. من تنها میتوانم بخشی را با قاطعیت روایت کنم که خودم در بطن آن بودهام و تازه بخش زیادی از همانها هم تنها برای خودم که میدانم ماجرا چه بوده حجت و سندیت دارد. تصمیم گرفتم بحثهای خصوصی را وارد چنین مقالهای نکنم. تصمیم گرفتم تنها مواردی را مطرح کنم که خودم در میانه ماجرا بودم و فهم کژی و ناراستیشان آشکار و بینیاز از استدلال است. فحاشیها به واقع رخ دادهاند. دروغها به دفعات گفته شدهاند. آشکارا چشم و گوشها را بسته و در مقابل مشتها را گرهکرده و دهان را گشوده بودند. میتوانم تصور کنم که این کار نه فقط در گذشته (حتی پیش از تیر ۹۹) رخ داده که میتواند هر زمان دیگری در آینده نیز رخ دهد. وظیفه خود دیدم سهمی در روایت از ماوقع اتفاقات تیر۹۹ داشته باشم. به این امید که تنها روایت باقی مانده از این رویداد، روایت هوچیگران و امضای صدها نفر پای عریضهای حاوی دروغ و تحریف نباشد.</p>
<p>امید من آن است که نسل آینده، در چنین دامهایی فرو نغلطد. چیزی که ما نیاز داریم، گفتگو و فهم متقابل است. از نقد نباید ترسید. پاسخ خردمندانه به نقد، نقد است. اینکه هزینه دروغگویی و حتی فحاشی در فضای عمومی تا این حد پایین آمده است نگران کننده است. نسل آینده باید مراقب این مساله باشد. در فضای عمومی، هر حرکت رو به جلو ارزشمند است. با دغدغهٔ خالی نمیتوان به جایی رسید. رسیدن به ایدهآلها، زمان میبرد؛ تعهد، پشتکار و مسئولیتپذیری میخواهد؛ کار میخواهد. امیدوارم در آینده شاهد چنین بیاخلاقیهای لجامگسیختهای نباشیم. امیدوارم نسل آینده به اعتبار تعداد حامیان یک ایده، یا صرفاً به واسطه شهرت و اعتبار یک شخص، خودش را هزینه سیاسیبازی آنها نکند. امیدوارم اسیر دوگانههای کاذب نشود. امیدوارم نسل آینده جامعه نرمافزار آزاد، نسلی فعال، خلاق، مسئول و اخلاقمدار باشد. نسلی باشد که کار گروهی را به معنای واقعی ارج بنهد. امیدوارم نسل آینده جامعه نرمافزار آزاد، برای محقق شدن آزادی نرمافزار گام واقعی بردارد.</p>
]]><![CDATA[ایجاد آسان محیط توسعه لاراول با valet-linux]]>https://fediverse.blog/~/AzadCode/ایجاد آسان محیط توسعه لاراول با valet-linux/2021-06-20T17:27:49.812107+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2021-06-20T17:27:49.812107+00:00<![CDATA[<p>مدتی است که کار با <a href="//fediverse.blog/tag/%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84" title="لاراول" rel="noopener noreferrer">#لاراول</a> را شروع کردهام. یکی از چالشها، ایجاد محیط توسعه و به ویژه تخصیص دامنه محلی برای هر پروژه بوده است. لاراول ابزار خوبی به نام Valet دارد که متاسفانه مخصوص سیستمعامل مکینتاش توسعه داده شده. با این حال، در یک جسجوی اینترنتی به انشعابی از این پروژه برای سیستمعامل گنو/لینوکس رسیدم به نام <a href="https://cpriego.github.io/valet-linux/" rel="noopener noreferrer">Valet-Linux</a> که بسیار کارم را راحت کرد. در این مقاله قدری درباره آن مینوسم. اگر راه بهتری میشناسید، حتما معرفی کنید.</p>
<h2>صورت مساله چیست؟</h2>
<p>در حین توسعه یک نرمافزار وب تحت لاراول، ممکن است برنامهنویس به طور هم زمان یا موازی روی چند پروژه کار کند. اگر بخواهد از دستور <code>php artisan serve</code> استفاده کند لازم است هر کدام را روی یک درگاه (port) اجرا کند. طبیعتا این مشکل ممکن است پیش بیاید که کدام پروژه روی کدام درگاه اجرا شده بود قبلا. اگر بشود دامنهای مثل project.local یا مثلا project.test یا نظایر آن به هر پروژه داد خیلی کار راحتتر میشود. این کار را میتوان به راحتی و البته با صرف قدری زمان و انجام کاری تکراری حل کرد.</p>
<p>افزون بر این، گاهی حتی لازم میشود پروژه تحت رمزنگاری SSL (همان https در نشانی وبگاه) اجرا شود. ابزارهایی مثل mkcert برای تسهیل ایجاد گواهی محلی وجود دارند اما بعد از کلی تلاش موفق نشدم از آنها برای دستیابی به چنین هدفی بهره ببرم.</p>
<p>ابزار Velet هر دو کار را بسیار ساده انجام میدهد. یعنی هم امکان ایجاد دامنه محلی را میدهد و هم اینکه میتوان پروژه را در آن دامنه، با SSL اجرا کرد.</p>
<p>همچنین بد نیست به این نکته هم اشاره کنم که valet تنها برای لاراول نیست. برای پروژههای مختلفی که با لاراول، لومن، سمفون، زند، کیکپیاچپی، وردپرس و… و حتی HTML ساده نوشته شده باشند هم میتوان از Valet استفاده کرد.</p>
<h2>نصب</h2>
<p>پیش از هر چیز توصیه اکید این است که این ابزار را با کاربر ریشه (root) یا دستور sudo نصب نکنید. برای نصب کافی است با بسته مورد نظر را با کمک کامپوزر نصب کنیم:</p>
<pre><code>composer global require cpriego/valet-linux
</code></pre>
<p>پس از آن با اجرای دستور <code>valet install</code> تنظیمات و تغییرات لازم اعمال میشوند. ممکن است بلافاصله بعد از نصب از طریق کامپوزر، valet در پایانه شناسایی نشود. اگر چنین شد، یک پایانه جدید باز کنید. الان باید به راحتی شناسایی شده و قابل اجرا باشد.</p>
<p>برای بهروزرسانی هم کافی است از <code>composer global update</code> استفاده شود.</p>
<h2>استفاده</h2>
<p>اگر از آپاچی استفاده میکنید خبر بد این است که Valet با انجیناکس کار میکند. این یعنی لازم است NginX را روی دستگاه خود نصب کنید و سپس آپاچی را متوقف و به جایش کار مدیریت وب را به انجیناکس محول کنید. تجربه زیادی در این زمینه ندارم اما در پروژههایی که دارم، تفاوتی در عملکرد مشاهده نکردم.</p>
<p>حال نوبت میرسد به اجرا وبگاهها روی دامنهها دلخواه. به طور پیشفرض valet از پسوند test استفاده میکند؛ یعنی مثلا website.test. اگر پسوند دیگری مثلا dev مدنظرتان است میتوانید با دستور زیر آن را جایگزین کنید:</p>
<pre><code>valet domain dev
</code></pre>
<p>به این شکل پروژه روی webiste.dev اجرا میشود. حال چه طور دامنه را مشخص کنیم؟ Valet دو روش برای این کار دارد. اولی استفاده از دستور <code>park</code> است. کاربرد این دستور برای زمانی است که شما یک پوشه حاوی پروژههای مختلف دارید و میخواهید هر کدام از آنها با دامنهای به نام پوشهشان اجرا شوند. مثلا اگر در پوشه جاری، سه پوشه به نامهای site1 و site2 و site3 داشته باشیم، بخواهیم که این پروژهها به ترتیب روی site1.test و site2.test و site3.test اجرا شوند. برای این کار کافی است در پوشه اصلی، دستور <code>valet part</code> را اجرا کنیم.</p>
<p>روش دوم برای زمانی است که پروژهها در جاهای مختلفی باشند و ما بخواهیم به صورت موردی بگوییم فلان دامنه به فلان پوشه اشاره کند. برای این کار کافی است وارد پوشه ریشه پروژه شویم. اگر بخواهیم دامنه myproject باشد کافی است دستور زیر را اجرا کنیم:</p>
<pre><code>valet link myproject
</code></pre>
<p>پس از آن باید بتوانید در نشانی myproject.test پروژه به پروژه دسترسی پیدا کنیم. به همین سادگی. هر زمان هم که بخواهیم این دامنه حذف شود کافی است در همان پوشه دستور <code>valet unlink</code> را اجرا کنیم. دستور <code>valet links</code> هم فهرست همه دامنههای ثبتشده به هماه نشانیای که به آنها اشاره میکنند را نمایش میدهد.</p>
<h2>ارتباط امن برای دامنهها</h2>
<p>گفتم که امکان دیگر valet، تسهیل ایجاد اتصال امن SSL برای دامنههای محلی است. مثلا اگر بخواهیم SSL را برای دامنه myproject.test فعال کنیم کافی است دستور زیر را اجرا کنیم:</p>
<pre><code>valet secure myproject
</code></pre>
<p>به همین سادگی! برای حذف SSL هم کافی است همان دستور را با unsecure اجرا کنیم. خلاص!</p>
<p>خوشبختانه Valet به صورت خودکار بعد از هر بار راهاندازی دستگاه اجرا میشود. لذا نیازی نیست پیش از استفاده از دستوری مثل <code>valet start</code> استفاده کنیم.</p>
]]><![CDATA[در باب نگرانی علی میرجمالی بابت استفاده حکومت از نرمافزار آزاد علیه مردم]]>https://fediverse.blog/~/آزاد/در باب نگرانی علی میرجمالی بابت استفاده حکومت از نرمافزار آزاد علیه مردم/2021-06-19T08:18:58.409806+00:00ahangarhahttps://fediverse.blog/@/ahangarha/2021-06-19T08:18:58.409806+00:00<![CDATA[<p>علی میرجمالی امروز درباره نگرانیاش در خصوص استفاده حکومت ایران از نرمافزار آزاد علیه مردم چنین مطلبی را <a href="https://mastodon.social/@AliMirjamali/106434513593886869" rel="noopener noreferrer">روی ماستودون</a> منتشر کرد:</p>
<p><img src="https://fediverse.blog/static/media/88DFEF7B-09E9-6544-337C-F84B3BC923E2.png" alt="فرستهٔ علی میرجمالی درباره استفاده حکومت ایران از نرمافزار آزاد علیه مردم"> </p>
<p>به طور کلی و فارغ از این که دولت از چه نرمافزاری استفاده میکند، نقض حقوق مردم و تلاش برای اعمال محدودیت برای دسترسی به اطلاعات محکوم است. این، ربطی به این یا آن دولت، این یا آن حکومت ندارد. اما در خصوص آن مطلب لازم میبینم چند نکته و مساله را عنوان کنم:</p>
<p>۱. در ابتدا سوال عجیبی که در ذهن من شکل گرفته و نمیتوانم پاسخی شرافتمندانه برایش پیدا کنم این است که چرا این مساله که اساسا مسالهای مربوط به داخل ایران است، به دو زبان فارسی و انگلیسی نوشته شده است. لازم است جهانیان چه چیزی بدانند؟ وارد این بحث نمیشوم که چه هدفی میتواند پشت این کار باشد. فقط این سوال را وارد میدانم.</p>
<p>۲. میفرمایند که «حکومت ایران در حال استفاده ابزاری از نرم افزار آزاد است.» مگر دیگران از نرمافزارهای آزاد، استفاده غیرابزاری میکنند؟ خوب است که توضیح داده شود که منظور نگارنده دقیقا چیست.</p>
<p>۳. به عنوان یک طرفدار آزادی نرمافزار معتقدم که توسعه و بهکارگیری نرمافزارهای آزاد، حق هر شخص حقیقی یا حقوقی است. این که کسی بخواهد از آن به مقاصدی شوم استفاده کند، بحثی جداست. اینکه یک شخص یا یک نظام سیاسی بخواهد از نرمافزارهای آزاد برای تضییع حقوق اساسی ملت استفاده کند، بحثی است مستقل از خود نرمافزار. آن مساله محکوم است فارغ از این که نرمافزار مورد استفاده آزاد و یا غیر آزاد باشد. البته یک حالت دیگری وجود دارد و آن این است که نرمافزار مورد استفاده، خودش اساسا با هدف تضییع حقوق مردم توسعه داده شده باشد. این هم نقدی است که به خود نرمافزار وارد است و آزاد یا غیر آزاد بودنش فرق خاصی ایجاد نمیکند. مساله در این جا، اتفاقی است که رخ میدهد نه آزاد یا غیر آزاد بودن نرمافزار. با این حال، اگر آن نرمافزارهای آزاد و در اختیار کاربران باشند این امکان وجود دارد که مشکلات نرمافزاری توسط فرد یا جامعه رفع شوند. امکانی که درخصوص نرمافزارهای انحصاری وجود ندارد.</p>
<p>۴. آشنایی یک برنامهنویس و توسعهدهنده با نرمافزارهای آزاد، چیز عجیب و غریبی نیست. همین الان کلی برنامهنویس در ایران هستند که نرمافزارهای آزاد را میگیرند یک دستی به آن میکشند و به صورت انحصاری به ملت میاندازند. نیاز خاصی به وجدان و اخلاق هم ندارد. هر کسی که برنامهنویسی بلد باشد میتواند با صرف زمانی کوتاه، یک زبان جدید را یاد بگیرد و یک نرمافزار آزاد را ویرایش کند. این، چیزی نیست که محدود به گروه خاصی باشد. اشاره مشخص به کسانی که با نرمافزار آزاد آشنایی دارند به این شکل عام، فاقد معنا است مگر آن که نویسنده منظورش افراد یا گروههای مشخصی باشد؛ مثلا بگوید فعالان جامعه نرمافزار آزاد. اگر چنین است، خوب است که صریحا بیان شود.</p>
<p>۵. پیش بردن پروژههایی نظیر فیلترینگ یا شبکه ملی اطلاعات، پروژههایی هستند که اجرایشان نیازمند داشتن افرادی متعهد به اهداف حاکمیت است. حاکمیت در زمینهها مختلف آدمهای متخصص زیادی را در اختیار دارد. احمقانه خواهد بود اگر حکومتی بیاید سر چنین مسائل حساسی، پای کسانی را باز کند که سرشان درد میکند برای به چالش کشیدن نفس وجود چنین ساز و کارهایی. اگر منظور نگارنده این است که حکومت میخواهد پس از ایجاد زیرساخت، خدماتی مبتنی بر نرمافزارهای آزاد بدهد و آنها جایگزین کند با نرمافزارها و خدمات انحصاری خارجی، بحث دیگری است. اگر چنین است، نگارنده لازم است اساسا توضیح دهد که چه باید کرد که ضمن حفاظت از حریم شخصی و امنیت اطلاعات و نیز معاملهنکردن بر سر حق آزادی رایانش و داشتن کنترل روی نرمافزار، میتوان جلوی حرکت به آن سمت را گرفت.</p>
<p>۶. نگارنده به طور مشخص از تلاش فعالانه حکومت برای جذب افراد آشنا با نرمافزار آزاد گفته است. مصادیق این تلاش فعالانه چیستند؟</p>
<p>۷. پیشتر سر مسائل دیگری هم این سوال را طرح کرده بودم که خط قرمز آقایان برای مزدور یا «دست نشانده ستمگر» شناخته شدن چیست. هرگز پاسخ مشخصی دریافت نکردم. توسعهدهدگان وردپرس و اوبونتو و فایرفاکس و حتی فراتر از آنها، زبانها و چهارچوبهای نرمافزاری و… هم شامل میشوند؟ چه مدل کاری باعث میشود که یک نفر بشود مزدور یا دستنشانده؟ نتیجهاش را هم که در ماههای گذشته دیدیم: به اسم رسواسازی و شرمگینسازی عمومی، انجام هر کاری علیه چنین افرادی مباح بلکه واجب میشود. این خط قرمز دقیقا کجاست؟</p>
<p>تمام این بحث را، رها کردن اصل و فرو رفتن در حاشیه میدانم. اصل مساله از دید من، حق دسترسی آزادانه به اطلاعات است، امنیت دادهها و حریم شخصی است؛ داشتن کنترل روی نرمافزار و آزادی رایانش است؛ عدم حرکت به سمت اینترنت طبقاتی است. حکومت برای نقض این مسائل اساسی، مطلقا نیازی به افراد غیر معتمد که با نرمافزار آزاد آشنایی داشته باشند ندارد. تمام این کارها با کمک نرمافزارهای انحصاری قابل انجام هستند. انحصاری بودن حتی لازمه کار است تا بتوان نسبت به داشتن کنترل حکومت روی ابزارها و ارتباطات، اطمینان حاصل کرد. حکومت، نه تنها خودش کلی برنامهنویس و متخصص در اختیار دارد، به لطف ارتباطات حسنه با دولتهایی مثل چین و سوریه، به راحتی میتواند از دانش و امکانات آنها نیز استفاده کند.</p>
<p>لازم است نگارنده اسناد و شواهدی منتشر کند که نشان دهد نگرانی نسبت به استفاده حکومت از نرمافزار آزاد برای دستاندازی به حقوق ملت، یک مساله اساسی است. اساسی در این سطح که اگر بر فرض محال بشود جلوی استفاده حکومت از نرمافزار آزاد را گرفت و این فرض محال که بشود مانع همکاری آشنایان با نرمافزارهای آزاد با حکومت شد، چنین پروژهای به پیش نمیرود. نظر به شناختی که از نگارنده دارم میدانم که نباید امیدی به ارائه سند و مدرک قابل توجهی بود. با این حال نظر به <a href="https://mastodon.social/@AliMirjamali/106435772125312973" rel="noopener noreferrer">اعلام آمادگی</a> ایشان برای انتشار مقاله و ویدئو در خصوص «مصادیق استفاده ابزاری از نرمافزار آزاد برای شنود یا تسهیل فیلترینگ و روش مقابله»، به انتظار مینشینیم.</p>
]]>