گزیر

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



دربارهٔ من:

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

مشترک شوید:

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

جستجو:

Valid XHTML 1.0 Transitional RSS Feed

این یک تبلیغ نیست ;)

۸۹/۱۰/۰۷

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

Windows Live Photo Gallery 2011

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

اطلاعیه: ساغر

۸۹/۱۰/۰۶

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

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

یاریگری هست؟

۸۹/۰۹/۲۷

می‌دانید؟ اخیراً از جایی درخواست یک هدیه کردم (اینجا) و آن را تحویل گرفتم.

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

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

اما دومین و سومین مشکل را، اگر اولین مشکل را حل کردید، دنبالشان باشید: من اسکریپت ساده‌ای برای شماره‌گذاری ابیات در گنجور نوشته‌ام (اینجا را ببینید). این را برایم با جی‌کوئری بازنویسی کنید (اسکریپت را با بازبینی کد صفحات گنجور می‌بینید). مشکل سوم را البته اصراری روی حلش ندارم، احتمالاً سخت است ولی صورت مسأله‌اش این است که این مسأله را با استفاده از جی‌کوئری حل کنید.

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

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

برنامه‌نویسی با C++‎ آسان است؟!

۸۹/۰۹/۱۸

البته که نه! برنامه‌نویسی با C#‎ و به کمک سکوی ‎.NET آسان‌تر است. بحث اینجا البته نه C++‎ است نه C#‎، نه سکوی ‎.NET و نه حتی برنامه‌نویسی.

خواستم نکته‌ای را که مدتی پیش یاد گرفته‌ام به شما هم یاد بدهم. سعی کنید عنوان این مطلب را در Notepad ویندوز تایپ کنید. ابتدا آن را راست به چپ کنید و تایپ کنید «برنامه‌نویسی با C++‎ آسان است.» چه اتفاقی می‌افتد؟

جهت C++‎ در جملهٔ تایپ شده درست نیست

چرا این اتفاق می‌افتد؟ آیا این ایراد نرم‌افزاری نوت‌پد است؟ من چنین تصوری داشتم و مطلب را در انجمن رایانش فارسی سؤال کردم (اینجا). پاسخ آن است که خیر این یک ایراد نیست. بر طبق الگوریتم دوسونویسی استاندارد یونیکد (UBA) نویسههایی مانند + و # کم‌توان محسوب می‌شوند و جهت آنها در متن توسط نویسهٔ پرتوان بعدی آنها تعیین می‌شود. به همین جهت اضافه کردن یک نویسهٔ پرتوان استاندارد غیرقابل مشاهده مثل نویسهٔ LRM (Left-to-Right Mark)‎ (قابل تایپ توسط Ctrl+Shift+3 در صفحه‌کلید استاندارد ویندوز در حالتی که صفحه‌کلید فارسی است) مشکل را حل می‌کند (برنامه‌نویسی با C++<LRM>‎ آسان است).

جهت C++‎ به کمک نویسهٔ LRM بعد از آن درست شده است.

نظیر همین مشکل برای تایپ «سکوی ‎.NET» وجود دارد، در این مورد باید نویسهٔ کنترلی را پیش از نقطه گذاشت. البته من راجع به دلیلش مطمئن نیستم. طبق چیزی که بالا نقل کردم باید نویسهٔ بعدی نقطه جهت را چپ به راست می‌کرد، اما این گونه نمی‌شود و نیاز است قبل از آن نویسهٔ کنترلی بگذاریم. احتمالاً دلیلش با بررسی مستندات UBA مشخص می‌شود. اگر از دوستان کسی دلیلش را می‌داند بنویسد (بعدنوشت: جوابش را آقای سید رضی داد: اینجا).

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

دنبالهٔ ۱

پیرو بحث پاراگراف اول دربارهٔ تقابل C++‎ و C#‎، بارها دوستان تقاضا کرده‌اند گنجور رومیزی را روی لینوکس یا مک‌اوس بتوانند اجرا کنند. من پیشتر دنبال راه حلهایی مانند مونو بودم (اینجا را ببینید) که به نتیجه نرسید. با ویرایشهای جدیدتر مونو حتی در حد همان دلخوشکنک ابتدایی نمایش پنجرهٔ برنامه هم، برنامه اجرا نمی‌شود. آقای سیدرضی علوی‌زاده در حال تهیهٔ برنامه‌ای سازگار با پایگاه داده‌های گنجور رومیزی با استفاده از Qt هستند که تحت سه سیستم عامل ویندوز، لینوکس و مک اجرا می‌شود. اطلاعات بیشتر راجع به «ساغر» را اینجا بخوانید و تصاویری از آن را ببینید.

