Bella_aster
مدیران قدیمی
واژه شناسي
واژگان ايراني در فناوري اطلاعات - 5
در شماره گذشته در مورد ريشه ايراني واژه History بهمعناي تاريخ و تاريخچه نوشتيم. جالب است بدانيم كه واژه «تاريخ» نيز كه بسياري آن را عربي ميپندارند، ريشه ايراني دارد. پژوهشگران بزرگ زبان عربي با اطمينان آن را دخيل از زبانهاي ديگر در عربي ميدانند و از آنجا كه از سويي اين واژه در قرآن مجيد نيامده است و در مفهوم آن مصادر «تقويم» بهكار رفته و از سوي ديگر در متون معتبر صدر اسلام مانند نهجالبلاغه و صحيفه سجاديه بهندرت بهكار رفته و هر چه زمان گذشته، بيشتر در عربي رسوخ يافته است، حدود ورود آن در عربي را سالهاي آغازين پس از اسلام ميدانند.
سالشمار باستاني ايرانيان بهصورت هفتگي نبوده و هر روز ماه نامي داشته است و بدان «ماهروز» يا به گويش آن زمان «موروچ» (mawroc) ميگفتهاند. ميگويند روزي دو نفر كه بر سر سندي اختلاف داشتهاند، دعوي به درگاه خليفه عمر ميبرند و از آنجا كه روز و ماه سند مشخص بوده اما سال آن روشن نبوده است، به نتيجهاي نميرسند. (عربها تا پيش از اسلام مبدا درستي براي سالشماري نداشتهاند) عمر از پيروزان دانشمند ايراني ياري ميجويد. پيروزان ميگويد كه نميتواند سال آن را تعيين كند، اما اگر آنان ميخواهند كه از اين پس ديگر دچار اين مشكل نشوند، ميبايد روش ايرانيان را «موروچ» بهكار برند و بدين ترتيب واژه «مورخ» (پس از اعمال قواعد تعريب) وارد زبان عربي ميشود.
منابع:
آرتور جفري، واژههاي دخيل در قرآن مجيد، فريدون بدرهاي، 1374 / فريدون جنيدي، زمينه شناخت موسيقي ايراني، انتشارات پارت، 1364/آ ذرتاش آذرنوش، راههاي نفوذ فارسي در فرهنگ و زبان عربي، انتشارات دانشگاه تهران، 1374.
@@@
پيشگامان دانش كامپيوتر
ميشل كاپور(Mitchell Kapor)
طراح و برنامه نويس نرمافزار متولد نيويورك كه بههمراه جاناتان ساچس (Sachs Jonathan)، لتوس 1-2-3 (پرفروشترين نرمافزار دنيا تا آن زمان) را ساخت و شركت توسعه لتوس را در سال 1982 در كمبريج تاسيس كرد. وي نرمافزار صفحه گسترده VisiCalc كه يك ابزار قدرتمند و كاربرپسند بود را پديد آورد.
كاپر در سال 1986 از لتوس كنارهگيري كرد. كاپر در سال 1990 به همراه استيو وزنياك (Steve Wozniak)، شركت Electronic Frontier را كه يك موسسه غيرانتفاعي مستقل بودند، براي درك تاثيرات اجتماعي انقلاب ديجيتالي در جامعه باز و آزاد را بنياد نهاد. كاپر هماكنون بهعنوان استاد مدعو در مدياآرتز و پژوهشگر در دانشگاه MIT فعاليت ميكند.
@@@
فراخوان از راه دور پردازهها
فراخوان از راهدور پروسيجر يا RPC1فناوري ارتباط بين پروسسها2 است كه اجازه ميدهد يك برنامه كامپيوتري، به سابروتين يا پروسيجري تبديل شود كه قابليت اجرا در يك فضاي آدرس3 ديگر را داشته باشد (كه معمولا كامپيوتر ديگر و در شبكه است)، بدون آنكه برنامهنويس برنامهاش را بهاين صورت نوشته باشد. بدينترتيب، برنامهنويس فقط همان كدهايي را مينويسد كه قرار بود در اجراي محلي برنامه بنويسد. در برنامهنويسي شيگرا از اين مفهوم به فراخوان از راه دور، يا فراخوان متد از راه دور تعبير ميشود.
همچنين در برنامهنويسي چند نخي4، استفاده از چند نخ باعث ميشود عمل فراخواني از راه دور تابع يا پروسيجر بهصورت موازي هم انجام شود.
آرپيسي از مدل محاسباتي مشتري™خدمتگذار استفاده ميكند و اين موضوع باعث ميشود برنامهنويسي بهاين روش سادهتر و قدرتمندتر باشد.
يكي ديگر از پيادهسازيهاي اوليه يونيكسي آن متعلق به سيستم محاسبات شبكهاي7آپولو كامپيوتر بود. NCS بعدا در بنيانگذاري DCE/RPC نقش داشت كه بهعنوان استاندارد آرپيسي بنياد منبعباز استفاده ميشود. يك دهه بعد، مايكروسافت از همين تكنيك استفاده كرد و آرپيسي مايكروسافت (MSRPC) را بر اساس همين مكانيزم منتشر كرد. مايكروسافت همچنين از DCOM روي آرپيسي خود استفاده كرد. DCOMفناوري ديگري ابداع مايكروسافت بود كه بهبرنامهها اجازه ميداد از يكديگر براي اجرا استفاده كنند.
يك تفاوت بسيار مهم ميان فراخواني راه دور و فراخواني محلي، اين است كه فراخواني راه دور ميتواند بهدليل مشكلات اتصال شبكه، دچار مشكل شود. همچنين فراخواننده عموما بايد بدون آنكه بداند پروسيجر حقيقتا صدا زده شده است يا نه، با اين مشكلات دست و پنجه نرم كند. پروسيجرهاي خنثي (آنهايي كه اگر بيشتر از يك بار صدا زده شوند تاثير خاصي ندارند) بهسادگي مديريت ميشوند، اما همواره اين مشكل را باقي ميگذارند كه كدي كه فراخوان را انجام ميدهد اغلب بايد بالاجبار براي سيستمهاي سطح پايين نوشته شود.
اين روش از HTTP براي پروتكل انتقال داده و از XML براي رمزگذاري محتويات درخواست استفاده ميكند. XML-RPC تا حد امكان ساده طراحي شده است، اما با اين حال ميتوان ساختمانهاي پيچيدهدادهاي را از طريق آن، انتقال داد، پردازش كرد يا بازگرداند. اين روش در سال 1998 توسط ديو واينر از شركت نرمافزاري يوزرلند و مايكروسافت خلق شد. اين استاندارد امروزه تكامل يافته و به چيزي كه امروزه با نام SOAP معروف است، تبديل شده است.
منابع
http://en.wikipedia.org/wiki/Remote_procedurecall
http://techtarget.com
http://cs.cf.ac.uk/
http://xmlrpc.com
پينوشتها
Remote Procedure Call.1
Inter-process Communication.2
Address Space.3
Multi-Thread.4
Dispatcher.5
NFS: Network File System (Protocol).6
Network Computing System.7
Distributed Computing.8
@@@
بر عمر باتري لپتاپ خود بيافزاييد
راهنماي تهيه اكسيرجواني
يكي از مواردي كه معمولا براي كاربران رايانههاي قابل حمل اهميت دارد، ميزان مصرف باتري لپتاپ آنان است. مشكل خاليشدن سريع شارژ باتريهاي لپتاپ، معمولا راهحلي ندارد و روشهايي كه براي دوباره تغذيه كردن اين باتريها پيشنهاد ميشود، براي بسياري از ما قابل استفاده نيست. راههاي گوناگوني وجود دارد كه شما بتوانيد مدت زمان بيشتري را با باتري كار كنيد. تعدادي از اين روشها سختافزاري است، يعني ميتوانيد از باتريهايي با ظرفيت بيشتر يا از يك باتري جانبي براي لپتاپ خود استفاده كنيد.
باتريهاي لپتاپ از تعدادي باتري كوچكتر تشكيل شده است. معمولا تعداد اين سلولها، نمايانگر ظرفيت باتري است. بهطور كل، بيشتر باتريهاي امروزي در ظرفيتهاي 6، 9 و 12 سلول عرضه ميشوند. در برخي از لپتاپها حتي ميتوان درايو ديويدي را از دستگاه جدا كرد و بهجاي آن باتري ديگري قرار داد. ميتوانيد با رعايت اين نكات، طول عمر آن را افزايش داده و همچنين با يك بار شارژ، زمان روشني بيشتري از باتريتان بگيريد.
حالت Max Battery را بايد در موقعيتهايي استفاده كنيد كه به حداقل قدرت پردازشي نياز داريد، مثلا هنگامي كه مطلبي را ميخوانيد يا در يك جلسه، يادداشت برميداريد. همچنين ميتوانيد اين تنظيمات را مطابق خاص خودتان تغيير دهيد.
بيشتر لپتاپهاي جديد باتريهاي ليتيوميون دارند كه بين 300 تا 500 چرخه شارژ و دشارژ را جواب ميدهد. اين نوع باتريها از اينكه بهطور كامل شارژ خود را خالي كنند، اصلا خوشحال نميشوند و همواره بايد مدنظر داشت كه پيش از اتمام كامل باتري، آن را مجدد شارژ كرد.بهنظر ميرسد دما بر عمر اين باتريها تاثيرگذار باشد. توليدكنندگان باتريهاي ليتيوميون معتقدند كه عمر اين باتريها بين 2 تا 3 سال خواهد بود. بيشتر باتريهاي ليتيوميون بهخاطر در معرض گرما بودن، بيشتر از شارژ و دشارژ شدن عمر خود را از دست ميدهند.
2– باتريهاي مبتني بر نيكل
نيكلكادميوم و نيكلهيدريد آهن، برخلاف باتريهاي ليتيومي، بهتر است بهطور كامل دشارژ شود و بعد دوباره مجدد شارژ شود. اگر باتريهاي نيكلي پيش از شارژ دوباره، دشارژ نشوند در اين صورت ميزان حجم قابل استفاده باتري كاهش مييابد. ميزان ولتاژ اين باتريها 3 برابر بيشتر از باتريهاي ليتيومي است (6/3 ولت در مقابل 2/1 ولت) و همين موضوع باعث ميشود اين باتريها كمتر در صنعت دستگاههاي قابل حمل استفاده شوند. اگر لپتاپتان متعلق به بيش از 3سال گذشته است، در اينصورت احتمالا شما هم از همين نوع باتريها داريد. البته، جداي اينكه چه نوع باترياي داشته باشيد، شيوه رفتار شما با باتري مهم است. هر چند هفته يك بار، باتريتان را كامل دشارژ و بعد مجدد كامل شارژ كنيد.
@@@
مقايسه كارايي گرووي با زبانهاي ديگر
در شماره 219 ضمن معرفي Groovy ديديم كه دستور زبان آن از جاوا سادهتر است و قرار است به يك دستور زبان استاندارد تبديل شود.
مساله ايجاد استاندارد، سبب افزايش چشمگير اعتباراين زبان در جامعه برنامهنويسان شده است و به نظر ميرسد كه برنامهنويسان حرفهاي در آينده و به مرور زمان سرمايهگذاري گستردهاي روي آن انجام دهند. اين هفته ميخواهيم كارايي (Performance) زبان گرووي را با برخي زبانهاي مشابه مقايسه كنيم.
نخستين آزمون عبارت است از ايجاد يك شيء و صدا كردن چند متد درون اين شي. در آزمون دوم ميتوان آرايههاي يك بعدي و دو بعدي را ايجاد و آنها را مقداردهي كرد و آخرين روش مقايسه دو عدد صحيح با يكديگر است. هر آزمون را حداقل هزار بار و حداكثر صد هزار بار اجرا ميكنيم.
نتايج مقايسه گرووي و جاوا نشان ميدهد كه زمان اجراي متدهايي كه از درون دو شي جاوا و گرووي صدا زده ميشوند تقريبا يكسان و بسيار بالا است. آرايهها در گرووي سريعتر از جاوا هستند با اين حال در هر دو زبان اين زمان قابل ملاحظه است. مقداردهي به اعداد تقريبا هيچ زماني نميگيرد.
نتايج اين آزمونها نشان ميدهد كه گرووي زماني كه آزمونها تنها يك بار تكرار شوند، كند است، در حالي كه اگر تعداد تكرار آزمونها زياد باشد اين مشكل پيش نميآيد.
دليل اين امر وجود فيلدهاي استاتيك است كه وقتي از يك كلاس گرووي براي اولين بار يك شيء ايجاد ميكنيم بايد مقداردهي اوليه شوند. زماني كه آزمون نخست را براي بار اول انجام ميدهيم، زمان اجرا بسيار بالاست و سپس اين زمان به ميزان قابل ملاحظهاي كاهش مييابد. سپس هنگامي كه اين آزمون را براي هزارمين بار تكرار ميكنيم زمان اجرا مانند اولين بار بسيار زياد است. اين نتايج به خوبي مساله را توجيه ميكنند.
از سوي ديگر زماني كه تعداد تكرارآزمونها بيش از هزار بار باشد، جاوا تقريبا هزار بار سريعتر از گرووي است و اين مساله در مورد همه آزمونها صدق ميكند.
به اعتقاد بسياري از برنامهنويسان حرفهاي خوانايي، قدرت و سرعت توليد كد از جمله عواملي هستند كه در برنامهنويسان انگيزه لازم براي استفاده از گرووي بوجود ميآورند. در مجموع بهنظر ميرسد كه اگرچه گرووي بهمراتب كندتر از جاوا است، نتايج آزمونهاي انجامشده نشان ميدهد كه آينده گرووي درخشان است. آزمون ايجاد يكي از اجزاي جاوا (Java bean)نشان ميدهد كه حتي اگر صد هزار عدد از اين اجزا را با استفاده از گرووي ايجاد كنيم، زمان اجرا از نيم ثانيه كمتر است.
اگرچه در برنامهنويسي واقعي ما هرگز به ايجاد تعداد بسيار زيادي از اجزا نياز نداريم، اما اين موضوع يكي از نقاط قدرت گرووي است كه استفاده از آن را بجاي جاواي عادي بسيار مناسب ميكند. نكته مهم ديگر اين است كه گرووي توابع getter و setter را به طور خودكار اجرا ميكند. از سوي ديگر، در هر موردي كه كد گرووي از كارايي كافي برخوردار نباشد ميتوان آن را به سادگي با كد جاوا جايگزين كرد.
نتايج حاصل از ايجاد يك آرايه و مقداردهي آن نيز بهتر از جاوا است. از سوي ديگر، تاكنون نتايج هيچيك از آزمونهاي پيچيدهتري كه از موضوع بحث ما خارج هستند، موردي را كه حاكي از عدم كارايي گرووي در مقايسه با جاوا باشد نشان نداده است. به اين ترتيب ميتوان نتيجه گرفت كه جايگزين كردن كد جاوا با كد گرووي در اكثر موارد امكانپذير است.
از دلايلي كه سبب اين برتري ميشود اپتيمايز شدن بهتر حلقههاي تكرار در گرووي است. با توجه به اين كه جيروبي سريعتر از روبي است و گرووي از هر دو آنها سريعتر است. در مجموع ميتوان گفت كه در مورد همه زبانهايي كه روي JVM اجرا ميشوند، گرووي بيشترين ميزان كارايي را دارد. از آنجايي كه گرووي ميتواند كدهاي جاوا را نيز كامپايل و اجرا كند، قدرت مانور بيشتري نسبت به ديگر زبانهاي اين گروه دارد. ضمن اينكه در مواردي كه كارايي آن به هر دليلي افت ميكند، ميتوان آن را با جاوا جايگزين كرد. در حال حاضر گرووي در برخي از بخشهاي مرتبط با سختافزار سيستم مانند مكملهاي اعداد، از برخي كاستيها رنج ميبرد اما با گذشت زمان خلا موجود در اين زبان به سرعت در حال پر شدن است.
ژوزف فلاويوس يك تاريخ نگار رومي در قرن اول پس از ميلاد بود. ژوزف و تعدادي سرباز كه جمعا 40نفر بودند در يك غار حبس شده و در محاصره نيروهاي دشمن كه با روم در جنگ بودند قرار داشتند. آنها تصميم گرفتند كه دور يك حلقه بايستند و شروع به شمردن كنند. شمارش از يك آغاز ميشد و به 3 ختم ميشد و سپس مجددا از يك از سر گرفته ميشد.
هر فردي كه شماره3 به او تعلق ميگرفت بايد خود را تسليم نيروهاي دشمن ميكرد تا جان عده باقيمانده نجات يابد. ژوزف كه نميخواست بميرد در جايي ايستاد كه آخرين نفر نجات يافته باشد. حالت كلي اين مساله اين است كه تعداد سربازان n باشد و سربازان از يك تا n شماره گذاري شوند. هر سرباز Kام بايد تسليم دشمن شود. هدف محاسبه شماره آخرين فرد نجات يافته است.
نتايج حاصل از پيادهسازي كد با زبانهاي مختلف نشان ميدهد كه كد جاوا 100 خط و زمان اجراي آن 6/1 ميكرو ثانيه است. كد++ C داراي 124 خط و زمان 3 ميكروثانيه، كد گرووي 81 خط اما زمان اجراي آن 100 ميكرو ثانيه و كد PHP داراي 85 خط با زمان اجراي 593 ميكرو ثانيه است. كدهاي پايتون و روبي به ترتيب 41 و 63 خط بوده و زمان اجراي آنها به ترتيب حدود 630 و 380 ميكرو ثانيه است. به اين ترتيب كد گرووي نسبتا كوتاه و خلاصه اما زمان اجراي آن اندكي طولاني است. به اين ترتيب با تركيب كد جاوا و گرووي ميتوان به يك سيستم متعادل و كارا دست يافت.
واژگان ايراني در فناوري اطلاعات - 5
در شماره گذشته در مورد ريشه ايراني واژه History بهمعناي تاريخ و تاريخچه نوشتيم. جالب است بدانيم كه واژه «تاريخ» نيز كه بسياري آن را عربي ميپندارند، ريشه ايراني دارد. پژوهشگران بزرگ زبان عربي با اطمينان آن را دخيل از زبانهاي ديگر در عربي ميدانند و از آنجا كه از سويي اين واژه در قرآن مجيد نيامده است و در مفهوم آن مصادر «تقويم» بهكار رفته و از سوي ديگر در متون معتبر صدر اسلام مانند نهجالبلاغه و صحيفه سجاديه بهندرت بهكار رفته و هر چه زمان گذشته، بيشتر در عربي رسوخ يافته است، حدود ورود آن در عربي را سالهاي آغازين پس از اسلام ميدانند.
سالشمار باستاني ايرانيان بهصورت هفتگي نبوده و هر روز ماه نامي داشته است و بدان «ماهروز» يا به گويش آن زمان «موروچ» (mawroc) ميگفتهاند. ميگويند روزي دو نفر كه بر سر سندي اختلاف داشتهاند، دعوي به درگاه خليفه عمر ميبرند و از آنجا كه روز و ماه سند مشخص بوده اما سال آن روشن نبوده است، به نتيجهاي نميرسند. (عربها تا پيش از اسلام مبدا درستي براي سالشماري نداشتهاند) عمر از پيروزان دانشمند ايراني ياري ميجويد. پيروزان ميگويد كه نميتواند سال آن را تعيين كند، اما اگر آنان ميخواهند كه از اين پس ديگر دچار اين مشكل نشوند، ميبايد روش ايرانيان را «موروچ» بهكار برند و بدين ترتيب واژه «مورخ» (پس از اعمال قواعد تعريب) وارد زبان عربي ميشود.
منابع:
آرتور جفري، واژههاي دخيل در قرآن مجيد، فريدون بدرهاي، 1374 / فريدون جنيدي، زمينه شناخت موسيقي ايراني، انتشارات پارت، 1364/آ ذرتاش آذرنوش، راههاي نفوذ فارسي در فرهنگ و زبان عربي، انتشارات دانشگاه تهران، 1374.
@@@
پيشگامان دانش كامپيوتر
ميشل كاپور(Mitchell Kapor)

