نوار لغزان با لغزندگی پایین

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

اما «چطورش» شاید به درد برنامه‌نویسهای (احتمالاً تازه‌کار یا کم‌سواد مثل خودم) ویندوز فرمز بخورد (چون راه حلش را با جستجو پیدا نکردم): کنترل اصلی گنجور رومیزی یک User Control ساده است که نشانی شعرها یا دسته‌های شعرها و همینطور شماره بیتها با استفاده از کنترلهای LinkLabel و مصرعها با استفاده از یک کنترل مشتق از Label روی آن تعبیه شده و ویژگی AutoScroll آن فعال است. به این ترتیب، با توجه به جای پایین‌ترین و سمت چپ‌ترین کنترل، نوارهای لغزندهٔ آن به طور خودکار ظاهر می‌شوند. من برای این که بتوانم کلیدهای جهتی را برای حرکت دادن نوارهای لغزان دریافت کنم رویداد PreviewKeyDown را برای این کنترل به صورت زیر نوشتم:

[code lang=”c#”]
private void GanjoorViewer_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
bool isInputKey = true;
switch (e.KeyCode)
{
case Keys.Down:
if (VerticalScroll.Value + VerticalScroll.SmallChange <= VerticalScroll.Maximum) VerticalScroll.Value += VerticalScroll.SmallChange; break; case Keys.Up: if (VerticalScroll.Value - VerticalScroll.SmallChange >= VerticalScroll.Minimum)
VerticalScroll.Value -= VerticalScroll.SmallChange;
break;
case Keys.PageDown:
for(int i=0; i<2; i++)//!? if (VerticalScroll.Value + VerticalScroll.LargeChange <= VerticalScroll.Maximum) VerticalScroll.Value += VerticalScroll.LargeChange; else VerticalScroll.Value = VerticalScroll.Maximum; break; case Keys.PageUp: for (int i = 0; i < 2; i++)//!? if (VerticalScroll.Value - VerticalScroll.LargeChange >= VerticalScroll.Minimum)
VerticalScroll.Value -= VerticalScroll.LargeChange;
else
VerticalScroll.Value = VerticalScroll.Minimum;
break;
case Keys.Right:
if (HorizontalScroll.Value + HorizontalScroll.SmallChange <= HorizontalScroll.Maximum) HorizontalScroll.Value += HorizontalScroll.SmallChange; break; case Keys.Left: if (HorizontalScroll.Value - HorizontalScroll.SmallChange >= HorizontalScroll.Minimum)
HorizontalScroll.Value -= HorizontalScroll.SmallChange;
break;
default:
isInputKey = false;
break;
}
if (isInputKey)
e.IsInputKey = true;
}
[/code]

در مورد حلقهٔ دوتایی کلیدهای PageDown و PageUp، دلیلش را نمی‌دانم ولی بدون اصرار 😉 کار نمی‌کرد! بعد این رویداد را علاوه بر UserControl اصلی، همه جا، پس از ایجاد و اضافه کردن زیرکنترلهایش به آنها هم نسبت دادم:

[code lang=”c#”]
private void AssignPreviewKeyDownEventToControls()
{
foreach (Control ctl in this.Controls)
ctl.PreviewKeyDown += GanjoorViewer_PreviewKeyDown;
}
[/code]

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

نیم‌فاصله‌ی غلط / نیم‌فاصله‌ی درست

من تا یکی دو سال پیش برای تایپ نیم‌فاصله در ویندوز ایکس‌پی Alt را نگه می‌داشتم و اعداد ۰۱۵۷ را تایپ می‌کردم. بعداً از یکی از دوستان میانبر بهتری یاد گرفتم که سریع‌تر و بهتر به نظر می‌رسید (Ctrl+Shift+4). پیش‌تر متوجه شده بودم که در بعضی از متون نیم‌فاصله‌هایی هست که با این نیم‌فاصله فرق دارند (در پنجره‌ی جستجو نیم‌فاصله‌ی خودم را تایپ می‌کردم، آن نیم‌فاصله‌ها را پیدا نمی‌کرد). همین چند روز پیش متوجه شدم که با کلید ترکیبی Ctrl+Shift+2 هم می‌شود نیم‌فاصله تایپ کرد و اتفاقاً نیم‌فاصله‌ی درست و اصلی همین است نه آن.

گفتم بنویسم تا اگر شما هم با Ctrl+Shift+4 نیم‌فاصله تایپ می‌کنید بدانید که اشتباه است و باید با Ctrl+Shift+2 تایپش کنید. همین!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

تولید فهرستهای تقریباً تصادفی از آدرسهای ایمیل -آن طور که در نوشته‌ی قبلی به آن اشاره کردم- هزینه‌ی کاری و زمانی بالایی دارد و با توجه به آن که فقط درصدی از نشانیهای تولید شده معتبر هستند برای هرزنامه‌نگاران کوچک راه‌حل چندان به‌صرفه و مفیدی نیست (البته، هرزنامه‌نگاران با یک ارسال آزمایشی و بررسی پاسخ دریافتی از سرورهای پست الکترونیکی، می‌توانند ایمیلهای معتبر را غربال کنند و فهرست خودشان را بهبود دهند، ولی این کار هم هزینه‌ی پردازشی بالایی دارد). راه حل بهتر، استفاده از فهرستهای ایمیلهای واقعی است. اما این فهرستها چگونه پر می‌شوند و اطلاعات آنها چگونه جمع‌آوری می‌شود؟ هرزنامه‌نگاران برنامه‌های کاربردی زیادی در اختیار دارند که به کمک آنها می‌توانند فهرستهای خودشان را با ایمیلهای واقعی پر کنند. آنها برنامه‌هایی در اختیار دارند که همانند رباتهای موتورهای جستجو به صفحات وب سرکشی می‌کنند و در آنها دنبال رشته‌هایی با الگوی نشانی پست الکترونیکی (نام@دامنه.پسوند دامنه) می‌گردند. پس یکی از اولین و بهترین راهها برای جلوگیری از اضافه شدن ایمیلتان به این فهرستها آن است که آن را در صفحات عمومی وب در اختیار بقیه نگذارید. سعی کنید به جای وارد کردن نشانی ایمیلتان در وبلاگ یا سایت شخصیتان صفحه‌ی تماس بسازید و آن را طوری تنظیم کنید که پیام مخاطب را به طور غیرمستقیم به ایمیلتان بفرستد. بسیاری از سیستمهای نظرسنجی سایتها و وبلاگها از شما می‌خواهند که نام، نشانی وب‌سایت و ایمیلتان را وارد کنید. تا زمانی که مطمئن نشده‌اید سیستم سایت یا وبلاگ مذکور ایمیل شما را به صورت عمومی منتشر نمی‌کند از وارد کردن ایمیلهای اصلیتان در این گونه کادرها خودداری کنید (به عنوان نمونه، یکی از سیستمهای پرطرفدار وبلاگنویسی وطنی که جهت حفظ حریم خصوصی نظردهندگان در وبلاگها آی.پی آنها را حتی در اختیار صاحب وبلاگی که نظر برای او گذاشته شده نمی‌گذارد -احتمالاً به دلیل این که حق همه است که ایمیل نظردهندگان را بدانند و ببینند- ایمیل نظردهندگان را به صورت عمومی منتشر می‌کند 😉 ). برخی از سایتها و تالارهای گفتگو بدون ثبت‌نام، مطالب و مقالات خود را در اختیار بازدیدکننده نمی‌گذارند و شما مجبورید برای دستیابی به مطلب مورد نظرتان در این گونه سایتها ثبت‌نام کنید. مشکل اینجاست که ثبت‌نام در این سایتها معمولاً دریافت نامه‌های ناخواسته را به دنبال دارد و علاوه بر این، برخی از این سایتها اطلاعات کاربران خود را در قالب فهرستهای ایمیل، به هرزنامه‌نگاران می‌فروشند. اگر تنها به یک مطلب یا مقاله از سایت یا تالار گفتگوی مورد نظر نیاز دارید بهتر است ابتدا سعی کنید با استفاده از سایتهایی مانند bugmenot.com اطلاعات ورود به اشتراک‌گذاشته شده‌ای از سایت مزبور بیابید و با استفاده از آن وارد سایت مورد نظر شوید (برای نمونه، چند نام کاربری و کلمه‌ی عبور برای سایت آفتاب نقطه آر را اینجا ببینید). در صورتی که به نتیجه نرسیدید و مجبور شدید در سایت مورد نظرتان ثبت‌نام کنید به جای وارد کردن ایمیل واقعیتان از ایمیلهای یک‌بار مصرف استفاده کنید. سایتهایی نظیر www.mailinator.com بدون نیاز به ثبت‌نام، نشانیهای ایمیل موقتی در اختیارتان می‌گذارند که پس از پایان فرایندهای ثبت‌نام می‌توانید با خیال راحت آنها را رها کنید و به قول صاحبان این سرویس: «بگذارید اسپمها را آنها بخورند»!

ادامه دارد …

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

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

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

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

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

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

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

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

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

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

فعالسازی افزونه‌های ناسازگار در فایرفاکس ۳

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

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

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

راه حل مشکل ناسازگاری افزونه‌ها در فایرفاکس ۳

about:config

راه حل مشکل ناسازگاری در فایرفاکس ۳
راه حل مشکل ناسازگاری در فایرفاکس ۳
راه حل مشکل ناسازگاری در فایرفاکس ۳

extensions.checkCompatibility

راه حل مشکل ناسازگاری افزونه‌ها در فایرفاکس ۳
راه حل مشکل ناسازگاری افزونه‌ها در فایرفاکس ۳

extensions.checkUpdateSecurity و مقدار آن مانند قبل، بعد فایرفاکس را ببندید و دوباره اجرا کنید، مشکل باید حل شده باشد.

ویندوز تحت ویندوز

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

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

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

بالا آمدن کامپیوتر مجازی

بالا آمدن کامپیوتر مجازی

بعد از آن که کامپیوتر مجازیتان بوت شد از شما می‌خواهد دیسکت یا سی‌دی سیستم عامل مورد نظرتان را داخل درایو قرار دهید. تلاش من برای بوت مستقیم از سی‌دی ویندوز ۹۸ به جایی نرسید. جستجوهایم مرا به این صفحه رساند. با دریافت یک فایل ۶۱۸ کیلوبایتی و بارگذاری آن در ویرچوال پی.سی (منوی Floppy عنوان Capture Floppy Disk Image) سیستم مجازی ما در مرحله‌ای بوت می‌شود که آماده‌ی استفاده از سی.دی ویندوز ۹۸ و اجرای فرایند نصب آن است.

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

نصب ویندوز ۹۸ تحت ویرچوال پی.سی

نصب ویندوز ۹۸ تحت ویرچوال پی.سی

نصب تمام شده و ویندوز ۹۸ دارد بالا می‌آید

نصب تمام شده و ویندوز ۹۸ دارد بالا می‌آید

بعد از نصب کامل می‌توانید دقت تصویر کارت گرافیکی و وضوح رنگ آن را افزایش دهید (به نظرم تمامی سخت‌افزارهای مجازی را ویندوز ۹۸ به طور کامل می‌شناسد). سپس نرم‌افزار مورد نظر خودتان را نصب کنید و از این که سیستمتان را به خاطر یک نیاز کوتاه مدت شخم نزده‌اید لذت ببرید.

اجرای نسخه‌ی قدیمی نرم‌افزار درج تحت ویرچوال پی.سی

اجرای نسخه‌ی قدیمی نرم‌افزار درج تحت ویرچوال پی.سی

ضمناً فکر می‌کنم فایل vhd ایجاد شده از این فرایند نصب قابل انتقال باشد و بتوان بدون نیاز به تکرار فرایند نصب ویندوز ۹۸، آن را به سیستمهای دیگر انتقال داد.

استانداردهای رابط کاربری برای نرم‌افزارهای فارسی

(۱)

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

اینترنت اکسپلورر ۷
ادامه خواندن “استانداردهای رابط کاربری برای نرم‌افزارهای فارسی”

قابلیت جالب مدیاپلیر ۱۱

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

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

ویژگی دیگری که بدون استفاده از پلی‌لیست و نوارخانه در اختیار نمی‌گذارد (حداقل من اینطوری فهمیدم) قابلیت ویرایش اطلاعات ضمیمه‌ای موسیقی است (= ID3 tag). برای این که بتوانی این اطلاعات را ویرایش کنی باید موسیقیت را داخل یک پلی‌لیست ذخیره کنی و بعد داخل نوارخانه (Library) روی موسیقی مورد نظر کلیک راست کنی و عنوان Advanced Tag Editor را انتخاب کنی:

ویرایش اطلاعات اضافی فایل موسیقی

قابلیت جالبی را دیروز در همین قسمت این نرم‌افزار (Advanced Tag Editor) پیدا کردم که قبلاً فکر می‌کنم در نرم‌افزار جت اودیو دیده بودم (و نمی‌دانم ویرایشهای قبلی مدیاپلیر هم این قابلیت را داشته‌اند یا نه). پنجره‌ی ویرایش اطلاعات اضافی فایل یک برگه دارد که می‌توانید در آن متن ترانه‌ی فایل (lyrics) را وارد کنید. متن ترانه‌ها را (برای ترانه‌های انگلیسی) می‌توانید با جستجوی ترکیبی از اسم آهنگ، خواننده و کلمه‌ی Lyrics در موتورهای جستجو بیابید (برای ترانه‌های فارسی هم که سایت ایران ترانه یک کتابخانه‌ی ارزشمند و جالب در این زمینه در خود دارد). قابلیت جالب مورد نظر من آن دکمه‌ای است که در همین برگه‌ی این پنجره در دسترس قرار گرفته:

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

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

همخوان کردن متن با ترانه

پس از همخوان کردن متن با ترانه و فعال کردن قابلیت زیر:

نمایش زیرنویس یا متن ترانه

در هنگام پخش ترانه می‌توانید متن آن را هم ببینید:

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

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

پاورقی

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

پرل

پرل (واژه‌ای بر گرفته از حروف اوّل عبارت انگليسی به معنای زبان استخراج و گزارشگيری کاربردی) در اواسط دهه‌ی ۸۰ به وسيله‌ی لری وال که پيش از آن نيز معرّف چندين برنامه‌ی مهم برای يونيکس بود ايجاد شد. با ظهور وب در اوايل دهه‌ی ۹۰ پرل به يکی از زبانهای محبوب برای برنامه‌نويسی سی.جی.آی تبديل شد.

هدف اصلی پرل به گفته‌ی خالق آن “آسان کردن کارهای آسان و امکانپذير نمودن کارهای مشکل” است. زبانهای برنامه‌نويسی زيادی شما را وادار می‌کنند پيش از آن که به مسأله‌ای که می‌خواهيد آن را حل کنيد بپردازيد زمان غيرضروری زيادی را صرف انجام کارهايی بکنيد تا زبان را راضی نگه داريد. پرل به شما اجازه می‌دهد که بدون نگرانی در مورد چيزهايی مثل اختصاص حافظه و تعيين نوع متغيّرها کار خود را به انجام برسانيد.

ادامه خواندن “پرل”

… و فهرست افزونه‌های وردپرسم

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

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

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

آمار بازدید هفتگی

اما بعد …! گفتم بد نیست یک اشارهای بکنم به فهرست افزونه‌های مورد استفاده در وبلاگم. این فهرست احتمالاً برای وردپرس‌کارها مفید است:

ادامه خواندن “… و فهرست افزونه‌های وردپرسم”