تصویر در تصویر یوتیوب در مک

من تقریباً به این نتیجه رسیده بودم که خاطره‌ای که از تصویر در تصویر یوتیوب روی ویندوز داشتم توهمی بیش نبوده! چون توی مک‌اوس هر وقت روی علامت تصویر در تصویر یوتیوب می‌زدم به جای این که ویدیوی در حال پخش، آزادنه روی کل فضای مک و خارج از مرورگر قابل جابجا شدن باشد و بشود حتی در حین کار دیگر، آن را گوشهٔ صفحه قابل مشاهده داشت فقط در فضای خود صفحهٔ جاری قابل مشاهده بود.

تصویر در تصویر یوتیوب در مک
تصویر در تصویر یوتیوب در مک

یک بار هم به طور جدی دنبالش افتادم که با استفاده از چت‌جی‌پی‌تی یا موتور هوش مصنوعی دیگر راه حل انتقال آزادانهٔ تصویر کوچک را پیدا کردم نشد و هوش مصنوعی قانعم کرد که آنچه دنبالش هستم ممکن نیست!

اما این بار با جستجویی ساده به جواب رسیدم.

برای آزاد کردن تصویر یوتیوب از فضای مرورگر کافی است روی آن دو بار کلیک راست کنید و آنجا تماشای تصویر در تصویر را انتخاب کنید.

تصویر در تصویر یوتیوب در مک
تصویر در تصویر یوتیوب در مک

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

تصویر در تصویر یوتیوب در مک

مورد عجیب فرانسه (و نروژ و …)

در ادامهٔ کار طراحی سیستم آمارگیری از بازدید وب‌سایتها و در درگیری با چالش داده‌های جغرافیایی بازدیدکنندگان چند باری به انحاء مختلف سرکار رفتم.

از آنجا که دیپ‌سیک سرویس آنلاین رایگان و نامحدودی برای استخراج اطلاعات جغرافیایی از روی آی‌پی نمی‌شناخت به دنبال سرویس‌های آفلاین رفتم (آنها که با یک دیتابیس آفلاین کار می‌کنند).

پیشنهاد اولیهٔ دیپ‌سیک GeoLite2 از مکس‌مایند بود که مزیت مهمی هم دارد و آن ارائهٔ یک نوگت برای برنامه‌نویسان دات‌نت (من‌جمله اینجانب) بود.

همان اول کار برای نام‌نویسی در سایت مکس‌مایند و دریافت فایل دیتابیس به مشکل برخوردم (نفهمیدم مشکل از من بود یا از ایرانی بودنم بود یا از خود مکس‌مایند).

سراغ گزینهٔ دوم پیشنهادی یعنی DB-IP رفتم و تصمیم گرفتم فایل اکسل (CSV) منتشر شده توسط این سرویس را وارد دیتابیس برنامه‌ام کنم و آی‌پی‌ها را در آن بگردم.

پیاده‌سازی این روش پیچیده و سخت بود. اما در نهایت اتفاقی که افتاد این بود که نتایج تبدیل آی‌پی به کشور با استفاده از این سرویس کاملاً پرت‌وپلا بود. با وجود آن که عمدهٔ بازدیدکنندگان گنجور از ایران می‌آیند، ایران حتی در فهرست ۱۰ کشور برتر خروجی این سرویس نبود.

به گزینهٔ اول برگشتم. خوشبختانه یک سطر اطلاعات ورود به سایت مکس‌مایند را در سایت باگ‌می‌نات پیدا کردم و با همان به آنچه می‌خواستم (آخرین دیتابیس شهرهای مکس‌مایند) دست پیدا کردم.

پیاده‌سازی پیدا کردن اطلاعات جغرافیایی از روی آی‌پی در این سرویس نسبتاً آسان بود و نتایج این بار معقول و نزدیک به واقعیت بودند.

گام بعدی که رابط کاربری نمایش اطلاعات جغرافیایی بود به کمک دیپ‌سیک به سرعت به نتیجه رسید.

