گامهاي نهايي براييك ترجمه موفق
همانطور كه زبانهاي معمول از قواعد و اصول مشخصي پيروي ميكنند، زبانهاي برنامهسازي نيز گرامر خاص خود را دارند كه تنها در صورتي معني و مفهوم آنها توسط رايانه درك ميشود كه از آن قواعد پيروي كرده باشيم. البته زبان انسانها به دليل آنكه مخاطب آن يك موجود هوشمند است، انعطافپذيري بيشتري نسبت به زبانهاي برنامهنويسي رايانه دارند.
در زبان انسانها ممكن است گاهي كلمهاي اشتباه گفته شود و يا فعلي بيان نشود. همچنين ممكن است جابجاييهايي در لغات به وجود آيد، اما در همه اين موارد ذهن انسان، تركيب درست را به طور هوشمندانه درك كرده و نتيجهگيري صحيح را از آن خواهد داشت.
اما در زبان رايانه بايد كلمات و عبارات به ترتيب مشخص و تعيين شده توسط آن زبان كنار هم چيده شوند تا توسط رايانه درك شوند و كوچكترين اشتباه و جابجايي در آنها غيرقابل چشمپوشي است و منجر به عدم درك مفهوم توسط رايانه خواهد شد. مگر اينكه طراح زبان يكسري انعطافپذيريهاي بخصوص، تعيين شده و محدودي را براي آن زبان در نظر گرفته و در كامپايلر آن بگنجاند.
تحليل معنايي
پيش از اين در مورد دو فاز از تحليل يك برنامه يعني تحليل لغوي و نحوي به تفصيل سخن گفتهايم. مرحله بعد از اين دو مرحله در كامپايلرها تحليل معنايي يا Semantic Analyze است. در اين فاز برنامه مبدا براي يافتن خطاهاي معنايي بررسي و اطلاعات مربوط به نوع دادهها، براي مرحله بعد يعني مرحله توليد كد جمعآوري ميشود.
براي درك بهتر انواع تحليلها و خطاهاي مربوط به هر كدام از اين مراحل، برخي جملات فارسي را مثال ميزنيم.
جمله «او سيب را خورده است» را در نظر بگيريد. در صورتي كه اين جمله به صورت «او صيب را خورده است» نوشته شود پيش از هر چيز تحليلگر لغوي زبان فارسي پس از برخورد به كلمه «صيب» يك خطا اعلام ميكند. زيرا چنين كلمهاي در زبان فارسي وجود ندارد و بايد به شكل «سيب» نوشته شود. حال فرض كنيم در يك جمله هيچگونه اشكال لغوي وجود نداشته باشد.
مثلا «او سيب را خوردهام» فاقد غلط املايي است. اما نحو زبان فاربسي به ما ميگويد كه براي فاعل «او» نبايد از فعل «خوردهام» استفاده شود. بنابراين تحليلگر نحوي زبان فارسي از اين جمله ايراد خواهد گرفت و ما ناچاريم يا كلمه «او» را به «من» و يا فعل «خوردهام» را به «خورده است» تغيير دهيم تا اين جمله از نظر نحوي درست باشد، اما حالتي را در نظر بگيريد كه جمله به «او ميز را خورده است» تغيير كند. اين جمله از مراحل تحليل لغوي و نحوي بدون اشكال خواهد گذشت. اما در مرحله تحليل معنايي اشكالي به اين جمله وارد است. زيرا ميز خوردني نيست.
در مباحث پيشرفته زبان محاوره مبحثي به نام اصطلاح وجود دارد كه اين مساله در زبانهاي برنامهنويسي باب نشده است. به عنوان مثال فرض كنيد به جاي «او ميز را خورده است» بگوييم «او كتاب را خورده است». در حالت معمول، تحليلگر معنايي زبان فارسي بايد اين جمله را نيز اشتباه به شمار آورد. اما زماني كه بحث اصطلاح مطرح ميشود، آنگاه اين جمله صحيح خواهد بود و به معناي آن است كه او به محتويات كتاب احاطه كامل دارد و يا جمله «او رايانه را خورده است» به اين معنا خواهد بود كه او به فنون رايانه كاملا مسلط است كه البته كامپايلرها قادر به تشخيص اصطلاحات نيستند.
تشخيص نوع
تشخيص و بررسي نوع يكي از مهمترين مولفههاي تحليل معنايي است كه در آن كامپايلر بررسي ميكند كه هر عملگر، عملوندهايي داشته باشد كه از نظر مشخصات زبان مجاز هستند. مثلا بسياري از زبانهاي برنامهسازي به كامپايلري نيازمندند كه هر زمان از يك عدد اعشاري به عنوان انديس يك آرايه به كار برده شد، اعلام خطا كند يا در جاي ديگر ممكن است براي اجراي اموري ناچار به تبديل خودكار انواع به يكديگر باشد. مثلا در زمان جمع يك عدد صحيح و يك عدد اعشاري نياز است كه عدد صحيح به اعشاري تبديل شود و سپس با عدد ديگر جمع شود.
كد مياني بعد از تحليل
بعد از اين كه سه مرحله تحليل روي برنامه مبدا انجام شد در بعضي از كامپايلرها يك نمونه جديد از برنامه تحت عنوان كدمياني توليد ميشود كه يك نمايش صريح از برنامه مبدا است. در واقع اگر يك ماشين فرضي در نظر بگيريم، اين كد برنامهاي به زبان آن ماشين خواهد بود.
از خصوصيات اين نمايش مياني ميتوان به دو مورد مهم اشاره كرد. يكي آنكه بسادگي قابل توليد بوده و ديگر آنكه ميتواند براحتي به برنامه نهايي تبديل شود. يك شكل از اين كد مياني، شبيه زبان اسمبلي است و در آن به جاي ثباتها، از مكانهاي حافظه استفاده ميشود. اما در حقيقت با زبان اسمبلي تفاوتهاي بسياري دارد. زيرا همانطور كه ميدانيم هر دستور زبان اسمبلي معادل يك دستور در زبان ماشين است و ميتواند مستقيما به آن دستور تبديل شود. در صورتي كه ممكن است يك خط از كد مياني معادل چندين دستور از زبان ماشين باشد.
بهينهسازي
هنگامي كه برنامهاي به زبان سطح بالا مينويسيم ممكن است در تبديل آن به كد مياني، به دستوراتي برسيم كه در كنار يكديگر به يك نتيجه واحد ميرسند.
در كد مياني اين دستورات ميتوانند با يك يا چند دستور معادل همين كد، كه از نظر تعداد دستورات و همچنين سرعت اجرا در پردازنده كمتر هستند جايگزين شوند. به اين ترتيب ميتوان مطمئن بود كه برنامه نوشته شده توسط كاربر، با وجود اشكالات منطقي موجود و يا ضعف الگوريتم، با بيشترين سرعت ممكن در ماشين اجرا ميشود.
مقدار بهينهسازي در كامپايلرهاي مختلف با هم تفاوت دارد به كامپايلرهايي كه بيشترين مقدار بهينهسازي را انجام ميدهند كامپايلرهاي بهينهساز گفته ميشود.
در واقع بخش زيادي از زمان كامپايل برنامه در اين بخش سپري ميشود. البته بهينهسازهاي سادهاي نيز وجود دارند كه بدون كاهش قابل توجه زمان كامپايل به بهينهسازي كد مياني پرداخته و بدين ترتيب سرعت اجراي برنامه مقصد را افزايش ميدهند.
كد اسمبلي
در مرحله آخر كامپايل كد مياني بهينه شده به كدهاي زبان اسمبلي تبديل ميشود. مهمترين كار در اين مرحله تخصيص ثباتهاي پردازنده به متغيرهاست. زيرا همان طور كه گفتيم در كد مياني همه متغيرها به فضاهاي حافظه اصلي نسبت داده ميشوند و در توليد كد اسمبلي براي افزايش سرعت عمل بايد حتيالامكان از ثباتهاي پردازنده به جاي خانههاي حافظه استفاده كرد. پس از اينكه كد اسمبلي توليد شد، اين كد در اختيار اسمبلر قرار داده ميشود تا در نهايت برنامه اجرايي توليد شود.
جدول نشانهها
در ابتداي شروع عمل كامپايل و در مرحله تحليل لغوي برنامه مبدا، جدولي به نام جدول نشانهها يا جدول نمادها (symbol tabie)تشكيل ميشود كه هر يك از شناسههاي تشخيص داده شده در آن ثبت ميشود.
اين جدول اطلاعات بسيار ديگري را در مورد نشانهها از قبيل محل حافظه، نوع شناسه، محل ظاهر شدن آنها در متن برنامه و ... در بردارد و ممكن است در طول مراحل كامپايل بارها به آن مراجعه شده و از اطلاعات آن استفاده شود و يا ممكن است اطلاعات داخل آن توسط ديگر بخشها تكميل شود. جدول نشانهها يا نمادها يكي از مهمترين بخشهاي يك كامپايلر است كه كل عمل كامپايل براساس آن انجام ميشود و با استفاده از محتويات آن بخش عمده خطاها تشخيص داده ميشود و به برنامهنويس اعلام ميشود.
هر كدام از بخشهاي كامپايلر به طور سلسله مراتبي با يكديگر ارتباط داشته و نتايج كار خود را به بخش بعد تحويل ميدهند. هيچيك از اين بخشها به جز با بخش قبل و بعد از خود ارتباط نداشته و ورودي خروجيهاي تحويل گرفته از مراحل مجاور برايشان قابل درك است بخشهايي كه به طور مستقيم با تمام مراحل كامپايلر ارتباط مستقيم دارند يكي جدول نمادها و ديگري بخش تشخيص و رسيدگي به خطاهاست. در نهايت بعد از گذر از كل اين مراحل، در صورت نبود هيچگونه خطايي، كد ماشين توليد و برنامه اجرايي نهايي حاصل خواهد شد و شما ميتوانيد حاصل كار خود را مشاهده كنيد.
####
توانايي در عين سادگي
همانطور كه گفتيم زبان HTML وسيلهاي براي توصيف ساختار يك سند متني وب است كه امكان تكميل آنها به وسيله فرمهاي تعاملي، تصاوير و ديگر اجزاي وب را براي آنها فراهم ميآورد. همچنين قابليت اضافه شدن يك زبان اسكريپتي مانند جاوا اسكريپت به آن نيز براي افزايش تواناييها وجود دارد. در ادامه كمي دقيقتر به بررسي اين زبان خواهيم پرداخت.
عناصر
همانطور كه ميدانيد هر فايل HTML توسط تگها(Tag) به توصيف متن و محتواي اسناد وب ميپردازد. اين تگها درون دو علامت < و > قرار ميگيرند و مرورگرها به وسيله اين ويژگي، تگها را از ساير بخشها و از محتواي اصلي تشخيص ميدهد. هر تگ ميتواند درون خود يكسري خصوصيت نيز داشته باشد كه اين خصوصيات بسته به نوع تگ متفاوت خواهد بود. به عنوان مثال تگ <font >ميتواند خصوصياتي چون نام قلم، اندازه، رنگ و ... را در برداشته باشد. هر چه كه درون يك تگ قرار گيرد آن را كامل ميكند، اما توسط مرورگر نمايش داده نميشود. تنها تاثير آن قابل مشاهده خواهد بود. براي تعيين محدوده تاثير تگها، يك تگ پاياني هم در نظر گرفته ميشود كه تفاوت آن با تگ آغازين آن است كه درون تگ با علامت</ > آغاز ميشود. همچنين يك تگ پاياني هيچگاه خصوصيتي نميگيرد و تنها پايان محدوده را مشخص ميكند. به عنوان مثال <font >/نمونهاي از يك تگ پاياني است. هرچه كه بين دو تگ آغازين و پاياني قرار گيرد به عنوان محتواي سند در مرورگر نمايش داده خواهد شد و شكل نمايش آن تاثير گرفته از تگ يا تگهاي در بردارنده آن خواهد بود.
تگها از نظر نوع به سه دسته ساختاري، نمايشي و فوقمتن تقسيم ميشوند. تگهاي ساختاري مفهوم ساختاري يك متن را توصيف ميكنند. يك نوشته ميتواند تيتر، ميان تيتر، متن اصلي و ... باشد كه هر كدام اندازه و خصوصيات خود را دارند. با تگهاي ساختاري ميتوان اينگونه خصوصيات متنها را مشخص كرد تا ظاهر سند كاملا منظم و ساختيافته به نظر برسد.
تگهاي نمايشي تگهايي هستند كه شكل ظاهر متن و نحوه نمايش آن را توصيف ميكنند. مثلا تگهايي هستند كه براي درشتنمايي (bold) يا مايل كردن متن(italic) به كار ميروند. اين تگها از دسته تگهاي نمايشي هستند.
تگهاي فوقمتن يا ابرمتن تگهايي هستند كه به متن خصوصيتي ميدهند كه آن را از يك متن ساده يكدست متمايز ميسازد. به عنوان مثال، تگ < >A براي ايجاد لينك بين صفحات HTML به كار ميرود. هنگامي كه متني در اين تگ قرار گيرد، علاوه بر اين كه مانند يك متن معمولي نمايش داده ميشود، با كليك روي آن به صفحه ديگري كه درون اين تگ مشخص شده است، هدايت ميشود. اين خصوصيت و خصوصيات مشابه، يك متن را به يك ابرمتن تبديل ميكنند.
كاراكترها و زبانها
هر سندHTML ميتواند محتوي كاراكترها و زبانهاي مختلف باشد. همان طور كه ميدانيم اسناد وب بايد حتيالامكان طوري طراحي شوند كه هر كس در هر كجايي دنيا با هر زباني كه دارد بتواند آن را همان طور كه هست مشاهده كند HTML . اين امكان را ميدهد كه كاراكترهاي مربوط به هر زبان بدون هيچ مشكلي در همه رايانهها به راحتي مشاهده شوند. ضمنا برخي كاراكترها هستند كه معادل آنها روي صفحه كليد وجود ندارد. مثلا كاراكتري مثل خ را نميتوان با استفاده از صفحه كليد به طور مستقيم تايپ كرد. مگر اين كه كد مربوط به آن را وارد كنيم. HTML اين امكان را ميدهد كه با استفاده از يك سري قواعد و قراردادها، از اين كاراكترهاي خاص استفاده كنيم. به عنوان مثال، كاراكتر فوق را كه نماد Copyright است، ميتوان با قرار دادنِ copy; در سندHTML نمايش داد.
پذيرش اشياي خارجي
يكي از مهمترين خصوصيات زبان HTML آن است كه ميتوان كدها، اسناد و اشياي غير HTML را به آن پيوست كرده و از قابليتهاي آنها استفاده كرد. به عنوان مثال ميتوان فايلهاي محتوي اسكريپتهاي برنامهنويسي به زبانهايي چون JS ، VB و... را به آن ضميمه كرد. همچنين ميتوان اسناد CSS را براي نظم بخشيدن به ساختار ظاهري سايتها به فايلهاي HTML پيوست كرد. از موارد ديگر ميتوان به فايلهاي انيميشن flash يا كدهاي مياني زبانjava اشاره كرد كه ميتوان با اضافه كردن آنها به اسناد HTML، امكانات نمايشي و كاربردي بيشتري براي مخاطبان فراهم كرد.
اين زبان در عين سادگي، توانمنديها و قابليتهاي زيادي در زمينه كاربرد خود دارد. ضمن اين كه زبانهاي مرتبط بعد از اين زبان، به امكانات و خصوصيات اين زبان افزوده و سطح كاربري آن را افزايش داده است.
####
يك ابزار براي زبان
نرم افزار خيالباف
يك ابزار براي زبان بسياري از افراد اعتقاد دارند زماني كه فردي ميخواهد به فراگيري مطلبي يا حرفهاي روي بياورد بهتر است اين كار را از ابزارهاي ساده و كوچك آغاز كند. از چندين زاويه، اين ديدگاه درست است. زيرا فرد ممكن است با شروع از يك ابزار پيچيده سردرگم شود و يا اعتماد به نفس خود را از دست بدهد و به نحوي دلزده شود.
اما از ديدگاه ديگر، خوب است فرد يك ابزار قوي را در ابتدا انتخاب كند و با آن پيش رود تا در نهايت به آن مسلط شده و به يك شخص حرفهاي تبديل شود. با اينكه ابزار بزرگ و پيچيده ميتواند فرد را سردرگم كند، از سوي ديگر برخي امكانات و تسهيلات در اينگونه ابزارها وجود دارد كه ميتواند بسياري از كارها را راحت كرده و فرد را به آن كار ترغيب كند. ما در ادامه قصد داريم يكي از قدرتمندترين و كاملترين نرمافزارهاي مطرح دنيا در زمينه طراحي وب را به شما معرفي كنيم كه يقينا افراد حرفهاي و با تجربه در اين زمينه با اين ابزار آشنا هستند.
Dreamweaver
نرم افزار Dreamweaver كه ترجمه تحت اللفظي آن خيالباف است در ابتدا از سوي شركت معروف
macromedia عرضه شد. اما در سال 2005 اين شركت توسط شركت بزرگ Adobe خريده شده و اين محصول نيز از آن پس با نام اين شركت به بازار عرضه ميشود و تنها حدود 20 روز از ارائه آخرين نگارش اين نرمافزار يعني نسخه 4 CS آن ميگذرد.
اين نرمافزار با پشتيباني از چندين زبان تحت وب و امكانات بسيار، شرايط خوب و راحتي براي طراحي سايتها و نرمافزارهاي تحت وب فراهم ميكند. داشتن محيط طراحي دقيق و راحت، به همراه يك ويراستار توانمند از خصوصيات اين نرمافزار است.
نكته قابل توجه در اين نرمافزار آن است كه افراد با داشتن يك ميزان آگاهي مختصر در مورد زبان مورد استفاده خود، ميتوانند به راحتي به طرح نهايي خود برسند. به عبارتي اين ابزار با قابليتهايي كه در آن قرار داده شده است سعي كرده است به ميزان زيادي كاربر از حفظ كردن كدها، خصوصيات، مقادير، توابع و.. رهايي بخشد. به همراه اين نرمافزار يك مرجع بسيار كامل از انواع زبانهاي تحت وب ارائه شده است كه كاربر در طول طراحي هر زمان كه نياز پيدا كرد ميتواند به سرعت به آن رجوع كرده و از آن بهرهمند شود.
امكانات جديد
به نسخه جديد اين نرمافزار امكانات جديد بسيار افزوده شده است كه كاربران را ترغيب ميكند تا نگارش فعلي نرم افزار خود را به نگارش جديد ارتقاء دهند. يك مورد از امكانات جديد اين نرمافزار نمايش زنده طراحي شما در مرورگر است. به اين ترتيب كه شرايط مرورگر را در محيط طراحي در اختيار كاربر قرار ميدهد تا بلافاصله بعد از كوچكترين تغيير، كاربر بتواند نتيجه واقعي عمل خود را در مرورگر مشاهده كند.
از ديگر امكانات جديد اين نرمافزار، امكان ارتباط مستقيم با نرمافزار photoshop و استفاده مستقيم از قالبPSD در طراحي سايت است. با وجود اين نرمافزار ميتوان گفت كه از مبتدي تا حرفهاي ديگر نيازي به ابزار اضافه جهت طراحي صفحات وب نخواهند داشت.
####
چه كسي ويستا ميخواهد؟
ويندوز ويستا يك سيستم عامل گرافيكي است كه در كامپيوترهاي شخصي و خانگي و تجاري، لپتاپ معمولي و تخت و مراكز خبري استفاده ميشود. قبل از معرفي اين سيستم در 22 جولاي 2005 ويندوز ويستا با نام لانگهورن شناخته ميشد. توسعه و تكميل آن در 8 نوامبر 2006 اتفاق افتاد و ظرف 3 ماه از عرضه، بين كارخانههاي نرمافزار و سختافزار، تجار و تكفروشان توزيع شد و در 30ژانويه 2007 بهصورت عمومي و در وب سايت رسمي مايكروسافت نيز عرضه گرديد.
در حقيقت عرضه ويندوز ويستا، 5 سال پس از نسخه پيشين ويندوز اتفاق افتاد كه طولانيترين زمان بين عرضه دو نسخه ويندوز متفاوت است. ويندوز ويستا شامل صدها خصوصيت جديد و اصلاح شده است كه برخي از مهمترين آنها ويژگي جستجوي پيشرفته،Aero محيط گرافيكي جديد كاربر و سبك ويژوال ويندوز صدا، چاپ و زير، Networkingساز ويندوز و DVD ابزارهاي جديد توليد مالتيمديا مثل سيستمهاي نمايشي كاملا تغييركرده هستند.
يكي ديگر از مزاياي ويندوز ويستا، ايجاد ارتباط بيشتر بين كامپيوترها در يك سيستم شبكه خانگي با استفاده از فناوري همنوع به همنوع است كه باعث آساني دسترسي مشترك به فايلهاي صوتيوتصويري ديجيتال بين كامپيوتر و وسايل صوتوتصويري خانگي ميشود. اما به هرحال ويندوز ويستا داراي مشكلاتي هم است.
ويستا يك سيستم عامل كامل محسوب نميشود
شركتهاي سختافزاري و نرمافزاري كه محصولات سازگار با ويستا را توليد ميكنند، همگي براي سيستم عامل جديد آماده نيستند.
بسياري از اين شركتها در حال تكميل درايورها و بهروز رسانيهاي ويستا هستند. مهمتر از همه اينكه، بيشتر شركتهاي كارت ويديو و صدا هم آماده نيستند.
نرمافزارها، از قبيل مجموعههاي امنيتي كه ممكن است پيش از اين هزينه آنها را پرداخت كرده باشيد، احتمالا بر روي ويستا اجرا نميشوند، و برخي از آنها نيازمند بهروز رسانيهايي هستند كه هنوز آماده نشده است.
البتهTrend Micro ، پاندا، CA و سمانتك همگي اعلام كردهاند كه مجموعههاي بهروز رساني شده خود را براي دسترسي به ويستا عرضه خواهند كرد. بازي بر روي ويستا و پشتيباني گرافيكي 10 DirectX در ويستا براي علاقهمندان به بازي بسيار جذاب خواهد بود. اما اين امكان چيزي است كه بعدها بهوجود خواهد آمد.
ويستا گران است
مايكروسافت سه نسخه از ويستا را براي كاربران خانگي در ايالات متحده عرضه ميكند،Home Basic ،Home Premium و Ultimate ارزانترين راه بهمنظور دريافت يك كپي قانوني از ويستا براي كاربران فعلي ويندوز XP خريداري نسخه ارتقاي Home Basic است كه 99 دلار قيمت دارد.
اما ارزانترين نسخه براي شما دردي را دوا نخواهد كرد، زيرا اولا اين كه نسخه ارتقا مستلزم آن است كه شما CD ويندوز XP خود را سالها نگه داريد و در ثاني، Home Basic فاقد قابليتهاي Aero UI و Media Center است.
بهعلاوه، شما نميتوانيد ابزارهاي جانبي Xbox را به Home Basic متصل كنيد. براي بسياري از افراد، اينها در وهله نخست بهترين دلايل براي ارتقا به ويستا محسوب ميشوند.
Home Premium ، 239 دلار براي نسخه كامل و 159 دلار براي نسخه ارتقا (تقريبا با ويندوز XP Home معادل است.) هزينه دارد و البته براي كاربران غيرفني مناسب است كه از سيستمشان فقط براي اهداف شخصي سبك استفاده ميكنند. اما براي آن دسته از كاربراني كه در حال حاضر ويندوز XP Pro را در خانه اجرا ميكنند، ويندوز ويستا Ultimate بهترين گزينه خواهد بودUltimate . همه خصوصيات را در بر ميگيرد و افزون بر اين، ويژگيهاي خاص كاربران حرفهاي در نسخه تجاري ويستا.
نسخه كامل ويندوز ويستا 99 Ultimate3دلار قيمت دارد. لازم به ذكر است كه نسخه ارتقاي ويستا Ultimate ،259 دلار قيمت دارد. ارزانترين ويستا كپياي است كه بههمراه يكPC جديد ارائه ميشود چون در اين صورت مشمول تخفيف بالاي توزيعكننده ميشود. البته طبيعي است كه (متاسفانه) با توجه به عدم رعايت قانون حقوق مولف در كشور، اين تعيين قيمتها براي ما صدق نميكند.
ويستا به يكPC جديد نياز دارد
براي بهرهگيري كامل از قابليتهاي ويستا، احتمالا بايد يك PC جديد بهينهسازي شده براي ويستا خريده شود.
بسياري از امكانات ويستا به سختافزارهايي نياز دارد كه PC كنوني فاقد آنها است. لذا براي اجراي آن بايد سختافزار جديد خريداري شود.
جستجوي جديد ايندكسي ويستا عالي است، اما براي ايندكس، به فضاي ديسك سخت و فضاي ذخيرهسازي اضافه براي خود سيستم عامل نياز است. حتي فكر اجراي ويستا بر روي يك سيستم با كمتر از 1 گيگابايت رم را به ذهن خود راه ندهيد؛ 2 گيگابايت قابل قبول است و 4 گيگابايت مطلوب است
ويستا وقتگير است
هماكنون خريد و نصب ويستا بر سختافزارهاي قديمي، كارهاي وقتگير است چون به احتمال زياد كاربر ناچار خواهد بود درايورهاي جديدي را براي اجزاي سيستم و دستگاههاي جانبي قديمي خود بيابد، نصب و عيبيابي كند.
ويندوز XP منسوخ نيست
ويستا مزاياي جديدي ميافزايد، و در بلندمدت محاسبهگري را سادهتر، سريعتر و خوشايندتر خواهد ساخت. اما در واقع هيچ يك از مسايل موجود را حل نميكند.
ويندوز XP پس از سالها پشتيباني قدرتمند گسترده و وصلههاي سرويس، يك سيستم عامل خوب و بسيار كاربردي است و پشتيباني خوب از آن همچنان ادامه دارد. مايكروسافت متعهد شده كه حداقل هفت سال ديگر XP را پشتيباني كند و حتي قصد دارد سرويسپك 3 را سال آينده ارائه كند.
ويستا: بهترين دليل براي استفاده از لينوكس
سالها پيش، سوييچ كردن از ويندوز به لينوكس تقريبا براي اغلب افراد غير ممكن بود. ما كاملا به برنامههاي كاربردي روميزي وابسته بوديم، كه بسياري از آنها هيچ معادلي بر روي لينوكس نداشتند. اما در حال حاضر، بسياري از كارهايي كه ما انجام ميدهيم برخط هستند، بهگونهاي كه ترك ويندوز و حركت به سمت يك توزيع لينوكس براي اغلب افراد كاملا امكانپذير است. اين كار اكنون يك انتخاب واقعي است، و اساسا يك اولويت محسوب ميگردد.
با وجود ويندوز ويستا بهعنوان سيستم عامل پيشفرض بر روي هر سيستم جديدي كه شما ميخريد، مد نظر قرار دادن حركت بهسمت يك لينوكس اهميت مييابد. گذشته از همه اينها، ويستا به هر حال شما را مجبور به آموختن يك سيستم عامل جديد ميكند، و در كوتاه مدت سيستم عاملي كه كمتر از XP پشتيباني ميشود. در هر دو مورد، شما از يك رابط سه بعدي، widget ها و ساير ابزارها استفاده خواهيد كرد. هماكنون امكان محيط سه بعدي در لينوكس با استفاده از فناوري XGL كاملا مهيا بوده و بسياري از كاربران در حال استفاده از آن هستند.
تحت چه شرايطي شما بايد به يك لينوكس سوييچ كنيد؟
طرفداران و كاربران لينوكس به شما خواهند گفت كه پاسخ اين سوال واضح است: اگر شما خواهان آن هستيد كه سيستمتان كمتر قفل يا هنگ كند، با دردسرهاي كمتري اجرا شود و شكافهاي امنيتي كمتري داشته باشد در اين صورت از يكي از توزيعهاي لينوكس استفاده كنيد. اما اين ديد جهاني كاربران لينوكس است. اگر بهدنبال اتخاذ اين تصميم از ديد جهاني كاربران PC باشيد، در ادامه يك چك ليست كاربرديتر آورده ميشود. سوييچ كردن به يك توزيع لينوكس را مد نظر قرار دهيد اگر:
- اگر اهل بازيهاي PC نيستيد.
- داراي هيچ برنامه كاربردي فقط ويندوزي نيستيد كه بخواهيد همچنان بدون شبيهسازي آن را اجرا كنيد.
- سرمايه كافي براي خريداري قطعات سختافزاري اصلي PC را در اختيار نداريد.
- برنامههاي كاربردي غيرلينوكسي كه كارفرماي انجام آنها را در خانه الزامي كرده، نداريد.
####
آلبومي از نوع امن
در عصر حاضر و با ديجيتاليشدن بخش بزرگي از زندگي افراد، همه ما يك نسخه ديجيتالي از تصاوير شخصي يا خانوادگي درون رايانه خود داريم كه البته نميخواهيم توسط ديگران ديده شوند. نرمافزارهاي متعددي وجود دارند كه انواع فايلها را براي محافظت در برابر مشاهده غيرمجاز رمزنگاري ميكنند. همچنين برنامههاي زيادي ميشناسيم كه براي نمايش فايلهاي تصويري طراحي شدهاند.
نرمافزار (SDA (Secure Digital Album نرمافزاري است كه با استفاده از يك شيوه نوين رمزنگاري و بهمنظور ادغام دو ويژگي ذكر شده، طراحي شده است. در واقع الگوريتم رمزنگاري بر پايه ايمنسازي تصاوير طراحي شده است كه با مدل كردن هر نوع داده ديجيتال به يك تصوير ميتوان آن را با اين روش رمزنگاري كرد. روش رمزنگاري بهكار رفته در اين نرمافزار تا حد بالايي غيرقابل نفوذ بوده و تنها دارنده كليد قادر به رمزگشايي خواهد بود و حتي اگر صاحب تصاوير هم، كليد رمزنگاري را گم كند، احتمالا اطلاعات خود را براي هميشه از دست خواهد داد!
نرمافزارSDA يك برنامه ساده براي نمايش تصاوير با قالب*.jpg است كه اين كار را با بيش از 170 جلوه نمايشي انجام ميدهد. در لبه Browse دو گزينهCommon Show و Secure Show وجود دارد كه بهطور پيشفرض گزينه Common Show فعال است. در اين حالت با انتخاب هر پوشه، فايلهاي با قالب *.jpg ليست ميشود و با كليك روي هركدام، آن تصوير به نمايش در ميآيد.
اما گزينهSecure Show مربوط به نمايش فايلهايي با قالب *.ejpg (Encrypted JPEG) است كه قالبي منحصر به اين برنامه است و براي اين نرمافزار طراحي شده است و در زمان نوشتن اين توضيحات، نرمافزار ديگري وجود ندارد كه قادر به درك اين قالب فايلي باشد.
ejpg قالبي است كه توسط همين نرمافزار و با استفاده از يك كليد رمزنگاري توليد شده است كه آن كليد نيز فايلي با پسوند(Encrypted Key File)*.ekf است و قالبي منحصر به همين نرمافزار است. برنامه تنها در صورتي قادر به نمايش فايلهاي*.ejpg در حالت Secure Show است كه پيش از آن كليد مربوط به آن فايل توسط كاربر در حافظه بارگذاري شده باشد. براي بارگذاري كليد در حافظه كافي است در نوار ابزار برنامه، گزينه Load Key را كليك كرده و سپس فايل كليد را از مسير مورد نظر انتخاب كنيد. لازم به توضيح است كه هر فايل ejpg تنها با استفاده از كليدي كه با آن رمزنگاري شده است، قابل رمزگشايي و نمايش است. در غيراين صورت برنامه قادر به درك محتويات آن نخواهد بود.
كاربر ميتواند فايل كليد را از ديسكهاي قابل حمل يا حافظههاي فلش، به درون حافظه بارگذاري كند و پس از آن، ديسك را از ديسكگردان خارج، يا از درگاه USB جدا كند و پس از آن به مرور تصاوير رمز شده خود بكند. با اين كار، هر زمان كه قصد داشت رايانه را ترك كند، كافي است دكمه Unload Key را از نوارابزار برنامه كليك كند تا فايل كليد از حافظه خارج شده و كاربران ديگر، نتوانند در غياب او به مشاهده تصاوير رمز شدهاش بپردازند.بخش ديگر برنامه كه از لبه Encrypt/Decrypt قابل دسترسي است مربوط به رمزنگاري و رمزگشايي فايلهاي تصويري با قالبjpg است.
در اين لبه ابتدا با انتخاب يكي از دو گزينه Encrypt يا Decrypt تعيين ميكنيد كه قصد داريد به ترتيب عمل رمزنگاري يا رمزگشايي را روي فايل انجام دهيد.
در بخش بعد اگر قصد داريد به كار روي يك فايل بپردازيد، گزينهSingle File Mode و اگر ميخواهيد روي كل فايلهاي jpg موجود درون يك فولدر كاري انجام دهيد، گزينهBatch Mode را انتخاب كنيد. در صورتي كه گزينه Single File Mode را انتخاب كنيد، با فعال شدن دكمه browse مربوطه ميتوانيد فايل مورد نظر خود را براي رمزنگاري يا رمزگشايي انتخاب كنيد و در حالتي كه گزينه Batch Mode را انتخاب كنيد با فعال شدن دكمه browse مربوطه ميتوانيد پوشهاي را كه قصد داريد كل محتويات jpg آن رمزنگاري يا رمزگشايي شود، انتخاب كنيد. در صورتي كه گزينه Include Subfolders علامت خورده باشد، كل فايلهاي jpg فولدر جاري و تمام زيرفولدرهاي آن رمزنگاري/رمزگشايي ميشوند و اگر اين گزينه علامت نخورده باشد تنها فايلهاي موجود در آن فولدر، تحت اين اعمال قرار ميگيرند.
پس از اين نوبت به انتخاب كليد ميرسد. در اين حالت، هم ميتوانيد با انتخاب گزينه Use Old Key File يك كليد موجود را براي عمل مورد نظر خود انتخاب كنيد و اگر عمل مورد نظر، رمزنگاري (Encrypt) باشد، ميتوانيد علاوه بر انتخاب كليد آماده، با استفاده از گزينه Generate New Key File ، كليد جديدي براي خود توليد كنيد. در پايان با فشردن دكمهEncrypt ياDecrypt ، عمل مورد نظر روي فايل يا فولدر انتخابي آغاز ميشود.
بايد توجه داشت كه در حالت Batch Mode، فايلها در همان محل فايل مبدا رمزنگاري يا رمزگشايي و فايل حاصل همنام با فايل مبدا، اما با پسوند متفاوت خواهد بود. در صورتي كه فايلي همنام و همپسوند با فايل مقصد در فولدر مورد نظر موجود باشد، دو انتخاب پيش رو خواهيم داشت. اگر گزينه AutoRename New File if Exists انتخاب شده باشد، به فايل جدبد نامي جديد اختصاص داده ميشود و اگر گزينه Overwrite Existing File انتخاب شده باشد، فايل جديد روي فايل قديمي رونوشت ميشود.
اين نكته را نيز درنظر داشته باشيد كه كليد بارگذاري شده در حافظه براي نمايش امن تصاوير(Secure Show) هيچ ارتباطي با بخش Encrypt/Decrypt ندارد و اين بخش كار خود را تنها با استفاده از كليد انتخابي در قسمت Key انجام ميدهد. اين نرمافزار رايگان بوده و ميتوانيد نسخهاي از آن را كه مخصوص خوانندگان كليك است، بهطور مستقيم از نشاني زير دريافت كنيد:
www.psdic.com/sdapzip
توضيح: اين نرمافزار و روش رمزنگاري آن توسط آقاي پارسا ستودهنيا طراحي و ارايه شده و موضوع پاياننامه دوره كارشناسي ايشان بوده است.
####
درج يك فرمول در سلول
اكسل دو گزينه را براي ورود يك فرمول به سلول پيشنهاد ميكند.
تايپ فرمول
كاربران حرفهاي و كار آزموده اكسل ترجيح ميدهند كه فرمول را مستقيما در سلول يا نوار فرمول درج كنند. اين روش براي كاربراني كه با فرمولها و تركيب آنها آگاهند بسيار مفيد است (يعني ميدانند كجا كاما و پرانتز بگذارند، از ترتيب متغيرها آگاهند و...) اگر از تركيب فرمول موردنظر خود مطمئن نيستيد، علامت = را تايپ كرده و نام فرمول را تايپ كنيد، سپس Crtl+Shift+A را فشار دهيد. اكنون شما تركيب فرمول را ميبينيد. (در اكسلهاي جديد اگر بعد از نام فرمول پرانتزي را باز كنيد نوار زرد رنگي ظاهر ميشود كه از طريق آن ميتوانيد متغيرهاي فرمول را ببينيد.)
ورود دادهها به فيلدهاي ويرايش فرمول
فيلدهاي ويرايش شما را در به كارگيري فرمول ياري خواهند كرد.
ميانبرهايي براي باز كردن جدول فرمول
Ctrl+Aپس از تايپ نام فرمول به سرعت جدول فرمول را باز ميكند. براي مثال: تايپ كنيد = SUM و Ctrl+A را فشار دهيد تا جدول فرمول باز شود.
3 Shift+F كادر محاورهاي Paste Function را باز كنيد. يا از آيكونPaste Function نوار ابزار استفاده كنيد.
اگر همين فرمول را در سلول3 C كپي كنيم حدس ميزنيد كه فرمول چه خواهد بود؟
مرجع مطلق
در مثال قبلي سلول 1B را انتخاب كنيد. در نوار فرمول مرجع1A را انتخاب كنيد و4 F را فشار دهيد. نتيجه عبارت است از: = $1$A
محتواي سلول 1B را به سلول 10B كپي كنيد. توجه كنيد كه فرمول تغيير نميكند و مرجع همچنان $1$= A است.
كليد 4 F
اين كليد ميانبر مهمي است. ميانبر4 F كه با مراجع مطلق و نسبي سر و كار دارد، چهار حالت دارد. سلول 1B را انتخاب كنيد و سپس نوار فرمول را پس از علامت = انتخاب كنيد.
حالت1 - مرجع مطلق بري سطر و ستون. 1$$A=
حالت2 - مرجع نسبي براي ستون و مرجع مطلق براي سطر،1$= A
حالت3 - مرجع مطلق براي ستون و مرجع نسبي براي سطر،1$= A
حالت4 مرجع نسبي براي ستون و سطر،1= A
4F را چند بار فشار دهيد. به فرمول دقت كنيد كه چگونه هر بار كه 4F را فشار ميدهيد تغيير ميكند.
####
چگونه امنيت سيستم ها را ارزيابي كنيد
عمرا بتوني منو هك كني!
در شمارههاي گذشته با بخشهاي اصلي برنامه nmap آشنا شديد و در اين شماره با گزينههاي مختلف بخش Scan آشنا خواهيد شد.
بخشScan
گزينه:Connect پيش از توضيح درباره اين نوع اسكن بايد ذكر كنم كه در توضيحات، من از اصطلاحات رايجTCP/IP استفاده كردهام و اين مطالب براي كساني قابل درك است كه آشنايي قبلي باTCP و پروتكلهاي آن داشته باشند كه در مقالات گذشته در مورد شبكهها و پروتكلهاي آن مطالبي را ارائه دادهايم.
گزينهConnect يك نوع پويش از نوع TCP است كه سعي ميكند تا هندشيك(Handshake) سه طرفه TCP را با هر پورت هدف روي سيستمي كه اسكن ميشود، كامل كند، براي اينكه اين موضوع را كامل درك كنيد كه پويش از نوع TCP Connect به چه صورت است، هندشيك سه طرفه را بيشتر براي كساني كه اين مسايل را نميدانند توضيح ميدهيم:
براي انجام هندشيك سه طرفه در ابتدا كامپيوتر ما كه يك كلاينت است، به سمت سرور يك بسته هماهنگ كننده(SYN) ميفرستد كه يك درخواست براي اتصال است.
در مرحله بعد اگر سرور اين درخواست را قبول كند، براي سيستم ما يك بسته پاسخ دريافت (SYN/ACK) ارسال ميكند و سپس در مرحله 3 كامپيوتر ما يك بسته ACK براي سرور ميفرستد و ارتباط بين دو كامپيوتر و شبكه برقرار ميشود. تمام اتصالهاي مجازTCP مثل Telnet ،Http وFTP بهوسيله همين هندشيك سه طرفه و راهي كه در بالا ذكر شد ارتباط برقرار كرده و به يكديگر وصل ميشوند. ولي احتمال كمي وجود دارد كه اسكن از طريق گزينه Connect باعث Crash شدن سيستم قرباني شود. اين نكته قابل ذكر است كه استفاده از اين نوع پويش كمي براي هكر خطرناك است چون اگر پورت باز باشد سيستم هكر هندشيك سه طرفه را با يك ACK تمام ميكند و بعد با استفاده از بستههاي FIN اتصال را قطع ميكند كه اين كار باعث ميشودIP هكر درlog فايلهاي سرور ثبت شود و اگر پورت بسته باشد، هيچ بسته SYN-ACK توسط سرور برگردانيده نميشود و يا يك بسته RESET فرستاده ميشود و اين پاسخها به معناي اين است كه پورت بسته است.
در هر صورت اسكن از طريقه گزينه Connect اطلاعاتي از شما را در log فايل ثبت ميكند و هكرهاي حرفهاي كمتر از اين گزينه براي اسكن استفاده ميكنند و اكثر آنها سعي ميكنند از اسكنينگ مخفيتري استفاده كنند تا ردپايي از خود در سرور قرباني خود برجاي نگذارند.
گزينه SYN Stealth: اين نوع اسكن كه به آن پورت اسكنTCP SYN هم ميگويند پيشفرض اسكنينگها در برنامهZenmap است كه چند ويژگي نسبت به گزينه Connect دارد، اول اينكه اين نوع اسكن مخفيتر از پويشConnect است، دليل آن هم اين است كه اسكن TCP SYN فقط بسته SYN اوليه را بهسمت پورت هدف ميفرستد و منتظر جوابSYN-ACK ميماند تا بفهمد كه پورت باز است يا خير، اگر پورت باز باشد و سيستم قرباني بستهSYN-ACK را براي سيستم ما ارسال كند برنامه Nmap و اين گزينه سريع يك بستهReset براي سيستم قرباني ميفرستد تا قبل از اينكه اتصال كامل شود، آن را قطع كند پس در اين صورت ديگر كامپيوتر ما براي سرور بسته ACK نميفرستد، بنابراين مرحله 3 در اين نوع اسكن بهكار گرفته نميشود.
اگر از طرف سرور يك بسته SYN/ACK براي ما فرستاده شود، به اين معنا است كه آن پورت باز است و اگر يك بسته Reset يا RST/ACK برسد يعني آن پورت بسته است. بنابراين اين نوع اسكن هويت هكر را پنهان ميكند. البته اگر سرور براي ثبت وقايع از برنامههاي خاص خود و براي كنترل بستهها از روترها و فايروالها استفاده كند تا حدودي امكان پويش كامل و دقيق سيستم از هكرها گرفته ميشود.
امكان ديگر پويش از طريقهSYN سرعت اين نوع اسكنينگ است چون دو سوم هندشيك را انجام ميدهد و به همين دليل از نوع اسكن Connect سريعتر به نتيجه ميرسد؛ زيرا ديگر بستهACK را بهسمت سيستم قرباني ارسال نميكند و آخرين نكته اين نوع اسكن در اين است كه اگر يك حمله هماهنگ به سمت سرور با اين نوع پويش و فرستادن بستههاي SYN بشود ممكن است (بستگي به قدرت آن سرور و هماهنگ بودن هكرها) سرور قرباني Down شود، پس با نصبIDS و فايروالهاي سختافزاري و با بستن پورتهاي نامشخص و بياستفاده راه نفوذ هكرها را بسيار سختتر كنيد.
گزينه هاي Fin Stealth،Xmas Tree و Null Scan : اين نوع پويشها براي سيستمهاي ويندوز مثل 2000 و پايينتر نوشته نشده است و براي اين سيستمها كار نميكند چون سيستمهاي ويندوز از RFC ها در مورد اينكه اگر بستههاي FIN ،Xmas Tree وNull وارد شوند چه زماني بايد Reset فرستاد، پيروي نميكنند.
براي مثال كاري كه گزينه FIN Stealth انجام ميدهد به اين صورت است كه يك بسته FIN به هر پورت ميفرستد كه اگر در پاسخ بسته Reset نشان داده شود به معناي بسته بودن پورت است و اگر پاسخي دريافت نشود اين نتيجه گرفته ميشود كه ممكن است پورت باز باشد ولي در كل اين 3 گزينه براي پويش كلاينتها و سرورهايي كه از سيستم عاملهايي غير از ويندوز استفاده ميكنند بهكار ميرود و خيلي هم سودمند است.
گزينه Ping Sweep : اين نوع پويش نيز آيپيهاي فعال در يك شبكه را پيدا ميكند و ميتوان گفت كه اين گزينه همان كار آيپي اسكنينگها را انجام ميدهد و براي اين كار برنامه Nmap يك بسته درخواستICMP Echo را به تمام آن آيپيها ارسال ميكند تا مشخص شود كه كدام سيستمها در آن لحظه فعال هستند. در هر صورت از اين گزينه نيز ميتوانيد براي پيدا كردن آيپيهاي فعال در يك ISP استفاده كنيد و سپس به وسيله توضيحاتي كه داده شد، هر كدام از آن آيپيها را براي پيدا كردن پورتهاي باز پويش كنيد.
بهروز کمالیان