راه حل از دسترس خارج شدن سایت در IIS (مشکل پیشین گنجور)

1 فوریه 2024

پیش‌تر و زمانی که یک شب کامل گنجور از دسترس خارج شد به لحاظ آن که دوستان زیادی نگران شده بودند راجع به آن نوشتم تا نگرانی دوستان رفع شود منتهی آن اطلاع‌رسانی باعث نگرانی بیشتر شد!

دوستان زیادی در آن زمان برای ارائهٔ راه حل تلاش و اقدام کردند و از جملهٔ آنها آقای محمد حکیمی از شرکت نئور فاوا راه حل اساسی و استاندارد این مشکل را ارائه کردند. برای استفادهٔ سایر دوستان (کسانی که روی ویندوز و روی IIS سایتهای مبتنی بر ASP.NET Core را میزبانی می‌کنند) راه حل ایشان را بازگو می‌کنم.

سلام

در مورد مشکل Stop شدن IIS که نوشته بودید؛ اگر موضوع Stop شدن سرویس IIS باشد، یک راه ساده این است که یک Scheduled Task ایجاد کنید که با اجرای یک خط دستور Powershell، در بازه زمانی هر ۱ دقیقه یکبار اگر سرویس مورد نظر Stop شده بود، آن را Start کند. این Task خیلی ساده است و تقریبا هیچ باری به سرور وارد نمی‌کند.

Get-Service | Where-Object {$_.Status -eq “Stopped” -and $_.StartType -eq “Automatic” -and $_.Name -eq “W3SVC”} | Start-Service

اگر خود وب سایت در IIS به صورت Stop در آمده باشد، می توانید یک Task ایجاد کنید تا فقط آن وب سایت را هر ۱ دقیقه Start کند.

Import-Module IISAdministration

Start-IISSite -Name “api.ganjoor.net”

اگر مشکل با Application Pool است به این صورت می‌توانید اقدام کنید.

Import-Module WebAdministration

set-Location IIS:\AppPools

$ApplicationPools = dir

foreach ($item in $ApplicationPools)

{

$ApplicationPoolName = $item.Name

$ApplicationPoolStatus = $item.state

Write-Host “$ApplicationPoolName -> $ApplicationPoolStatus”

if($ApplicationPoolStatus -ne “Started”)

{

Write-Host “—–> $ApplicationPoolName found stopped.”

Start-WebAppPool -Name $ApplicationPoolName

Write-Host “—–> $ApplicationPoolName started.”

}

}

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

ممنون از زحمات شما

Mohammad Hakimi

Neor Fava

www.neor.ir

با سپاس از آقای حکیمی عزیز، پیش از تماس ایشان برای رفع اشکال از راه حل مشابهی در قالب یک برنامهٔ دات نتی استفاده کردم که کد آن در این نشانی در دسترس است (تهیه شده با کمک چت‌جی‌پی‌تی).

در پاسخ به طرح این موضوع آقای حکیمی نکتهٔ بجایی را عنوان کردند:

چه خوب.

البته معمولا ترجیح ما بر این است که در پروژه‌ها برای انجام کارهای ساده از برنامه هایی که به این صورت نوشته و Compile می‌شوند پرهیز کنیم چون معمولا به جزئیات مربوط به امنیت و Performance توجه کافی نمی‌شود. با فراخوانی Componentها، تعدادی DLL روی Memory فراخوانی می‌شوند و پس از اجرای برنامه هم باقی می‌مانند و در طول زمان منجر به پر شدن Memory سرور و کند شدن عملکرد می‌شود. در صورتی‌که با استفاده از Scriptهای استاندارد Powershell، مدیریت مسائل جانبی توسط خود Powershell انجام می‌شود و دیگر دغدغه‌های امنیتی یا Performance وجود ندارد.

این توضیح کلی بود و مربوط به این مورد خاص نبود.

امیدوارم که در هر صورت مشکل برطرف شود و این پروژه ارزشمند پابرجا باشد.