به مشکل عجیبی سر فرانسه برخوردم که بعداً فهمیدم که همان مشکل برای معدودی از کشورهای دیگر مثل نروژ وجود دارد. با وجود آن که تعداد قابل توجهی از بازدیدکنندگان طبق محاسبات سرویس من از فرانسه آمده بودند روی نقشه فرانسه را بدون بازدید نشان می‌داد. بعداً متوجه شدم که در داده‌های نقشه‌ها به دلیلی که دنبالش نگشتم کد ایزوی دو رقمی فرانسه را FR نزده‌اند و برای پیدا کردن کشور از روی کد ایزو در سرویسی که من از آن استفاده کرده‌ام به جای مراجعه به فیلدی به نام ISO_A2 به فیلد دیگری به نام ISO_A2_EH باید مراجعه می‌کردم (این را خودم و به کمک یار قدیمی -گوگل- فهمیدم و دیپ‌سیک از یافتن و حل مشکل عاجز ماند).

خلاصه که فعلاً چالش استخراج داده‌های جغرافیایی از روی آی‌پی حل شده به نظر می‌رسد:

توزیع جغرافیایی بازدیدهای دیروز گنجور

دیپ‌سیک: طراح وب خوش‌سلیقه

چند وقت پیش به نظرم رسید که خیلی خوب است آمار مشارکت‌های کاربران در تصحیح متون و پیشنهاد محتوای مرتبط در گنجور را منتشر کنم. بعد از این که توابع سمت سرویس را آماده کردم به نظرم رسید دیپ‌سیک را برای آماده‌سازی یک رابط کاربری ابتدایی امتحان کنم. امتحانی که علی‌رغم این که چند باری کار خودش را خراب کرد و مجبور شدم دوباره به نقطهٔ درست برش گردانم به نظرم عالی جواب داد.

تصویر صفحهٔ آمار ویرایش‌های گنجور تولید شده توسط هوش مصنوعی دیپ‌سیک

اینطوری که از روی اسامی فیلدهای توابع API خودش متوجه شد که چه عناوینی را به فارسی باید انتخاب کند و حتی خودش داوطلبانه از فونت وزیرمتن استفاده کرد، تاریخ‌ها را تشخیص داد و خودش باز بدون دخالت و خواست من تاریخ‌ها را شمسی کرد.

در نهایت البته من باید کار را در قالب همخوان با گنجور در می‌آوردم و آنجاست که در مقایسه متوجه می‌شوید چقدر رنگ‌بندی و طراحی گنجور زشت است!

بعداً یک بار تلاش کردم CSS اصلی گنجور را به انواع هوش‌مصنوعی‌ها بدهم تا ببینم خودکار چه‌کارش می‌توانند بکنند که نتیجه قابل استفاده نبود.

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

این داستان حذف حساب گوگل‌آنالیتیکس باعث شد که به این فکر کنم که حالا که هوش‌مصنوعی‌ها کمک بزرگی در تولید محصولات نرم‌افزاری هستند و زحمتش کمتر شده روی طراحی یک سیستم آمارگیری از بازدیدهای وب‌سایتها به طور خاص با هدف استفاده در گنجور وقت بگذارم. نسخهٔ اولیه‌ای از توابع سرویس آماده شده و یک دامنه هم برای آن گرفتم و خوشبختانه با توجه به بازدید زیاد گنجور خیلی زود توانستم نسخهٔ اولیه را با بازدیدهای واقعی آزمایش کنم. برای طراحی یک رابط کاربری اولیه با توجه به تجربهٔ موفق پیشین باز سراغ دیپ‌سیک رفتم و به نظرم این بار هم خیلی خوب از عهدهٔ کار برآمده.

آمار بازدید ganjoor.net