طراح و برنامه نويس نرمافزار متولد نيويورك كه بههمراه جاناتان ساچس (Sachs Jonathan)، لتوس 1-2-3 (پرفروشترين نرمافزار دنيا تا آن زمان) را ساخت و شركت توسعه لتوس را در سال 1982 در كمبريج تاسيس كرد. وي نرمافزار صفحه گسترده VisiCalc كه يك ابزار قدرتمند و كاربرپسند بود را پديد آورد.
كاپر در سال 1986 از لتوس كنارهگيري كرد. كاپر در سال 1990 به همراه استيو وزنياك (Steve Wozniak)، شركت Electronic Frontier را كه يك موسسه غيرانتفاعي مستقل بودند، براي درك تاثيرات اجتماعي انقلاب ديجيتالي در جامعه باز و آزاد را بنياد نهاد. كاپر هماكنون بهعنوان استاد مدعو در مدياآرتز و پژوهشگر در دانشگاه MIT فعاليت ميكند.
@@@
فراخوان از راه دور پردازهها

فراخوان از راهدور پروسيجر يا RPC1فناوري ارتباط بين پروسسها2 است كه اجازه ميدهد يك برنامه كامپيوتري، به سابروتين يا پروسيجري تبديل شود كه قابليت اجرا در يك فضاي آدرس3 ديگر را داشته باشد (كه معمولا كامپيوتر ديگر و در شبكه است)، بدون آنكه برنامهنويس برنامهاش را بهاين صورت نوشته باشد. بدينترتيب، برنامهنويس فقط همان كدهايي را مينويسد كه قرار بود در اجراي محلي برنامه بنويسد. در برنامهنويسي شيگرا از اين مفهوم به فراخوان از راه دور، يا فراخوان متد از راه دور تعبير ميشود.
همچنين در برنامهنويسي چند نخي4، استفاده از چند نخ باعث ميشود عمل فراخواني از راه دور تابع يا پروسيجر بهصورت موازي هم انجام شود.
آرپيسي از مدل محاسباتي مشتري™خدمتگذار استفاده ميكند و اين موضوع باعث ميشود برنامهنويسي بهاين روش سادهتر و قدرتمندتر باشد.
چطور كار ميكند؟
يك فراخوان از راه دور پروسيجر، به يك فراخواني تابع ميماند. همانند فراخواني تابع، وقتي يك فراخواني از راه دور توليد ميشود، آرگومان فراخواننده به پروسيجر راه دور فرستاده ميشود، فراخواننده منتظر پاسخي از سوي پروسيجر راه دور ميماند. همانطور كه در شكل ميبينيد، روال انجام شده براي ارسال يك فراخوان راه دور و بازگشت نتيجه رسم شده است. مشتري يك پروسيجر را صدا ميزند كه درخواستي به سرور ميدهد و صبر ميكند. اين نخ پردازشي تا زماني كه پاسخي دريافت نشده يا زمان انتظار براي پاسخ سر برسد، بلوكه خواهد شد. وقتي درخواستي ميرسد، سرور روتين توزيعكننده5 را صدا ميزند كه درخواست فعلي را انجام دهد و پاسخ را به مشتري ميفرستد. بعد از كامل شدن آرپيسي، برنامه مشتري ادامه پيدا ميكند. آرپيسي بهطور خاص از برنامههاي تحت شبكه پشتيباني ميكند.تاريخچه و اصليت
ايده فراخواني از راه دور پروسيجرها، آنطور كه در 707 RFC آمده است، به اوايل سال 1976 بر ميگردد. يكي از نخستين استفادههاي تجاري از آرپيسي توسط زيراكس و تحت نام «كورير» در سال 1981 بود. اولين پيادهسازي محبوب آرپيسي در يونيكس، آرپيسي «سان» بود كه امروزه بهنام ONC RPC شناخته ميشود و بهعنوان پايهاي براي سيستم فايل شبكه6«سان» استفاده ميشود. ONC RPC هنوز بهطور گستردهاي در بسترهاي مختلفي استفاده ميشود. يكي ديگر از پيادهسازيهاي اوليه يونيكسي آن متعلق به سيستم محاسبات شبكهاي7آپولو كامپيوتر بود. NCS بعدا در بنيانگذاري DCE/RPC نقش داشت كه بهعنوان استاندارد آرپيسي بنياد منبعباز استفاده ميشود. يك دهه بعد، مايكروسافت از همين تكنيك استفاده كرد و آرپيسي مايكروسافت (MSRPC) را بر اساس همين مكانيزم منتشر كرد. مايكروسافت همچنين از DCOM روي آرپيسي خود استفاده كرد. DCOMفناوري ديگري ابداع مايكروسافت بود كه بهبرنامهها اجازه ميداد از يكديگر براي اجرا استفاده كنند.
انتقال پيغام
آرپيسي يكي از معروفترين و محبوبترين پارادايمهاي پيادهسازي مدل مشتري™خدمتگذار در محاسبات توزيعشده8است. فراخواني توسط مشتري ايجاد شده و پيغام درخواستي به سرور مشخصي ارسال ميشود تا پروسيجر مشخصي را كه از طريق پارامترهاي ارسالي مشخص شده است، اجرا كند. پاسخ به برنامه فراخواننده بر ميگردد و برنامه كار خود را در ميان ديگر پروسسها دنبال ميكند. در پيادهسازيهاي مختلف، چگونگي روال پيادهسازي يك فراخواني تفاوت دارد و باعث ايجاد پروتكلهايي غيرهمخوان با يكديگر شده است. بهياد داشته باشيد كه وقتي سرور در حال پردازش فراخواني است، مشتري بلوكه شده است. (يعني تا زماني كه پردازش آن تمام نشود، اجراي خود را ادامه نخواهد داد.)يك تفاوت بسيار مهم ميان فراخواني راه دور و فراخواني محلي، اين است كه فراخواني راه دور ميتواند بهدليل مشكلات اتصال شبكه، دچار مشكل شود. همچنين فراخواننده عموما بايد بدون آنكه بداند پروسيجر حقيقتا صدا زده شده است يا نه، با اين مشكلات دست و پنجه نرم كند. پروسيجرهاي خنثي (آنهايي كه اگر بيشتر از يك بار صدا زده شوند تاثير خاصي ندارند) بهسادگي مديريت ميشوند، اما همواره اين مشكل را باقي ميگذارند كه كدي كه فراخوان را انجام ميدهد اغلب بايد بالاجبار براي سيستمهاي سطح پايين نوشته شود.
XML-RPC
يكي از پيادهسازيهاي نوين RPC است كه طي آن،اجازه ميدهد نرمافزارهايي كه روي سيستمهاي عامل مختلف و در بسترهاي محيطي مختلف وجود دارند، روي اينترنت نسبت به فراخواني پروسيجر اقدام كنند. اين روش از HTTP براي پروتكل انتقال داده و از XML براي رمزگذاري محتويات درخواست استفاده ميكند. XML-RPC تا حد امكان ساده طراحي شده است، اما با اين حال ميتوان ساختمانهاي پيچيدهدادهاي را از طريق آن، انتقال داد، پردازش كرد يا بازگرداند. اين روش در سال 1998 توسط ديو واينر از شركت نرمافزاري يوزرلند و مايكروسافت خلق شد. اين استاندارد امروزه تكامل يافته و به چيزي كه امروزه با نام SOAP معروف است، تبديل شده است.
منابع
http://en.wikipedia.org/wiki/Remote_procedurecall
http://techtarget.com
http://cs.cf.ac.uk/
http://xmlrpc.com
پينوشتها
Remote Procedure Call.1
Inter-process Communication.2
Address Space.3
Multi-Thread.4
Dispatcher.5
NFS: Network File System (Protocol).6
Network Computing System.7
Distributed Computing.8
@@@
بر عمر باتري لپتاپ خود بيافزاييد
راهنماي تهيه اكسيرجواني

