گزیر

::گاهنوشتهای حمیدرضا محمدی::

دربارهٔ من:

آخرین نظردهندگان:

مشترک شوید:

ایمیل خود را در جعبهٔ زیر وارد کنید و دکمهٔ اشتراک را بزنید.

جستجو:

Valid XHTML 1.0 Transitional RSS Feed

این برنامه‏نویسهای بامزه

۸۷/۱۰/۲۴

پیغام اکیسمت

«گوشت خوک» توی وبلاگ من چه غلطی می‌کنه؟ من گیاهخوارم!

وردپرس وبلاگم را به‌روز کردم، داشتم دوری در محیط جدید می‌زدم که در قسمت آمارهای اکیسمت این جمله را دیدم (وردپرس -قابل دریافت از این نشانی– سیستم مدیریت وبلاگ من است و اکیسمت افزونه‌ای برای وردپرس است که جلوی نظرات هرز را می‌گیرد). طراحان اکیسمت در برابر «اسپم» (=نظرات هرز که اتفاقاً نام نوعی خوراکی هم هست) واژه‌ی «هم» (=گوشت خوک) را برای نظرات واقعی و غیرهرز گذاشته‌اند و خوب! در متن کوتاهی با عنوان بامزه‌ی بالایی جریان را توضیح داده‌اند.

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

Stop beating your head, you might hurt yourself!

از هر جوکی که ممکن است فکرش را بکنید خنده‌دارتر به نظر می‌رسد (و البته واقعاً کمک می‌کند که به خودتان کمتر صدمه بزنید). بعضی جملات بامزه‌ی معروف دیلاسیا را اینجا بخوانید.

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

پیغام با مزه‌ی وین امپ

«… . این اتفاق در واقع هرگز نباید بیفتد!»

برنامه‌نویسان وردپرس پیش از این هم کارهای بامزه -و این یکی واقعاً بامزه- کرده‌اند. اگر وبلاگ مبتنی بر وردپرس دارید (ویرایش ۲.۶ یا ۲.۷)، صفحه‌ی ویرایش یک مطلب قدیمی را بیاورید. از کادر «Post Revisions» (بازنگریهای نوشته) موردی را انتخاب کنید و سپس آن مطلب را با خودش مقایسه کنید. تصاویر زیر نشان دهنده‌ی بخشی از اتفاقی است که بعد از این کار می‌افتد:

ماتریکس وردپرس

نوشته شده در ساعت ۲۲:۳۳

او.سی.آر: قاتل کپچای تصویر متن

۸۷/۱۰/۲۳

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

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

کپچای سه‌بعدی

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

کپچای سه‌بعدی

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

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

انواع دیگر کپچا

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

کپچاهای سگ و گربه‌ی رپیدشر

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

فهرست سری نوشته‌های من درباره‌ی هرزنامه‌ها:

قسمت اول: ریشه‌ی نام اسپم

قسمت دوم: هرزنامه‌ها

قسمت سوم: کدامیک هرزنامه‌های بیشتری می‌گیرند: «علی» یا «زهرا»؟

قسمت چهارم: بگذارید «اسپم»ها را آنها بخورند!

قسمت پنجم: درآمدزایی هرزنامه‌ها

قسمت ششم: ماشینهای صاحب‌نظر

قسمت هفتم: کپچا: «تو آدمی؟!»

قسمت هشتم: او.سی.آر: قاتل کپچای تصویر متن

قسمت نهم: صنعت حل کپچای هند و راه‌حلهای مقابله با اسپم با تکیه بر تحلیل محتوی

نوشته شده در ساعت ۲۱:۱۱
Comments Off on او.سی.آر: قاتل کپچای تصویر متن

کپچا: «تو آدمی؟!»

۸۷/۱۰/۲۰