ممنون از زحمات ارزشمند شما

با این حال با توجه به آن که راه حل پیشتر پیاده‌سازی شده (برنامهٔ مجزا) قبل از آن روی سرور راه‌اندازی شده بود من تنبلی کردم و راه حل را تغییر ندادم.

اما به نظرم رسید که راه حل آقای حکیمی را (که من در جستجوهایم به آن نرسیده بودم) برای روز مبادا و برای دیگرانی که دچار همین مشکل می‌شوند در اینجا به اشتراک بگذارم.


امکان پیشنهاد مشق شعر و صفحات تجمیعی نقل قول‌های شاعران

26 ژانویه 2024

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

پیشنهاد مشق شعر

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

نقل قول ها و شعرهای مرتبط


تغییر در شمار نویسه‌ها و تبدیل آن به شمار نویسه‌های همصدا

25 ژانویه 2024

در امکان شمار نویسه‌ها تغییری به این صورت داده شده که حروف همصدا مثل صاد و ث و سین و همچنین ز و ذال و ضاد و صاد را با جایگزین کردن آن با حرف مرجع صدا در الفبای فارسی یکسان در نظر می‌گیرد و به جای «شمار نویسه‌ها» «شمار نویسه‌های همصدا» را نمایش می‌دهد.

شمار نویسه‌های همصدا

مشق شعر: نقل قول‌های شاعران از هم و شعرهای سرگردان

26 دسامبر 2023

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

الگوریتم مشابه‌یابی گنجور

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

استقبال‌ها

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

بوی جوی مولیان آید همی

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

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

نقل قول از شمس‌الدین محمد جوینی

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

ز گریه مردم چشمم

روی شعرهایی که به چند شاعر منتسبند نشانه‌ای برای مشخص کردن این سرگردانی گذاشته می‌شود.

منتسب به چند شاعر

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

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


انتشار کتاب «گنجور، قدرت بی‌نهایت کوچک‌ها» نوشتهٔ مهدی سلیمانیه

19 دسامبر 2023

اول از زبان نویسنده بخوانید:

🔸️گنجور: قدرت بینهایت کوچک‌ها🔸️
(به بهانه انتشار کتاب تازه‌ام درباره سایت گنجور و بانی‌اش: حمیدرضا محمدی)
«خودت کدام کتابت را بیشتر دوست داری؟» گاهی این را می‌پرسند، و تا الان برایش جوابی نداشتم. اما الان جوابش را می‌دانم: همین کتاب تازه رسیده را: گنجور: قدرت بینهایت کوچک‌ها.
شاید چون گنجور را همه‌مان دیده‌ایم، اما نه به چشم معجزه‌ای اجتماعی. شاید برایمان سایت ادبی آشنایی بوده اما نمی‌دانستیم پشتش چه داستان عجیبی دارد. شاید برای آشنایی‌ام با بانی ِ در سایه مانده و متفاوتش: حمیدرضا محمدی. شاید هم چون اولین بار بود که کار پژوهشی را به زبان داستانی نوشتم. شاید هم چون حس می‌کنم در دوره احساس ناتوانی جمعیمان، در دورهٔ شکستها، روایت داستان گنجور، از قدرتمندی‌مان می‌گوید. از این که کنار هم چقدر قوی شدیم و چه معجزه‌ای ساختیم. شاید هم چون به بهانهٔ روایت داستان حمیدرضا، بانی گنجور، داستان خودمان، ما بچه‌های دهه شصت را روایت کردم. از مدرسه رفتن‌ها و کچلی‌ها، تا بمباران و سیاست و کنکور … روایت یک سخت‌جانی امیدوارانه و سازنده.
به هر حال کتاب گنجور بالاخره به بازار آمد.

پایان نقل قول.

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

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

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

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

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

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

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


جستجو (برجسته‌سازی) توکار در صفحات شعرها

14 دسامبر 2023

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

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

