گزیر

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



دربارهٔ من:

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

مشترک شوید:

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

جستجو:

Valid XHTML 1.0 Transitional RSS Feed

فایرفاکس جدید، اپراهای موبایل و …

۸۸/۱۱/۱۹

فایرفاکس ۳.۶ خیلی وقت است که آمده، ولی من همین یکی دو روز پیش نصبش کرده‌ام. با نصب (در واقع ارتقا به) این ویرایش، بعضی افزونه‌های ناسازگارم از کار افتادند. راه حلی که برای ویرایشهای قدیمی‌تر این مشکل را حل می‌کرد برای این ویرایش با کمی تغییر کار می‌کند: کافیست در about:config کلیدی با نام extensions.checkCompatibility.3.6 ایجاد کنید و مقدار آن را false بگذارید (دستورالعمل این کار مطابق همان روش قدیمی است که می‌توانید آن را اینجا بازخوانی کنید).

ادامه »

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

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

۸۸/۰۹/۲۰

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

اما «چطورش» شاید به درد برنامه‌نویسهای (احتمالاً تازه‌کار یا کم‌سواد مثل خودم) ویندوز فرمز بخورد (چون راه حلش را با جستجو پیدا نکردم): کنترل اصلی گنجور رومیزی یک 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]

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

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

ردگیری چشم

۸۸/۰۷/۱۷

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

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

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

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

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

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

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

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

رومیزی نوتر

۸۸/۰۶/۱۳

گنجور رومیزی ویرایش ۱.۵

اطلاعات بیشتر: اینجا، دریافت: اینجا.

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

رومیزی نو

۸۸/۰۵/۰۲

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

گنجور رومیزی

دوستانی که آن فایل ۲۱ مگابایتی پیشین را دریافت کرده‌اند کافی است فقط این فایل اجرایی را دریافت کنند و آن را در پوشه‌ای که برنامه را در آن باز کرده‌اند جایگزین فایل قبلی کنند. باقی دوستان، در صورت تمایل برنامه را از اینجا دریافت کنند.

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

گنجور رومیزی

۸۸/۰۴/۲۹

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

گوشی جدید (نوکیا ۵۸۰۰) فایلهای متنی یونیکد فارسی را درست نشان می‌دهد. با تکیه بر این قابلیت، پیش‌تر اشعار گنجور را برای خودم به صورت سلسله‌مراتب فایل/دایرکتوری درآورده بودم و روی گوشی کپی کرده بودم. تصویرش را ببینید:

گنجور روی موبایل

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

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

پایگاه داده‌های گنجور را به یک پایگاه داده‌های SQLite تبدیل کردم (فعلاً اطلاعات وزن و قافیه، حاشیه‌ها و برچسبها داخلش نیست). برنامه‌ای ساده (و البته از لحاظ امکانات: ابتدایی) نوشتم تا بتواند محتوای این پایگاه داده‌ها را نشان دهد (فعلاً جستجو ندارد، برای اجرا نیاز به سکوی .NET ویرایش ۲ دارد، سرعت آن در نمایش آیتمهایی مثل فهرست غزلیات شمس و مانند آن چندان مناسب نیست). اگر علاقمند بودید ابتدا برنامه را با پایگاه داده‌های کوچکی که فقط اشعار حافظ را دارد از این نشانی دریافت کنید (اندازه‌ی فایل = ۷۶۲ کیلوبایت). آزمایشش کنید، اگر دیدید به دردتان می‌خورَد برنامه را با پایگاه داده‌های نسبتاً کامل از این نشانی دریافت کنید (اندازه‌ی فایل = ۲۱ مگابایت). کد منبع برنامه را (C#، قابل کامپایل در محیط Microsoft Visual C# 2008 Express Edition ،همراه پایگاه داده‌های اشعار حافظ در دایرکتوی Debug) از اینجا (اندازه‌ی فایل = ۸۲۲ کیلوبایت) دریافت کنید. تغییر و بازنشر فایلهای فوق با ذکر منبع اولیه آزاد است. چند تصویر از این برنامه ببینید:

گنجور رومیزی
گنجور رومیزی
گنجور رومیزی

پی‌نوشت: آخرین نسخه‌ی این برنامه را از اینجا دریافت کنید.

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

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

۸۸/۰۳/۱۰

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

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

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

جدی یا شوخی؟!

۸۷/۰۹/۱۰

پنجره ناشناس مرورگر کروم

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

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

دوربین

۸۷/۰۴/۱۷

۱) ایکسوس ۷۰

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