ماشینهای صاحب‌نظر یک ضعف مهم دارند و احتمالاً راه حل شکست دادن آنها تکیه بر همین ضعف است. آن ضعف مهم آن است که آنها آدم نیستند! بله! آنها خیلی از تواناییهای یک انسان را ندارند. تواناییهای بسیاری از این روباتها محدود به پیدا کردن جعبه‌های متنی، تشخیص نوع داده‌ای که باید آنها را با آن پر کنند و ارسال خودکار داده‌های هرز است. بنابراین می‌توان با ملزم کردن کاربری که فرم را پر می‌کند (مثلاً در حال ثبت نام برای ایجاد یک حساب ایمیل است یا در حال نظر دادن در یک وبلاگ است) به انجام کاری که به طور طبیعی از عهده‌ی یک انسان برمی‌آید و از عهده‌ی یک روبات برنمی‌آید کاری کنیم که روباتها نتوانند فرمها را پرکنند. این اساس روشی برای مقابله با اسپمها در قلمرو فرمهای الکترونیکی است که «کپچا» (CAPTCHA سرواژه‌ی حروف ابتدایی عبارتی انگلیسی با ترجمه‌ی آزمایش تورینگ [نام شخصی است، با تست تورینگ دانشجویان نرم‌افزار آشنایی دارند] کاملاً خودکار عمومی برای جداسازی انسان از کامپیوتر) نامیده می‌شود.

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

کپچا

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

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

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

reCAPTCHA

در مورد انواع کپچا شاید این صفحه هم اطلاعات جدید و مفیدی داشته باشد.

فهرست سری نوشته‌های من درباره‌ی هرزنامه‌ها:

قسمت اول: ریشه‌ی نام اسپم

قسمت دوم: هرزنامه‌ها

قسمت سوم: کدامیک هرزنامه‌های بیشتری می‌گیرند: «علی» یا «زهرا»؟

قسمت چهارم: بگذارید «اسپم»ها را آنها بخورند!

قسمت پنجم: درآمدزایی هرزنامه‌ها

قسمت ششم: ماشینهای صاحب‌نظر

قسمت هفتم: کپچا: «تو آدمی؟!»

قسمت هشتم: او.سی.آر: قاتل کپچای تصویر متن

قسمت نهم: صنعت حل کپچای هند و راه‌حلهای مقابله با اسپم با تکیه بر تحلیل محتوی

نوشته شده در ساعت ۲۰:۳۲

ماشینهای صاحب‏نظر

۸۷/۱۰/۰۶

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

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

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

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

فهرست سری نوشته‌های من درباره‌ی هرزنامه‌ها:

قسمت اول: ریشه‌ی نام اسپم

قسمت دوم: هرزنامه‌ها

قسمت سوم: کدامیک هرزنامه‌های بیشتری می‌گیرند: «علی» یا «زهرا»؟

قسمت چهارم: بگذارید «اسپم»ها را آنها بخورند!

قسمت پنجم: درآمدزایی هرزنامه‌ها

قسمت ششم: ماشینهای صاحب‌نظر

قسمت هفتم: کپچا: «تو آدمی؟!»

قسمت هشتم: او.سی.آر: قاتل کپچای تصویر متن

قسمت نهم: صنعت حل کپچای هند و راه‌حلهای مقابله با اسپم با تکیه بر تحلیل محتوی

نوشته شده در ساعت ۲۰:۰۱

شب دوم از شب یلدا طولانی‏تر است

۸۷/۱۰/۰۲

 

آیا می‌دانید که لحظه شروع زمستان و تحویل خورشید به برج جدی امسال در ساعت ۱۵ و ۳۳ دقیقه و ۴۵ ثانیه روز اول دی ماه ۱۳۸۷ اتفاق می‌افتد و به این دلیل شب دوم دی ماه از شب اول (شب یلدا) طولانی‌تر است؟

در تهران شب دوم دی ماه از شب اول نیم ثانیه طولانی‌تر است.

منبع

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

نوشته شده در ساعت ۱۷:۲۲