سلام دوستان

تو یکی از قسمت‌های رادیو‌گیک تو وبلاگ جادی (کیبورد آزاد) یه تبلیغ جانانه برای fastdic.com کرده بود علتش هم که خیلی روش تاکید داشت سرعت خیلی بالای اون بود.

خوب ما هم می‌خوایم یه همچین چیزی برای خودمون داشته باشیم بنابراین شروع می کنیم.

برای این کار سه چیز نیازه

۱) دیتابیس: حدود سال ۱۳۸۴ یک دیتابیس دیکشنری پیدا کردم که یه گوشه‌ی هارد تا الان نگهداری کرده بودمش و الان می‌خوام از همون استفاده کنم. یک فایل متنی ۵۹۴۹۹ سطری به این شکل

text-dictionary

پس ما ابتدا لغت انگلیسی رو داریم بعد فاصله::فاصله بعد لغت فارسی حالا تا اینجا رو داشته باشید که باهاش کار داریم

۲) باید دیتابیسی رو برای اینکار طراحی کنیم جدولی که برای اینکار در نظر گرفتم ۳ فیلد داره (من یک عادتی دارم و همیشه یک فیلد id توی جدول قرار می دم هرچند حتی اگه به اون نیاز نباشه)

فیلدها شامل:

id از نوع integer

english از نوع varchar که طولش ۲۵۵ حرف هست

persian از نوع varchar که طولش ۱۰۲۴ حرف هست (طولانی‌ترین معنی که پیدا کردم ۷۴۴ کاراکتری بود)

خوب اینجا می‌خوام چندتا فوت کوزه گری بگم

فوت کوزه‌گری ۱

ایندکس‌گذاری جداول در زمان SELECT زدن تاثیرگذارترین موضوع در سرعت Queryها هست!

persian هم که بیشتر حرف داره fulltext می‌کنیم تا بتونیم روش fulltext search کنیم

با توجه به اینکه فیلد english کمتر از ۲۵۶ حرف داره اون رو index می کنیم برای اینکه کیفیت جستجو را بالا ببریم فیلد english  را fulltext کردم.

برای کلید اصلی (primary key) هم id v رو انتخاب می‌کنیم مطابق تصویر زیر (روی عکس کلیک کنید تا سایز اصلی رو ببینید)

db-dictionary

خوب جدول آمادست حالا ادامه مرحله یک رو جلو می‌بریم

یه متن بلند بالا داریم که باید تبدیل شه به INSERT در نزدیک به ۶۰۰۰۰ QUERY منطقا ما بیکار نیستیم (و البته از حوصله هم خارجه) که دستی اینکار رو انجام بدیم

یک راه اینه که از Excel استفاده کنیم از tabs->data->from text که توش delimiter (یا همون جدا کننده) را : قرار می دیم و ادامه ماجرا (یک وقت دیگه آموزش می‌دمش)

من دوست دارم از یک روش گیکی‌تر و قابل استفاده در تمام سیستم‌عامل‌ها استفاده کنم؛ برای اینکار نیاز به vim داریم که تقریبا برای تمام (بله درست شنیدید تمام) سیستم‌عامل‌های موجود نسخه داره (…,Windows, Linux, Mac, OS/2, Amiga, Android, i/Os) می تونید از اینجا دانلودش کنید. این برنامه خیلی جالبه تقریبا تمام زبان‌های برنامه‌نویسی رو پشتیبانی می‌کنه Open Source(بخونید آزاد) هست؛ تحت shell (ویندوزی‌ها بخونن DOS)هست؛ می‌تون فایل‌های گیگابایتی رو مثل آب خوردن بازکنه و روشون پردازش‌های سنگین انجام بده؛ خیلی جذاب و دوست داشتنیه و امکاناتش بینهایت! خوب بهتره دست از تعریف و تمجید بردارم و کار رو شروع کنیم

خوب حالا که vim رو دانلود کردین دیکشنری لغات رو هم دانلود کنید.

من دیکشنری و فایل gvim74.exe رو توی درایو 😀 قرار دادم برای باز کردن دیکشنری اول باید dos یا shell رو باز کنید

D:
gvim74.exe fa-en-utf8.txt

 

شکل دیکشنر ما به ازای هر سطر بصورت زیر هست

english Word :: ترجمه فارسی

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

INSERT INTO dictionary VALUES (NULL, "english word","ترجمه فارسی");

برای اینکار کافیه توی VI دستورات زیر را بنویسیم  برای نوشتن دستور در VI ابتدا باید : بزنید تا بخش دستور فعال شه در واقع منظور از : در ابتدای خط همین هست (اگه همین دستورات رو copy/paste کنید خودش می‌فهمه که دستوره )