دنبالهٔ ۲

از آنجا که حدس می‌زنم عنوان نوشته اغواگر جستجوگران اینترنتی «C++‎ آسان» باشد سایت پی‌سی‌کدنویس را به این دسته از مشتریان نوشته توصیه می‌کنم.

دنبالهٔ ۳

در راستای دنبالهٔ ۱ و بر اساس دلایلی که در اینجا راجع به آن صحبت کرده‌ام صفحهٔ فیس‌بوک گنجور را راه‌اندازی کرده‌ام (http://www.facebook.com/ganjoor). اگر اهل فیس‌بوک هستید و به گنجور علاقه دارید سری به آن بزنید و آن را به دوستانتان بشناسانید.

صفحهٔ گنجور در فیس‌بوک

دنبالهٔ ۴

این نوشته را تقدیم می‌کنم به شیخنا.

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

خیام، مسافر تایتانیک؟

۸۹/۰۷/۰۲

مجلهٔ دانشمند این ماه مقاله‌ای دارد با عنوان «تایتانیک چرا غرق شد؟».

تایتانیک چرا غرق شد؟

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

شاید خیلی از ایرانیان ندانند که نسخهٔ اصلی و دستنویس کتاب رباعیات خیام با کشتی تایتانیک به عمق اقیانوس رفت و متأسفانه نابود شد. این کتاب بسیار پرارزش که «عمر اعظم» نام داشت سرگذشت بسیار غم‌انگیزی دارد و سه روایت دربارهٔ آن نقل شده است. بر اساس یک روایت، این کتاب را یکی از شاهزادگان قاجار برای فروش به آمریکا می‌برده است و چون او یکی از سرنشینان کشتی تایتانیک بود این کتاب را با خود به قعر اقیانوس برد و به این ترتیب، برگی دیگر بر ماجرای قاچاق ثروتهای ملی ایران افزوده و یک اثر نفیس نابود شد. روایت دوم نیز دست کمی از روایت نخست ندارد. «بنیامین عمر بوساژ» که باخبر می‌شود نسخهٔ دستنویس رباعیات خیام (عمر اعظم) در دست یکی از شاهزادگان ایرانی است به ایران سفر می‌کند، دیگ طمع این شاهزادهٔ ضدملی را به جوش می‌آورد، کتاب را از او می‌خرد و هنگام بازگشت به آمریکا چون با کشتی تایتانیک سفر می‌کرده است این کتاب به قعر اقیانوس می‌رود و یک اثر نایاب از فرهنگ ایران‌زمین -متأسفانه- نابود می‌شود. و اما بر اساس روایت سوم، صحافی به نام «فرانسیس ستکلایف تلاش» آن را خریداری کرده از نظر صحافی روی آن کار می‌کند و قصد فروش آن را داشته که به علت بحران اقتصادی انگلیس (سال ۱۹۱۲) تصمیم می‌گیرد آن را به آمریکا ببرد، [آن را] به یک مسافر آمریکایی می‌فروشد و چون خریدار مسافر کشتی تایتانیک بوده، کتاب با غرق کشتی به اعماق دریا می‌رود و نابود می‌شود. می‌گویند برادرزادهٔ صحاف انگلیسی، «استانلی»، از باقیماندهٔ کتاب و تصاویری که از آن داشته نسخهٔ دومی -نه به ارزش نسخهٔ اول که به روایتی به خط و نوشتهٔ خود خیام بوده است– تهیه می‌کند که این نسخه نیز در بمباران لندن طی جنگ جهانی دوم نابود می‌شود. وی دست از کار نمی‌کشد و نسخهٔ سومی از طرحها، عکسها و تصاویر نسخه‌های اول و دوم تهیه می‌کند که این نسخه در اختیار همسر و بازماندگان «استانلی بری» بوده است که چند سال پیش به موزهٔ بریتانیا تعلق گرفت. در این کتاب که هم‌اکنون در موزهٔ بریتانیا موجود است، یکهزار قطعه جواهر، هزاران سنگ قیمتی رنگارنگ و چند متر مربع ورقهٔ طلا به کار رفته است. قصهٔ پر غصهٔ کتاب دستنویس رباعیات خیام را بسیاری از نویسندگان جهان که شیفتهٔ این دانشمند بزرگ ایرانی بوده‌اند با درد و اندوه نگاشته‌اند.

مجلهٔ دانشمند، شمارهٔ ۵۶۴، مهر ۱۳۸۹، صفحهٔ ۱۸

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

این مطلب، مرا یاد مقالهٔ دیگری در مجلهٔ اطلاعات علمی، شمارهٔ پیاپی ۳۴۲، مربوط به اسفندماه ۸۶ انداخت. در صفحهٔ ۱۶ این مجله، در مطلبی با عنوان «سرویس اینترنتی به کمک فاضلاب شهری» این دروغ آوریل گوگل که به انتخاب مجلهٔ پی‌سی‌ورلد یکی از خنده‌دارترین دروغهای آوریل گوگل بوده (اینجا) به عنوان یک مقالهٔ علمی و به شکل کاملاً جدی ترجمه و ارائه شده است.

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

قابلیتهای گوشیهای ایرانی

۸۹/۰۶/۲۳

منبع

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

سوایپ برای نوکیا ۵۸۰۰

۸۹/۰۶/۲۲

چقدر دستتان در تایپ پیامک تند است؟ چند ثانیه طول می‌کشد تا این پاراگراف را با موبایلتان تایپ کنید؟ :

The razor-toothed piranhas of the genera Serrasalmus and Pygocentrus are the most ferocious freshwater fish in the world. In reality they seldom attack a human.

جالب است بدانید که رکورد گینس سرعت در تایپ پیامک برای پاراگراف بالا -گویا- همین یک ماه پیش شکسته شده و ملیسا تامپسون توانسته آن را در ۲۵.۹۴ ثانیه تایپ کند (منبع خبر)!

البته، مسأله‌ای که می‌تواند از میزان شگفت‌زدگی شما از این رکورد بکاهد آن است که او این رکورد را با استفاده از یک موبایل لمسی شکسته (سامسونگ مدل Galaxy S) و خوب، صفحه‌کلید لمسی این موبایل از فناوری سوایپ پشتیبانی می‌کند.

فناوری سوایپ به کاربر این اجازه را می‌دهد که بدون برداشتن دست از روی صفحهٔ نمایش کلمات را تایپ کند. برای نمونه در شکل زیر نحوهٔ تایپ کلمهٔ quick را در یک صفحه‌کلید سوایپ می‌بینید:

swype

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

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

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

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

Guugu Yimithirr

۸۹/۰۶/۲۱

عنوان مطلب، اسم یک زبان است. زبانی مربوط به بومیان استرالیا که واژهٔ «کانگورو» از آن به انگلیسی و دیگر زبانها وارد شده و به استناد ویکی‌پدیا (ببینید: زبان گوگوییمیتیر) ۲۰۰ الی ۳۰۰ نفر کلاً وجود دارند که به این زبان صحبت می‌کنند.

چند وقت است که نیویورک‌تایمز مقاله‌ای روی سایتش گذاشته (اینجا) که موضوع آن تأثیر زبان مادری بر طرز تفکر آدمهاست. بحث از آنجا شروع می‌شود که در سال ۱۹۴۰ زبان‌شناسی به نام بنیامین ورف در مقاله‌ای ادعا کرد محدودیتهای زبان مادری می‌تواند باعث ایجاد محدودیت در توانایی درک و طرز تفکر انسانها شود. مثال ادعای او، سرخپوستها بودند که گویا در درک سیر زمانی وقایع یا تفاوت اشیاء با عمل منتسب به آنها (سنگ با افتادن سنگ) مشکل دارند و این معضل ناشی از آن است که در زبان مادری آنها این مفاهیم به گونه‌ای متفاوت با زبانهای دیگر بیان می‌شود یا اصلاً بیان نمی‌شود.

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

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

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

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

داستانهایی دربارهٔ اعداد تصادفی

۸۹/۰۶/۲۰

۱) تابع تولید عدد تصادفی