يكي از مواردي كه معمولا براي كاربران رايانههاي قابل حمل اهميت دارد، ميزان مصرف باتري لپتاپ آنان است. مشكل خاليشدن سريع شارژ باتريهاي لپتاپ، معمولا راهحلي ندارد و روشهايي كه براي دوباره تغذيه كردن اين باتريها پيشنهاد ميشود، براي بسياري از ما قابل استفاده نيست. راههاي گوناگوني وجود دارد كه شما بتوانيد مدت زمان بيشتري را با باتري كار كنيد. تعدادي از اين روشها سختافزاري است، يعني ميتوانيد از باتريهايي با ظرفيت بيشتر يا از يك باتري جانبي براي لپتاپ خود استفاده كنيد.
باتريهاي لپتاپ از تعدادي باتري كوچكتر تشكيل شده است. معمولا تعداد اين سلولها، نمايانگر ظرفيت باتري است. بهطور كل، بيشتر باتريهاي امروزي در ظرفيتهاي 6، 9 و 12 سلول عرضه ميشوند. در برخي از لپتاپها حتي ميتوان درايو ديويدي را از دستگاه جدا كرد و بهجاي آن باتري ديگري قرار داد. ميتوانيد با رعايت اين نكات، طول عمر آن را افزايش داده و همچنين با يك بار شارژ، زمان روشني بيشتري از باتريتان بگيريد.
تنظيمات غلط
حتما بخش تنظيمات Power كامپيوترتان را چك كنيد كه آيا در بهينهترين حالت صرفهجويي در انرژي هست يا نه؟ گزينههاي باتري لپتاپ هم در تنظيمات Power وجود دارد. ويندوز دو حالت كلي براي Power دارد، يكي حالت Portable/laptop كه برق مصرفي را تا حد امكان پايين ميآورد و حالت Max Battery كه در آن، تا حداكثر صرفهجويي را انجام ميدهد، اما در صورت بالارفتن ميزان پردازش شما، ميزان مصرف تغيير نخواهد كرد و جوابگو نخواهد بود.حالت Max Battery را بايد در موقعيتهايي استفاده كنيد كه به حداقل قدرت پردازشي نياز داريد، مثلا هنگامي كه مطلبي را ميخوانيد يا در يك جلسه، يادداشت برميداريد. همچنين ميتوانيد اين تنظيمات را مطابق خاص خودتان تغيير دهيد.
اجراي برنامههاي سنگين
تماشاي فيلم يا اجراي برنامههاي سنگين براي باتري گران تمام ميشود. بهراحتي ميتوانيد با ديدن يك فيلم 2 ساعته باتري لپتاپ را تا قطره آخر خالي كنيد. تنظيمات نور نمايشگر
بيشترين مصرفكننده در لپتاپ، نمايشگر است. با كنترل و كم كردن نور مانيتور، تا جايي كه به چشمتان آسيبنزند، ميتوانيد عمر باتري را افزايش دهيد.نوع باتري
1– باتري نيكلكادميومليتيوميونبيشتر لپتاپهاي جديد باتريهاي ليتيوميون دارند كه بين 300 تا 500 چرخه شارژ و دشارژ را جواب ميدهد. اين نوع باتريها از اينكه بهطور كامل شارژ خود را خالي كنند، اصلا خوشحال نميشوند و همواره بايد مدنظر داشت كه پيش از اتمام كامل باتري، آن را مجدد شارژ كرد.بهنظر ميرسد دما بر عمر اين باتريها تاثيرگذار باشد. توليدكنندگان باتريهاي ليتيوميون معتقدند كه عمر اين باتريها بين 2 تا 3 سال خواهد بود. بيشتر باتريهاي ليتيوميون بهخاطر در معرض گرما بودن، بيشتر از شارژ و دشارژ شدن عمر خود را از دست ميدهند.
2– باتريهاي مبتني بر نيكل
نيكلكادميوم و نيكلهيدريد آهن، برخلاف باتريهاي ليتيومي، بهتر است بهطور كامل دشارژ شود و بعد دوباره مجدد شارژ شود. اگر باتريهاي نيكلي پيش از شارژ دوباره، دشارژ نشوند در اين صورت ميزان حجم قابل استفاده باتري كاهش مييابد. ميزان ولتاژ اين باتريها 3 برابر بيشتر از باتريهاي ليتيومي است (6/3 ولت در مقابل 2/1 ولت) و همين موضوع باعث ميشود اين باتريها كمتر در صنعت دستگاههاي قابل حمل استفاده شوند. اگر لپتاپتان متعلق به بيش از 3سال گذشته است، در اينصورت احتمالا شما هم از همين نوع باتريها داريد. البته، جداي اينكه چه نوع باترياي داشته باشيد، شيوه رفتار شما با باتري مهم است. هر چند هفته يك بار، باتريتان را كامل دشارژ و بعد مجدد كامل شارژ كنيد.
هايبرنت بهجاي خاموشي مطلق
بسياري از مردم از تفاوت ميان هايبرنت و خاموش كردن لپتاپهايشان باخبر نيستند و معمولا از روش پرمصرف خاموشي براي پايان كار خود با لپتاپ استفاده ميكنند. بهتر است اگر گاهي اوقات بيش از 20 دقيقه به لپتاپتان دست نميزنيد، آنرا هايبرنت كنيد. تميز كردن مجاري عبور هوا
همانطور كه پيشتر گفتيم، كارايي باتريهاي لپتاپ با بالارفتن دما كاهش مييابد. تا حدي اين مشكل به مجاري عبور هواي لپتاپ بر ميگردد كه قابليت تخليه صحيح گرما را ندارند. مناسب است كه هر چند هفته يك بار اين مجاري را باد بگيريد تا گرد و غبار پاك شده و عبور هوا آسان شود. برنامههايي را كه نميخواهيد ببنديد
برنامههايي كه شما استفادهاي از آنها نداريد ولي در پشت صحنه در حال اجرا هستند را حتما ببنديد. مثلا نيازي به برنامههاي پيغامرسان نداريد ولي آنها اجرا شدهاند. با بستن اين برنامهها، حافظه اصلي (RAM) را خالي ميكنيد و نياز به حافظه جانبي (HDD) براي صفحهبندي نيست و بههمين ترتيب ميتوانيد در مصرف انرژي صرفهجويي كنيد.دستگاههايي كه بهدرد نميخورند را خاموش كنيد
ميتوانيد دستگاههاي جانبي خود مثل بلوتوث، وايفاي و مادونقرمز را، اگر از آنها استفاده نميكنيد، خاموش كنيد، توجه داشته باشيد كه اتصالات USB در حالت باتري مصرف برق بالايي دارند. بنابراين دستگاههاي جانبياي كه با USB كار ميكنند را تا حدامكان در حالت باتري بهكار نبريد.فناوري اينتل
اگر لپتاپ شما از نسل پردازشگرها سنترينو (Centrino) يا بعد از آن است، حتما از طريق بايوس (BIOS)، گزينه SpeedStep Technology را فعال كنيد تا پردازندهتان بهينهرفتار كند.از درايوها استفاده نكنيد
بهعلت اينكه دستگاههاي جانبي ساختاري مكانيكي دارند، برق مصرفيشان نسبت به ديگر قطعات الكترونيكي بالاتر است، از اينرو سعي كنيد در حالت باتري، تا حدامكان، از ديسكهاي جانبي استفاده نكنيد. همچنين،در صورت عدم استفاده از درايو،حتما آنها را خالي نگهداريد. صدا را قطع كنيد
بلندگوهاي لپتاپ خود را در حالت Mute قرار دهيد و از اجراي هرگونه نرمافزاري كه با صدا سر و كار دارد تا حدامكان پرهيز كنيد. هيچ گاه از صدا غافل نشويد كه يكي از قاتلهاي باتري است. بهروز باشيد
حتما آخرين نسخه بايوس را از توليدكننده لپتاپ خود تهيه و نصب كنيد.بدانيد چه ميخواهيد بكنيد
حالت باتري، يعني حالت محدود. بنابراين پيش از آنكه در لپتاپ خود را باز كنيد، از انجام عمليات خود آگاه باشيد كه زمان ارزشمند باتري خود را صرف انديشيدنها نكنيد.يكپارچهسازي منظم ديسك سخت
با يكپارچهسازي (Defragmentation) اطلاعات روي ديسك سخت، زمان دستيابي به اطلاعات همواره در حالت بهينه خودش قرار دارد و همين مورد باعث ميشود كه هارد دستگاه برق كمتري مصرف كند. يكپارچهسازي منظم ديسكسخت بيشتر به كساني توصيه ميشود كه با لپتاپ بازي ميكنند و از ديتابيس استفاده ميكنند. @@@
مقايسه كارايي گرووي با زبانهاي ديگر