:%s!^!INSERT INTO dictionary VALUES (NULL, '!g
:%s! :: !','!g
:%s!$!');!g
:wq

خوب حالا این دستورات یعنی چه

در این دستورات علامت ! نقش جدا کننده را بازی می کند

در خط اول s% یعنی به ازای تمام یافته‌ها به جای ^ که نشان دهنده ابتدای سطر است ($ هم نشان دهنده انتهای سطره 😉 ) دست INSERT را قرار بده و g هم یعنی replace کن به عبارتی ما یه find and replace ساختیم.

در خط دوم می گیم هر جا :: دیدی بجاش ‘,’ بگذار

و در خط سوم هم می گیم پایان هر خط ;(‘ بگذار تا دستور ما بسته بشه

و در نهایت wq: یعنی ذخیره کن و خارج شو!

{ادامه دارد}

خوب من همیشه این مشکل را داشتم! دلم می خواهد چندتا(مثلا 5 تا 10) خبر مهم (واقعا مهم) رو در لحظه مرور مطالعه کنم. در حال حاضر نتوانستم سایتی با این کاربری پیدا کنم که واقعا این کار را درست و بی آلایش انجادم بدهد. یا با هدف‌های سیاسی خبرها چیده می‌شوند یا تعدادشان خبرها زیاد است مثلا در یک نمونه می‌دیدم در هرموضوع (سیاسی، اقتصادی، ورزشی و …) ۱۵ خبر ارائه می‌کرد! و نمونه‌های دیگر هم قوی نیستند فقط یک اسم پوچ و تهی.

خوب من این سرویس را به چند صورت نیاز دارم (شاید در نهایت فرق چندانی در خروجی کار نداشته باشد چون فقط در لایه نمایش تغییرات داریم)

۱) نمایش به صورت ساده و واضح با قالبی ساده و زیبا.

۲) نمایش مینیمالیستی مخصوص مرورگرهای موبایل قدیمی بدون سیستم عامل(بخوانید جاوا)

۳) خروجی json جهت بهره‌گیری در App گوشی‌های Android و Apple

ابتدا باید بدانیم از چه روشی برای کارمان استفاده کنیم.

بعد از کمی بررسی چند خبرگزاری و سایت مناسب را انتخاب می کنیم مثلا من خبرگزاری مهر، سایت خبری تابناک و سایت خبری عصرایران را انتخاب می‌کنم.

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

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

{ادامه دارد}

دوستانمون در دانشگاه شریف به رهبری دکتر تابش و اعضای سابق شرکت فارسی وب شریف زحمت کشیدن و سال ۸۸ به عنوان استاندارد ملی در موسسه استاندارد ایران به شماره ثبت 9147 با عنوان فناوری اطلاعات -چیدمان حروف و علائم فارسی بر صفحه کلید رایانه ثبت کردند. دیگه توی این استاندارد ی و ک های عربی(همون ي و ك)  (بدون اجازه شما!) به وجود نمیاد.

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

توی ویندوزهای XP, 7, 8 هم می‌توانید از این فایل کم حجم (250kKB) استفاده کنید آموزش نصب و همینطور چیدمان حروف در این صفحه کلید را هم می توانید در اینجا مطالعه کنید.

در نهایت اگر دوست داشتین می‌توانید این مقاله درمورد یونی‌کد فارسی و تاریخچه‌ی آن را که توسط خانم فریبا سلطانی نژاد نوشته شده و در مجله ادبیات تطبیقی، سال سوم، شماره ۱۱، صفحه ۱۴۳تا۱۲۱ چاپ شده مطالعه کنید. من از این مقاله خیلی لذت بردم!

در نهایت مجددا اصرار می‌کنم که این صفحه‌کلید استاندارد را نصب کنید و از امکانات آن مثل (نیم‌فاصله یا همان ZWNJ یا همان shift+space) و اعداد واقعا فارسی و جداکننده‌ی هزارگان فارسی مثل ۱٫۰۰۰٫۰۰۰ و همینطور ﷼ به جای $ و خیلی چیزهای دیگه لذت ببرید.

راستی یادتون باشه در این استاندارد یک سری تغییرات جزئی وجود دارد مثلا با فشردن دکمه ء روی صفحه کلید حرف پ نمایش داده می‌شود و برای نوشتن ژ باید دکمه های shift+ز را فشار بدهید.

iranian-standard-keyboard-ISIRI--9147

کمی که کار کنید متوجه می‌شوید که خیلی عالی هست.

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

به امید استفاده روز افزودن از استانداردها.

آزمایشگاه نرم افزار

دسته: عمومی

19 نوامبر 2013

سلام

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

درباره‌ی این وبلاگ

در این بلاگ نگاه من را درباره دنیای فناوری و برنامه نویسی خواهید دید. امیدوارم مطالب آن راهگشا باشد.

تصاویر