موبایل تسبیح‌دار

نوکیا ۶۶۳۹ را یادتان هست؟ با فندک و چاقوی همه کاره و دوربین خفنش؟

گوشی موبایل فندک‌دار
گوشی موبایل با چاقوی همه کاره
گوشی موبایل با دوربین حرفه‌ای

برنامه‌ای که چند روز پیش درباره‌اش نوشته بودم (روزانه‌نگار ۸۹، اینجا) یک سری قابلیت دارد که به مرا یاد این گوشی خیالی انداخت. فکرش را بکنید: گوشیتان می‌تواند یک تسبیح و یک قبله‌نما هم داشته باشد! ذکرشمار این گوشی برای گوشیهای لمسی با لمس یک دکمه شماره می‌اندازد و وقتی مثلاً دورهٔ الله اکبرها تمام شود با لرزش به کاربر علامت می‌دهد که باید ذکر بعدی را شروع کند.

تسبیح موبایلی

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

برای ۵۸۰۰داران …

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

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

تهران در نقشه‌های نوکیا

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

بگذریم! امروز از اینجا برنامهٔ جالبی را پیدا کردم که پشتیبانی تقویم فارسی و کلی امکانات دیگر را برای ایرانیها و فارسی‌زبانها در این گوشی (و گویا برخی گوشیهای دیگر) در اختیار می‌گذارد.

روزانه‌نگار ۸۹

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

رندانه‌هایی از سعدی و نشانه‌گذاری در گنجور رومیزی

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

برای نشانه‌گذاری یک بیت ابتدا باید شماره‌گذاری را فعال کنید تا شماره‌های ابیات در سمت راست آنها نمایش داده شود. بعد با کلیک بر روی هر شماره به جای آن یک ستاره نشان داده می‌شود که به معنای آن است که آن بیت نشانه‌گذاری شده. اگر روی ستاره دوباره کلیک کنید، ستاره برداشته می‌شود و جای آن را دوباره شمارهٔ بیت می‌گیرد. اگر می‌خواهید تمام بیتهای نشانه‌گذاری شده از این حالت خارج شوند روی دکمهٔ حذف نشانه کلیک کنید.

نشانه‌گذاری در گنجور رومیزی

برای نشانه‌گذاری کل شعر (و نه یک یا چند بیت خاص) روی دکمهٔ نشانه‌گذاری روی نوار ابزار کلیک کنید.

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

نشانه‌ها را می‌توانید به کمک فرمانهای برون‌ریزی (Export) و درون‌ریزی (Import) از منوی نشانه‌ها بین کامپیوترهای مختلف جابجا کنید یا از آنها پشتیبان تهیه کنید.

اینها چندتایی از ابیات زیبای سعدی هستند که در طول زمان من آنها را نشانه‌گذاری کرده‌ام:

مگر آن که هر دو چشمش همه عمر بسته باشد

به ورع خلاص یابد ز فریب چشمبندان

حواستان بود که؟ کسی از فریب «چشمبندان» ممکن است در امان بماند که «چشمش در تمامی عمر بسته باشد».

تو که گفته‌ای تأمل نکنم جمال خوبان

بکنی اگر چو سعدی نظری بیازمایی

این دو بیت متوالی از یک غزل:

جماعتی که نظر را حرام می‌گویند

نظر حرام بکردند و خون خلق حلال

غزال اگر به کمند اوفتد عجب نبود

عجب فتادن مرد است در کمند غزال!

مقایسهٔ بر و روی معشوق با مردمان عادی (اگر در خواندن، جملهٔ «اعتقاد من این است که» را به حالت معترضه و متمم جملهٔ اصلی بخوانیم به نظرم رندانگی بیت دو چندان می‌شود):

اگر تو آدمیی -اعتقاد من این است

که- دیگران همه نقشند بر در حمام!

و این هم یک خودستایی شیرین -شاید هم کمی لوس- از سعدی:

من دگر شعر نخواهم که نویسم که مگس

زحمتم می‌دهد از بس که سخن شیرین است!

مگس زحمتش می‌داده! روی شعرش می‌نشسته!

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

فایرفاکس ۳.۶ خیلی وقت است که آمده، ولی من همین یکی دو روز پیش نصبش کرده‌ام. با نصب (در واقع ارتقا به) این ویرایش، بعضی افزونه‌های ناسازگارم از کار افتادند. راه حلی که برای ویرایشهای قدیمی‌تر این مشکل را حل می‌کرد برای این ویرایش با کمی تغییر کار می‌کند: کافیست در 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 تایپش کنید. همین!