ضعف اول نداشتن نمایشگر باتری است. اشتباه نشود! باتری این دوربین (که از نوع لیتیوم-یونی و شبیه باتریهای موبایلهاست) توانایی بالایی دارد. من بیشتر از ۳۰۰ عکس (البته در نور روز و با استفاده‌ی کم از فلاش) با یک شارژ باتری گرفته‌ام بدون آن که به مرحله‌ی خالی شدن باتری برسم، اما به هر حال این که ندانید دوربین چقدر شارژ دارد و تقریباً تا کی می‌توانید روی شارژش حساب کنید ضعف به حساب می‌آید. البته راهکاری برای این دوربین و برخی مدلهای دیگر کانن وجود دارد که یک نمایشگر باتری به آن اضافه می‌کند (قابلیتهای این شبه‌برنامه را که روی این دوربین قابل استفاده است اینجا ببینید و بخوانید). من این برنامه‌ی تکمیلی را روی دوربین خودم آزمایش کردم. علاوه بر نمایشگر باتری قابلیتهای دیگری مثل نمایش هیستوگرام زنده‌ی صحنه در حین گرفتن عکس (که می‌تواند در تشخیص میزان نور صحنه کمکتان کند، ضمن این که خود دوربین هیستوگرام تصاویر گرفته شده را نشان می‌دهد ولی قابلیت نمایش هیستوگرام صحنه‌ی زنده را ندارد)، قابلیت ذخیره‌ی عکس با قالب RAW و کلی قابلیت دیگر را می‌توان با این برنامه‌ی تکمیلی به دوربین اضافه کرد. اما چیزی که من متوجهش شدم این بود که یا استفاده از این برنامه، باتری را به سرعت خالی می‌کند یا این که نمایشگر باتری این برنامه اشتباه می‌کند، چون معمولاً یکی دو دقیقه بعد از روشن کردن دوربین و کار با آن در حین اجرای این برنامه، نمایشگر باتری چند درصد افت را نشان می‌دهد.

نمونه‌ای از امکاناتی که با میان‌افزار CHDK به دوربینهای کانن اضافه می‌شود

نمونه‌ای از امکاناتی که با میان‌افزار CHDK به دوربینهای کانن اضافه می‌شود

ادامه »

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

ما صدای «شما» را شنیدیم!

۸۷/۰۴/۰۳

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

اگر مایکروسافتیها «اینترنت اکسپلورر» را به حال خود رها نکرده بودند خلأی برای پر کردن ایجاد نمی‌شد، لازم نمی‌شد کسی برای حل مشکل نارضایتی کاربران تلاش کند و ما احتمالاً پروژه‌ی فایرفاکس را آغاز نمی‌کردیم.

اما آنها اینترنت اکسپلورر را به حال خود رها کردند. مایکروسافت برای مدت چهار سال مرورگری را که میلیونها نفر به آن اعتماد کرده بودند در برابر هجوم پنجره‌های تبلیغاتی ناخواسته، ویروسها و نرم‌افزارهای جاسوسی به حال خود رها کرد. …

حالا وقتی من در صفحه‌ی اول سایت اینترنت اکسپلورر ۷ شعار «ما صدای شما را شنیدیم» را می‌بینم عصبی می‌شوم. چرا که می‌دانم «شما» واقعاً شما نیستید! … نمی‌توانید شما باشید! چرا که شما طی این سالها مشکلات خود را گفتید، اما کسی حرفهای شما نشنید. این شما نیستید، بلکه این «ما» هستیم! این ما هستیم: فایرفاکس، سافاری، اپرا، فلاک و مکستون! صدایی که مایکروسافتیها می‌شنوند صدای چکه چکه کردن انبان سهم مایکروسافت از بازار مرورگرهاست!

ما صدای شما را شنیدیم (اینترنت اکسپلورر ۷)

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