xkcd: Random Number

۲) چرخ چهارگوش

برنامه‌نویس سرشناسی که همچون من و احتمالاً شما، آن روزها که قرار بود موزیلا ویرایش ۳.۵ از مرورگر محبوبش را منتشر کند ذوق دریافت فایرفاکس جدید را داشت در روزهای اول استفاده از این ویرایش مهم فایرفاکس به مشکل آزاردهنده‌ای برخورد کرد:

پس دست به کار شدم و نصاب فایرفاکس را در روز انتشار دریافت کردم و پس از گذر از کثیف‌کاری معمول به‌روزرسانی افزونه‌ها توانستم مرورگر جدید را برای اولین بار اجرا کنم و خدایا من چه می‌بینم: وب -انگارکن- به سال ۱۹۹۴ برگشته: وقتی که هیچ کس جز خوره‌های واقعی سایت نداشت و همه چیز به سرعت برق بود. زندگی شیرین شده بود!

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

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

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

برای حل مشکل اعداد تصادفی، تیم NSS به روشی هوشمندانه روی آورده بودند، رویکردی چنان عالی که تا به حال به ذهن هیچ کس نرسیده بود: آنها تصمیم گرفتند که تمام فایلهای موجود در تمام پوشه‌های موقتی ویندوز را با چند ریسمان موازی بخوانند تا از آنها به عنوان نقطه‌های آغاز (seed) تولید اعداد تصادفی استفاده کنند! توجه کنید: این پوشه‌ها در هر چند میلی‌ثانیه تغییر می‌کنند، به سرعت در دسترسند، تأخیری در دسترسی به آنها وجود ندارد و هیچوقت با چیزهای حاشیه‌ای به دردنخور پر نمی‌شوند!

