به نام خدا

نرم‌افزار‌هايي از سيدمهدي موشَّح (۳۶ مورد)

خيلي سخت است، باور بفرماييد سخت است. براي يك برنامه‌نويس سخت است كه سورس نرم‌افزار خود را در اختيار ديگران قرار دهد. سورس، تمام خلاقيت و نوآوري يك برنامه‌نويس است، تمام ريزه‌كاري‌هايي كه در كار خويش ابداع كرده. وقتي دست ديگر برنامه‌نويسان بيافتد، دستش رو مي‌شود. تكنيك‌هايش لو مي‌رود.
بر اين حسّ خود غلبه كردم؛ بخل، گفتم هر چه سورس دارم بگذارم روي اينترنت، بلكه يك نفري يك جايي يك روزي بي‌نياز شود از اين‌كه دوباره فكر كند و دوباره كد بنويسد. همين هم ثواب دارد و اجرش مي‌ماند پاي آن‌كه بار اول اين راه را رفته و ابزاري فراهم نموده است. اميد به كار آناني بيايد كه خادم اسلام هستند و به كار مسلمين اهتمام مي‌ورزند.
۱. كنترل تبديل كلمه به ابجدبا زبان VB۶ نوشته‌ام. اولين زبان تحت ويندوزي كه ياد گرفتم، سال ۱۳۷۷. پروژه۲ را كه باز كنيد، يك كنترل است. وقتي از آن خروجي بگيريد،‌ يك فايل OCX در اختيار شما مي‌گذارد كه مي‌توانيد در هر نرم‌افزار ديگري از آن استفاده كنيد، البته ابتدا بايد رجيسترش كنيد در ويندوز. دستور regsvr۳۲ براي اين كار قابل استفاده است. پس از اين كار، پروژه۱ قابل اجرا خواهد بود، زيرا يك كاربرد از همين كنترل اكتيوايكس است. قصد داشتم پس از بخش تبديل «واژه» به «ابجد» يك بخش ديگر هم بنويسم براي تبديل «ابجد» به «واژه». براي همين قسمت زير كنترل را طراحي كردم. هدفم اين بود كه مجموعه‌اي از كلمات را در نرم‌افزار قرار دهم كه با دادن يك عدد، تركيبي از اين كلمات به كاربر ارائه نمايد. بيشتر هم به هدف كمك به كساني كه در اشعارشان معمولاً از ماده تاريخ استفاده مي‌كنند. ولي ديگر فرصت نشد و اين كار را به پايان نرساندم.
ضمائم: ۱ فايل۸۵۷ دانلود
۲. نمودار بيوريتم يا زيست‌چرخه‌هابرنامه را براي آزمايش و تست نوشتم تا واقعيت بيوريتم را تجربه كنم، موضوعي كه تازه مطرح شده بود و توجهات را جلب كرده. با VB.Net نوشته شده است. سه زيست‌چرخه قدرت فيزيكي، احساسات و عواطف و نيروي تفكر را نشان مي‌دهد، پس از اين‌كه تاريخ تولد را در جعبه پايين نرم‌افزار وارد كرده و دگمه Show را كليك كنيد. وضعيت اين سه زيست‌چرخه را تا يك هفته بعد و يك هفته قبل از روز جاري محاسبه مي‌كند. در اين نرم‌افزار از توابع تقويم خود دات‌نت استفاده كردم كه دقت بسيار بالايي دارد. دات‌نت از يك نگارشي به بعد تقويم شمسي را در توابع خود به كار گرفت. اطلاعات بيشتر درباره توابع تقويم شمسي در دات‌نت را مي‌توانيد از اين نشاني به دست بياوريد: http://rastan.parsiblog.com/posts/۵۱۸ اين نرم‌افزار را پيش از اين در نشاني http://rastan.parsiblog.com/posts/۲۲۵ معرفي كرده بودم. مي‌توانيد اطلاعات بيشتر را از اين نشاني دريافت كنيد.
ضمائم: ۲ فايل۱۷۵۱ دانلود
۳. نصب‌كننده نرم‌افزار Installerوقتي نرم‌افزار بُشري را براي دفتر مطالعات و تحقيقات زنان نوشتم (امروز نام آن به مركز مطالعات زن و خانواده تغيير كرده است) نياز به يك نرم‌افزاري پيدا كردم كه نرم‌افزار را در رايانه كاربر نصب كند. دلم نمي‌خواست از ابزارهاي آماده استفاده كنم. دوست داشتم يك چيز ايراني و خودي به زبان فارسي بنويسم و البته نوشتم و همراه آن نرم‌افزار منتشر شد. بعدتر همان نرم‌افزار نصب‌كننده را كلّي‌تر كردم، به نحوي كه قابل كاستومايز و شخصي‌سازي باشد. اين همان است. در شاخه setup فايل cd.inf قرار دارد كه تمامي اطلاعات شخصي‌سازي در آن ثبت مي‌شود. نام سي‌دي، مسير پيش‌فرض نصب، نام شاخه‌اي كه ساخته شده و نرم‌افزار در آن كپي مي‌شود و همچنين فايلي كه بايد اجرا شود، پس از تكميل نصب. دستوراتي نيز وجود دارد براي ساختن ميان‌بر و رجيستر كردن كنترل‌ها. فايل‌هاي كپي‌شونده نيز در شاخه data قرار مي‌گيرند. در حقيقت تمام موجودي شاخه ديتا در پوشه‌اي كه در مسير داده شده ساخته مي‌شود قرار خواهد گرفت. اين يك ابزار كوچك و ساده است كه به كمك آن مي‌توان به سرعت نرم‌افزار مورد نظر خود را روي سي‌دي ريخته و آمده نصب تحويل كاربر داد.
ضمائم: ۱ فايل۸۶۰ دانلود
۴. فهرست‌برداري از سي‌ديحجم سي‌دي‌هاي مؤسسه زياد شده بود. پيدا كردن نرم‌افزار سخت مي‌شد. دوستان ما وقت زيادي مي‌گذاشتند تا يك نرم‌افزار خاصي را براي نصب پيدا كنند. همان زمان بود كه اين ايده به ذهنم رسيد و اين نرم‌افزار را نوشتم. ابزار كوچكي‌ست. ساده كار مي‌كند. يك درايور را انتخاب مي‌كني و دگمه را كه بزني، فهرستي از تمام فايل‌ها و پوشه‌هاي داخل آن نمايش مي‌دهد. با اين ابزار توانستيم فهرستي از محتواي تمامي سي‌دي‌ها تهيه نموده و با جستجو در آن، فايل مورد نظر را پيدا كنيم. البته كه امروز ابزارهاي مفصل‌تري وجود دارد. ولي آن روز نبود، يا در دسترس ما. اين شد كه طراحي كردم، با زبان VB۶ هم هست.
ضمائم: ۱ فايل۷۹۵ دانلود
۵. ابزار مستقل كامنت‌گذاري در سايتسايت نشريات نهاد نمايندگي را كه طراحي كردم، خواستند ابزاري براي كامنت‌گذاري هم ذيل هر مطلب وجود داشته باشد. چنين شد كه اين ابزار مستقل را با asp كلاسيك نوشتم. زباني كه آن روز در اختيار ما بود. چرا مي‌گويم مستقل؟ چون يك ديتابيس مستقل دارد و هيچ وابستگي به سايت اصلي ندارد، جز يك كد كه به مطلب مورد نظر در سايت اصلي ارجاع مي‌دهد. من اين ابزار را بعدتر در سايت عماد و امتداد نيز استفاده كردم. براي نصب آن كافيست فايل rate.asp را در قالب يك iframe در صفحه مورد نظر درج نماييم و كد مطلب را با عنوان Art به صورت كوئري به آن پاس كنيم. در اين صورت ابتدا تمام كامنت‌هاي تأييد شده آن كد را نمايش داده و سپس جعبه ارسال كامنت را در اختيار كاربر مي‌گذارد. صفحات ديگري براي مديريت كامنت‌ها وجود دارد كه در بخش مديريت سايت مي‌تواند قرار داد و استفاده كرد. اين ابزار با آژاكس كار نمي‌كند، ولي رفتاري مشابه آژاكس دارد و فعاليت‌هاي آن دور از چشم كاربر انجام مي‌شود. فايل fc.asp شامل تمامي توابع اصلي برنامه است. شاخه Theme نيز حاوي قالب نمايشي ابزار كامنت است كه متن‌ها در اين قالب چيده شده و نمايش داده مي‌شود. فايل db.asp هم محتوي رمز ديتابيس و اطلاعات اصلي اتصال به آن است.
ضمائم: ۱ فايل۸۰۵ دانلود
۶. يافتن تصاوير ناقصي كوچك و بزرگسايت مؤسسه پارسا از هر كتاب دو نسخه تصوير داشت؛ يكي بزرگ و يكي كوچك. دوستي كه مسئول تصويربرداري از كتاب‌ها بود، وظيفه داشت نسخه‌هاي كوچك را هم بسازد و با يك پيشوند خاص در شاخه‌اي ديگر نگهداري كند. گاهي از دستش در مي‌رفت و تصاوير كوچك كم مي‌آمدند و آن وقت بايد در ميان هزاران فايل، با چشم مي‌گشت تا ناقصي‌ها را پيدا كند. اين برنامه نشاني دو پوشه را از فايل path.ini مي‌گيرد و فهرست‌برداري مي‌كند. فهرست‌ها را با هم مقايسه كرده و نواقص تصاوير كوچك و بزرگ را به تفكيك نشان مي‌دهد. اين برنامه كمك زيادي به روند اتوماسيون در بخش فني مؤسسه نمود. برنامه در چارچوب VB۶ نوشته شده است.
ضمائم: ۱ فايل۸۹۰ دانلود
۷. حذف پيشوند از نام فايل‌هاي تصويرهر كتابي كه وارد سامانه مؤسسه پارسا مي‌شد به بخش فني مي‌آمد و مسئول مربوطه از جلد آن تصوير مي‌گرفت. يك نسخه كوچك از اين تصوير با پيشوند thm_ به عنوان نسخه بندانگشتي به كار مي‌رفت تا در فهرست‌ها نمايش داده شود. اين نرم‌افزار را با VB۶ نوشتم تا بتواند پيشوندها را حذف نموده يا اضافه نمايد. با داشتن سورس نرم‌افزار مي‌توانيد هر تغييري را در كدها ثبت نماييد تا پس از اجرا روي فايل‌هاي شما انجام دهد.
ضمائم: ۱ فايل۸۱۱ دانلود
۸. فروشگاه كتاب عمادپنج رده از مديريت دارد با دسترسي‌هاي مختلف. تمام صفحات و ابزارهاي لازم براي معرفي و فروش كتاب. ويژگي‌هاي نرم‌افزار در نشاني http://movashah.ir/fa/index.php?w=work&x=۵۲۱ ذكر شده است. پوشه Theme حاوي تمامي قالب‌هاي صفحات است. هر صفحه يك قالب مختص به خود در اين شاخه دارد كه با خود آن فايل هم‌اسم است. شبيه به آن‌چه در دات‌نت به صورت خودكار انجام مي‌شود. اما اين‌جا با asp كلاسيك نوشته شده. استثنائاً ابزار اتصال به بانك سامان براي پرداخت مالي با VB.Net نوشته شده است، بعدها. كانكشن‌هاي ديتابيس در فايل db.asp قابل تنظيم است.
ضمائم: ۱ فايل۱۰۰۷ دانلود
۹. فروشگاه آماده استفاده CMSنرم‌افزاري كه براي سايت عماد نوشتم خيلي موفق بود. كاربري آساني داشت و به راحتي نصب و راه‌اندازي مي‌شد. به دليل مبتني بودن بر قالب، به سادگي هم مي‌شد ظاهر آن را تغيير داد. روي همان سايت عماد، به درخواست كارفرما، چند بار تمام تم سايت را تغيير دادم. بعدتر، يكي از دوستان فروشگاهي مشابه عماد خواست. اين‌بار نشستم و با اعمال تغييراتي در اين سايت، آن را به صورت CMS درآوردم. ديگر وابسته به مختصات عماد نبود و با هر عنواني مي‌شد استفاده كرد. چندين نسخه براي مشتريان مختلف نصب كردم و استفاده شد. اين نسخه همان نسخه عمومي شده است. اگر چه باز هم سورس سايت تحت سكوي ASP كلاسيك است، ولي ديتابيس از اكسس به SQL Server ارتقا يافته است. توضيحات بيشتر را در معرفي نرم‌افزار فروشگاه كتاب عماد بخوانيد.
ضمائم: ۱ فايل۸۸۴ دانلود
۱۰. ابزار فارسي‌نويسي در سايتسايت دفتر مطالعات و تحقيقات زنان را كه طراحي مي‌كردم نياز شديدي به يك ابزار فارسي‌ساز كوچك داشتم، براي استفاده در جعبه جستجوي سايت. چرا؟! زيرا آن زمان هنوز بيشتر كاربران از ويندوز ۹۸ انگليسي استفاده مي‌كردند و صفحه كليد فارسي روي خيلي از رايانه‌ها نبود. قبل‌تر در مؤسسه پارسا يك صفحه كليد مجازي فارسي درست كرده بودم كه ظاهري شبيه به صفحه كليد واقعي داشت. با تعداد زيادي دگمه كه با موس كار مي‌كرد. اما اين‌بار دلم نمي‌خواست يك صفحه كليد مقابل چشم كاربر قرار دهم. بعدتر وقتي سرويس پارسي‌بلاگ را طراحي مي‌كرديم، كارفرما چنين ابزاري را براي تمامي جعبه‌ها خواست. من هم ابزار قبلي را آوردم و ساعت‌ها كار كردم تا ارتقا يابد و روي تمامي مرورگرها كار كند. ابزارهاي بيشتري به آن افزودم و اين چيزي شد كه همچنان در اين سرويس وجود دارد. آخرين بار در سال ۱۳۸۸ آن را ويرايش كردم تا با آخرين تغييرات مرورگرها هماهنگ شود. يك فايل جاوااسكريپت است كه در صورت قرار گرفتن لينك آن در داخل صفحه HTML ابزارك كوچكي را در كنار تمامي جعبه‌هاي داراي مشخصه lang=fa قرار مي‌دهد. كليك كردن روي اين ابزارك كوچك، صفحه كليد را از انگليسي به فارسي تغيير مي‌دهد.
ضمائم: ۱ فايل۸۱۰ دانلود
۱۱. بازي فكربكر فارسي تحت داسدر نشاني http://rastan.parsiblog.com/Posts/۷۰۳ معرفي كردم اين بازي را. دبيرستان بودم كه تحت QBasic آن را نوشتم. خيلي خوب هم كار مي‌كرد. براي فارسي شدن نيمه دوم كدهاي اسكي هم از نرم‌افزار قرآني مركز نور استفاده كردم. فايل FEKER.BAT را كه اجرا كنيد، ابتدا قرآن تحت داس اجرا مي‌شود و كدها را فارسي مي‌كند. برنامه قرآن را ببنديد تا به صورت خودكار برنامه در مفسّر بيسيك اجرا شود. كد اصلي در فايل feker.bas است. ولي كدهاي ديگري نيز در ساير فايل‌هاي bas وجود دارد كه تست‌هاي اوليه مرا براي ايجاد انيميشن و حركت در بيسيك نشان مي‌دهد.
ضمائم: ۱ فايل۸۵۵ دانلود
۱۲. مرتب‌ساز كدهاي HTMLوقتي در مؤسسه پارسا HTML مي‌نوشتيم، كدها معمولاً به هم مي‌ريخت و از خوانايي مي‌افتاد. خصوصاً با بلايي كه InterDev مايكروسافت سر كدها مي‌آورد. آن روزها ابزاري نبود كه كدها را مرتّب نمايد. امروز البته هست. حتي آن‌لاينش هم هست. بيشتر اديتورها هم خودشان انجام مي‌دهند، ولي آن روز، احساس كردم به آن نياز دارم. اين نرم‌افزار را با VB۶ نوشتم. بيشتر فرم‌ها را طراحي كردم و الگوي كار را هم روي كاغذ آماده كرده بودم. تمام فرم‌ها و بخش‌ها را روي كاغذ كشيده و پيش‌بيني كردم. ولي وقتي رفتم سر كدنويسي، ناگهان تغيير سمت يافتم در مؤسسه و شدم سرپرست معاونت فني و آن‌قدر درگير كارهاي مديريتي كه نتوانستم اين پروژه را به اتمام برسانم. اين ابزار قرار بود كدهاي HTML را تحليل نمايد و به صورت كÙ