دربارهٔ من:
آخرین نظردهندگان:
- Anonymous دربارهٔ تماشای ریحان
- لیام دربارهٔ @hrmoh
- سمانه ، م دربارهٔ @hrmoh
- M دربارهٔ شرح یک تجربه: سیانوژن روی گوشی LG Optimus 4X
- مسعود دربارهٔ @hrmoh
مشترک شوید:
ایمیل خود را در جعبهٔ زیر وارد کنید و دکمهٔ اشتراک را بزنید.
جستجو:
لیستهای مرتب با اعداد فارسی
۸۸/۱۰/۱۵تگ ol (لیست مرتب) در html در CSS ویرایش ۲ توانایی نمایش اعداد به صورت فارسی را ندارد (از اعداد لاتین، رومی و ارمنی(!) پشتیبانی میکند اما اعداد را به صورت عربی یا فارسی نمیتواند نشان دهد). استایلهای انواع لیستها را در این استاندارد اینجا میتوانید ببینید. در استاندارد جدیدتر گویا قرار است پشتیبانی از شکل اعداد فارسی هم اضافه شود.
چند وقتی است استقبالهای شاعران را از هم (حافظ از سعدی، حافظ از سلمان، سلمان ساوجی از سعدی و …) را با توجه به میزان مشابهت کلمات ابیات و همینطور با توجه به وزن و قافیهٔ اشعار استخراج کردهام و در گنجور در دسترس قرار دادهام. دیروز به نظرم رسید بد نیست این فهرستها را با کمک تگ ol شمارهگذاری کنم. اما با توجه به نکتهای که در پاراگراف قبل گفتم امکان نمایش درست اعداد در متن فارسی وجود نداشت. جستجویی کردم و به این صفحه رسیدم. نویسندهٔ مطلب به کمک جاوا اسکریپت مشکل را حل کرده. با کمک اسکریپت او، اسکریپت سادهای نوشتم که امکان نمایش اعداد لیستهای مرتب را به صورت فارسی در اختیار میگذارد:
خط نشانهای چینی و گویش الویری
۸۸/۱۰/۱۴در خط چینی -گویا- برای هر کلمه یک نشانهٔ یکتا و تجزیهناپذیر به الفبا وجود دارد مثلاً کلمهٔ «زن» را اینطور مینویسند:
و کلمهٔ «نهمین ماه» را اینطوری (فکرش را بکنید: برای «نهمین ماه» یک نشانهٔ جدا دارند! برای اولین، دومین، …، بیستمین ماه چطور؟!):
فکر میکنید چنین خطی چند نشانهٔ یکتا دارد؟ پاسخ چیزی حدود چند ده هزار است (به گفتهٔ ویکیپدیا ۴۷۰۳۵ نشانه)! از کسانی که با این خط آشنایی دارند هم گویا انتظار نمیرود که تمام نشانههای آن را بشناسند. اما آیا چند ده هزار نشانه برای نوشتن تمام کلمات یک زبان کافی است؟ مسلماً نه! مگر آن که با ترکیب آنها نشانههای جدید ساخته شود. چینیها گویا از همین روش استفاده میکنند و عملاً با ترکیب این نشانهها در جهتهای مختلف نشانههای جدید میسازند. البته این که ترکیب دو کلمه چه معنایی خواهد داد ،گویا، تا حدود زیادی وابسته به فرهنگ چینی است. مثلاً ترکیب دو کلمهٔ بالا در کنار هم نشانهای را میسازد که معنیش «حاملگی» است (خط اول تصویر)!
نمونههای دیگری هم هستند. مثلاً چینیها برای «سر و صدا» هم نشانهٔ جداگانه ندارند و نشانهٔ آن را از ترکیب چند نشانهٔ دیگر میسازند. فکر میکنید از ترکیب چه نشانههایی؟ مثال سوم تصویر پایینی را ببینید:
در هر حال، این مطلب را حین مرور سرسری این کتاب دیدم (صفحات ۱۵۱ و ۱۵۲). به نظرم جالب آمد.
شاید خیلی با ارتباط نباشد اما به نظرم اگر علاقمند بودید سری به این صفحه بزنید و مشخصات گویش الویری را هم ببینید. گویشی که به نظر میرسد ریشهٔ فارسی دارد، اما در صرف افعالش مذکر و مؤنث دارد و…! صرف فعل دویدن در این گویش:
نوار لغزان با لغزندگی پایین
۸۸/۰۹/۲۰یکی از ایرادهای گزارش شده برای ویرایشهای قدیمیتر گنجور رومیزی این بود که نوارهای لغزان آن با کمک کلیدهای جهتی نمیلغزد. در واقع اگر ویرایش ۱.۶۳ و پایینتر آن را آزمایش بکنید میبینید که مثلاً نوار لغزان عمودی آن را، اگر کلید جهتی پایین را همینطور فشار دهید، بعد از سه چهار ثانیه بالاخره تسلیم میشود و راه میافتد اما خوب! سخت راه میافتد (دلیلش از لحاظ برنامهنویسی احتمالاً این است که کلید جهتی مزبور در واقع فوکوس را دارد بین کنترلها جابجا میکند و به هر کدام چند میلی ثانیه اجازهٔ مالکیت آن را میدهد تا آخر سر نوبت به نوار لغزان میرسد). توی ویرایش جدیدتر این مشکل را حل کردم.
اما «چطورش» شاید به درد برنامهنویسهای (احتمالاً تازهکار یا کمسواد مثل خودم) ویندوز فرمز بخورد (چون راه حلش را با جستجو پیدا نکردم): کنترل اصلی گنجور رومیزی یک 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 مرور میکنند.
امروز مقالهی دیگری را دیدم که در مورد این موضوع بحث میکند که آیا نیاز به اسکرول عمودی برای دیدن ادامهی مطلب در صفحات وب، مانع خوانده شدن مطالب پایینی صفحات توسط بازدیدکننده میشود یا نه. جوابش این است که نه، این مسأله مشکلی ایجاد نمیکند. اما برای رسیدن به این جواب، این مطالعه هم مبتنی است بر نقشههای گرمایی از نحوهی حرکت چشم بر روی صفحات.
جالب است بدانیم که این نقشههای گرمایی -بر خلاف آنچه من تا به حال فکر میکردم- نه بر اساس کلیکهای کاربر بر روی لینکهای واقع در نقاط مختلف نظیر نقشههایی که این سایت آمارگیری ارائه میدهد، که بر اساس پردازش تصاویر تهیه شده از حرکت واقعی چشم و ترکیب آنها با تصویر صفحه تهیه میشوند. اسم این تکنیک ردگیری چشم است و محصولات تجاری و رایگان آمادهای برای انجام چنین مطالعاتی وجود دارد که نمونهاش این محصول نرمافزاری مبتنی بر پردازش تصویر است که از آن در مقالهی اشاره شدهی دومی استفاده شده است.
احتمالاً الگوی این نقشهها و همینطور نامشان برگرفته از تصاویری است که توسط دوربینهای مادون قرمز از نحوهی توزیع حرارت در بدن و محیط اطراف جانوران تهیه میشود و در مطالعات زیستشناسی کاربرد دارد.
ویندوز واقعی را مجازی کنید
۸۸/۰۷/۱۷چند وقت پیش، ویندوزی که سه یا چهار سالی میشد روی کامپیوترم نصب بود با مودم ADSLم مشکل پیدا کرد، به نحوی که نتوانستم مشکلش را حل کنم و مجبور شدم ویندوز جدیدی روی کامپیوتر نصب کنم. روی ویندوز قدیمی نسخهی ثبت شدهی نرمافزاری را با محدودیت تعداد نصب داشتم که نمیشد روی ویندوز جدید (بدون پرداخت هزینهی مجدد) آن را نصب کرد. آن وقتها دوست داشتم راهی پیدا میشد تا ویندوز نصب شدهی قدیمی را به صورت ویرچوال نگه داشت و از آن نرمافزار استفاده کرد.
دیروز وبلاگ لایفهکر چنین نرمافزاری را معرفی کرده: Disk2vhd. گفتم شاید بعداً دوباره موردش پیش بیاید، اگر اینجا بنویسمش راحتتر پیدایش میکنم. احتمالاً به درد شما هم میخورد.
بحث حقیقت و مجاز شد 😉 ، این بیت حافظ را دیدهاید که میشود آن را به دو صورت کاملاً متناقض خواند؟ (به محل ویرگول توجه کنید):
خمها همه در جوش و خروشند ز مستی
وآن می که در آنجاست حقیقت، نه مجاز است!
خوانش دوم (که البته کمی دور از ذهن است و خواندنش سختتر است):
خمها همه در جوش و خروشند ز مستی
وآن می که در آنجاست حقیقت نه، مجاز است!
غزل کامل را اینجا بخوانید.
گنجور رومیزی تحت لینوکس
۸۸/۰۷/۱۷چند روز پیش دوستی در مورد امکان ارائهی نسخهی مکینتاش گنجور رومیزی سؤال کرده بود.
میدانستم که به کمک پروژهی مونو میتوان برنامههای داتنتی را تحت لینوکس اجرا کرد. پیشتر هم به کمک ابزاری که از سوی توسعهدهندگان مونو ارائه شده (اینجا را ببینید)، سازگاری گنجور رومیزی را با مونو تحقیق کرده بودم. تنها ناسازگاری گزارش شده توسط این برنامه خاصیت راست به چپ نوار ابزار برنامه بود که در فهرست در دست اقدامهای پروژهی مونو قرار دارد.
با توجه به آن که مونو نسخهی مکینتاش هم دارد دوستمان را به کد منبع گنجور رومیزی (قابل دریافت از اینجا) و پروژهی مونو ارجاع دادم و قرار شد اگر ایشان به نتیجه رسیدند مرا هم در جریان قرار دهند.
در هر صورت، امروز فرصتی شد تا به کمک دیسک زندهی مونو (قابل دریافت از اینجا) نظریهی امکان اجرای برنامه را تحت لینوکس آزمایش کنم.
نتیجه آن که با جایگزینی اسمبلی مربوط به ارتباط با پایگاه دادههای SQLite با نسخهی کاملاً Managed (من نسخهی جاری آن را از اینجا گرفتم) بدون نیاز به تغییر کد و در محیط مونو دِوِلپ میتوان پروژه را باز و کامپایل کرد (جالب آن که یک خط کد زاید را مونودولپ پیدا میکند و در موردش هشدار میدهد که فکر میکنم ویژوال استودیو در موردش هشدار نمیدهد) و نهایتاً آن را از طریق این محیط یا به کمک خط فرمان اجرا کرد.
ایراد قابل مشاهده (علاوه بر مشکل راست به چپ منو و نوار ابزار) نحوهی نمایش متون فارسی است که فکر میکنم اشکال از دیسک زندهی مونو باشد: با آن که امکان انتخاب زبان فارسی از منوی بوت دیسک زندهی یاد شده وجود دارد من نتوانستم در این محیط فارسی تایپ کنم و فکر میکنم بستههای زبان فارسی این دیسک ناقص هستند. به همین دلیل، حدس میزنم که تحت لینوکسی با پشتیبانی کافی از زبان فارسی بتوان برنامه را به صورت کم اشکال اجرا کرد.
هر چند، پروژهی مونو هنوز گویا کار زیاد دارد. به عنوان نمونه، در صورتی که پنجرهی «تنظیمات» گنجور رومیزی را باز کنید و روی دکمهی «تنظیمات پیشفرض» کلیک کنید، برنامه بلافاصله بسته میشود و در ترمینال چنین خطایی اعلام میشود:
با این وصف، احتمالاً میتوان به زودی مستقل بودن از سیستم عامل را به ویژگیهای برنامههای داتنتی اضافه کرد که پیش از این از جمله خاصیتهای منحصر به فرد برنامههای مبتنی بر جاوا بوده (و البته به دلیل نقائصش یا احتمالاً به دلیل حسادت برنامهنویسان سایر سکوها برایش جُکهایی مثل این ساختهاند: جاوا: یک بار بنویسید، همه جا اشکالش را بیابید!، یا این یکی).
پینوشت: با لینوکس OpenSUSE نگارش ۱۱.۱ به صورت نصب کامل (که امکان تایپ عربی داشت) هم امتحان کردم. نتیجه همینی است که در تصاویر مشخص است. ضمن آن که برای اجرای برنامهی داتنتی تحت مونو نیازی به کامپایل مجدد آن نیست و من بدون کامپایل مجدد و با استفاده از فایل اجرایی تولید شده توسط ویژوال استودیو، پس از جایگزینی اسمبلی مربوط به SQLite توانستم برنامه را به کمک فرمان mono اجرا کنم.
پینوشت ۲: نرمافزار ساغر راه حل نهایی برای مرور اشعار گنجور تحت لینوکس است. اینجا را ببینید.
خط فارسی در کامپیوتر: انتخاب میان زیبایی و کارایی؟
۸۸/۰۷/۱۷هی چسبان
در صفحهکلید پیشفرض فارسی ویندوز (XP، ویستا، ۷ و احتمالاً ۲۰۰۰) با کلید ترکیبی Shift+G میتوانید نویسهی «ۀ» را (برای فونت تاهوما) تایپ کنید. من تا مدتی «ه»های چسبان را بدون نوشتن کسرهی تبدیل شده به «ی» تایپ میکردم: «کسره اضافه». تا مدت نسبتاً زیادی هم این «ی» را به طور کامل در حالی که با نیمفاصله از کلمهی اصلی جدا شده تایپ میکردم: «کسرهی اضافه». اما اخیراً با کشف نحوهی تایپ «ۀ» (به یاد کتابهای درسی ابتدایی) خیلی جاها از این نویسه کمک گرفتهام: «کسرۀ اضافه». راه حل آخری (علیرغم زیبایی ظاهری) برای وب به نظرم اصلاً مناسب نیست (برای جستجو مشکل ایجاد میکند، علیرغم آن که برای چاپ راه حل خوبی است) و راه حل منطقیتر (کسرهی اضافه) به نظرم نازیباست.
پینوشت: در صفحهکلید استاندارد ایران که با دریافت این برنامه و نصب آن در دسترس قرار میگیرد نویسهٔ «ٔ» را میتوان با کلید ترکیبی Shift+N تایپ کرد که راهحل نهایی هٔ چسبان است، چون هم مشکل زیبایی را حل میکند و هم با توجه به این که یک نویسهٔ اضافی است برای جستجوپذیری متن مشکلی ایجاد نمیکند. نحوهٔ چینش حروف در این صفحهکلید را اینجا ببینید.
اعداد فارسی
ترجیح زیبایی نحوهی نمایش بر جستجوپذیری و آسانی انتقال، در جای دیگری هم احتمالاً مشکلات زیادی برای خط فارسی در وب ایجاد کرده و آن نحوهی تایپ اعداد است. بسیاری از وبنویسان به کمک ابزارهای موجود و در بعضی موارد -در مورد کسانی مانند من- به هر سختی که شده اعداد را به شکل فارسیشان تایپ میکنند (۰۱۲۳۴۵۶۷۸۹ به جای 0123456789، اگر شما هم به نوع مشابهی از این مازوخیسم مبتلا هستید توصیه میکنم این ابزار را امتحان کنید). مرورگرها و ابزارهای موجود، اغلب توانایی نمایش شکل درست اعداد در میانهی متون فارسی را ندارند و استفاده از شکل یونیکد نویسههای عددی فارسی مشکل نازیبایی اعداد لاتین در متون فارسی را حل کرده. اما آیا این راه حل درست است؟ شما اگر بخواهید در متن صفحهی وبی که اعداد آن با این شیوه تایپ شده اعداد را جستجو کنید در جعبهی جستجو چگونه اعداد را تایپ میکنید؟ آیا میتوان اعداد تایپ شده به این شیوه را از جداول به مایکروسافت اکسل برد و جمع ستونهای آنها را به راحتی به دست آورد. علیرغم این مشکلات بنیادی، من و احتمالاً بسیاری دیگر از طرفداران این شیوه به این کار خود ادامه میدهیم!
ایران نستعلیق
یکی دو باری کاربران گنجور رومیزی از من خواستهاند که «ایران نستعلیق» را فونت پیشفرض نمایش شعرها قرار دهم. چند سالی هست که این فونت با حمایت شورای عالی اطلاعرسانی به صورت رایگان در اختیار فارسیزبانان قرار گرفته و یکی دو سالی هست که قرار است «به زودی» نگارش جدید آن عرضه شود. در هر صورت، علیرغم زیبایی، این فونت مشکلات زیادی دارد. بریده شدن بالا و پایین کلمات از مشکلات معمول آن است. ایراد جالب دیگری که من دیدم آن است که «اعتصامی» را «اغتصامی» نمایش میدهد:
به همین دلایل، حداقل تا چند سال بعد که احتمالاً نگارش بدون ایرادی از این فونت عرضه شود (یا به احتمال قویتر، یک علاقمند زبان و خط فارسی بدون استفاده از بودجههای دولتی و صرفاً از روی دلسوزی و علاقه نگارش بهتری از چنین فونتی را ارائه کند) استفادهی عملی از آن امکانپذیر نیست.
تاریخ ادبیات به روایت خبرگزاری فارس
۸۸/۰۶/۲۲چند روز پیش، شاعرانی که در حضور مقام معظم رهبری شعرخوانی کرده بودند اشعارشان را -اختصاصاً- در اختیار خبرگزاری فارس گذاشته بودند. بد نیست نگاهی به این شعرها بیندازید، جالبند: رهبر انقلاب گفتند این شعر را خوشنویسی کنید، شعر طنز سعید بیابانکی که در دیدار با رهبر انقلاب خوانده شد و شعر انتخاباتی امیری اسفندقه.
بعد از بازخوانی این شعرها دوری در اخبار فرهنگی فارس زدم و به این مطلب رسیدم در مورد احمد شاملو. مطالب آموزندۀ زیادی دارد این مقاله و از جملۀ بارزترینشان این است که فروغی بسطامی شاعر همدورۀ فریدون مشیری، رهی معیری و معینی کرمانشاهی بوده است.
البته من فقط به صورت سرسری و سطحی مقاله را خواندم وگرنه اهل فن احتمالاً با مرور دقیق مطلب از طریق آن به حقایق جدید و احتمالاً بدیعی راجع به تاریخ ادبیات ایران پی خواهند برد.