برای ادامهٔ کار با چالش‌هایی مواجه شده‌ام. اولاً در استخراج اطلاعات جغرافیایی از روی آی‌پی روی سرویس‌های رایگان پیشنهادی هوش مصنوعی به سرعت به مشکل محدودیت تعداد فراخوانی برمی‌خورم. باید بگردم و ببینم می‌توانم سرویس رایگان نامحدود یا راهکار آفلاینی را پیدا کنم یا خیر. ثانیاً حجم پایگاه داده‌های برنامه با توجه به حجم بالای مراجعات گنجور به سرعت زیاد می‌شود. برای این موضوع تصمیم گرفته‌ام بخش‌هایی از اطلاعات قابل جمع‌آوری را ذخیره نکنم یا راهکارهایی برای گروه‌بندی اطلاعات و حذف جزئیات پیاده‌سازی کنم.

فعلاً این برنامه در دست توسعه است و به صورت عمومی امکان نام‌نویسی و استفاده از آن وجود ندارد.

راهکار استارت نبودن سایت IIS

چند باری برایم پیش آمده که یک یا چند سایت IIS روی یک سرور بعد از راه‌اندازی مجدد ویندوز استاپ هستند. سایتها معلوماً تصادفی هستند و من دلیل این اتفاق را نمی‌دانم. این اتفاق برای Application Poolها هم می‌افتد.

راهکار حل مشکل را با چت‌جی‌پی‌تی پیدا کردم. منتهی چون چند باری اتفاق افتاده و به نظرم در آینده هم به آن برمی‌خورم فکر کردم راهکار حل مشکل را اینجا بنویسم تا بعدا آن را راحت‌تر پیدا کنم:

۱. گام اول آن است که پوشهٔ IIS را پیدا کنیم. خط فرمان ویندوز (cmd) را در حالت ادمینی اجرا می‌کنیم و به این پوشه می‌رویم:

cd %windir%\system32\inetsrv

۲. اگر مشکل یک Application Pool است این فرمان را اجرا می‌کنیم تا وضعیت آن را متوجه بشویم:

appcmd list apppool /name:"apppoolname" /text:autoStart

خروجی این فرمان باید true باشد اگر false بود یعنی مشکل همین است. با اجرای این فرمان آن را true می‌کنیم:

appcmd set apppool "apppoolname" /autoStart:true

۳. برای سایتها هم روند مشابه است. دریافت وضعیت:

appcmd list site /name:"sitename" /text:serverAutoStart

فعالسازی:

appcmd set site /site.name:"sitename" /serverAutoStart:true

باگ نوتپد ویندوز

داشتم اعداد لاتین را با صفحه‌کلید فارسی دوباره تایپ می‌کردم. نوت‌پد ویندوز آرم تحت ماشین مجازی مک. بعد از بستن و باز کردن نوتپد همه‌چیز درست است و متن به درستی ذخیره شده.

دامنهٔ جدید

امروز دامنهٔ hamireza.ir را گرفتم. این اسم (همیرضا) یادگار دورهٔ دبستان و راهنمایی است که همکلاسی‌ها عموماً اسمم را با انداختن دال وسطش صدا می‌کردند. دامنهٔ قبلی (hrmoh.ir) را هنوز هم دارم و تمام لینکهایش قرار است به این دامنهٔ جدید ری‌دایرکت بشوند. پیشتر از آن هم که دامنهٔ اینجا گزیر (gozir.com) بود که در اصل برای پیاده‌سازی یک ایدهٔ استارتاپی ثبتش کرده بودم و وقتی کار پیش نرفت تبدیل به دامنهٔ وبلاگم شد و با افزایش شدید چند سال اخیر هزینهٔ تمدید دامنه‌های بین‌المللی از خیرش گذشتم، البته در کل خیلی هم دوستش نداشتم.

راه حل مشکل اتصال RDP روی ویندوز سرور ۲۰۲۵ و همینطور کندی اجرا تحت ویرچوال