البته، پاراگراف بالا ذهنیت تیم NSS بود. در دنیای واقعی، چیزها یک کوچولو متفاوتند. متوجه هستید که؛ فایرفاکس ویرایش ۳.۵ کش اینترنت اکسپلورر را و پوشهٔ temp ویندوز برای پروفایل کاربر را توسط زیرسیستم NSS خود می‌خواند. این نه تنها به نظر من یک نباید به جهت خواندن داده‌های موقتی برنامهٔ دیگر است، بلکه یک بی‌توجهی شگفت‌آور نسبت به گلوگاه اصلی کامپیوترهای امروزی است: هارد دیسکها. اگر شما ویروس‌کشی داشته باشید که در حالت بددلانه تنظیم شده باشد پیمایش پوشه‌های موقت توسط NSS کندتر هم خواهد بود چرا که دسترسی به هر فایل از سوی فایرفاکس باعث اسکن آن توسط ویروس‌کش می‌شود. و اگر کاربر، با کامپیوترش هیچ کاری غیر از مرور وب با فایرفاکس نکند به گونه‌ای که این پوشه‌های موقت دست‌نخورده یا خالی بمانند، آن وقت چه؟ آیا خواندن فایل بدترین روش ممکن برای تولید نقطه‌های آغاز اعداد تصادفی نیست؟

۳) ماشین تولید اعداد تصادفی

dilbert random generator

– مطمئنید که این تصادفی است؟

– مشکل تصادفی بودن همین است که هیچ وقت نمی‌شود مطمئن بود.

۴) داستان گنجور

برای سیستم بازبینی خروجیهای OCR گنجور، راهکارهای مختلفی می‌شد طراحی کرد: می‌شد با توجه به آن که من عدد اطمینان بازشناسی تکه‌شعرها را هم داخل پایگاه داده‌ها داشتم، اوّل آنهایی را که با دقت پایین‌تری خوانده شده بودند در معرض بازبینی بگذارم. می‌شد به ترتیب عمل کنم، یعنی دوستانی که بازبینی می‌کنند از اوّل شروع کنند و هر کسی که تازه می‌آید آخرین تکه شعری را که هنوز بازبینی نشده یا اگر همه حداقل یک دور بازبینی شده‌اند، هنوز در دور دوم بازبینی نشده بازبینی کند و … .

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

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

نتیجه را احتمالاً می‌توانید حدس بزنید. خیلی از روزها، بیش از ۱۰۰۰ تکه از شعرها بازبینی می‌شد (آمارش هنوز در این صفحه در دسترس است)، اما بعد از دو ماه چیزی حدود ۱۹۰۰۰ تکه بیش از یک بار و حدود ۲۶۰۰۰ تکه تنها یک بار بازبینی شده بودند و ۸۰۰۰ تکه هم اصلاً بازبینی نشده بودند (گزارش تا آن مرحله).

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

خلاصه آن که -با تشکر ویژه از تمامی دوستانی که در این کار مشارکت کردند- مرحلهٔ اول بازبینی خروجیهای OCR گنجور به ثمر نشسته است. برای برداشت محصول نهایی می‌توانید سری به آثار بیدل و قاآنی در گنجور بزنید و اگر گنجور رومیزی دارید مجموعه اشعار متناظر را با شرحی که در این نوشته آمده به برنامه اضافه کنید.

و البته، یادتان باشد که این فقط مرحلهٔ اول بود و نهضت کماکان ادامه دارد.

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

رسن بازی

۸۹/۰۶/۲۰

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

عبید زاکانی، رسالهٔ دلگشا

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