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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

تکه‌های مهم؟!

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

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

hamidreza clipmarks backups

بازی خطوط و یک مجموعهٔ دیدنی

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

Lines Game

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

نمونه کارهای قابل انجام با کتابخانهٔ رافائل

لطفاً چند دقیقه از وقت آنلاینتان را به من هدیه بدهید!

۱- به این نشانی بروید.

بازبینی خروجیهای OCR گنجور

۲- بالای صفحه یک عکس بریده شدهٔ متنی می‌بینید. در کادر پایین آن یک یا چند دکمهٔ سفیدرنگ می‌بینید که حاوی متنهایی مشابه تصویر بالای صفحه هستند. اگر یکی از آنها متنش کاملاً شبیه متن تصویر است روی آن کلیک کنید، اگر نه در کادر متنی «خیر؟ تصویر درست را وارد کنید» متن درست را تایپ کنید و Enter بزنید.

۳- با هر بار کلیک بر روی یکی از دکمه‌های مرحلهٔ ۲ به صفحهٔ مشابهی هدایت می‌شوید و این کار را می‌توانید تا هر وقت که دوست داشتید ادامه دهید!

۴- بعضی از عکسها ممکن است ناخوانا باشند (بد اسکن شده‌اند)، در این موارد روی دکمهٔ «تصویر ناخواناست» کلیک کنید. بعضیها هم ممکن است حاوی هیچ متن قابل بازخوانیی نباشند (حروف تکه تکه و …)، در این موارد روی دکمهٔ «تصویر بد بریده شده» کلیک کنید.

با صرف چند دقیقه از وقت آنلاینتان به این صورت -ضمن لطفی که دارید به من می‌کنید 😉 – به گسترش دامنهٔ داده‌های بزرگترین سایت شعر فارسی دارید کمک می‌کنید. دوست دارید در این مورد بیشتر بدانید؟ اینجا را ببینید.

گلوگاه‌یاب

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

نکتهٔ جالبی که در مورد سرویس میزبانی این شرکت نظرم را جلب کرد نحوهٔ سنجنش میزان استفاده از منابع در سرویس میزبانی گرید این شرکت است. جایی که با توجه به فضای ۱۰۰ گیگابایتی و پهنای باند یک ترابایتی (با هزینهٔ سالیانهٔ حدود ۲۰۰ دلار) محدودیتهای معمول میزبانهای وب عملاً کارایی ندارد.

این شرکت معیاری را به اسم GPU (ربطی به Graphics Processing Unit ندارد 😉 مخفف Grid Performance Unit است) طراحی کرده که بر اساس میزان مصرف منابع سیستم؛ کاربران را محدود می‌کند و جالب آن که گزارش کاملی که در این زمینه ارائه می‌دهد می‌تواند کاملاً کارایی لازم بر اشکالیابی و پیدا کردن اسکریپتهای ناکارا یا مشکلدار را داشته باشد.

Media Temple GPU Summary
Media Temple GPU Report

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

دی.ان.اس‌های گوگل

این را در نظرات یکی از وبلاگها خواندم، یادم نیست کدام وبلاگ. اما به هر حال کار مرا فعلاً راه انداخته. گفتم شاید شما هم، همهٔ زندگی آنلاینتان روی جیمیلتان باشد و دسترسی از طریق محیط آشنایی وبی آن برایتان ضروری، شاید این راه حل به درد شما هم بخورد: دی.ان.اسهای ارتباط اینترنتیتان را روی 8.8.8.8 و 8.8.4.4 تنظیم کنید بلکه رستگار شوید.

پیشنهاد

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

خوب! مشکلی نیست، آمار به درک! لینکها را با لینک اصلی سرویس میزبانی پروژه جایگزین می‌کنم.

می‌آیی لینکهای اصلی را جایگزین کنی. یک بار تصمیم می‌گیری آزمایششان کنی. می‌بینی که از آن طرف پیغام تحریم می‌گیری!

sourceforge

چه همزمانی جالبی! آن طرفیها را که حرجی برشان نیست. به اعتراف خودمان دشمنمان هستند و دشمن که به دشمن سرویس نمی‌دهد. این طرفیها را من مانده‌ام: چرا تعارف می‌کنند؟ مگر نه این است که اینترنت همه‌اش دردسر است برایتان. تعطیلش کنید یا محدودش کنید به همان هفت هشت ده سایت بی‌خطر و تأیید شده. خیال همه‌مان را راحت کنید. بهتر نیست؟

تغییر در «کدهای گنجور»

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

کد شعر گنجور

ردگیری چشم

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

بازدیدکنندگان اغلب مطالب صفحه را با الگویی شبیه حرف F مرور می‌کنند

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

نقاط داغتر یک صفحه‌ی وب

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

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

صحنه‌ای از مستند BBC Life in Cold Blood