اخیراً روی سروری با ویندوز سرور ۲۰۲۵ با این مشکل مواجه شدم که اگر با ریموت دسکتاپ به آن وصل می‌شدم و بدون لاگ‌اوت قطع می‌شدم در هنگام تلاش برای اتصال مجدد ویندوز روی صفحهٔ ورود به حالتی شبیه قفل شده (فریز) باقی می‌ماند و هیچ اتفاقی نمی‌افتاد. راه حل را در تصاویر بعدی نشان داده‌ام. ابتدا Group Policy را با اجرای gpedit.msc بالا بیاورید و طبق تصویر این تنظیم را فعال کنید.

مسیر مشکل RDP
مسیر مشکل RDP
مشکل RDP

مشکل دیگری که روی این ویندوز -که تحت ویرچوال و با نرم‌افزار QEMU بالا آمده بود- می‌دیدم کندی و لختی نسبی اجرا بود. مثلاً کلیک‌ها با کندی باز می‌شدند و یک کوئری SQL که روی ویندوز دیگری در کمتر از ۱ ثانیه اجرا می‌شد روی دیتابیس مشابه بیشتر از ۶ ثانیه طول می‌کشید تا اجرایش تمام شود. آن را هم جستجو کردم و مشخص شد که در رول‌های سرور می‌بایست Hypervisor را فعال کنم (این رول که همان Hyper V است در اصل برای اجرای یک ماشین مجازی داخل خود ویندوز کاربرد دارد). بعد از نصب این role مشکل لختی و کندیی که از آن صحبت می‌کردم مستند به زمان اجرای همان اسکریپت حل شد.

پی‌نوشت: روی این سرور در نهایت دلم با ویندوز ۲۰۲۵ صاف نشد. هم هنوز یک لختی محسوسی داشت و هم رابط کاربریش نچسب بود به نظرم. با ویندوز ۲۰۲۲ جایگزینش کردم.

راه‌اندازی سرویس ارسال ایمیل روی ویندوز سرور با اچ‌میل‌سرور

من چند وقت یک بار مجبور می‌شوم روی سرورهای جدیدی که برای کارهای شخصی یا کاری می‌گیرم یک ایمیل‌سرور روی ویندوز راه بیندازم. همیشه می‌خواسته‌ام روال کار را یک جا مستند کنم تا برای دفعهٔ بعد به آن مراجعه کنم فرصت نمی‌شده. این بار فرصت شد و گام به گام مراحل را مستند می‌کنم.

تذکر مهم: من تنها نیاز داشته‌ام و دارم که ایمیل ارسال کنم (ایمیل‌های تأییدیهٔ نام‌نویسی کاربران) و هیچگاه علاقمند به دریافت ایمیل نبوده‌ام! دریافت ایمیل قطعاً مراحل بیشتری مانند باز کردن پورتهای ورودی روی دیوارهٔ آتش سرور دارد که من تجربهٔ آن را ندارم.

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

۱. گام اول تنظیم رکوردهای dns دامنهٔ ارسال ایمیل است. در پیشخان DNS یک رکورد از نوع A با نام mail می‌سازیم (یا اگر وجود دارد مقدار آن را ویرایش می‌کنیم) و در مقدار آن IP سرور مقصد را می‌گذاریم:

ایجاد رکورد A با نام mail برای دامنه

سپس برای آن یک رکورد از نوع MX درست می‌کنیم و مقدار آن را mail.domainname.com می‌گذاریم، مثلاً برای مثال تصویر بالا مقدار آن باید مطابق تصویر بعدی باشد.

ایجاد رکورد MX

۲. اچ‌میل‌سرور (hMailServer) را دریافت و روی سرور نصب می‌کنیم. این نرم‌افزار مبتنی بر دات‌نت ۲ است و از این جهت باید روی ویندوزهای سرور از طریق سرورمنیجر رل مربوط به NET 3.5. را هم نصب کرده باشید. برای ذخیرهٔ اطلاعات من از SQL Server که پیشتر روی سرور استفاده کرده‌ام استفاده می‌کنم:

تنظیم پایگاه داده‌های hMailServer