در شماره 219 ضمن معرفي Groovy ديديم كه دستور زبان آن از جاوا سادهتر است و قرار است به يك دستور زبان استاندارد تبديل شود.
مساله ايجاد استاندارد، سبب افزايش چشمگير اعتباراين زبان در جامعه برنامهنويسان شده است و به نظر ميرسد كه برنامهنويسان حرفهاي در آينده و به مرور زمان سرمايهگذاري گستردهاي روي آن انجام دهند. اين هفته ميخواهيم كارايي (Performance) زبان گرووي را با برخي زبانهاي مشابه مقايسه كنيم.
آزمايش كارايي كد
بهترين روش براي آزمودن كارايي يك زبان و مقايسه آن با زبانهاي ديگر، نوشتن كد يك پروژه خاص به آن زبانها و مقايسه برخي از پارامترهاي كدها با يكديگر است. اما اينكه كد مورد بحث بايد شامل چه بخشهايي باشد، و اينكه چگونه ميتوان با نوشتن كمترين كد، در كوتاهترين زمان ممكن دو زبان را با يكديگر مقايسه كرد، موضوعي تخصصي است.استيو مك كانل، كه از متخصصان برجسته مهندسي نرمافزار است دست كم سه نوع آزمون را براي اين منظور پيشنهاد ميكند.نخستين آزمون عبارت است از ايجاد يك شيء و صدا كردن چند متد درون اين شي. در آزمون دوم ميتوان آرايههاي يك بعدي و دو بعدي را ايجاد و آنها را مقداردهي كرد و آخرين روش مقايسه دو عدد صحيح با يكديگر است. هر آزمون را حداقل هزار بار و حداكثر صد هزار بار اجرا ميكنيم.
نتايج مقايسه گرووي و جاوا نشان ميدهد كه زمان اجراي متدهايي كه از درون دو شي جاوا و گرووي صدا زده ميشوند تقريبا يكسان و بسيار بالا است. آرايهها در گرووي سريعتر از جاوا هستند با اين حال در هر دو زبان اين زمان قابل ملاحظه است. مقداردهي به اعداد تقريبا هيچ زماني نميگيرد.
نتايج اين آزمونها نشان ميدهد كه گرووي زماني كه آزمونها تنها يك بار تكرار شوند، كند است، در حالي كه اگر تعداد تكرار آزمونها زياد باشد اين مشكل پيش نميآيد.
دليل اين امر وجود فيلدهاي استاتيك است كه وقتي از يك كلاس گرووي براي اولين بار يك شيء ايجاد ميكنيم بايد مقداردهي اوليه شوند. زماني كه آزمون نخست را براي بار اول انجام ميدهيم، زمان اجرا بسيار بالاست و سپس اين زمان به ميزان قابل ملاحظهاي كاهش مييابد. سپس هنگامي كه اين آزمون را براي هزارمين بار تكرار ميكنيم زمان اجرا مانند اولين بار بسيار زياد است. اين نتايج به خوبي مساله را توجيه ميكنند.
از سوي ديگر زماني كه تعداد تكرارآزمونها بيش از هزار بار باشد، جاوا تقريبا هزار بار سريعتر از گرووي است و اين مساله در مورد همه آزمونها صدق ميكند.
بهبود در خوانايي، سرعت در توليد كد؟
علاوه بر آزمونهاي ياد شده، يكي از مواردي كه در بررسي كارايي كد مورد نظر قرار ميگيرد، خوانايي كد است. شيب منحني يادگيري براي برنامهنويساني كه به زبان جاوا مسلط باشند كاملا مسطح است و اين به آن معني است كه تفاوتهاي قابل ملاحظهاي بين دستور زبان اين دو زبان وجود ندارد. از سوي ديگر نوشتن كد به زبان گرووي به مراتب كمتر از نوشتن همان كد به زبان جاوا زمان ميگيرد. به اعتقاد بسياري از برنامهنويسان حرفهاي خوانايي، قدرت و سرعت توليد كد از جمله عواملي هستند كه در برنامهنويسان انگيزه لازم براي استفاده از گرووي بوجود ميآورند. در مجموع بهنظر ميرسد كه اگرچه گرووي بهمراتب كندتر از جاوا است، نتايج آزمونهاي انجامشده نشان ميدهد كه آينده گرووي درخشان است. آزمون ايجاد يكي از اجزاي جاوا (Java bean)نشان ميدهد كه حتي اگر صد هزار عدد از اين اجزا را با استفاده از گرووي ايجاد كنيم، زمان اجرا از نيم ثانيه كمتر است.
اگرچه در برنامهنويسي واقعي ما هرگز به ايجاد تعداد بسيار زيادي از اجزا نياز نداريم، اما اين موضوع يكي از نقاط قدرت گرووي است كه استفاده از آن را بجاي جاواي عادي بسيار مناسب ميكند. نكته مهم ديگر اين است كه گرووي توابع getter و setter را به طور خودكار اجرا ميكند. از سوي ديگر، در هر موردي كه كد گرووي از كارايي كافي برخوردار نباشد ميتوان آن را به سادگي با كد جاوا جايگزين كرد.
نتايج حاصل از ايجاد يك آرايه و مقداردهي آن نيز بهتر از جاوا است. از سوي ديگر، تاكنون نتايج هيچيك از آزمونهاي پيچيدهتري كه از موضوع بحث ما خارج هستند، موردي را كه حاكي از عدم كارايي گرووي در مقايسه با جاوا باشد نشان نداده است. به اين ترتيب ميتوان نتيجه گرفت كه جايگزين كردن كد جاوا با كد گرووي در اكثر موارد امكانپذير است.
مقايسه گرووي با روبي
در آزمون مشابهي پيادهسازي، سرعت و ميزان مصرف حافظه توسط گرووي با JRuby مقايسه شد. نتايج حاصل از اين مقايسه نشان داد كه در همه موارد فوق بدون استثنا، گرووي بهتر از جيروبي عمل ميكند. از دلايلي كه سبب اين برتري ميشود اپتيمايز شدن بهتر حلقههاي تكرار در گرووي است. با توجه به اين كه جيروبي سريعتر از روبي است و گرووي از هر دو آنها سريعتر است. در مجموع ميتوان گفت كه در مورد همه زبانهايي كه روي JVM اجرا ميشوند، گرووي بيشترين ميزان كارايي را دارد. از آنجايي كه گرووي ميتواند كدهاي جاوا را نيز كامپايل و اجرا كند، قدرت مانور بيشتري نسبت به ديگر زبانهاي اين گروه دارد. ضمن اينكه در مواردي كه كارايي آن به هر دليلي افت ميكند، ميتوان آن را با جاوا جايگزين كرد. در حال حاضر گرووي در برخي از بخشهاي مرتبط با سختافزار سيستم مانند مكملهاي اعداد، از برخي كاستيها رنج ميبرد اما با گذشت زمان خلا موجود در اين زبان به سرعت در حال پر شدن است.
مقايسه گرووي با جايتون
آخرين عضو از خانواده زبانهايي كه روي ماشين مجازي جاوا اجرا ميشوند Jython است. اين زبان در واقع يك درگاه براي تبديل كدهاي جاوا به كد پايتون است و كندترين زبان در اين خانواده محسوب ميشود. بخشي از اين مشكل ناشي از اين مساله است كه پايتون تفاوتهاي قابل ملاحظهاي با جاوا دارد. مقايسه گرووي با پايتون
در مقايسه با پايتون، گرووي چندان پويا و ديناميك نيست. يك زبان ديناميك زباني است كه بسياري از محاسبات را در زمان اجرا و نه در هنگام كامپايل شدن انجام ميدهد. اين امر علاوه بر افزايش سرعت و كارايي برنامه، از بروز برخي از انواع خطاها نيز جلوگيري ميكند. از سوي ديگر، در حال حاضر جزييات انجام برخي از محاسبات در گرووي بر برنامهنويسان پوشيده است، در حالي كه در Python هيچ چيز پوشيده و مخفي نيست. با اين وجود نقطه قوت گرووي در برابر پايتون، برخورداري از مجموعه گستردهاي از كتابخانهها است. در واقع دسترسي گرووي به همه apiهاي جاوا آن را بهقدري قدرتمند ميسازد كه برخي حتي گرووي را تهديدي براي آينده جاوا ميدانند. كارايي گرووي و پايتون در مورد پيادهسازي متدها و توابع با هم برابري ميكند. از ديدگاه مقايسه سرعت گرووي دست كم دو برابر سريعتر از پايتون است. مقايسه گرووي با PHP
اگرچه اين امر شگفت انگيز به نظر ميرسد، اما PHP تنها از جايتون سريعتر است و از همه زبانهاي ديگري كه در مورد آنها صحبت كرديم، از جمله گرووي كندتر است. مقايسه بر مبناي اندازه كد
يكي از مسايلي كه بر كارايي كد، سرعت آن و سرعت توسعه كد توسط برنامهنويسان اثر مستقيم ميگذارد، اندازه كد يا به عبارت ديگر تعداد خطوط كد است. براي آزمودن كارايي زبانها بر مبناي اين معيار، حل يكي از مسايل مشهور برنامهنويسي با استفاده از زبانهاي مختلف بررسي شد. اين مساله، مساله ژوزف فلاويوس ناميده ميشود. ژوزف فلاويوس يك تاريخ نگار رومي در قرن اول پس از ميلاد بود. ژوزف و تعدادي سرباز كه جمعا 40نفر بودند در يك غار حبس شده و در محاصره نيروهاي دشمن كه با روم در جنگ بودند قرار داشتند. آنها تصميم گرفتند كه دور يك حلقه بايستند و شروع به شمردن كنند. شمارش از يك آغاز ميشد و به 3 ختم ميشد و سپس مجددا از يك از سر گرفته ميشد.
هر فردي كه شماره3 به او تعلق ميگرفت بايد خود را تسليم نيروهاي دشمن ميكرد تا جان عده باقيمانده نجات يابد. ژوزف كه نميخواست بميرد در جايي ايستاد كه آخرين نفر نجات يافته باشد. حالت كلي اين مساله اين است كه تعداد سربازان n باشد و سربازان از يك تا n شماره گذاري شوند. هر سرباز Kام بايد تسليم دشمن شود. هدف محاسبه شماره آخرين فرد نجات يافته است.
نتايج حاصل از پيادهسازي كد با زبانهاي مختلف نشان ميدهد كه كد جاوا 100 خط و زمان اجراي آن 6/1 ميكرو ثانيه است. كد++ C داراي 124 خط و زمان 3 ميكروثانيه، كد گرووي 81 خط اما زمان اجراي آن 100 ميكرو ثانيه و كد PHP داراي 85 خط با زمان اجراي 593 ميكرو ثانيه است. كدهاي پايتون و روبي به ترتيب 41 و 63 خط بوده و زمان اجراي آنها به ترتيب حدود 630 و 380 ميكرو ثانيه است. به اين ترتيب كد گرووي نسبتا كوتاه و خلاصه اما زمان اجراي آن اندكي طولاني است. به اين ترتيب با تركيب كد جاوا و گرووي ميتوان به يك سيستم متعادل و كارا دست يافت.