در فکر بودم که امکانی مشابه جستجوی داخلی مرورگرها در صفحات شعرها فراهم شود که با توجه به پیچیدگی‌هایی مثل حرکات (زیر و زبر و تنوین و تشدید) و … پیاده‌سازی آن راحت نبود. خوشبختانه به مدد چت چی پی تی کتابخانه‌ای را یافتم که برای همین کار ساخته شده (mark.js) و تا حد زیادی همان امکاناتی را که مرورگرها برای جستجوی توکار ارائه می‌کنند در اختیار می‌گذارد.

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

کادر جستجو در متن
جستجوی توکار در متن گنجور
نادیده گرفتن حرکات در متن

جداسازی شرح‌های صوتی از روخوانی‌ها

13 دسامبر 2023

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

شرح صوتی

در پیشخان خوانشگران گنجور نیز گزینه‌ای برای تعیین این که یک خوانش شرح صوتی است افزوده شده است (اگر خوانشگران محترم چنین گزینه‌ای را مشاهده نمی‌کنند می‌بایست در مرورگرشان Ctrl+F5 بزنند).

ارسال شرح صوتی

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

همین امکان به گنجور رومیزی نسخهٔ ۲.۹۹ نیز اضافه شده است.

ارسال شرح صوتی با گنجور رومیزی


آمار اوزان، زبان‌ها و قالب‌های شعری به تفکیک بخش

10 دسامبر 2023

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

هم‌اکنون پایین صفحات فهرست‌های تمامی بخش‌ها یک دکمهٔ «آمار» اضافه شده که این آمارها را برای همان بخش در اختیار می‌گذارد.

آمار گلستان سعدی

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


شمار نویسه‌ها در بخش اطلاعات بیت و محاسبه‌گر ابجد

6 دسامبر 2023

به اطلاعاتی که با لمس یا کلیک شمارهٔ بیت‌ها نمایش داده می‌شود «شمار نویسه‌ها» نیز افزوده شده، که ضمن نمایش تعداد حروف هر مصرع به ترتیب نزولی، با لمس یا کلیک هر حرف آن را در مصرع مد نظر رنگی می‌کند. در غیاب اطلاعات آوایی، احتمالاً این ابزار می‌تواند تحقیق در مورد واج‌آرایی و تکرار واج‌ها در اشعار را آسان‌تر کند.

شمار نویسه‌ها

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

شمار نویسه‌ها در محاسبه‌گر ابجد گنجور

از دسترس خارج شدن شبانهٔ گنجور (نگران نباشید، مشکل مهمی نیست)

30 نوامبر 2023

در موارد معدودی طی سالهای اخیر گنجور یا وب‌سرویس آن به صورت پیش‌بینی نشده از دسترس خارج می‌شود. علت این موضوع عموماً توقف سایت در IIS است که هنوز ریشهٔ آن را پیدا نکرده‌ام (گنجور در حال حاضر روی ویندوز سرور ۲۰۱۹ و روی بستر ASP.NET نسخهٔ ۸ با SQL Server 2019 اجرا می‌شود).

مدت طولانیی از آخرین باری که چنین اتفاقی افتاده می‌گذرد تا این که دیشب دوباره اتفاق افتاده بود (ارتقا به دات نت ۸ اخیراً انجام شده). متأسفانه اگر این اتفاق شب‌هنگام بیفتد سایت در طول شب از دسترس خارج می‌شود تا صبح که متوجه مشکل بشوم و مشکل را حل کنم).

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

تصاویری از تنظیمات IIS و سایت را برای دوستان فنی‌تر پیوست می‌کنم.

سورس گنجور هم که در این نشانی در دسترس است.

ویندوز گنجور
تنظیمات IIS APP Pool گنجور
web.config گنجور
پروسه‌های روی سرور
میزان استفادهٔ شبکه
آمار روز گنجور
تعداد مشاهدهٔ صفحات گنجور