برای hMailServer لازم است یک رمز ادمین تعیین کنید. در مراحل تنظیم نحوهٔ اتصال به SQL Server تعیین کنید که می‌خواهید پایگاه داده‌های جدیدی ایجاد شود. اتصال به SQL Server با Windows Authentication کار نمی‌کند و با این خطا مواجه می‌شود:

به جایش مجبورید روی SQL Server کاربر با دسترسی کافی بسازید تا hMailServer بتواند پایگاه داده‌هایش را بسازد.

لازم است سرویس SQL Server را هم برایش مشخص کنید که هر گاه سرویس اس.کیو.ال ری‌استارت شد این سرویس هم ری‌استارت شود.

در صورت بروز مشکل در مراحل پیکربندی برنامه را پاک کنید و سرور را ری‌استارت کنید و مجدداً آن را نصب کنید.

۳. مرحلهٔ بعد اجرای hMailServer Administrator و اضافه کردن نام دامنه و ایجاد رکورد DKIM در DNS برای اعتبارسنجی دامنه و اسپم نشدن آن در جیمیل است. ابتدا دامنه را در برنامه اضافه می‌کنیم.

در تنظیمات SMTP هم در قسمت نام سرور محلی نام دامنه را می‌زنیم (اگر این کار را نکنیم در ارسال ایمیل نام کامپیوتر سرور گذاشته می‌شود و در بررسی میزان اعتبار ایمیل ارسال شده این خطا ظاهر می‌شود: We check if there is a server (A Record) behind your hostname).

برای رکورد DKIM طبق این راهنمایی به این نشانی می‌رویم و فرم را مطابق شکل زیر پرمی‌کنیم (selector یک رشتهٔ دلخواه است که بعداً باید هر چه اینجا وارد کردیم را داخل نرم‌افزار هم وارد کنیم):

بعد از تولید کلید خصوصی تولید شده را در یک فایل متنی با پسوند pem ذخیره می‌کنیم و روی سرور در مسیر ثابتی که بدانیم فایل از آنجا پاک نمی‌شود کپی می‌کنیم -کلیدی که من در تصویر نشان داده‌ام واقعاً استفاده نشده وگرنه کلید واقعی را باید خصوصی نگه دارید- (من معمولاً آن را در پوشه‌ای در مسیر نصب اچ‌میل‌سرور کپی می‌کنم).

و سپس در اچ‌میل‌سرور آن را انتخاب می‌کنیم و selector را هم مطابق همان چیزی که وقت تولید کلید وارد کرده‌ایم وارد می‌کنیم.

طبق راهنمای تولید در تصویر یکی قبل‌تر یک رکورد DNS هم از نوع TXT به این صورت ایجاد می‌کنید:

۴. برای دامنهٔ مد نظر باید کلید متنی SPF را هم در DNS بسازید. ساخت این کلید آسان است و طبق الگوی تصویر بعد نام دامنه و آی.پی را با مقادیر مربوط به خودتان جایگزین کنید:

v=spf1 ip4:1.2.3.4 include:domain.com ~all

۵. رکورد DMARK هم مثل SPF با یک الگو ساخته می‌شود:

v=DMARC1; p=reject; rua=mailto:report-abuse@domain.com

۶. در hMailServer زیر دامنهٔ مد نظر در قسمت Accounts ایمیل مد نظر خود را بسازید. سپس نرم‌افزاری را برای ارسال ایمیل پشت سرور نصب کنید. من از تاندربرد استفاده می‌کنم. از POP3 با پورت ۱۱۰ برای دریافت و از SMTP با پورت ۲۵ به صورت ناامن برای اتصال استفاده کنید و مطمئن شوید پشت سرور با نرم‌افزار به میل‌سرورتان وصل می‌شوید.

۷. بهتر است دی‌ان‌اس معکوس آی‌پی ارسال کنندهٔ ایمیل (reverse dns یا rDns) برابر با دامنهٔ ارسال ایمیل (mail.domainname.com) باشد. در سرورهایی که من تا به حال در اختیار داشته‌ام انجام این تنظیم در اختیار سرویس‌دهنده است و برای این کار برایشان تیکت می‌زنم. اگر این کار انجام نشود یا مثلاً به لحاظ آن که سرویس‌دهنده میزبان چند دامنهٔ ارسال ایمیل باشد و فقط برای یکی بتواند انجام شود مشکل جدی ایجاد نمی‌شود.

۸. به سایت mail-tester.com بروید و با تاندربرد به ایمیل پیشنهادی آن یک ایمیل بزنید:

و در نهایت در سایت mail-tester نتیجه را ببینید.

شاهنامه‌گردی

شاهنامه‌خوانی را که رها کرده بودم دوباره شروع کرده‌ام. حوالی ضحاکم و چه داستانی! این که برای رهایی از ستم جمشید ایرانیان اژدهاپیکری را به دست خویش بر تخت می‌نشانند که سال‌ها از مغز جوانان وطن مارهای دوشش را خوراک می‌دهد و این صدها سال طول می‌کشد و بعد این که بزرگان به او مشورت می‌دهند و او را تأیید می‌کنند.

بگذریم! این بار هم مثل قبل سر همین ماجرا یک کار دیگر کردم که چند روزی وقتم را گرفت. تصمیم گرفته‌ام که تصاویر نسخه‌هایی از شاهنامه را که روی گنجینهٔ گنجور گذاشته بودم با متن گنجور فهرست‌گذاری کنم. به نظرم رسید که بگردم و نسخه‌های نفیس دیگری از شاهنامه را پیدا و اضافه کنم. به مجموعهٔ بودلین دانشگاه آکسفورد برخورد و آنها را اضافه کردم.

در میان این نسخه‌ها نسخه‌های عجیب زیبایی دیدم. نسخه‌های جالبی را هم پیدا کردم. مثلاً این یکی که معمولاً چیزی شبیه آن راست کار من نیست (نفاست نسخه‌ها برای من بیشتر اهمیت دارد تا قدمت یا ارزش متن آنها). ویژگی آن این است که در چند برگی که من دیدم برای نوشته‌های فارسی حرکت‌گذاری کرده بودند:

قسمتی از یک متن نجومی روی گنجینهٔ گنجور

این دسته از متن‌ها نشان می‌دهند که چند صد سال پیش کلمات واقعاً چطور خوانده می‌شدند تا نظریه‌های به نظر من عجیبی مثل این در ذهنمان جا نیفتد: در نقد روخوانی من از شعر سعدی نوشته‌اند:

در خوانش شعر فارسی درست است که حرف ربط را وُ بخوانیم، نه وَ

مثلاً در فایل صوتی اول می‌گوید تو پرده پیش گرفتی وَ ز اشتیاق جمالت. درست است بگوییم تو پرده پیش گرفتی وُ (اُ) ز اشتیاق جمالت. در تلفظ صحیح خوانش اشعار فردوسی، واو اول بیت را هم اُ می‌خوانند، حتی اگه شده یک کرسی ی زیر آن بگذاریم. مثلاً این مصراع سعدی مرا به هیچ بدادی یُ من هنوز بر آنم… 

در پاسخ نوشته بودم:

قاعدهٔ روخوانی متن برای مخاطب عام معاصر آن است که به زبان متداول و لهجهٔ معیار عصر خوانده شود.

حتی این که «و» در روزگار سعدی (یا حتی فردوسی) به شیوه‌ای که فرمودید خوانده می‌شده به نظر من به شدت زیر سؤال است (منظور جایی است که به طور مشخص می‌بایست va یا به قول شما vo خوانده شود و نه جایی که به ضرورت شعر قطعاً o خوانده می‌شود).

می‌فرمایید چرا؟

به تصویر زیر نگاه کنید. طبق اشارهٔ ارسال‌کنندهٔ تصویر (کتابخانه تخصصی تاریخ اسلام و ایران ذیل این نوشته) این متن فارسی اعراب‌گذاری شده در سال ۴۸۴ هجری قمری کتابت شده است که فاصلهٔ زیادی با عصر فردوسی ندارد. به اعراب «و» دقت کنید:

فارسی اعراب‌گذاری شده

و به این یکی (اصل تصویر اینجاست که تاریخ کتابت را ۹۲۲ هجری قمری ثبت کرده):

فارسی اعراب‌گذاری شده

این که بر مبنای ریشه‌شناسی واژه و احتمالاً مکتوبات محدودی که از زبان پهلوی یا حتی فارسی میانه به دست ما رسیده چنین داوری بکنیم و قاعده و قانون صادر کنیم کار درستی نیست. کما این که این حدس من راجع به مأخذ احتمالی قاعده‌ایست که عنوان فرمودید و حدس دیگرم آن است که این قاعده «من‌درآوردی» سره‌گرایانی باشد که چون فکر می‌کنند «وَ» از عربی وارد فارسی شده برای «o» و به تبع آن «vo» هویتی ملتی قائل شده باشند و تصور می‌کنند نفی صورت اول به نوعی نفی صورت عربی آن باشد. در کل، اگر برای این قاعده مأخذی مثل نقل قول از ادیبان یا زبان‌شناسان سرشناس عنوان بفرمایید بسیار عالی خواهد شد.

از این جهت به نظر من حتی اصالت تاریخی و درستی قاعده‌ای که مطرح فرمودید هم زیر سؤال است.

اما به فرض که اینطور نباشد، یعنی واقعاً در روزگار گذشته چنین خوانشی از «و» رایج بوده (من بعید نمی‌دانم با توجه به عدم وجود رسانه‌های صوتی و تصویری و تنوع بالاتر لهجه‌ها در مناطقی چنین تفاوتهایی دیده شود و نه تنها «وُ» که «و‌ ِ» هم جاهایی رایج بوده باشد (من بشخصه در لهجهٔ دوستان شهرکردی و در محاورهٔ معمول «وُ» را به کرات شنیده‌ام)! همچنان که شاه سابق «را» را «رِ» می‌گفت. این آخری را به حساب شوخی یک بیسواد در این حوزه‌ها بگذارید)، مگر فقط تفاوت در همین یک واژه بوده؟ شما همان تصاویر اعراب‌گذاری شده را ببینید. «یکی» را «یَکی» اعراب‌گذاری کرده و عموم کلمات منتهی به های ناملفوظ (مثلاً «جسته» را) با فتحه حرکت گذاشته. آیا در این مورد عقیده ندارید باید همه را عین آن روزگار بخوانیم؟

فقط اینها نیستند. عموم واژه‌های عربی در فارسی به نحوه‌ای دیگر تلفظ می‌شوند (منظورم حروف خاص زبان عربی نیست، بعضاً حرکت حروف هم تغییر کرده، مثلا عموماً ما «مَحَبت» را «مُحَبّت» یا حتی در زبان محاوره «مُحِبت» تلفظ می‌کنیم). آیا با توجه به این تغییرات باید همهٔ این کلمات را هم مانند زبان منبع آنها تلفظ کنیم؟

و اصلا مگر کسی ادعا کرده که متن را دارد مطابق روزگار نویسنده و شاعر می‌خواند؟ آیا کسی اصلاً می‌تواند چنین ادعایی بکند؟

و حتی اگر مانند ادیبان و شاهنامه‌پژوهان چنین تلاش‌هایی در روخوانی اشعار صورت بگیرد نتیجه‌اش غیر از مصنوعی به نظر رسیدن تلاش فرد، بیشتر می‌تواند آن باشد که متنی را که فرد با گویش معاصر می‌توانست با شنیدن آن به راحتی بفهمد تبدیل به متون زمخت و غیرقابل درکی می‌کنند که شنونده می‌بایست با جستجو و پژوهش تازه به این برسد که مثلاً این «خُرامیدن» همان «خَرامیدن» خودمان است یا «مُقام» همان «مَقام» و به زعم شائبه‌ای که تلفظ متفاوت این اساتید ایجاد می‌کند (نکند اینطوری می‌خواند چون معنی دیگری دارد؟!) تفاوت معنایی ندارند (مثالهای بهتری برای این مورد وجود دارد که با آن برخورد کرده‌ام اما الان به ذهنم نمی‌رسند). حتی اگر چنین مشکلی رخ ندهد احتمال زیادی وجود دارد که خوانش‌های اینچنینی بیشتر شبیه قرائت اشعار با لهجه‌های ساختگی محلی به نظر برسد (خصوصاً زمانی که عمق اصالت‌گرایی به قواعد موهومی برای چیزی مثل قاعده‌ای که برای «و» عنوان فرمودید برسد، مثالش دم دست است: «وُزاشتیاق جمالت!»، شنونده‌ای که متن را نمی‌بیند و مثلاً از طریق پادکست به روخوانی گوش می‌کند به نظرتان اینجا چه فکرهایی می‌کند؟).

و در نهایت چه بسا که سرایندگان این ابیات به زعم باورمندان این قواعد اشعار خود را غلط می‌خوانده‌اند و نمی‌دانستند! گواهش همان تصاویر اعراب‌گذای شده.

و حالا این یک نسخه هم هست.

یک شاهنامه هم پیدا کردم که قرار بوده نقاشی‌های صحنه‌ها بعداً به آن اضافه شود و نشده و این فرایند کار را نشان می‌دهد:

شاهنامه با جای خالی برای نگارگری

اما مهمتر از همه نسخه‌های خطی فوق‌العاده زیبایی مثل این و این را دیدم. به این فکر کردم که هر کدام از اینها در دنیای کم‌جاذبهٔ قدیم می‌توانستند منشأ یک افسانه باشند. می‌توانستند آرزوی آدمهایی باشند که وصفشان را شنیده‌اند و دوست دارند پیش از مرگ یک نظر این کتابهای جادویی را ببینند. و حالا، زیر دست ما مثل نقل و نبات ریخته‌اند و ما توجهی به آنها نمی‌کنیم.

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

جورچین فانوس خیال

این فانوس خیال را که درست کردم به نظرم رسید که می‌توانم با زحمت کمی ازروی کد پیشتر نوشته‌شدهٔ کاشی‌چینی یک بازی جورچین آنلاین بر اساس آن درست کنم.

برای کاشی‌چینی من باید می‌گشتم، عکس‌ها را پیدا می‌کردم، با اندازهٔ خاصی می‌بریدم و داخل برنامه می‌گذاشتم. اینجا یک مجموعهٔ پانزده‌هزارتایی بدون نیاز به پیدا کردن و بریدن داشتم.

همانطور که فکر می‌کردم کار سختی نبود و با کپی کدها در یک پروژهٔ جدید و تغییر ارجاعات عکس‌ها از تصاویر تعبیه‌شده داخل برنامه به نشانی‌های اینترنتی کار آماده شد. اسمش را هم فانوس خیال گذاشتم.

مشکلی که داشتم اندازهٔ مربعی عکس‌ها بود که آن هم -خداخواسته- با یک آگهی به سایر برنامه‌ها و کارهایم پر شد و در عوض برنامه را به رایگان منتشر کردم. قابلیتی هم در آن گذاشتم -و بعداً آن را به کاشی‌چینی هم اضافه کردم- که کسی که علاقه به بازی کردن ندارد و فقط می‌خواهد از آن به عنوان یک گالری برای مرور تصاویر استفاده کند بتواند با فعال کردن یک گزینه در پیکربندی -کم و بیش- به آن برسد.

چون تصاویر را هوش مصنوعی تولید کرده شاید آن کارکردی که کاشی‌چینی برای کمک به دقت بیشتر در جزئیات تصاویر را در هنگام استفاده به عنوان یک پازل دارد نداشته باشد ولی با توجه به تعداد بی‌شمار تصاویر یک سرگرمی تمام‌نشدنی برای کسی است که اینجور پازل‌ها را دوست دارد.