مقالات کامپیوتری

تعریف پورتال

مقدمه

هدف از این مقاله ، نگاهی به واژه پورتال و ارائه تعریف و چهارچوبی برای آن می باشد. برای ارائه این تعریف سعی شده از منابعی استفاده گردد که بیشترین اشتراک را داشته اند ؛ زیرا که به واسطه تعاریف متعدد  ارائه شده در سالهای اخیر، پورتال به یکی از پیچیده ترین لغات تبدیل شده است به طوری که  برای هرفرد تعریف خاصی دارد و همین مساله سبب سوتفاهم های زیادی در تعریف آن شده است .

تعریف پورتال

تعریف اولیه پورتال بسیار ساده است : "مکانی (Hub) که ساده ترین کاربران اینترنت با رجوع به آن بتوانند به راحتی از  سرویس های متداول در اینترنت بهره مند شوند و یا  اطلاعات مورد نیاز خود در  را بدست آورند ". هریک از این کلمات دقیقا نشان دهنده ویژگی خاصی از پورتال هستند :

مکان : در اکثر موارد  پورتال به عنوان یک وب سایت با ویژگی های خاص شناخته می شود. این وب سایت می تواند  یک واسط (Interface) بین کاربران و تعدادی وب سایت زیر مجموعه پورتال باشد و یا اینکه به عنوان وب سایتی واسط، بین کاربران و اینترنت قرار گیرد. اما  تعاریفی نیز وجود دارند که مستقیما از لغت وب سایت استفاده نکرده در  این مورد سکوت می کنند : "پورتال دروازه ای است به سایتهای دیگر " و یا "پورتال نقطه ورود کاربران به اینترنت است " .

ساده ترین کاربران : کاربرانی که به پورتال مراجعه می کنند ، لزوما کاربران حرفه ای اینترنت نیستند. پورتال این توانایی را به کاربران می دهد که حتی کم تجربه ترین آنها بتواند از اطلاعات و سرویسهای ارائه شده استفاده کند . بر حسب نوع پورتال ، کاربران آن نیز متفاوتند و شامل کاربران معمولی ، مشتریان ، تولیدکنندگان ، کارمندان سازمان و... باشند .

سرویس های متداول در اینترنت : هر وب سایتی بر حسب نوع فعالیت کاری خود ارائه دهنده سرویس خاصی است . اما یک پورتال باید توانایی ارائه سرویس های عمومی باشد نظیر سرویس پست الکترونیک رایگان ، انجمن ،تالار گفتگو ، اخبار ، نقشه های مرتبط با موضوع پورتال ، جستجو در سایتهای زیر مجموعه و اینترنت ، شخصی سازی توسط کاربر و شخصی سازی توسط پورتال(Tailoring) باشد . در پورتالهای تجاری خدمات خرید و فروش آنلاین ، ارائه کاتالوگ و سیستمهای پرداخت لحاظ می گردند .

اطلاعات مورد نیاز  : یکی از ویژگی های  پورتال  دریافت اطلاعات از سایتهای دیگر(Content aggregation) است . پورتال تنها دریافت کننده اطلاعات است و آنها را به اشتراک می گذارد . به عبارت بهتر پورتال اطلاعاتی که در سایتها و پایگاههای مختلف وجود دارد را  سازماندهی کرده و نمایش می دهد. در نظر داشته باشید که این اطلاعات باید استاندارد شده باشند .

بنابراین  :

  • پورتال ، تولید کننده و مدیریت کننده اطلاعات نیست .

  • پورتال ،  استاندارد کننده اطلاعات نیست .

  •  پورتال ،  یک وب سایت همه کاره نیست .

به عبارت دیگر پورتال چهارچوبی است که اطلاعات و سرویسهای منابع مختلف را کنار یکدیگر قرار داده و تحت یک طرح امنیتی ارائه می دهد . با استفاده از پورتال می توان به یکپارچه سازی سیستمهای مجزا کمک کرده و کاربران  را برای استفاده از خدمات موجود یاری داد.

+ نوشته شده در  سه شنبه 1388/01/25ساعت   توسط سعید  | 

ویژگی های پورتال

بر طبق نکاتی که در تعریف پورتال داده شد ویژگی های پورتال عبارتند از :

1-     ارائه  شخصی سازی  اطلاعات و کاربری های پورتال بر حسب نیاز کاربر توسط شخص یا خود پورتال . (PersonalizationوTailoring)

2-     ارائه سیستمهای  جستجو و دایرکتوری  به گونه ای که کاربر در کمترین زمان ممکن به اطلاعات دست یابد . (Search and Directory)

3-     ارائه امکان شخصی سازی برای تغییر ظاهر و ساختار پورتال به ازای هر کاربر (End user customization)

4-     ارائه ساز و کار  مدیریت اطلاعات به افراد مسوول پورتال .(Content & Data Management)

5-     ارائه مکانیزمهایی به مدیران پورتال برای پاسخگویی به نیازهای افراد مختلف در سازمان.

6-     پشتیبانی برقراری ارتباط با منابع خارج از پورتال نظیر  web service و سایتهای دیگر ،  برای دریافت اطلاعات و سرویسهای مورد نیاز .

7-      عدم وابستگی به پهنه ای (Platform) خاص به گونه ای که برای تمامی افراد با سیستم عاملهای مختلف و مرورگرهای مختلف قابل دسترس باشد(Cross-platform functionality) . این مورد شامل پشتیبانی توسط سیستمهای PDA و موبایل نیز می گردد .

8-     Single sign-on :  مکانیزمی که به وسیله  آن کاربر تنها با یک بار ورود به سیستم  به تمام سرویس ها و اطلاعات محدوده خود دسترسی داشته باشد .

9-     راهکارهای امنیتی به منظور تعیین سطوح دسترسی کاربران و نقش هر کاربر در سیستم. این سطح دسترسی شامل بازدیدکنندگان و مسوولین پورتال می شود.(Security)

10- ساختار مشخصی برای ارائه اطلاعات به کاربر(Taxonomy)

11-  ساختار پیمایش ساده به گونه ای که کاربر با کمترین کلیک به مکان ، سرویس و یا اطلاعات مورد نظرش دست یابد .( Browse / Navigate Documents)

12-       ایجاد امکان ارتباط کاربران با مسوولین پورتال و دیگر کاربران پورتال به صورت همزمان (“Chat”)یا غیر همزمان (“Forum”) . (Collaboration)

13-       ارائه سرویس های متداول در اینترنت

14-       ارائه مکانیزمی که از طریق آن کاربران بتوانند در بخش های مختلف پورتال عضو شده و در صورت تغییر اطلاعات آن بخش و یا افزودن اطلاعات جدید  ، Email  دریافت کنند .( Subscribe / What’s new)

15- ارسال پیام به ازای رویدادهایی که برای کاربر مهم هستند . این سیستم با استفاده از  email و یا خود پورتال پیامی برای مشتری ارسال کرده و به او می گوید که رویداد درخواست شده اتفاق افتاده است . به عنوان مثال کاربران می توانند در بخش تنظمیات خود ،  برای دریافت پیامهای شخصی ، دریافت یک وظیفه ، دریافت یک خبر با عنوانی خاص  "دریافت پیام " را درخواست کنند.(Alert)

16 مدیریت گردش کار - تمامی فرآیندها  دارای یک روند اجرایی هستند . این فرآیند به بخشهای مختلف تقسیم شده و با زمان بندی مشخص به افراد مختلف اختصاص داده و انجام می شوند. حداقل امکانی که به بهتر شدن کیفیت فرآیند کمک می کند ، پیاده سازی آن بر روی کاغذ می باشد. اما آیا این امکان کافی است ؟ آیا بدین وسیله می توان علاوه  بر روند کار ، نحوه انجام کار و زمان بندی آن را کنترل کرد ؟ یکی از امکانات پورتال ارائه مدیریت گردش کار است. (Workflow Management)

 بر این اساس می توان فرآیندی در سیستم تعریف کرد و با استفاده از امکانات " زمان بندی " و "فازبندی " ، فرآیند را به وظایف کوچک تر تقسیم کرد ؛ به گونه ای که هر وظیفه نه تنها نشان دهنده فرد انجام دهنده ، بلکه نمایش دهنده زمان بندی انجام فرآیند نیز  باشد. حال اگر بخش مدیریت گردش کار کنار سیستم Alert و یا ارسال پیام از تقویم شخصی قرار گیرد ، می تواند کمک موثری در نظارت و پیش برد آن فرآیند نماید. در انتها توصیف گرافیکی فرآیند برای ایجاد کننده  فرآیند و کسانی که در انجام فرآیند سهیم هستند،  این حسن را دارد که بتوانند درک بهتری از آن داشته باشند و حتی پروسه را اصلاح کنند تا در زمان بندی ها صرفه جویی شود .

علاوه بر این ، در صورتی که فرآیند انتخابی در طول زمان انجام خود احتیاج به بهره گیری از بخشهای مختلف پورتال داشته باشد ، می تواند محک خوبی برای شناخت ارتباطات لازم ما بین بخشهای  های پورتال باشد.

+ نوشته شده در  سه شنبه 1388/01/25ساعت   توسط سعید  | 

انواع پورتال

پورتال را می توان  بر حسب محتوا و مخاطب طبقه بندی کرد :

محتوا :   "چه سیستم و اطلاعاتی توسط پورتال ارائه می شوند ؟"

  •  پورتالهای اطلاعاتی ( Information Portal )، پورتالهایی هستند که بیشتر اطلاعات استاتیک موجود در منابع مختلف را گردآوری کرده و نمایش می دهند.

  •  پورتالهای کاربردی ( Application Portal ) ، پورتالهایی هستند که بیشتر ارائه دهنده سرویس هستند .

مخاطب  : " مخاطب  پورتال چه کسی است ؟ " 

  •   پورتال افقی ( Horizontal Portal - Hortal ) ارائه دهنده اطلاعات و سرویسهای مختلفی است ، و افراد مختلف را پاسخگو می باشد به عنوان مثال پورتالی که در آن خرید و فروش کالاهای مختلفی صورت می گیرد .

  •  پورتال عمودی ( Vertical Portal- Vortal )  بر روی عناوین خاص و یا سرویسهای خاص تمرکز دارد و پاسخگوی گروه خاصی می باشد . به عنوان مثال پورتالی که به خرید و فروش محصولات یک صنعت خاص و اخبار همان صنعت اختصاص می یابد . (شکل 1 )

تصویر  1 - طبقه بندی پورتال

 

علاوه بر طبقه بندی محتوایی پورتال ، طبقه بندی دیگری وجود دارد که پورتال را به دوبخش پورتالهای تجاری (Commercial Portal) و پورتالهای سازمانی (Enterprise Portal) طبقه بندی می کند.

پورتالهای سازمانی ( B2E )

1- EIP یا Enterprise Information Portals

این پورتال که برای استفاده کارمندان و به منظور بهبود روند دسترسی افراد به اطلاعات ، به اشتراک گذاشتن اطلاعات مختلف و کار بر روی اطلاعات طراحی می گردد . با استفاده از EIP می توان پروسه ها و کنترل روند اجرای فرآیندهای  سازمان، مخزن اطلاعات  (Data Warehouse)  ، برنامه های کاربردی در سطح سازمان را یکپارچه کرد .

EIP امکان دسترسی کارمندان به انواع دیگر پورتال نظیر e-business Portal و پورتالهای شخصی را فراهم می آورد . به صورت خلاصه می توان گفت که EIP ، برنامه ای است که  شرکتها را قادر می سازد تا به کاربران اجازه دهند تا به اطلاعات درون سازمانی آنها  دسترسی داشته باشند ، آنها را شخصی کنند و در انتها بر حسب اطلاعات موجود تصمیم درستی  بگیرند.

انوع  این نوع پورتال عبارتند از :

       1-1 Business intelligence portals

  Business intelligence شامل برنامه هایی است که برای جمع آوری ، ذخیره سازی ، تحلیل و دسترسی به اطلاعات بکار می روند وبه کاربران این اطلاعات اجازه می دهد که بر حسب این اطلاعات بهترین تصمیم گیری انجام دهند . همچنین  این نوع پورتال، از انواع پورتالهای سازمانی است که   به کاربران امکان می دهد تا به پورتال دسترسی داشته  و گزارش هایی را وارد بانک اطلاعاتی سازمان نمایند .این اطلاعات -که کاملا به روز هستند  - در تصمیم گیری های استفاده کنندگان تاثیر زیادی دارند .IBM و Oracle از ارائه دهندگان این نوع پورتال هستند.

         1-2 Business area (Intranet) portals

 پورتالهایی که تنها عملکردهای خاص درون سازمانی را شامل می شوند . Authoria وPeopleSoft در زمینه مدیریت منابع انسانی ، SAP Portal  و Oracle در زمینه ERP ، Siebel در زمینه بازاریابی و فروش از ارائه دهندگان این نوع پورتال هستند. این نوع پورتال به کارمندان کمک می کند که به اطلاعات ذخیره شده در سازمان ذخیره شده اند دسترسی داشته باشند و از آن برای هدف تعیین شده استفاده کنند.

         1-3  Role portals

این نوع پورتال سه نوع مدل تجاری  (Business Model) را پشتیبانی می کند. بدین صورت که برای هریک از انواع B2E ، B2C و B2B خدماتی ارائه می دهد .

این پورتال در محدوده B2E ، به کارمندان اجازه می دهد تا به اطلاعات مورد نظر خود دسترسی داشته باشند. خروجی این نوع پورتال قابل شخصی سازی است.. در محدوده B2C به شرکت اجازه می دهد که با مشتریانش ارتباط برقرار کند. در این محدوده خدماتی نظیر سفارش دهی ، صدور صورتحساب ، پشتیبانی و پیگیری انجام فرایند به صورت الکترونیکی را فراهم می کند. در محدوده B2B این نوع پورتال به شرکت اجازه می دهد که نحوه انتقال اطلاعات ، فعالیتهای تجاری و فرایندهای  بین خود و تولید کنندگان، شرکت های همکار و توزیع کنندگان  خود را کنترل نماید .

2-   e-Business (Extranet) Portals

          این نوع پورتال دارای سه  زیر مجموعه است :

       2-1  Extended enterprise portals

 این نوع پورتال در محدوده B2B به شرکتهای همکار و تولید کننده  اجازه می دهندکه به Exteranet  شرکت دیگر دسترسی داشته باشند . در این حالت خدماتی نظیر سفارش کالا ، مطرح کردن درخواست مناقصه  مورد استفاده قرار می گیرد . در محدوده B2C این نوع پورتال به مشتریان  اجازه می دهد که به Extranet شرکت  دسترسی داشته باشند و خدماتی نظیر سفارش کالا ، صدور صورتحساب و خدمات مشتری  دریافت نمایند.

       2-2 e-Marketplace portals

این نوع پورتال به کاربران اجازه می دهند که کالاهای خود را برای خرید و یا فروش بر روی پورتال قرار دهند. این نوع پورتال ارتباط بین خریدار و فروشنده را برقرار کرده و با ارائه اخبار و اطلاعات مرتبط با موضوعی که در آن زمینه فعالیت می کند به کاربران سایت کمک می کند تا تصمیم گیری درستی داشته باشند.

        2-3 ASP portals

این نوع پورتال ، در محدوده B2B  بوده و به کاربران خود اجازه می دهد تا خدمات و کالاهای موجود را اجاره نمایند . نمونه های این نوع پورتال عبارتند از :

  • Portera’s ServicePort

  • Salesforce.com

  • SAP’s MySAP.com 

  • Oracle’s oraclesmallbusiness.com

3 - Personal (WAP) portals

     3-1    Pervasive portals or mobility portals

این نوع پورتال که در تلفنهای همراه ،  PDA ، ومحصولاتی از این قبیل وجود دارد ، به عنوان یک سرویس مهم برای کارمندان و مشتریان مطرح می شود . زیرا که این دو گروه با استفاده از این نوع پورتال می توانند اطلاعات لازم جهت خدمات دهی ، کالا ، قیمت ، تخفیف ، وضعیت پرداختها و وضعیت حمل و نقل کالا را کنترل نمایند..

4-   Public or Mega (Internet) portals

سازمانهایی که در این گروه قرار می گیرند ، بر روی جذب تعداد زیاد مخاطب آنلاین  کار می کنند. این نوع پورتال شامل دو زیر گروه می گردد :

     4-1  پورتالهای تجاری (پورتالهای شخصی)

پورتالهایی که اطلاعات را به صورت عمومی در اختیار افراد  قرار می دهند . این پورتالها اغلب دارای سرویس های رایگان بوده و هزینه های خود را از طریق تبلیغات بدست می آورند . مخاطب این پورتال عام مردم هستند که برای ارتباط با دیگران و همچنین بهرمندی  از اطلاعات  اینترنت از پورتال استفاده می کنند . نکته جالب در مورد این نوع پورتال این است که اغلب موتور های جستجوی قدیمی با افزودن سرویسهایی در گروه پورتالهای تجاری قرار می گیرند .

اطلاعاتی  که اغلب در این نوع پورتال ارائه می شود شامل قیمت سهام ، گزارش هواشناسی ، اخبار ، فهرست برنامه های تلویزیونی می باشد.برنامه هایی که در اختیار کاربران این سیستمها قرار می گیرد شامل تقویم ، بازی های آنلاین ، دایرکتوری های آدرس و تلفن افراد و برنامه ریز الکترونیک  برای یادداشت کارهای روزانه و تنظیم ملاقات می باشد . .

عناوینی که در اینگونه پورتال ارائه می شوند ، اغلب شامل مطالبی است که عام مردم به آن علاقه مندند: نظیر ورزش ، سرگرمی ، داد و ستد، علوم و آموزش .

امکانات شخصی سازی در این گونه پورتال شامل ، اطلاعات و ظاهر سایت می باشد . نکته ای که در مورد این نوع پورتال مهم است این است که تمامی افراد به اطلاعات ذکر شده دسترسی دارند،  حتی اگر به سیستم وارد نشده باشند.  پورتالهایی نظیر Yahoo ، MSN  و AOL   در این گروه قرار می گیرند. تعداد این نوع پورتال در حال کاهش است .

     4-2 Industrial portals, vertical portals or vortals

تعداد این نوع پورتال به سرعت در حال افزایش است . این نوع پورتال  بر روی مخاطبین با علایق خاص نظیر کامپیوتر، خرده فروشی ، خدمات بانکی و بیمه  تمرکز دارد.مثال این نوع پورتال ivillage.com برای خانواده ها می باشد.

+ نوشته شده در  سه شنبه 1388/01/25ساعت   توسط سعید  | 

مایکروسافت

مایکروسافت

img/daneshnameh_up/2/2d/compics00169.jpg


شرکت مایکروسافت (Microsoft Corporation) یک شرکت تکنولوژی کامپیوتری چند ملیتی آمریکایی می باشد که بزرگ‌ترین شرکت نرم افزاری دنیا به شمار می رود که دارای درآمد سالانه 44.28 میلیارد دلاری و دارای حدود 76,000 کارمند در بیش از 102 کشور جهان است. پایگاه اصلی مایکروسافت در ردموند در ایالت واشنگتن آمریکا واقع شده است. مایکروسافت در زمینهٔ تولید، صدور مجوز، و ارائهٔ خدمات نرم‌افزاری و سخت افزاری فعالیت‌های گسترده‌ای دارد. معروف‌ترین محصولات این شرکت سیستم عامل ویندوز و مایکروسافت آفیس هستند که هر دو به موفقیت گسترده‌ای در میان کاربران رایانه دست یافتند. نام این شرکت گاهی نیز به صورت مخفف MS و MSFT به کار می رود.
این شرکت در سال ۱۹۷۵ توسط بیل گیتس و پل آلن در شهر ردموند ایالت واشنگتن آمریکا تأسیس شد. مایکروسافت از تمام وجوه اعم از نرم افزارها، مدارک و ساپورت ها و کالاها برای تمام فعالیتهای کامپیوتری پیشرفت کرد.



تاریخچه


"Micro-soft" (کوتاه شده کلمات Microcomputer software) در ابتدا توسط بیل گیتس و پل آلن در Albuquerque در نیو مکزیکو سال ۱۹۷۵ ایجاد شد، که فعالیت آنان برای گسترش و فروش basic Interpreters برای Altair ۸۸۰۰ بود. سرانجام این کمپانی توانست حکمفرما تمام سیستم‌عامل‌ها شود. واژه مایکروسافت (بدون خط فاصله بین دو جزء مایکرو و سافت) را اولین بار بیل گیتس در نامه ای که نوامبر ۱۹۷۵ به پل آلن نوشت، به کار برد. ایجاد کننده کمپانی، پل آلن در راه برای ملاقات بیل گیتس بود که آن وقت به مجله ای برخورد که حاوی اطلاعاتی در مورد Altair ۸۸۰۰ بود. Altair ۸۸۰۰ اولین microcomputer (ریزرایانه) بود که وارد عرصه رقابت کامپیوتری شد. چند روزی بعد، بیل گیتس با MITS که سازنده آن میکروکامپیوتر بود تماس گرفت و آنان را از ساخت نرم افزاری که توسط گروهش با Basic نوشته شده بود مطلع ساخت. این نرم افزار برای Altair ۸۸۰۰ نوشته شده بود. جالب اینجا بود که نه بیل گیتس و نه پل آلن تا آن موقع دست هم به Atair ۸۸۰۰ نزده بودند. ولی با این حال، MITS بسیار تمایل به داشتن این برنامه داشت. بعد از هشت هفته، هنگامی که گیتس و آلن به این باور رسیدند که برنامه به پایان رسیده و آماده انتشار هست، آلن به MITS رفت تا سیستم جدید بیسیک را پرده برداری کند. آلن تا حالا Altair به دست هم نگرفته بود، با این حال توانست با موفقیت نرم افزار را ارائه دهد. و همین باعث شد تا MITS برنامه ی آنان را برای Altair platform خریداری کند. بعد از این موفقیت گیتس دانشگاه (هاروارد) را رها کرد و به دنبال بازار رفت و در نهایت کمپانی مایکروسافت را تأسیس کرد.
در سال ۱۹۷۸ مایکروسافت اولین دفتر بین المللی اش را در ژاپن راه انداخت و یک سال بعد هم دفترش را از نیومکزیکو به واشنگتن برد. استیو بالمر، همان موقع به مایکروسافت پیوست و جالب این که با ریاست گیتس جوان بر هیأت رئیسه هم موافقت کرد. مایکروسافت اولین سیستم عامل خود را در۱۹۸۰ به بازار عرضه کرد. این سیستم عامل، ورژن متفاوتی از یونیکس بود که شرکت با کسب اجازه از AT&T با عنوان زی نیکس به بازار فرستاد. زی نیکس خیلی فراگیر نبود و در ابتدا فقط توسط نرم‌افزارسازها مورد استفاده قرار می گرفت. اما نکته قابل توجه این است که این ورژن یونیکس، تبدیل به نخستین ورژن مایکروسافت ورد شد. مایکروسافت ورد (که آن موقع اسمش مولتی تول ورد بود) به خاطر قابلیت نمایش متن های بولد شده در کنار سایر توانایی هایش خیلی زود معروف شد. البته شعار هر چه می بینی، همان را می گیری هم به این امر کمک کرد. کپی های مجانی مایکروسافت ورد به همراه شمارة نوامبر ۸۳ مجله PC-WORLD بین مردم توزیع شد. کاری که برای اولین بار اتفاق می افتاد. اما موفقیت اصلی مایکروسافت، با سیستم عامل DOS اتفاق افتاد؛ آن هم فقط یک سال بعد از عرضه مولتی تول ورد به بازار و بعد از این که مذاکرات مایکروسافت با دیجیتال ریسرچ به نتیجه ای نرسید. IBM قراردادی با مایکروسافت بست تا ورژن جدیدی از سیستم عامل CPM را تهیه کند. مایکروسافت برای این کار۵۰هزار دلار به تیم پترسن داد و سیستم عامل سریع و کثیف( QDOS (Quick & Dirty را خرید و با نام PC-DOS به IBM داد . منتها به خاطر قوانین کپی رایت، IBM ناگزیر شد CPM و PC-DOS را با هم به بازار بفرستد. اولی۲۵۰ دلار و دومی۴۰ دلار. خب شما باشید، کدام را می خرید؟ ملت آمریکا هم همین کار را کردند و نتیجه این شد که به قول معروف، مشتری بر PC-DOS جوشید!





وقتی که ویندوز آمد

img/daneshnameh_up/3/3c/compics00146.png


با همه این موفقیت ها مایکروسافت هنوز شرکت خیلی مهمی محسوب نمی‌شد و خرده پا بود. گیتس و دوستانش دنبال یک فرصت مناسب می گشتند تا بیشتر از این ها خودشان را مطرح کنند. این فرصت وقتی دست داد که شرکت کمپک، بایاس ( BIOS ) IBM را گرفت. به دنبال این اتفاق، مایکروسافتی بر آن شد که جایگاه IBM را در بازار سیستم عامل بگیرند. آن ها سیستم عامل MS-DOS معروف را طراحی کردند که روی PC های غیر IBM ای قابل استفاده بود. و به این ترتیب، مایکروسافت سری در بین سرها درمی آورد. تا این لحظه هیچ خبری از ویندوز نیست. نسخه ابتدایی ویندوز در نوامبر ۱۹۸۵ به بازار آمد که در واقع، همان نسخه گرافیکی MS-DOS بود. اما قبل از آغاز امپراتوری ویندوز بر سیستم عامل ها، باید رقیب جدی دیگری از سر راه برداشته می شد: OS2، که محصول یک پروژه مشترک بین IBM و مایکروسافت بود و در ۱۹۸۷ بعد از نسخه ابتدایی ویندوز وارد بازار شده بود. دو سال بعد مایکروسافت اعلام کرد که نسخة آخر ویندوز یعنی ویندوز ۳ را در سال های نخست دهه۹۰ به بازار خواهد فرستاد. بعد از اعلام این خبر، گیتس با تلاشی آرام و چندساله، سعی کرد این مسأله را جا بیندازد که برخلاف تصور، آینده کامپیوترها در دست او S2 نیست. او در می۱۹۹۱ رسما اعلام کرد که شراکت بر سر OS2 به پایان رسیده و مایکروسافت از این به بعد، همه هم و غم خود را صرف ویندوز خواهد کرد. آدم هایی که ویندوز را جدی نگرفته بودند و سرمایه شان را انداخته بودند توی کار OS2، با این حرف گیتس شدیدا شوکه شدند و حتی مایکروسافت را به فریب متهم کردند. اما سرانجام این OS2 بود که به خاک سیاه نشست و ویندوز، سیستم عامل محبوب همگان شد. هم‌زمان با این تحولات، مایکروسافت یکی دیگر از برگ های برنده خود را رو کرد: مایکروسافت آفیس. مایکروسافت آفیس به همراه مایکروسافت ورد و مایکروسافت بوک شلف که یک مجموعه مرجع بود، محتویات نخستین دیسک شرکت مایکروسافت را تشکیل می دادند. موفقیت های مایکروسافت همچنان ادامه داشت. ویندوز ۱/۳ در نوامبر ۹۲ به بازار عرضه شد که در عرض دو ماه، سه میلیون کپی فروخت. یک سال بعد، ویندوز مهم ترین سیستم عامل گرافیکی در تمام دنیا بود. کار به جایی رسید که مجلة معتبر فورچون، مایکروسافت را مبتکرترین کمپانی در ایالات متحده در سال ۹۳ نامید. آغاز امپراتوری استراتژی گیتس توسعه دامنه کارش بود. به همین خاطر در ۱۹۹۴ مایکروسافت انکارتا را به راه انداخت؛ نخستین دایره المعارفی که روی کامپیوتر قابل اجرا بود. کمپانی برای این که آدم های غیر فنی ـ کامپیوتری را هم به سمت خودش جلب کند، شعارش را به امروز کجا می خواهی بروی؟ تغییر داد. کار بیل گیتس دیگر حد و مرز نمی‌شناخت. با DREAM-WORKS-SKG ریخت روی هم و سال ۹۵ برای تولید سرگرمی های چندمنظوره یک شرکت تازه تأسیس کردند. البته همان وقت ها مایکروسافت باب را هم به بازار فرستاد که جایگزین برنامه ریز ویندوز ۱/۳ شود که خب، سوتی خیلی بزرگی قلمداد شد و کلی هم برایش جوک ساختند. کاری هم نمی شود کرد. بعضی وقت ها آدم را بدطوری جو می گیرد! اما ویندوز ۹۵ دهان همة متلک گو ها را بست. تا قبل از آن، مایکروسافت یک شرکت تجارت محور قلمداد می شد. اما ویندوز ۹۵ باعث شد که دیگر آن را یک شرکت مشتری محور بدانند. ویندوز ۹۵ برای کاربر چیز کولاکی بود. تازه استارت منو هم داشت! در همان چهار روز اول، ملت بیش از یک میلیون نسخه اش را مثل نقل و نبات خریدند! در سپتامبر ۹۵ دولت چین ویندوز را به عنوان سیستم عامل رسمی کشورش انتخاب کرد و از مایکروسافت خواست نسخه چینی ویندوز را برایشان آماده کند. حواستان هست که چین چقدر جمعیت دارد؟ اواسط دهه۹۰ گیتس تصمیم گرفت مایکروسافت را بفرستد روی شبکه جهانی اینترنت. این شد که MSN (مایکروسافت NETWORK) به وجود آمد. این یک سرویس آنلاین بود که قرار بود با AOL رقابت کند. بعد با همکاری ان بی سی، ایستگاه کابلی خبری MSNBC را علم کرد تا رقیب CNN باشد. تازه مجلة آنلاین Slate را هم به سردبیری مایکل کینسلی راه انداخت. راه اندازی WebTV که به ملت امکان می داد از تلویزیون هاشان وصل شوند به شبکه، از دیگر اقدامات مایکروسافت در سال ۹۶ بود.



امپراتوری تثبیت می شود


مایکروسافت در اوایل دهه ۹۰ در اشاعه اینترنت بین مردم نتوانست نقش مهمی ایفا کند. اما بعضی تکنولوژی های پایه ای که برای ورود به شبکه راه انداخته بود، بعدا خیلی کاربرد پیدا کرد. در ۱۹۹۷ اینترنت اکسپلورر ۴ به بازار آمد که واقعا ترکاند و جای براوزرهایی مثل NET-ESCAPE را به راحتی گرفت. اینترنت اکسپلورر همراه ویندوز به بازار آمد. اما دادگستری آمریکا به این دلیل که مایکروسافت با این کار از توافق نامه ای که در سال ۹۴ امضا کرده، تخطی نموده است، از آن ها خواست که دیگر اینترنت اکسپلورر و ویندوز را همراه هم به بازار نفرستند. سال ۹۸ سال بزرگ دیگری برای مایکروسافت بود. نه به این خاطر که استیو بالمر شد رئیس شرکت (president) و گیتس رئیس هیأت رئیسه (CEO) ماند. بلکه این سال، سال ورود ویندوز ۹۸ بود که با اکسپلورر SP۴/۰ SP۱ و FAT۳۲ به عنوان فایل سیستم آمد. در عین حال، در همین سال جنجال های زیادی هم در پی افشای یادداشت های داخلی مایکروسافت در اینترنت به پا شد: نرم افزارهای اوپن سورس تهدیدی جدی برای مایکروسافت به حساب می آیند. این اسناد که به اسناد هالووین معروف شده اند، بخشی از این خطرات را عنوان کرده و در عین حال از فعالیت های مایکروسافت علیه لینوکس پرده برمی دارد. مایکروسافت نیز ضمن این که به صحت این اسناد اعتراف کرد، آن ها را صرفاً تحقیقات مهندسی دانست.



پایه های امپراتوری می لرزند


می گویند در همیشه روی یک پاشنه نمی چرخد. با شروع سال،۲۰۰۰ روزگار کم کم آن ور سکه را هم به آقای گیتس و دوستانش نشان داد و ضررهای مایکروسافت و محکومیت هایش کم کم شروع شد. گرچه اتفاقات خوب نیز کم نبودند و نمی گذاشتند غم زیاد توی دل بیل خانه کند. اول از همه در آوریل ۲۰۰۰ حکم پرونده ایالات متحده و مایکروسافت صادر شد و نگذاشت شیرینی آمدن نسخه جدید ویندوز (ویندوز۲۰۰۰) بیشتر از دو ماه در دهان گیتس بماند. این حکم شرکت را مجبور می کرد به دو پاره تقسیم شود. البته بخشی از این تصمیم در دادگاه استیناف، کأن لم یکن شد. مایکروسافت که اهداف تجاری و خانگی را توأمان نشانه رفته بود، ویندوز XP را سال ۲۰۰۱ آماده کرد. ورژن آپ دیت شده ویندوز ۲۰۰۰ که از لحاظ گرافیکی تحولی به حساب می آمد. اما این موفقیت ها در ادامه به شکستی بزرگ ختم شد. مایکروسافت برای رقابت با سونی و نینتندو، با سرمایه گذاری میلیارد دلاری و تولید و پخش XBOX وارد عرصه بازی های کامپیوتری شد. تا سال ۲۰۰۵، XBOX در بازار فروش آمریکا در رده دوم پس ازPlay Station۲ سونی و قبل از Game Cube نینتندو قرار داشت. (در بازار جهانی بعد از هر دو بود.) اما با این وجود، با فروش ۲۲ میلیون دستگاه در مقایسه با فروش بیش از ۱۰۰میلیون دستگاه Play Station ۲، ضرر سنگینی معادل ۴ میلیارد دلار متحمل شده است. مایکروسافت در این دو سه سال اخیر، کار ساخت net . مقدماتی و سرور ویندوز ۲۰۰۳ را هم به پایان رساند. با این وجود، بدبختی های تازه، دست از سر آقای گیتس بر نمی دارند.
در سال ۲۰۰۴ به دنبال شکایت اتحادیه اروپا، مایکروسافت به پرداخت ۶۱۳میلیون دلار جریمه محکوم شد و متعهد گردید که توافقات قطعی خود با سایر رقبا را افشا کند. همچنین ملزم شد نسخه ای از ویندوز را تهیه و آماده کند که فاقد مدیا پلیر باشد. در عین حال، بعد از اقدام تازه کره جنوبی علیه شرکت در سال ۲۰۰۵، مایکروسافت مجبور است علاوه بر پرداخت ۳۳میلیون دلار جریمه دیگر، دو نسخه ویندوز تازه هم برای کره ای های محترم تهیه کند. یکی که هم ویندوز مدیا پلیر داشته باشد هم ویندوز مسنجر؛ و یکی که هیچ کدام از این دو تا را نداشته باشد!





Xbox ۳۶۰


در نوامبر ۲۰۰۵ ، مایکروسافت دومین کنسول بازی خود را با نام Xbox ۳۶۰ به بازار عرضه کرد . مایکروسافت در زمینه رقابت با کنسولهای بازی تجربیات خوبی بدست آورده بود و این بار کنسولی بسیار کامل تر و بهتر نسبت به اولین کنسول خود به بازار عرضه کرد . Xbox ۳۶۰ در دو مدل با نام های Xbox ۳۶۰ و Xbox ۳۶۰ Core System عرضه شد . نسخه کامل Xbox ۳۶۰ دارای دسته بی سیم ، Hard Drive و چند چیز دیگر می باشد . نسخه Core System شامل دسته سیمی و بدون Hard Drive و وسایل جانبی می باشد . Xbox ۳۶۰ تقریباً یک سال زودتر از رقیبان خود یعنی PlayStation ۳ و Nintendo Wii به بازار عرضه شد . Xbox ۳۶۰ پیشرفتهای زیادی نسبت به کنسول قبلی خود کرده است و علاوه بر قدرت سخت افزاری ، دارای طراحی فوق العاده زیبایی می باشد . Xbox ۳۶۰ فروش بسیار بهتری نسبت به کنسول قبلی مایکروسافت داشت.



مشکلات با تشکیل اتحادیه بین المللی


در آخر مایکروسافت به یک کمپانی بزرگ بین الملل با دفاتر مختلف در کشور تبدیل شد. در هجدهم ماه می‌‌سال ۱۹۹۸ در دپارتمان دادگاهی ایالات متحده آمریکا، ۱۹ ایلت شروع به مخالف علیه مایکروسافت کردند. آنان بیان کردند که مایکروسافت به صورت غیر قانونی با استفاده از قدرت انحصاری خود (Monopoly) در حراج و فروش ویندوز سوءاستفاده کرده است. در سوم آپریل سال ۲۰۰۰ دادگاه محدوده آمریکا، Tomas Penfield Jackson قانونی برای مایکروسافت تعیین کرد که مایکروسافت می‌‌بایست فعالیتهای خود را با استفاده از قدرت انحصاری خود به دور از اهداف مبارزه طلبی ادامه دهد. Jackson به مایکروسافت دستور داد تا به دو کمپانی تقسیم شوند، یکی برای تولید سیستم عامل و دیگری برای تولید باقی محصولات. با این حال مخالفان از مخالفت دست نکشیدند و در آخر مایکروسافت با آنان در خارج از دادگاه نشستی انجام داد. در ماه جون سال ۲۰۰۱ اتحادیه از دادگاه خواهان بازگشت مایکروسافت به یک کمپانی شد. کمی بعد، در ماه سپتامبر سال ۲۰۰۱ به دستور رئیس جمهور جورج بوش مایکروسافت یکتا شد و نشستی با مایکروسافت در دپارتمان قضاییه آمریکا انجام شد. اتحادیه اروپا در سال ۲۰۰۴ شروع به مخالفت با متحد بودن مایکروسافت (Antitrust) کرد. در آخر مایکروسافت بسیار ضرر کرد و فرمان به فاش کردن پروتوکل های اصلیش به رقبا را داد و دستور به تولید ورژنی از ویندوز داد که مدیا پلیر نداشت.
+ نوشته شده در  شنبه 1388/01/22ساعت   توسط سعید  | 

لینوکس


img/daneshnameh_up/1/1a/compics00168a.jpg



 

لینوکس(Linux) یک سیستم عامل رایانه ای مانند یونیکس است.لینوکس یکی از معروف‌ترین مثالهای نرم افزار آزاد و گسترش متن باز(open source) است. اگر بخواهیم دقیق باشیم فقط باید هسته لینوکس را لینوکس بنامیم اما به طور معمول این کلمه به سیستم عامل های یونیکس مانندی (یا گنو/لینوکسی) اطلاق می‌شود که بر مبنای هستهٔ لینوکس و کتاب‌خانه‌ها و ابزارهای پروژه گنو ساخته شده‌اند. به مجموعه‌ای از نرم‌افزارهای بنا شده بر اجزای گفته شده توزیع لینوکس (linux distribution) می‌گویند که به طور معمول شامل ابزارهای توسعه نرم افزار ، پایگاه های داده، سرویس دهنده های وب مثل آپاچی، محیط های رومیزی مثل گنوم و کی دی ای و مجموعه‌های اداری مثل اپن آفیس هستند.
لینوکس برای استفادهٔ ریزپردازنده‌ها با معماری ۸۰۳۸۶ اینتل طراحی شده بود اما امروزه انواع مختلف معماری‌ها را پشتیبانی می‌کند و در انواع و اقسام وسایل از کامپیوترهای شخصی گرفته تا ابررایانه‌ها و تلفن‌های همراه به کار می‌رود. این سیستم عامل که در ابتدا بیشتر توسط افراد مشتاق توسعه پیدا می‌کرد و به کار گرفته می‌شد توانسته‌است پشتیبانی شرکت‌های سرشناسی چون آی بی ام و هیولت-پاکارد را به دست آورد و با بسیاری از نسخه‌های خصوصی یونیکس رقابت کند. طرفداران لینوکس و بسیاری از تحلیل‌گران این موفقیت را ناشی از استقلال از فروشنده، کم هزینه بودن پیاده‌سازی،سرعت بالا, امنیت و قابلیت اطمینان آن می‌دانند.


 


تاریخچه


 

در سال ۱۹۸۴ میلادی ‏ریچارد استالمن که رئیس بنیاد نرم افزار آزاد بود پروژه گنو(GNU) را آغاز کرد. در این پروژه که یک جنبش نرم‌افزاری محسوب می‌شد برنامه‌نویسان با یکدیگر همکاری می‌کردند (این همکاری تا به حال نیز ادامه دارد).
آن زمان بیشتر ابزارهای پروژه گنو که با زبان برنامه نویسی C و اسمبلی نوشته شده بود آماده کار بود اما تنها چیزی که کم بود وجود یک سیستم‌عامل مناسب و رایگان بود. حتی سیستم‌عامل مینیکس نیز (با وجود در دسترس بودن متن کد آن) رایگان نبود و حق نشر مخصوص به خودش را داشت. کار در پروژه گنو به سمت طراحی یک هسته مناسب متمرکز می‌شد اما به نظر می‌رسید که برای ایجاد این هسته حداقل چند سال دیگر زمان احتیاج است.
این تأخیر برای لینوس قابل تحمل نبود. بنابر این خودش دست به کار شد و با الهام از کد مینیکس کار را آغاز کرد. سرانجام در ۲۵ اوت سال ۱۹۹۱ ساعت ۲۰و۵۷ دقیقه شب به وقت گرینویچ پیامی تاریخی به گروه خبری comp.os.minix ارسال شد. ارسال کننده این پیام کسی نبود جز «لینوس بندیک توروالدز». او یک دانشجوی فنلاندی بود که آن زمان در دانشگاه هلسینکی درس می‌خواند.
متن پیام او چنین بود:
«سلام به هر کس آن بیرون از مینیکس استفاده می‌کند.
در حال حاضر روی سیستم عاملی رایگان برای رایانه‌های AT (۴۸۶)۳۸۶ کار میکنم (فقط برای سرگرمی؛ مانند پروژه گنو بزرگ و حرفه‌ای نیست). از ماه آوریل کار را آغاز کرده‌ام و هم‌اکنون این سیستم‌عامل آماده است و کار می‌کند.
من دوست دارم از عقیدهٔ دیگران در مورد سیستم‌عاملم با خبر شوم. چه آنهایی که مینیکس را دوست دارند و چه آنهایی که آن را دوست ندارند. چرا که سیستم من تا حدی شبیه به آن است. در حال حاضر (۱٫۰۸)bash و(۱٫۴۰) gcc را بر روی آن دارم و چیزهای دیگری که به نظر می‌رسد همه درست کار می‌کنند. این بدان معناست که طی چند ماه آینده یک چیز کاربردی فراهم خواهم کرد.
دوست دارم بدانم که مردم به کدام یک از خصوصیات این سیستم بیشتر علاقمند هستند. به هر پیشنهاد و نظری خوش آمد می‌گویم اما قول نمی‌دهم که آن را انجام دهم! لینوس (torvalds@kruuna.helsinki.fi).
پ.ن. - بله آن رایگان است. البته قابل انتقال بر روی انواع دیگر رایانه نیست (چرا که دستورات AT۳۸۶ را به کار می‌برد) و ممکن است غیر از سخت‌دیسک AT چیز دیگری را پشتیبانی نکند. این همه چیزی است که من دارم!»
لینوکس مانند مینیکس (یک سیستم عامل ساده نوشته شده توسط پروفسور آندرو تاننبام که برای آموزش طراحی سیستم‌ عامل به کار می‌رفت) طراحی شده بود. اولین نسخهٔ لینوکس در سپتامبر ۱۹۹۱ بر روی اینترنت منتشر شد. دومین نسخه‌ٔ آن به فاصلهٔ کمی در اکتبر همان سال منتشر شد. از آن پس هزاران برنامه‌نویس (هکر) در سراسر دنیا در این پروژه شرکت کردند. مقالهٔ «کلیسای جامع و بازار» مدل توسعه هسته لینوکس و نرم افزارهای مشابه را تشریح می‌کند.
پنگوئن تاکس نشانه و مایه خوش شانسی لینوکس است. لینُس تُروالدز مالک علامت تجاری لینوکس است که به عنوان « نرم افزار سیستم عامل رایانه برای تسهیل در استفاده و عملیات رایانه » به ثبت رسیده‌است.




 


مجوز


 

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


 


گنو/لینوکس


 

از آن‌جایی که ابزارهای گنو که بخش عمدهٔ توزیع‌های لینوکس را تشکیل می‌دهند از پروژه سیستم عامل آزاد گنو (که بسیار سابقه‌دارتر از هستهٔ لینوکس است) ریشه گرفته‌اند، ریچارد استالمن و بنیاد نرم افزار آزاد درخواست کرده‌اند که سیستم ترکیب شده (از هستهٔ لینوکس و ابزارهای گنو) بدون توجه به نام توزیع‌اش، گنو/لینوکس خوانده شود.
علیرغم این که بعضی از توزیع‌ها، گنو/لینوکس دبیان به طور خاص، از این نام استفاده می‌کنند بسیاری تنها به گفتن لینوکس اکتفا می‌کنند. تفاوت بین هستهٔ تروالدز و سیستمی که شامل این هسته‌است، همیشه باعث سردرگمی ست و نام‌گذاری همچنان بحث‌انگیز باقی مانده‌است.


 


توزیع‌های لینوکس


 

لینوکس تقریباً همیشه یکی از اجزاء یک توزیع لینوکس (Distro) است. توزیع‌های لینوکس توسط افراد، گروه‌های نه چندان متشکل و سازمانهای حرفه‌ای گوناگون ایجاد می‌شوند. این توزیع‌ها شامل تعدادی نرم افزار سیستم و برنامه‌های کاربردی به همراه روالی مشخص برای نصب آنها بر رایانه هستند. توزیع‌ها معمولاً برای منظورهای مختلفی از جمله محلی سازی، پشتیبانی از یک معماری خاص، کاربردهای بلادرنگ (real-time applications) و سامانه های توکار (embedded systems) به وجود می‌آیند و بعضی از آن‌ها آگاهانه تنها از نرم افزارهای آزاد استفاده می‌کنند.
یک توزیع همه-منظورهٔ معمولی شامل هسته لینوکس، کتاب خانه ها و ابزارهای گنو، پوسته های خط فرمان و انبوه بی شماری از نرم افزارهای کاربردی از مجموعه های اداری و سیستم های پنجره ای اکس گرفته تا مفسرها، ویرایش گرهای متن و ابزارهای علمی است.


 


گستره


 

در بیش از یک میلیارد دلار: برآورد اندازه گنو/لینوکس که مقاله تحقیقی است بر روی توزیع ردهت ۷٫۱، تعداد خطوط کد منبع (source lines of code – SLOC) را ۳۰ میلیون عنوان شده‌است. در این تحقیق با استفاده از روش (Constructive Cost Model – COCOMO) برآورد شده‌است که بر روی این توزیع حدود هشت میلیون نفر-سال کار توسعه انجام گرفته‌است. چنان که این نرم‌افزار توسط روش‌های متعارف خصوصی توسعه می‌یافت، هزینه‌ توسعه‌اش در ایالات متحده با روش‌های توسعه متعارف خصوصی بالغ بر ۱/۰۸ میلیارد دلار (با قیمت دلار سال ۲۰۰۰) می‌شد.
بخش اعظم کد (۷۱٪) توسط زبان برنامه نویسی C نوشته شده‌است اما از بسیاری از زبان‌های دیگر همچون ++C، لیسپ، اسمبلی، پرل، فرترن، پایتون و زبان‌های اسکریپت‌نویسی مختلف استفاده شده‌است. اندکی بیش از نیمی از خطوط کد تحت مجوز عمومی گنو (GPL) هستند. هسته لینوکس ۲٫۴ میلیون خط برنامه‌است و ۸٪ کل کد را تشکیل می‌دهد.
در پژوهشی که پس از آن انجام شد، به نام شمردن سیب زمینی‌ها: اندازه دِبی‌ین۲٫۲ همان تحلیل بر روی لینوکس دِبی‌ین ۲٫۲ انجام گرفت. این توزیع دارای بیش از پنجاه و پنج میلیون خط کد بود که هزینه‌ توسعه‌اش با روش‌های توسعه متعارف خصوصی بالغ بر ۱٫۹ میلیارد دلار (با قیمت دلار سال ۲۰۰۰) می‌شد.


 


کاربردهای سیستم عامل‌های شکل گرفته بر پایه لینوکس


 

در گذشته یک کاربر لینوکس برای پیکربندی و نصب سیستم خود، نیازمند دانش بالایی از رایانه بود. این دلیل به علاوه جذاب بودن دسترسی به درون سیستم ،باعث شده بود که به طور سنتی کاربران لینوکس را (بر خلاف کاربران ویندوز یا مَک‌اواِس) کسانی شکل بدهند که با تکنولوژی بیشتر دمخور هستند. افرادی که معمولاً با القاب «هکر» و «گیک» شناخته می‌شوند. این نگرش در سال‌های اخیر با افزایش راحتی کار در لینوکس و گسترده شدن استفاده از بسیاری از توزیع‌ها، اعتبار خود را از دست داده‌است. لینوکس در بازار سرورها و کاربردهای-ویژه (مانند پردازش تصویر و سرویس‌های وِب) پیشرفت قابل ملاحظه‌ای کرده و در حال ورود به بازار بزرگ رایانه‌های رومیزی است.
لینوکس اساس مجموعه نرم‌افزار سرور موسوم به لامپ (لینوکس), آپاچی, مایسیکوئل (MySQL), پرل/ php /پایتون) را تشکیل می‌دهد که میان توسعه‌دهندگان وب محبوبیت گسترده‌ای کسب کرده‌است.
از لینوکس همچنین اغلب در سیستم‌های کارگذاشته استفاده می‌شود. قیمت اندک آن باعث می‌شود انتخابی ایده‌آل برای ابزارهایی مانند سیمپیوتر (رایانه‌ای که برای جمعیت کم درآمد کشورهای در حال توسعه طراحی شده) باشد.
لینوکس با داشتن محیط‌های رومیزی مانند گنوم و کی دی ای، رابط کاربری همچون اپل مکینتاش و مایکروسافت ویندوز را در کنار دیگر محیط‌های گرافیکی و رابط خط فرمان یونیکس-مانند سنتی‌اش، عرضه می‌کند. هرچند نرم‌افزارهای گرافیکی لینوکس برای بسیاری از مصارف وجود دارند، در بسیاری زمینه‌ها نرم‌افزارهای خصوصی هنوز از گستره و میزان محبوبیت بیشتری برخوردارند.


 


نصب


 

در ابتدا، مشکل بودن نصب سیستم‌های بر پایه لینوکس مانعی برای پذیرش آن بود، اما در سال‌های اخیر نصب لینوکس بسیار آسان شده‌است. بسیاری از توزیع‌ها دارای نصبی آسان و قابل مقایسه با نسخه‌های ویندوز می‌باشند. علاوه بر این، رایانه‌های شخصی که با توزیع‌های لینوکس وارد بازار شده‌اند و به آسانی از بسیاری از فروشنده‌های اصلی، همچون هیولت- پاکارد و وال- مارت قابل تهیه می‌باشد.
بیشتر شیوه‌های عمومی نصب لینوکس، توسط همه توزیع‌های مهم پشتیبانی می‌شود، که شامل اجرا از طریق لوح فشرده، حاوی برنامه‌های نصب و راه‌اندازی نرم افزارها می‌باشد. این لوح فشرده می‌تواند از طریق تصویر استاندارد (ISO image) بارگدازی شده باشد، به تنهایی و به قیمت بسیار پائین خریداری شود، یا می‌تواند در مجموعه نرم افزارهای تجاری اضافی ارائه شود.
بعضی توزیع‌ها، همچون دبیان (Debian)، از طریق دستگاه‌های کوچکی مثل فلاپی دیسک، نیز قابل نصب هستند. پس از نصب ابتدایی بیشتر نرم افزارها از طریق اینترنت و لوح فشرده قابل بار گذاری و نصب می‌باشند.
بعضی توزیع‌ها، همچون کنوپیکس (Knoppix)، می‌توانند به صورت بی درنگ از طریق دیسک‌های زنده بسیار سریع تر از نصب بر روی دیسک سخت اجرا شوند. به این صورت که، یکبار از لوح فشرده راه اندازی می‌شود و می‌توان از لینوکس بدون هیچگونه تغییری در محتویات دیسک سخت استفاده کرد. به همین نحو بعضی توزیع‌های حداقل، همچون تامزروت‌بوت (Tomsrtbt)، بدون نیاز به تغییر محتویات دیسک سخت از طریق فلاپی دیسک، به صورت بی درنگ قابل اجرا می‌باشد.
همچنین بسیاری توزیع‌ها از راه انداری بر روی شبکه پشتیبانی می‌کنند، پس همه مراحل نصب و پیکربندی دستگاه می‌تواند بر روی شبکه انجام شود.




 


پیکربندی


 

بیشتر پیکربندی‌ها در پوشه‌ای با نام etc/ ذخیره شده‌است، در صورتیکه کاربر- مخصوص باشد، فایل‌های پنهان در پوشه خانه کاربر قرار دارد. تعدادی از برنامه‌ها از پایگاه داده پیکربندی به عوض فایل استفاده می‌کنند.
راه‌های بسیاری برای ایجاد تغییرات وجود دارد. آسان‌ترین راه، استفاده از ابزارهای آماده توزیع‌هایی همچون یاست (YaST) در (رایانه) (SuSE) یا مرکز کنترل در مندریک (Mandrake) استفاده کرد. انواع دیگر آن، مانند لینوکس‌کانف (Linuxconf)، ابزارهای سیستم گنوم، و وبمین (Webmin) برای توزیع‌های ویژه نیستند. آن‌ها شامل بسیاری از امکانات پیکربندی توسط خط فرمان می‌باشند.از آنجایی که به طور متداول اکثر تنظیمات در فایل‌های متنی ذخیره شده‌اند، آن‌ها را می‌توان با هر ویرایشگر متنی پیکر بندی نمود.


 


پشتیبانی


 

به طور معمول پشتیبانی فنی توسط فروشندگان تجاری و دیگر کاربران لینوکس در اجتماعات آنلاین، گروه‌های خبری و فهرست‌های پستی ارائه می‌شود. انجمن کاربران لینوکس (LUGs) در همه جهان به کاربران بسیاری یاری می‌رساند.
به طور کلی، مدل کسب و کار فروشندگان تجاری وابسته به پرداخت جهت پشتیبانی می‌باشد، مخصوصا برای کاربران تجاری.


 


توزیع‌های لینوکس

توزیع‌های گنو/لینوکس بسیار زیادند. هر توزیعی برای کاربردی خاص ایجاد شده در زیر به برخی از آن‌ها اشاره شده‌است:
• فدورا کُر
• لینوکس تجاری رِِدهَت
• ناپیکس
• دبیان
• اِسلَکوِر
• گِنتو
• لینسپایر (لیندوز قدیم)
• مندریوا (ماندریک قدیم)
• توربو لینوکس
• زوزه
• کانِکتیوا
• لیبرانت
• اوبونتو

+ نوشته شده در  شنبه 1388/01/22ساعت   توسط سعید  | 

ویندوز

 

مقدمه

درفرهنگ رایانه، ویندوز، عنوان سیستم‌عاملی است که شرکت مایکروسافت آن را برای رایانه‌های شخصی (PC) تولید کرده‌است. این سیستم‌عامل، نسخه‌های متعددی دارد که از سال ۱۹۸۳ تاکنون به بازار عرضه شده‌است.

تاریخچه

اولین نسخهٔ ویندوز در سال ۱۹۸۳ عرضه شد (ویندوز ۱٫۰). این برنامه، یک واسط کاربری گرافیکی و محیطی پنجره‌ای را تحت سیستم عامل دیسکی یا همان MS-DOS فراهم می‌ساخت. ویندوز ۲٫۰ نیز در سال ۱۹۸۷ به عنوان ارتقایی (upgrade) بر این سیستم‌عامل روانهٔ بازار شد. این نسخه، بعداً با خصوصیاتی جدید مانند قابلیت روهم قرار گرفتن پنجره‌ها بنام ویندوز/۲۸۶ و بعد ویندوز/۳۸۶ ارایه شد. در سال ۱۹۹۲، ویندوز ۳٫۰ ارایه شد که نسبت به نسخه‌های قبلی، بسیار متحول شده بود. در سال ۱۹۹۵، شرکت مایکروسافت با ارایه ویندوز ۹۵ تحولی را در ویندوز و سیستم‌عامل‌های کامپیوترهای شخصی بوجود آورد. روند ارایه و بهینه‌سازی این سیستم‌عامل، همچنان با ویندوز ۹۸، ME ٬ XP و Vista برای رایانه‌های شخصی و ویندوز NT ٬ ۲۰۰۰ و ۲۰۰۳ برای سرور‌ها ادامه یافت. امروزه، ویندوز، مشهورترین و پرمصرفترین سیستم‌عامل جهان به شمار می‌رود. مایکروسافت با بروزرسانی و بهینه‌سازی این سیستم‌عامل قصد دارد تا تمام توقعات کاربران از یک سیستم‌عامل مناسب را برآورده سازد. البته اگر گروه مقابل آن که طرفدار سیستم‌های متن باز و لینوکس می‌باشند این اجازه را به مایکروسافت بدهند.


امنیت

امنیت در سیستم‌عامل ویندوز از مهم‌ترین نقاط ضعف آن بوده‌است. تحقیقی که تحت نظر کوین میتنیک انجام شد نشان داد که یک سیستم Windows XP حفاظت نشده در اینترنت تنها ۴ دقیقه دوام آورد. همچنین طبق آمار ۸۰٪ از کاربران Windows حداقل به یک ویروس یا نرم‌افزار جاسوس آلوده هستند.


Windows ۹۸

نسخه ویندوزی از مایکروسافت که در سال ۱۹۹۸ ساخته شد و در واقع نسخه به روز شده ویندوز ۹۵ می‌باشد. (این ویندوز Memphis هم نامیده می‌شود) استفاده از این ویندوز به طور گسترده در جهان وجود داشت و هم اکنون هم مورد استفاده می‌باشد. از امکانات این می‌توان به موارد زیر اشاره کرد:


مرورگر مستقل مایکروسافت
•توانایی فرستادن و گرفتن 
•سیستم فایل FAT۳۲
•پشتیبانی از USB
•پشتیبانی از DVD


Windows XP

محصول مایکروسافت تا پایان سال ۲۰۰۶ که سیستم عاملی بسیار قوی و زیبا می‌باشد و برای کار با internet مناسب می‌باشد. البته تا چند سال بعد از توزیع نسخه این ویرایش Service Pack II این محصول هم اضافه شد. این ویندوز در دو نسخهٔ خانگی (home edition) و پیشرفته (professional) در بازار عرضه می‌شود.

Windows Vista

img/daneshnameh_up/3/3e/compics00171.jpg

ویندوز ویستا ویژگیهای دیداری فوق‌العاده‌ای مانند پنجره‌‌های نیمه‌شفاف و ابزارهای قدرتمندتر جهت جستجوی فایلها دارد ولی تا به حال در مورد بهبود امنیت در ویستا و توانایی آن در ارتباط بهتر با وسایل دستی قابل‌حمل ،خبری داده نشده‌است. مایکروسافت از آغاز کار بر روی این سیستم عامل وعده داده بود که شالوده آن را بر سه ستون استوار خواهد کرد.یک موتور گرافیکی به نام Avalon ،یک فن‌آوری جدید به نام indigo که توانایی ارتباط برنامه‌های کامپیوتری و وسایل مختلف را به هم می‌دهد و یک سیستم ذخیره‌سازی دیتا که قابلیت جستجوی بهتر را ممکن می‌سازد به نام winFS .ولی در مقام عمل مایکروسافت از زمان‌بندی خود عقب افتاد و تصمیم گرفت از ویژگی winFS چشم بپوشد و این سیستم را به‌صورت یک برنامه الحاقی add-on بعد از انتشار ویستا عرضه کند. پس از ۳ ستون ویندوز بعدی، هنوز ۲ ستون پابرجا هستند.

مایکروسافت پس از عرضهٔ ویندوز XP در سال ۲۰۰۱ از نسل بعدی ویندوز خود با اسم رمز لانگهورن خبر داد و اعلام نمود که این سیستم عامل را در سال ۲۰۰۴ به بازار ارائه می‌کند. البته همانطور که بسیاری حدس می‌زدند مایکروسافت شرکت وقت شناسی نبود.لانگهورن نیز مانند ویندوز اکس پی قبل از عرضه تغییر نام داد و به ویستا مبدل شد. جالب است بدانید که لانگهورن و ویستا و بلاک کامب(نسل بعدی ویندوز پس از ویستا که چندی پیش به ویینا تغییر نام داد) همگی نام‌های مکان‌های طبیعی و از این دست هستند. مثلا نام یک صحرا .ویستا نسل جدیدی از سیستم‌های عامل معروف و فرا گیر ویندوز است که مسیری متفاوت نسبت به سری پیشین خود پیموده‌است. شاید تاخیر زیاد در ارائهٔ این سیتم عامل کاربران جشم انتظار را تا حد زیادی ناراحت کرده باشد ولی این امر آن هم در تولید نرم افزار‌های بزرگ امری عادی است و از آن جا که مایکروسافت وسواس زیادی در تولید سیستم عاملی بدون نقص دارد باید پیش بینی این تاخیر‌ها را نیز می‌کردیم.بیل گیتس می‌گوید در هنگام ورود سیستم عمل‌های ویندوز ۹۵٬۹۸ و ۲۰۰۰ به ما فشار زیادی وارد شد چرا که اسامی آن‌ها از مدت‌ها چیش به جوامع خبری اعلام شده بود و ما موظف بودیم که آن‌ها را در موعد مقرر که همان نام آن‌ها بود به بازار عرضه کنیم ولی ما تصمیم داریم که در محیطی آرام و دور از تنش به تولید سیستم عاملی بپردازیم که به نظر خودمان در نوع خود بی نظیر است.بیل گیتس و دیگر مسوولان ویندوز از جمله جیمز آلچین(سردار ویندوز) امید بسیار زیادی به این نگارش از سیستم عامل ویندوز دارند و گیتس می‌گوید : آرزو دارم که وقتی کاربران حرفه‌ای برای اولین بار با ویستا کار می‌کنند انگشت به دهان بمانند. بیل گیتس آدم گزافه گو و کوته فکری نیست و بدون شک این پروژه نیز مانند دیگر پروژه‌هایی که او پشتوانهٔ آن‌ها بوده‌است موفق خواهد بود.ویستا سیستم عاملی برای آینده‌است و مایکروسافت سعی نموده‌است که تمامی آن چه در نگارش‌های گذشتهٔ ویندوز از آن‌ها با عنوان کاستی یاد می‌شد در ویستا با نام نقطهٔ قوت شناخته شوند.یکی از این مسائل امنیت است اما امنیت با حیطهٔ فراتر از آن چه ما از آن می‌بریم . امنیت ویندوز ویستا از لحاظ جلوگیری از ورود ویروس‌ها و مقابله با آن‌ها مبارزه با نفوذگر‌ها و حفظ و امنیت اطلاعات بی عیب و نقص است و مایکروسافت روی هرچیزی که بر امنیت تاثیر بگذارد پافشاری زیادی کرده‌است از جمله مرورگر اینترنت اکسپلورر که مایکروسافت بخش گسترش آن را به منظور کنترل بیشتر برای آن و پیشرفت بی دغدغهٔ آن پس از مدتی در سال پیش از بخش گسترش ویندوز جدا نمود و همچنین نگارش فایل سیستم وین اف اس که در نوع خود یک دهه از ان تی اف اس جلو است مصادیقی برای این مورد است.مایکروسافت همچنین در ویستا به ظاهر همانند اکس پی اهمیت فوق العاده‌ای داده‌است و با طراحی زیبای این ویندوز و ایجاد یک محیط مجازی سه بعدی بر پایهٔ دایرکت اکس ۹ جذابیت را در سیستم عامل جدید سری ویندوز خود به حد اعلا رسانده‌است. مایکروسافت در تمامی کنفرانس‌ها و حضور‌های خود مبحث ویستا را در صدر قرار داده‌است و هر روز شاهد پیشرفت این سیستم عامل هستیم.به عنوان مثال در سال ۲۰۰۴ و در کنفرانی توسعه دهندگان مایکروسافت در خاور میانه و در مصر بیل گیتس نیز حضور یافت و در این کنفرانس افراد مشهور مایکروسافت در بارهٔ برنامه‌های آیندهٔ خود بحث کردند و لی هیچکس دید دقیقی از ویستا نداد و وقتی از قاضی مدیر بازار یابی و فروش مایکروسافت در خاورمیانه از این مسئله سوال شد وی گفت این که ما چیزی از ویستا بروز نمی‌دهیم به این دلیل است که خود دید دقیقی از این سیستم عامل نداریم و حتی در حال اختراع بخش‌هایی از آنیم بله همه آن چه که شما هم اکنون در بارهٔ ویندوز ویستا می‌شنوید ممکن است تا زمان عرضهٔ آن به کلی تغییر کند ولی حالا که مایکروسافت چند نسخهٔ بتا از این سیستم عامل را عرضه کرده‌است وضع به کلی تفاوت کرده‌است و دیگر همه دیدی کلی از این سیستم عامل را دارند. مایکروسافت پس از عرضهٔ نسخهٔ بتای ویستا و دریافت ایرادات و باگ‌های آن از سوی تست کنندگان دریافت که برطرف کردن این ایرادات زمان زیادی می‌برد و برای همین است که طبق آخرین اخبار تایید شده از مایکروسافت این سیستم عامل اگر مشکلی پیش نیاید در ۳۰ ژانویه ۲۰۰۷ به بازار ارائه خواهد شد که بسیاری زمانی بیش از این را برای آن رقم می‌زنند حال آن که نسخهٔ اصلی اینترنت اکسپلورر قرار است تا اواخر تابستان امسال وارد بازار گردد.ویستا طوفانی است که می‌تواند وضعیت فعلی مایکروسافت را تغییر دهد. وضعیتی که هم اکنون با وجود لینوکس و موزیلا و بسیاری موارد دیگر در حال پایین آوردن پادشاهی جادویی مایکروسافت است. سیستم عامل ویندوز ویستا قدرتی دارد که می‌تواند بسیاری از برنامه‌های خود مایکروسافت را نیز از رده خارج نماید که از جملهٔ آن‌ها می‌توان به برنامه‌های امنیتی این شرکت اشاره نمود. مایکروسافت در حال ارائه نگارش‌های جدیدی از دیگر محصولات خود است که لایق ویستا باشند دایرکت اکس ۱۰ ,اینترنت اکسپلورر ۷و آفیس ۲۰۰۷ نمونه‌ای از این موارد است. امنیت در این سیستم عامل به موارد فوق الذکر ختم نمی‌شوند و برنامه نویسان مایکروسافت با استفاده از تلاش‌های خود موفق به ایجاد تکنولوژی‌های نوینی در ویستا شده‌اند که حتی قادر است که از پخش آهنگ‌ها و فیلم‌هایی که در خرید آن‌ها قانون حق کپی در نظر گرفته نشده‌است جلوگیری نماید.سیستم عامل ویستا دارای سرعتی بی نظیر نسبت به دیگر سیستم عامل‌های این سری بوده‌است . کما این که نسخهٔ ۶۴ بیتی آن نیز که برای CPU ‌های ۶۴ بیتی طراحی شده‌است سرعت و قدرتی فراتر از نسخهٔ ۳۲ بیتی آن دارا است.به هر حال این طولانی ترین زمان بین ارائهٔ دو سیستم عامل توسط مایکروسافت است .
ویندوز ویستا بین ۱۹۹ تا ۳۹۹ دلار قیمت گذاری شده‌است. چنانچه بخواهید ویندوز خود را از XP به ویستا ارتقاء دهید، باید ۹۹ دلار پرداخت کنید. نسخه خانگی آن (Home Edition) به میزان ۲۵۹دلار قیمت گذاری شده و نسخه حرفه‌ای آن (Professional) هم ۳۹۹ دلار قیمت دارد. تعداد خطوط برنامه نویسی شده در ویندوز ۹۵ ، ۱۱٫۲ میلیون خط بوده‌است در حالیکه در ویندوز ویستا ، حداقل ۵۰ میلیون خط بنامه وجود دارد. برای تولید ویندوز ۹۵ دقیقا ۲۰۰ برنامه نویس مشغول به کار بودند و در ویندوز ویستا ۲۰۰۰ برنامه نویس به صورت همزمان مشغول به کار بوده‌اند. پیشرفت امکانات مایکروسافت طی ۲۰ سال اخیر به حدی بوده که بیل گیتس اکنون ثروتمندترین فرد جهان است و روز به روز بر ثروت خود می‌افزاید و به نحوی کل جهان را به خود و محصولاتش وابسته کرده‌است. در واقع بیل گیتس و شرکایش باید ممنون مسئولان شرکت Dr Dos باشند که دیر به جلسه با شرکت IBM رسیدند و مسئولان IBM که این فرصت را به شرکت کوچک مایکروسافت دادند تا سیستم عامل خود را بر روی کامپیوترهای خانگی IBM قرار دهند و اینگونه شهرت جهانی پیدا کنند.
+ نوشته شده در  شنبه 1388/01/22ساعت   توسط سعید  | 

مکینتاش

مکینتاش (Macintosh) یا مک (Mac) ساخته شرکت رایانه‌ای اپل است که مکینتاش اولیه در تاریخ ۲۴ ژانویه ۱۹۸۴ تولید شده است و اولین رایانه شخصی برای Graphical user interface (GUI) بود و در عوض استفاده از موشی با Command line interface کار می کند. در حال حاضر میزان تنوع مکینتاش اپل از مک کوچک (Mac mini) هست تا قویترین Server ها مثل Xserve که همگی ساخته شرکت اپل می باشد. مکینتاش اولیه از موتورولا 68k که از خانواده ریزپردازنده ها هستند استفاده می کردند که بعدا تغییر کرد به موتورولا و IBM پاور پیسی (Power PC) . با حروف اختصاری Mac، محدوده‌ای از کامپیوترهای شخصی که توسط شرکت رایانه‌ای اپل در سال ۱۹۸۴ معرفی گردید. مکینتاش بر روی یک رابط گرافیکی کاربر معروف با استفاده آسان تأکید دارد که کامپیوترهای مبتنی بر مجموعه ریزپردازنده‌های ۶۸۰۰۰ موتورولا است.

تاریخچه


 

پروژه مکینتاش از اوایل سال ۱۹۷۹ به وسیله جف راسکین (Jef Raskin) یک کارمند اپل آغاز شد. در سبتامبر ۱۹۷۹ راسکین مجاز شد تا روی پروژه کار کند و در آغاز به دنبال یک مهندس کامپیوتر رفت که بتواند یک شکل اولیه داشته باشند و بعد از چند سال راسکین توانست یک تیم برای ساخت اولین مکینتاش درست کنند که از


•Chris Espinosa
•Joanna Hoffman
•George Crow
•Jerry Manock
•Susan Kare
•Andy Hertzfeld
تشکیل شده بودند

img/daneshnameh_up/2/2a/compics00170.jpg
تیم مکینتاش



 

Mac OS که مخفف Macintosh Operating System است، نام تجاری یک سری از سیستم عامل های دارای رابط گرافیکی کاربر است که توسط شرکت Apple برای کامپیوترهای مکینتاش توسعه داده شده اند. سیستم عامل Mac عموماً به خاطر رابط گرافیکی خوب خود مشهور شده است. این سیستم عامل برای نخستین بار در سال 1984 با کامپیوتر Macintosh 128K عرضه شد. نسخه های اولیه Mac OS تنها با کامپیوترهای مکینتاش که بر مبنای Motorola 68000 ساخته شده بودند، سازگار بودند در حالیکه نسخه های جدیدتر با کامپیوترهای PowerPC نیز سازگار شدند. اخیراً نیز سیستم عامل Mac OS X با کامپیوترهای Intel x86 سازگار شده است. نسخه های مختلف Mac OS نخستین سیستم عامل مکینتاش شامل دو بخش نرم افزاری بود که با نام های "System"و "Finder" شناخته می شدند که هرکدام از این دو بخش دارای نسخه مخصوص به خود بودند. System 7.5.1 نخستین نسخه ای بود که در آن آرم Mac OS یک قیافه خندان استفاده شده است؛ و نام Mac OS نیز برای اولین بار با Mac OS 7.6 معرفی شد. سیستم عامل Mac OS را می توان به دو خانواده مختلف سیستم های عامل تقسیم کرد “Classic” Mac OS که شامل سیستم عامل عرضه شده در سال 1984 و نسخه های بعدی آن تا نسخه Mac OS 9 می شود.Mac OS X (که حرف "X" معرف عدد رومی 10 است) از اجزای Open Step (توابع API تعریف شده برای یک سیستم عامل شی گرا که هر سیستم عامل مدرنی آن را به عنوان بخشی از هسته خود دارد استفاده می کند. "Classic” Mac OSبا این وی‍ژگی که در آن از خط فرمان استفاده نمی شود شناخته می شود. این سیستم عاملِ کاملاً گرافیکی بسیار مشابه سیستم عامل Commodore GEOS است. با وجود راحتی استفاده از آن، این سیستم عامل دارای کمبودها و نقایصی نیز بود.


 


کمبودها و نقایص این سیستم عامل


 

حالت تک پردازشی (البته در نسخه های اولیه این سیستم عامل) یا چند پردازشی اشتراکی (در نسخه های بعدی)، امکان مدیریت حافظه با مقدار محدود، عدم استفاده از حافظه حفاظت شده، و احتمال تداخل با نسخه های جدیدتر سیستم های عامل دیگری که قابلیت های جدیدی (نظیر استفاده از شبکه) را فراهم می کنند، از جمله کاستی های این سیستم عامل به حساب می آیند. نخستین سیستم فایل استفاده شده در Mac OS سیستم فایل مکینتاش (Macintosh File System (MFS)) بود که تنها امکان استفاده از یک سطح فولدر را فراهم می کرد. این سیستم فایل در نسخه های بعدی، با سیستم فایل Hierarchical File System (HFS) سیستم فایل سلسله مراتبی) که دارای ساختار درختی مدیریت فایل بود، جایگزین شد. در رابطه با سیستم فایل سیستم عامل مکینتاش باید به نکته مهمی اشاره کرد که آن را از سیستم های فایل دیگر سیستم عامل ها متمایز می کند. اکثر سیستم های فایل که توسطDOS ، Unix یا دیگر سیستم عامل ها استفاده می شوند، به سادگی فایل را بصورت یک سری از بایت های پیوسته در نظر می گیرند بطوریکه هر فایل نیاز به برنامه ای دارد که تشخیص دهد آن فایل حاوی چه اطلاعاتی است. برخلاف این قاعده، MFS و HFS فایل را بصورت دو بخش مجزا (بخش داده و بخش منابع) در نظر می گیرند. بخش "داده" (Data) حاوی اطلاعات مشابه با سیستم عامل های دیگر است (مثلاً بخش داده می تواند حاوی متن یک سند یا اطلاعات یک فایل تصویری باشد). بخش "منابع "(Resource) شامل دیگر اطلاعات ساختاری مربوط به فایل (مانند تعاریف منوها، گرافیک، صدا، یا کدهای اجرایی) است. یک فایل ممکن است تنها شامل بخش منابع باشد (در حالی که بخش داده آن خالی است)، یا تنها شامل بخش داده باشد (در حالی که بخش منابع آن خالی است) و یا شامل هر دو بخش داده و منابع باشد. یک فایل متنی می تواند متن را در بخش داده فایل و اطلاعات مربوط به نوع فرمت و قالب بندی متن را در بخش منابع فایل ذخیره کند. این کار به این منظور انجام می شود که مثلاً اگر برنامه ای با فرمت قالب بندی متن آشنا نبود، حداقل قادر به خواندن خود متن باشد. از طرف دیگر، این تقسیم بندی باعث ناهماهنگی و عدم سازگاری با دیگر سیستم های عامل می شود؛ با کپی کردن یک فایل از سیستم فایل Mac به سیستم فایلی غیر از Mac بخش منابع فایل از دست می رود. در Mac OS X از ساختار مدیریت حافظه و چند پردازشی کنترل شده مشابه سیستم عامل Unix استفاده شده است. این سیستم عامل بر مبنای هسته Mach (Mach kernel) یک هسته کوچک سیستم عامل که در دانشگاه Carnegie Mellon در ایالت پنسیلوانیای آمریکا طی یک پرو‍ژه تحقیقاتی درباره محاسبات موازی و توزیع شده ایجاد شده است و نسخه BSD سیستم عامل Unix یک سیستم عامل شیءگرا که توسط Steve Jobs در شرکت NeXT ایجاد و توسعه داده شده است. سیستم مدیریت حافظه جدید اجازه اجرای برنامه های بیشتری را بطور همزمان می دهد و از بسته شدن برنامه های دیگر در حال اجرا به علت crash کردن یک برنامه جلوگیری می کند. همچنین این سیستم عامل دومین سیستم عامل مکینتاش است که در آن خط فرمان نیز گنجانده شده است، هرچند که برای استفاده از این خط فرمان می بایست Terminal Emulator توسط کاربر اجرا شود سیستم عامل Mac OS دارای خط فرمان نبود و نخستین سیستم عامل مکینتاش که دارای خط فرمان بود، سیستم عامل A/UX است که توسعه آن متوقف شده است) .مشکلات مختلفی باعث شده است که Mac OS X نسبت به Mac OS کمتر کاربرپسند باشد و کار با آن مشکل تر باشد. از جمله این عوامل نیاز به سخت افزار قوی تر برای اجرای سیستم عامل، عدم ارائه برخی قابلیت های سیستم عامل که در نسخه های قبلی وجود داشت، و برخی ناسازگاری های جدی با نسخه قبلی (زیرا درایورهای نوشته شده برای Mac OS سازگار با Mac OS X نیستند) است.
+ نوشته شده در  شنبه 1388/01/22ساعت   توسط سعید  | 

سیستم های بی درنگReal Time

سیستمهای بی درنگ معمولاً به عنوان یک کنترل کننده در یک کاربرد خاص استفاده می‌شوند. سیستم در این حالت می‌بایست در زمانی مشخص و معین حتماً جواب مورد نظر را بدهد .
سیستمهای کنترل صنعتی, پزشکی , کنترل موشک و غیره از این دسته‌اند.
در سیستمهای بی درنگ زمان پاسخ باید سریع و تضمین شده باشد ولی در سیستم اشتراک زمانی مطلوبست که زمان پاسخ سریع باشند (ولی اجباری نیست).درسیستم دسته‌ای هیچ محدودیت زمانی در نظر گرفته نمی‌شود.
در سیستمهای بی درنگ معمولاً وسایل ذخیره سازی ثانویه وجود ندارد و به جای آن از حافظه ‌های ROM استفاده می‌شود. سیستم عاملهای پیشرفته نیز در این سیستمها وجود ندارند چرا که سیستم عامل کاربر را از سخت افزار جدا می‌کند و این جدا سازی باعث عدم قطعیت در زمان پاسخگویی می‌شود.
سیستمهای بی درنگ با سیتسمهای اشتراک زمانی تناقض دارند لذا نمی‌توانند هر دو توأماً وجود داشته باشند . به دلیل نیاز به پاسخ دهی سریع و تضمین شده سیستم‌های بلادرنگ از حافظه مجازی و اشتراک زمانی استفاده نمی‌کنند.
به این سیستم‌ها «بی درنگ سخت» نیز گفته می‌شود.
در سیستمهای «بی درنگ نرم» یک وظیفه بی درنگ بحرانی, نسبت به سایر وظایف اولیت دارد و تا پایان تکمیل شدنش این ارجحیت را دارا خواهد بود . از آنجا که این سیستمها مهلت زمانی(deadline) را پشتیبانی نمی‌کنند استفاده آنها در کنترل صنعتی ریسک آور است . هر چند که این سیستمهای بی درنگ نرم می‌بایست پاسخی سریع داشته باشند ولی مساله پاسخ دهی به حادی سیستمهای بی درنگ سخت نمی‌باشد.
از کاربردهای سیستم بی درنگ نرم می‌توان رزرواسیون شرکتهای هواپیمایی ,چند رسانه‌ای (multimedia) واقعیت مجازی (Virtual reality) را نام برد. این سیستمها به ویژگی‌های سیستم عاملهای پیشرفته (که توسط بیدرنگ سخت حمایت نمی‌شوند)نیازمندند . بعضی از نسخه‌های UNIX مانند solaris 2 خاصیت بیدرنگ نرم را دارا می‌باشند.
در برخی کاربردها (مثل کنترل صنعتی)در کامپیوترها از سیستم عامل استفاده نمی‌شود. از آنجا که در سیستمهای کنترل صنعتی برنامه می‌بایست در اسرع وقت در مقابل یک اتفاق , از خود عکس العمل نشان دهد , وجود واسطه سیستم عامل باعث کند شدن مراحل می‌گردد
+ نوشته شده در  شنبه 1388/01/22ساعت   توسط سعید  | 

زبان برنامه نویسی D قسمت اول

چشم انداز

D چیست؟

D یک زبان برنامه‌سازی سیستمی و کاربردی همه منظوره است . D یک زبان سطح بالاتر از ++C است اما توانایی نوشتن کدهای قدرتمند و تعامل مستقیم با APIهای سیستم عامل و سخت‌ افزار را حفظ می‌کند.D به خوبی برای نوشتن برنامه‌های متداول و برنامه‌های بزرگ چند میلیون خطی با تیمهای برنامه نویسی مناسب است . D به آسانی قابل آموختن است ، توانائیهای زیادی را برای کمک به برنامه ‌نویس فراهم می‌کندوبه خوبی برای فناوری پرتکاپوی بهینه‌سازی کامپایلر مناسب است.

D یک زبان اسکریپتی(متنی) یا دارای مفسر(interpreter) نیست. همچنین دارای ماشین مجازی ، مذهب خاص یا فلسفه برتری‌جویی نمی باشد. بلکه یک زبان عملی است برای برنامه‌ نویسان حرفه‌ای که به انجام سریع و قابل اعتماد پروژه و کد قابل فهم آسان نیاز دارند و مسئول عملکرد صحیح برنامه هستند.

D اوج چند دهه تجربه به کارگیری کامپایلرهایی از زبانهای گوناگون و تلاش برای بنانهادن پروژه های بزرگ توسط آن زبان‌ها است.

D از زبانهای دیگر مخصوصاً ++C الهام می‌گیرد و آن را با تجربه و کاربرد به معنای واقعی درهم می‌آمیزد.

چرا D ؟

واقعاً چرا؟ چه کسی نیاز به زبان برنامه ‌نویسی جدید دارد؟

صنعت نرم‌ افزار راه درازی از زمان اختراع زبان C تا کنون پیموده است. به وسیله ++C تعداد زیادی مفاهیم جدید به زبان C افزوده شد. اما سازگاری با گذشته C در آن ادامه یافت ، شامل سازگاری با تقریباً تمام ضعفهای طراحی اصلی زبان C .

تلاشهای زیادی برای برطرف ساختن آن ضعفها تاکنون صورت گرفته است اما در پی پا فشاری بر حفظ سازگاری با گذشته خنثی شده است. در ضمن هر دوی C و ++C دستخوش یک رشد پیوسته خصوصیات جدید شده ‌اند.

این خصوصیات جدید باید به دقت و بدون نیاز به بازنویسی کد قدیمی به ساختار موجود خورانده شود. نتیجه نهایی بسیار پیچیده است ؛ C استاندارد تقریباً 500 صفحه است و ++C استاندارد حدود 750 صفحه ! در زمینه کامپایلر های ++C واقعیت این است که تعداد اندکی از کامپایلر های موجود ،استاندارد این زبان را به صورت مؤثر و کامل پیاده سازی می کنند.

برنامه نویسان ++C گرایش می‌ یابند که در جزایر خاصی از زبان برنامه بسازند ، از بعضی خصوصیات ماهرانه بهره می گیرند در حالی که از به کار بردن بسیاری از خصوصیات دیگر اجتناب می کنند. با وجود اینکه کد ++C از یک کامپایلر به کامپایلر دیگر قابل حمل است می‌تواند به سختی از برنامه نویسی به برنامه نویس دیگر منتقل شود.

توانایی بزرگ ++C این است که می‌تواند تعداد زیادی سبک های اصلی برنامه‌نویسی را پشتیبانی کند. اما در کاربرد طولانی مدت ، سبکهای دارای اشتراک یا تناقض یک مانع و در نتیجه وقت گیرند.

ناامید کننده است که زبانی چنین قدرتمند ، اعمال پایه‌ا ای مانند تغییر اندازه آرایه‌ها و الحاق رشته‌ها را انجام نمی‌دهد. البته ++C توانایی برنامه نویسی قدرتمند برای پیاده سازی آرایه های قابل تغییر اندازه و رشته ها را فراهم می‌کنند (مانند نوع بردار در STL ) . اما به هرحال چنین خصوصیات بنیادی ، بایستی جزء قسمتهای زبان باشد. آیا قدرت و قابلیتهای ++C ، قابل گسترش ، طراحی مجدد و پیاده‌سازی به یک زبان ساده وارتگنال (منحصر به فرد و مستقل) و کاربردی می‌ باشد؟ آیا تمامی آنها می‌ تواند داخل بسته‌ ای قرار گیرد که برای کامپایلرنویسان به آسانی قابل پیاده‌سازی صحیح باشد و کامپایلرها را قادر کند که به نحوی کارا ، کدهای بهینه شده و پرتکاپو ایجاد کند؟

فناوری پیشرفته کامپایلر به نقطه‌ای رسیده است که خصوصیاتی از زبان که به منظور جبران کردن ناتوانی فناوری ابتدایی کامپایلر وجود دارند ، می‌توانند حذف شوند. (مثالی ازاین نمونه می‌تواند واژه کلیدی 'register' در C باشد ، مثالی ظریفتر ماکروی پیش‌پردازنده در C است) . ما می‌توانیم به فناوری پیشرفته‌ی بهینه سازی کامپایلر اعتماد کنیم تا دیگر به خصوصیاتی از زبان که برای دست یافتن به کیفیت کد قابل‌قبول (جدای از کامپایلرهای ابتدائی) لازم است نیاز نداشته باشیم.

D درنظر دارد که هزینه‌های گسترش نرم‌افزار را حداقل %10 کاهش دهد توسط افزودن خصوصیات بهینه‌سازی بالابرنده میزان سودمندی و تولید ، همچنین با تعدیل کردن خصوصیات زبان ، به طوری که اشکالات وقت‌گیر متداول از ابتدا حذف می‌شوند.

منظره کلی D شبیه C و ++C است . این موضوع آموختن D و انتقال کد به آن را آسانتر می‌کند. گذر از C/++C به سوی D باید طبیعی حس شود و برنامه نویس مجبور نخواهد بود که یک راه کاملاً جدید انجام کارها را فراگیرد. استفاده از D به این معنا نیست که برنامه نویس به یک ماشین مجازی خاص زمان اجرا محدود شود مانند ماشین مجازی جاوا یا Smalltalk . هیچ ماشین مجازی D وجود ندارد .D یک کامپایلر سرراست است که Objectfile های قابل پیوند (Link) تولید می‌کند. D دقیقاً مانند C به سیستم عامل متصل می‌شود . ابزارهای آشنای متداول مانند make مستقیماً در برنامه‌نویسی D گنجانده شده است.

منظره عمومی و احساس موجود در C/++C ابقا خواهد شد . همان املای جبری به کار خواهد رفت و اغلب عبارات و فرمهای دستورات و طرح‌بندی عمومی. برنامه‌های D هم به سبک C (توابع و داده‌ها) و هم در سبک ++C (شیءگرا) یاترکیبی از هردو قابل نوشتن است .



D برای چه کسانی مناسب است؟

۱. برنامه نویسانی که به طور مداوم از ابزارهای تجزیه و تحلیل کد استفاده می‌کنند تا خطاها را حتی قبل از کامپایل شدن ازبین ببرند.

۲. افرادی که عمل کامپایل را با بالاترین سطح هشدارها انجام می‌دهند یا از کامپایلر می‌خواهند که هشدارها را به منزله خطا تلقی کند.

۳. مدیران برنامه‌نویسی که مجبورند به راهنماییهای سبک برنامه‌نویسی برای اجتناب از اشکالات معمول C اعتماد کنند.

۴. افرادی که براین باورند که وعده‌های سبک شییءگرای ++C به خاطر پیچید‌گی هایش برآورده نمی‌شود.

۵. برنامه‌نویسانی که از قدرت زبانزد ++C لذت می‌برند اما به خاطر نیاز به صرف تلاش زیاد برای اداره حافظه و یافتن اشکالات اشاره‌گرها ، ناامید شده‌اند.

۶. پروژه‌هایی که نیاز به تست همراه و تصدیق و تأیید دارند.

۷. برنامه‌نویسانی که فکر می کنند زبان باید دارای خصوصیات کافی باشد . برای رفع نیاز دائمی اداره دستی و مستقیم اشاره‌گرها.

۸. برنامه‌نویسان محاسبات عددی . D دارای خصوصیات زیادی برای پشتیبانی مستقیم اعمال مورد نیاز برنامه نویسان محاسبات می‌باشد ، مانند پشتیبانی مستقیم از نوع داده مرکب و اعمال تعریف شده برای بی‌نهایت و NAN’S (این خصوصیات در استاندارد C99 اضافه شد ولی در ++C نه)

بخش تجزیه لغوی و تجزیه نحوی D از یکدیگر در نهایت مجزا هستند و همچنین از تجزیه‌گر معنایی.

این بدین معناست که نوشتن ابزارهای ساده برای اداره کردن کد منبع D در سطح عالی آسان است بدون این که مجبور به ساختن یک کامپایلر کامل باشیم . همچنین بدین معناست که کد منبع ،برای کاربردهای خاص قابل انتقال به فرم tokenها می باشد.

+ نوشته شده در  شنبه 1388/01/22ساعت   توسط سعید  | 

زبان برنامه نویسی D قسمت دوم

D برای چه کسانی مناسب نیست؟

    ۱. به طور واقع بینانه ، هیچکس قصد تبدیل میلیونها خط از C/++C به D ندارد و از آنجا که D کد منبع اصلاح نشده C/++C را کامپایل نمی‌کند ، برای این مورد مناسب نیست. (D به هرحال API های C را به خوبی پشتیبانی می‌کند).

    ۲. برنامه های خیلی کوچک : یک زبان اسکریپتی یا دارای مفسر مانند Perl , Dmdscript , Python احتمالاً مناسبتر است.

    ۳. به عنوان زبان برنامه‌نویسی برای شروع: برای مبتدی‌ها Python یا java مناسبتر است . D برای برنامه نویسان متوسط تا پیشرفته یک زبان دوم عالی است .

    ۴. زبان به کاربرد کلمات صحیح وسواس دارد. D یک زبان عملی است و هر خصیصه از آن ترجیحاً قابل مقایسه و ارزیابی در همان حداست تا در حد ایده‌آل . به طور مثال D ساختارها و مفاهیمی دارد که به طور مجازی نیاز به اشاره‌گرها را برای امور پیش ‌پا افتاده ازبین می‌برد. به طور مشابه تغییر نوعها هنوز وجود دارد برای آن جایی که سیستم نوع ، نیاز به نادیده گرفتن دارد.



خصوصیات اصلی D

این قسمت برخی خصوصیات جالب‌تر D(نسبت به C) را در دسته‌های مختلف طبقه‌بندی می‌کند.

برنامه‌نویسی شییءگرا

کلاسها : طبیعت شییء گرای D از کلاسها آغاز می‌شود. مدل وراثت ، وراثت یگانه است که با روابط تقویت می‌شود. شییء کلاس در ریشه‌ی درخت وراثت می نشیند. بنابراین تمام کلاسها یک مجموعه متداول تابعی را اجرا می‌کنند. کلاسها به وسیله ارجاع معرفی می‌شوند و چنان کد پیچیده‌ای برای آنکه پس‌از استثناها پاک شود نیاز نیست.

تعریف مجدد عملگرها: می‌توان کلاس را برآن واداشت که با استفاده از عملگرهای موجود ، سیستم نوع را برای پشتیبانی نوعهای جدید گسترش دهد. مثلاً ایجاد کلاس اعداد بزرگ و سپس تعریف مجدد عملگرهای (/,*,_,+) برای توانایی استفاده از آن ها در املای عبارات جبری معمولی.

فراوری( Productivity)

پیمانه‌ها : فایلهای منبع دارای ارتباطی یک‌ به ‌یک با پیمانه‌ها هستند. به جای include# نمودن یک فایل از اعلان ها ، فقط پیمانه را import می‌نماییم. هیچ نگرانی در مورد importهای متعدد از همان پیمانه نیست همچنین نیازی به پوشاندن فایلهای header با ifndef# یا endif# یا pragma once# و از این قبیل نیست.

اعلان در برابر تعریف

++C معمولاً نیاز دارد که توابع و کلاسها دوبار اعلان شوند یک اعلان که در فایلهای header صورت می‌گیرد و تعریف که در فایل منبع با پسوند “C.” . این یک روند مستعد خطا و کسل کننده است . به طور واضح برنامه‌نویس فقط نیاز دارد که یک بار آن را بنویسد و سپس کامپایلر باید داده‌های اعلان را بسط دهد و برای وارد کردن نمادین در دسترس قرار دهد. دقیقاً آن گونه که D می‌کند:

مثال:

class ABC

{

int func() { return 7; }

static int z = 7;

}

int q;

دیگر نیاز به تعریف جدای توابع عضو، اعضای استاتیک ، extern ها یا املاهایی مانند زیر نیست:

int ABC::func() { return 7; }

int ABC::z = 7;

extern int q;

تذکر : البته در ++C توابع جزیی مانند {;return 7} به صورت inline هم نوشته می‌شوند اما توابع پیچیده نه. علاوه برآن اگر یک ارجاع بعد از آن موجود باشد تابع نیاز به الگو دارد که از قبل موجود باشد مثال زیر در ++C کار نمی کند.

class Foo

{

int foo(Bar *c) { return c->bar; }

};

class Bar

{

public: int bar() { return 3; }

};

اما کد هم‌ارز در D کار می کند:

class Foo

{

int foo(Bar c) { return c.bar; }

}

class Bar

{

int bar() { return 3; }

}

اینکه یک تابع D به صورت inline است یا نه توسط تنظیمات بهینه‌ساز قابل کنترل است .



قالب‌ها

قالبهای D روشی واضح برای پشتیبانی برنامه‌سازی عمومی همراه با قدرت اختصاصی‌سازی به صورت قسمت به قسمت ، پیشنهاد می‌کند.

آرایه‌های شرکت‌پذیر

آرایه‌های شرکت‌پذیر آرایه‌هایی هستند با یک نوع داده قراردادی (اختیاری) به عنوان ایندکس به جای آنکه به یک ایندکس از نوع اعداد صحیح محدود باشند. در اصل آرایه‌های شرکت‌پذیر جدولهای در هم سازی(hash ) هستند. این آرایه‌ها ساختن سریع ، کارا و خالی از اشکال جدول‌های سمبل را آسان می‌نماید.



تعریف نوعهای واقعی

تعریف نوعهای C و ++C در حقیقت نام مستعار نوع هستند طوریکه هیچ نوع جدیدی به طور واقعی مطرح نمی‌شود. D ، تعریف نوعهای واقعی پیاده‌سازی می‌کند جایی که:

typedef int handle;

به طور واقعی یک نوع جدید به نام handle ایجاد می‌کند . بر کنترل نوع تأکید شده است و تعریف نوعها در تعریف مجدد توابع شریک می‌شوند. برای مثال :

int foo(int i);

int foo(handle h);



نوع bit

نوع داده پایه بیت است و D یک نوع داده با نام bit دارد . این امر بیش از همه در ساخت آرایه‌هایی از بیتها مفید است:

bit [ ] foo;

توابع

D توقع پشتیبانی از توابع معمول از جمله توابع عمومی ، توابع مجدد تعریف شده ، توابع inline ، توابع عضو ، توابع مجازی ، اشاره‌گرها به توابع و … را داشته است علاوه برآن :

توابع تودرتو

توابع می‌توانند درون توابع دیگر قرار گیرند. این امر در ساخت کد ، خاصیت locality و تکنیکهای بسته‌بندی توابع بسیار مفید است.

لفظ‌های توابع Functionliterals

توابع بی‌نام می‌توانند به طور مستقیم در یک عبارت جای داده شوند.

وکالت(Closure) دینامیک

توابع محصور شده و توابع عضو کلاس بوسیله وکالت (delegate) می‌توانند ارجاع داده شوند که این باعث آسان تر شدن و type safe شدن برنامه‌سازی عمومی می‌شود.

پارامترهای ورودی، خروجی ، ورودی-خروجی

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

بدین ترتیب برای D این امکان فراهم میشود که مستقیماً با یک بازه وسیعتری از APIهای بیگانه ارتباط برقرار کند. و هیچ نیازی برای کارهای جانبی مانند زبانهای تعریف ارتباطات وجود ندارد.

آرایه‌ها

آرایه‌های C اشتباهات متعددی دارند که می‌توانند تصحیح شوند:

    ۱. اطلاعات بعد با آرایه همراه نیست و بنابراین باید ذخیره‌شده و جداگانه ارسال شود . مثال کلاسیک این مورد پارامترهای argc و argv هستند که به main فرستاده می‌شوند.

main (int argc , char*argv[])

    ۲. آرایه‌ها اشیاء سطح اول نیستند. وقتی یک آرایه به عنوان پارامتر به یک تابع فرستاده می‌شود به یک اشاره‌گر برگردانده می‌شود . حتی با اینکه الگوی تابع به طور گیج کننده‌ای می گوید که این آرایه است. وقتی این برگرداندن انجام می‌شود تمام اطلاعات نوع آرایه گم می‌شود.

    ۳.آرایه‌های C قابل تغییر اندازه نیستند . این بدان معنی است که حتی چیزهای ساده ،انبوه و متراکم می‌گردد. مانند یک پشته که نیازدارد به عنوان یک کلاس پیچیده ساخته شود.

    ۴.مرز یک آرایه C قابل کنترل نیست چون اصلاً مرز آرایه مشخص نیست.

    ۵.آرایه‌ها در C با علامت [ ] پس از شناسه اعلان می‌شوند . این به یک املای بی‌خود و گیج کننده در اعلان اشیایی مانند اشاره‌گر به یک آرایه می‌انجامد :

int (*array ) [3];

در D علامت [ ] در سمت چپ قرار می‌گیرد که فهم آن بسیار ساده‌تر است.

int [3] * array; // اعلان یک اشاره‌گر به یک آرایه سه‌تایی از اعداد صحیح

Long [ ] func (int x); //تابعی که آرایه ای از اعداد صحیح بلند را برمی گرداند

آرایه‌های D در چهار نوع می‌آیند : اشاره‌گرها ، آرایه‌های استاتیک ، آرایه‌های دینامیک و آرایه‌های شرکت‌پذیر ،‌قسمت آرایه‌ها را ببنید !

رشته‌ها

پردازش رشته‌ها آن قدر متداول است (و آن قدر در C و ++C زمخت و بدترکیب) که نیازمند پشتیبانی مستقیم در زبان برنامه سازی است. زبانهای مدرن از جمله D ، الحاق رشته‌ها ، کپی کردن و … را در دست می‌گیرند . رشته‌ها رهاورد مستقیم پردازش بهینه شده آرایه‌ها هستند.

+ نوشته شده در  شنبه 1388/01/22ساعت   توسط سعید  | 

زبان برنامه‌نویسی D بخش سوم

کنترل منابع

جمع آوری زباله (Grabage Collection)

تخصیص حافظه در D کاملاً با جمع‌آوری زباله همراه است. تجربه شهودی بیان می‌کند که تعداد زیادی از خصوصیات ++C برای کنترل رهاسازی حافظه لازم است .با وجود جمع‌آوری زباله، زبان بسیار ساده‌تر می‌شود.

گروهی می‌گویند جمع‌آوری زباله برای جوجه برنامه‌نویس ها و تنبل‌ها است. زمانی این حرف در مورد ++C گفته می‌شد. اما شاید هیچ چیز در ++C نیست که با C یا اسمبلر قابل انجام نباشد .

جمع‌آوری زباله ، کد خسته کننده پیگیری تخصیص حافظه‌های مستعد خطا که در C و ++C لازم است را حذف می‌کند. این نه تنها بدین معناست که گسترش برنامه‌ها سریعتر انجام می‌گیرد و هزینه‌های نگهداری کاهش می یابد ، بلکه برنامه به میزان زیادی در دفعات اجرا سریع تر است.


کنترل حافظه ساده و واضح

با وجود اینکه D یک زبان دارای جمع‌آوری زباله است ، اعمال new و delete می‌توانند طوری تعریف شوند که به عنوان یک تخصیص دهنده حافظه ی سفارشی به کار ‌روند.

RAII

RAII یک تکنیک پیشرفته گسترش نرم‌افزار برای کنترل تخصیص منابع و آزادسازی آنها است ، D از RAII در یک روش کنترل شده قابل پیش‌بینی که مستقل از چرخه جمع‌آوری زباله است پشتیبانی می‌کند.

کارایی

توده سبک وزن

D ساختمان‌های سبک ساده C را پشتیبانی می‌کند هم برای سازگاری با ساختمان داده‌های C و نیز به خاطر اینکه آنها در جاهایی که قدرت کامل کلاسها کارایی ندارد مفیدند.

Inline Assembler

درایور سخت افزار ، کاربردهای سیستمی با کارایی بالا ، سیستم های تعبیه شده و کدهای خصوصی شده ، بعضی وقتها نیاز به غرق شدن در زبان اسمبلی دارند تا کار انجام شود . در حالی که پیاده سازی های D نیاز به کارگیری اسمبلر خطی ندارند ، این خصوصیت،در زبان تعریف شده و قسمتی از آن است . اغلب نیازهای کد اسمبلی به وسیله این بخش قابل برآوری است که نیاز به اسمبلرهای جداگانه و DLL ها را مرتفع می سازد .

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

قابلیت اعتماد

یک زبان پیشرفته باید برنامه نویس را در رفع تمامی اشکالات از کد یاری کند . این کمک به چندین صورت می تواند ارائه شود . از آسان سازی کاربرد تکنیکهای قدرتمند تر ، تا گوشزد کردن کد غلط به طور آشکارا توسط کمپایلر و کنترل زمان اجرا .



معاهدات ( Contracts )

طراحی به وسیله کنتراکت (اختراع B.Meyer ) یک تکنیک انقلابی برای کمک به مطمئن شدن از صحت برنامه است و نسخه DBC زبان D شامل پیش شرطهای توابع ، پس شرطهای توابع ، یکسانی های کلاس و کنتراکتهای ثابت کننده است .


آزمایش واحد

آزمایش قسمت ها می تواند به یک کلاس افزوده شود طوری که به صورت خودکار در آغاز اجرای برنامه ، اجرا شود . این در هشدار دادن اینکه پیاده سازی کلاس در هر بار ساخته شدن ،‌سهواً‌‌‌‌‌‌‌‌ با شکست مواجه نشده است مفید است . آزمایش واحد قسمتی از کد کلاس را تشکیل می دهد. ایجاد آنها یک بخش طبیعی پروسه ی گسترش کلاس ها خواهد شد برخلاف پشت گوش انداختن کد تمام شده از دسترس گروه آزمایش.

آزمایش واحد در دیگر زبان ها قابل انجام است. اما تا خود زبان شامل این مفهوم نباشد، نتیجه جالب از آب در نمی آید . آزمایش واحد یک خصوصیت اصلی و بارز در D است . برای توابع کتابخانه ای به خوبی عمل می کند، هم ضمانت می کند که تابع حقیقتاً کار می کند و هم با مثال بیان می کند که تابع چگونه کار می کند . خیل کثیرمنابع کدهای کاربردی و کتابخانه های ++C موجود در اینترنت برای دانلود را در نظر بگیرید . چه تعداد از آنها با تستهای کلی همراه است ( تست واحد را هم در نظر نگیرید ) ؟ کمتر از یک درصد . روش معمول این است که اگر کامپایل شده است اجرا هم می شود و شگفت زده خواهیم شد اگر هشدارهای کامپایلر اشکالات واقعی باشند .

در کنار طراحی با کنتراکت ، آزمایش واحد ، D را به مراتب به بهترین زبان برای نوشتن قابل اعتماد و کاربردهای سیستمی قدرتمند تبدیل می کند.


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

اکنون اشکال زدایی بخشی از املای زبان است ( debug ) . که در زمان کامپایل قابل فعال یا غیر فعال شدن است بدون کاربرد دستورات پیش پردازنده یا ماکروها . املای debug یک ابزار تشخیص سازگار، استوار و قابل حمل و قابل فهم را فعال می کند که بفهمد آیا نیاز است که کد منبع قادر بر ایجاد هر دو کامپایل اشکال زدایی و کامپایل نهایی باشد ؟

پردازش استثناء

مدل برتر try–catch-finally به جای مدل فقط try–catch به کار رفته است .دیگر هیچ نیازی نیست که اشیای زائد ایجاد کنیم فقط برای اینکه معناهای نهایی را توسط مخرب ( destructor ) پیاده سازی کنیم .

هماهنگی و هم روندی(Synchronization)

برنامه سازی چند رشته ای (Multi Thread Programming) متداول تر می شود و D مبناهایی برای ساخت برنامه های چند رشته ای فراهم می کند . هم روند سازی می تواند هم در سطح متد و هم در سطح شیئ انجام شود .

synchronize int func ( ) {.}

توابع هم روند (سنکرون) در هر زمان فقط به یک رشته (Thread) اجازه می دهند که آن تابع را اجرا کند . عبارت synchronize در اطراف قطعه ای از عبارات انحصار متقابل(mutex)ایجاد می کند و دسترسی به وسیله شیئ یا به صورت عمومی را کنترل می کند .


پشتیبانی تکنیک های قدرتمند

    ۱. آرایه های دینامیک به جای اشاره گر ها

    ۲. متغیرهای ارجاعی به جای اشاره گر ها

    ۳. اشیای ارجاعی به جای اشاره گرها

    ۴.جمع آوری زباله به جای کنترل دستی حافظه

    ۵. مبانی پیش ساخته موجود برای هم روندی رشته ها

    ۶. عدم وجود ماکرویی که به طور غیر عمدی به کد آسیب بزند .

    ۷. توابع inline به جای ماکروها

    ۸. کاهش وسیع نیاز به اشاره گرها

    ۹. سایز انواع مرکب واضح و مشخص است

    ۱۰. عدم شک در مورد علامت دار بودن کاراکتر ها

    ۱۱. عدم نیاز به دو بار اعلان در کد منبع و فایلهای header

    ۱۲. پشتیبانی واضح از تجزیه و تحلیل برای افزودن کد اشکال زدایی


+ نوشته شده در  شنبه 1388/01/22ساعت   توسط سعید  | 

زبان برنامه نویسی D بخش چهارم

کنترل های زمان کامپایل

۱. کنترل نوع قوی تر

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

    ۳. مجاز نبودن متغییرهای محلی به کار نرفته

    ۴. عدم ' ; ' تکی در بدنه حلقه ها

    ۵. عمل انتساب ،مقادیر بولی بر نمی گرداند.

    ۶. از رده خارج کردن API های متروک


کنترل زمان اجرا

    ۱. عبارات اثبات صحت ( )assert

    ۲. کنترل مرزهای آرایه

    ۳. case تعریف نشده در استثنای switch

    ۴. استثنای تجاوز از اندازه حافظه

    ۵. ورودی ، خروجی و طراحی یکسان کلاس به وسیله کنتراکت


سازگاری

تقدم عملگر و قوانین سنجش

D عملگرهای C و قوانین تقدم آنها را حفظ می کند همچنین ترتیب قوانین سنجش و قوانین تقدم . این از اشکالات ریز که از ابتدای برنامه نمایان می شود جلوگیری می کند .


دسترسی مستقیم به API های C

نه تنها D نوع داده های مطابق با C دارد همچنین دسترسی مستقیم به توابع C را فراهم می سازد . هیچ نیازی به نوشتن توابع بسته بندی شده یا کدی برای کپی کردن اجزای متراکم یک توده به صورت یک به یک نیست.



پشتیبانی از تمام نوع داده های C

ارتباط با هر API زبان C و یا کد کتابخانه ای C ممکن است . این پشتیبانی تمام انواع C 99 را در بر می گیرد . D شامل توانایی صف بندی اعضای ساختمان برای مطمئن شدن از سازگاری با فرمتهای داده خارجی می باشد.

پردازش استثنای سیستم عامل

مکانیسم پردازش استثناهای D متصل به روشی است که سیستم عامل در سطح زیرین استثناها را در یک برنامه کاربردی پردازش می کند .



کنترل پروژه

نسخه سازی

D . D تکنیک if# و

نبود هشدار

کامپایلرهای D هشدارهایی برای کدهای نامطمئن تولید نمی کنند . کد یا توسط کامپایلر قابل قبول است یا نیست . این خصوصیت هر گونه بحثی در این زمینه که آیا هشدار خطایی صحیح است یا نه و نیز هر بحثی در این باره که با آن هشدار چه کنیم را از بین می برد . نیاز برای هشدار کامپایلر نشانه‌ی طراحی ضعیف زبان است .

استهلاکDeprecation

به مرور زمان ،بعضی کدهای کهنه کتابخانه با نو تر و نسخه بهتر جایگزین می شود . نسخه قدیمی باید برای پشتیبانی کدهای به جا مانده از قبل موجود باشد اما می تواند لقب مستهلک بگیرد . کدهایی که نسخه های مستهلک را به کار می گیرند ، می توانند به انتخاب برنامه نویس توسط یک سویچ کامپایلر برچسب غیر قانونی بخورند که باعث آسان شدن کار برنامه نویسان برای نشان دادن هر وابستگی به خصوصیات مستهلک می شود .

نمونه برنامه D غربال اراتستن (تست اعداد اول):

import c.stdio ;
bit [8191] flags ;
int main (){
int i , count , prime , k , iter ;
print f(“ 10 iterations \n” );
for ( iter = 1 ; iter<=10 ; iter ++ ) {
count = 0 ;
flags [ ] = 1 ;
for ( i = 0 ; i < flags . length ; i ++ ){
if ( flags [i] ) {
prime = i + i +3;
k = i + prime;
while ( k < flags . Length ) {
flags , [ k] = 0 ;
k + = prime ;
}
count + = 1;
}
}
}
print f ( “ % d primes” , count ) ;
return 0 ;
}


+ نوشته شده در  شنبه 1388/01/22ساعت   توسط سعید  | 

زبان برنامه نویسی D بخش پنجم

مقادیر واسطه ممیز شناور

در بسیاری کامپیوترها ،‌اعمال با دقت بالا بیشتر از اعمال با دقت کمتر وقت نمی گیرند .این باعث می شوند که مفاهیم شمارشی بالاترین دقت ممکن را برای اعمال داخلی موقتی به کار ببرند . فلسفه مورد بحث این نیست که زبان را به پائین مقسوم علیه سخت افزاری محدود کنیم بلکه آن را قادر به بهره‌برداری از بهترین توانایی های سخت افزار مورد نظر نماییم .

برای اعمال ممیز شناور و مقادیر واسطه دستورات یک دقت بالاتر می تواند به کار رود . تنها حد پایین دقت توسط نوع عملوندها مشخص می شود نه حد بالای آن . نکته پیاده سازی : در ماشین های اینتل x 86 برای نمونه انتظار می رود ( اما لازم نیست ) که محاسبات واسطه ای در دقت کامل هشتاد بیتی که توسط سخت افزار پیاده سازی می شود انجام شود .

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

الگوریتم ها باید طوری نوشته شود که براساس حداقل دقت محاسبات کار کند .‌ آنها نباید در مواقعی که دقت واقعی بالاتر است افت عملکرد یابند یا شکست بخورند . انواع double یا float برخلاف نوع گسترش یافته فقط باید در موارد زیر به کار رود :

    ۱. کاهش مصرف حافظه برای آرایه های بزرگ .

    ۲. داده ها و آرگومان های توابع سازگار با C .



 

انواع موهومی و مختلط

در زبان های موجود ، یک تلاش عجیب برای به زور جا دادن انواع مختلط در تسهیلات تعریف نوع موجود مانند قالب ها ،‌ساختمان ها و … وجود داردو تمام این ها معمولاً در نهایت با شکست مواجه می‌شود.

شکست می خورند چون مفاهیم اعمال مختلط می تواند بسیار دقیق باشد و کامپایلر نمی داند که برنامه نویس در تلاش برای انجام چه کاری است بنابراین نمی تواند پیاده سازی معنایی را بهینه نماید .

تمام این کارها برای اجتناب از اضافه کردن یک نوع جدید انجام شده است . اضافه کردن یک نوع جدید بدین معناست که کامپایلر می تواند تمامی مفاهیم اعمال مختلط را دقیق پیاده کند . پس برنامه نویس می تواند بر یک پیاده سازی صحیح ( یا حداقل دارای ثبات ) اعداد مختلط اعتماد کند .

همراه بودن با یک بسته نوع مختلط برای یک نوع موهومی مورد نیاز است .یک نوع موهومی برخی از پیامدهای ظریف معنایی را حذف می کند و کارآیی را بهبود می بخشد بدون اینکه مجبور به انجام اعمال اضافی روی قسمت حقیقی واضح صفر ، باشیم . الفاظ موهومی دارای یک پسوند i می باشند .

imaginary j = 1.3 i ;

هیچ املای خاص برای نوع مختلط وجود ندارد فقط یک نوع حقیقی و موهومی را با هم جمع کنید :

complex c= 4.5 + 2i ;

افزودن دو نوع جدید به زبان کافی است از این رو انواع مختلط و موهومی دارای دقت توسعه یافته هستند . هیچ نوع اعشاری مختلط و موهومی یا نوع دابل مختلط یا موهومی وجود ندارد ( توجه : راه برای افزودن آنها در آینده باز است ) .

اعداد مختلط دارای دو صفت خاصه هستند :

قسمت حقیقی را به عنوان گسترش یافته بدست می دهد // .re
قسمت موهومی را به عنوان عدد موهومی بدست می دهد // .im
برای مثال :‌

c . re is 4.5

c . im is 2i



کنترل گرد کردن

حسابگر ممیز شناور IEEE 754 شامل توانایی تنظیم کردن چهار روش گرد کردن است . D املایی خاص برای دسترسی به آنها افزوده است : [ blah , blah , blah ]



پرچمهای استثناء

حسابگر ممیز شناور IEEE 754 می تواند پرچمهای مختلف را براساس آن چه در یک محاسبه رخ داده است تنظیم نماید : [ blah , blah , blah ]. این پرچمها می توانند به وسیله املای زبان SET / Reset شوند .



مقایسه های ممیز شناور

علاوه بر عملگرهای مقایسه معمولی < , < = , > , >= , == , != زبان D تعداد بیشتری که خاص اعداد ممیز شناور است اضافه می کند .

مدیریت حافظه

هر برنامه غیر جزیی نیاز به تخصیص و آزاد سازی حافظه دارد . هر چه پیچیدگی ، اندازه و کارآیی برنامه ها افزایش می یابد تکنیکهای مدیریت حافظه مهمتر می شوند . D اختیارات متعددی در زمینه مدیریت حافظه پیشکش می کند .



سه روش پایه تخصیص حافظه در D :

۱. داده استاتیک : در سگمنت داده پیش فرض تخصیص می یابند .

۲. داده پشته : در پشته برنامه CPU تخصیص می یابند .

۳. داده زباله جمع آوری شده :‌ به صورت پویا در heap جمع آوری زباله تخصیص می یابند .

قسمت بعدی تکنیک ها را برای استفاده از آنها توضیح می دهد به همراه برخی قابلیت های پیشرفته:

رشته ها ( و آرایه ها ) copy – on – write

فرستادن یک آرایه به یک تابع را در نظر بگیرید و احتمالاً‌ تغییر دادن آرایه و برگرداندن آرایه جدید . از آنجا که آرایه ها با ارجاع فرستاده می شوند نه با مقدار ، یک پیامد وخیم این است که ندانیم محتویات آرایه از آن کیست ؟ برای مثال تابعی که آرایه ای از کاراکترها را به حروف بزرگ برمی گرداند .

char [] toupper ( char [] s ) {
int i ;
for ( i =0 ; i < s . length ; i ++ ){
char c = s[i];
if ('a' <= c && c <= 'z')
s[i] = c - (cast(char)'a' - 'A');
}
return s;
}

توجه کنید که نسخه []S که فراخوانی شد تغییر هم کرد شاید این اصلاً آن چیز مورد توقع نبود یا بدتر آنکه []S ممکن است تکه ای از حافظه فقط خواندنی باشد .

اگر یک کپی از S همواره توسط تابع ساخته می شد به طور ناکارا و بدون لزوم ،زمان و حافظه برای حروفی که خودشان بزرگ هستند مصرف می شد .

راه حل پیاده سازی copy – on – write است که یعنی یک کپی ساخته می شود فقط اگررشته ها نیاز به تغییر دارند . بعضی زبان های پردازنده رشته ها این عمل را به عنوان پیش فرض انجام می دهند اما هزینه بسیار سنگین است .

در نتیجه آن رشته “abcdwF” پنج مرتبه بوسیله تابع کپی می شود. برای اینکه از این قرارداد به نحوی با حداکثر کارآیی استفاده شود باید به صورت واضح در کد ظاهر شود .

char [] toupper (char [] s) {
int changed ;
int i ;
changed = 0 ;
for (i=0 ; i char c = s[i ] ;
if (‘a’ <= c && c<= ‘z’ ){
if ( ! changed ){
char [] r = new char [ s.length] ;
r []= s ;
changed = 1 ;
}
s [i] = c – ( cast ( char ) ‘a’ – ‘A’ );
}
}
return s ;
}

copy – on – write پروتکلی است که به وسیله توابع پردازش آرایه ها در کتابخانه ی زمان اجرای phibo زبان D پیاده سازی شده است .



جمع آوری زباله

D زبانی دارای جمع آوی زباله کامل می باشد . بدین معنی که هیچ وقت نیاز به آزادسازی حافظه نیست . فقط به هنگام نیاز حافظه را تخصیص دهید و جمع آور زباله به طور دوره ای تمام حافظه بی استفاده را به توده حافظه آزاد برمی گرداند .

برنامه نویسان C ++ , C که به کنترل دستی حافظه هنگام تخصیص و آزاد سازی آن عادت دارند احتمالاً به مزایا و تأثیر جمع آوری زباله یقین ندارند . تجربه‌ی پروژه های جدید که با در نظر گرفتن جمع آوری زباله نوشته شده اند همچنین پروژه های موجود که به سبک جمع آوری زباله برگردانده شده اند نشان می دهد که :

    ۱. برنامه های دارای جمع آور زباله سریعتر هستند . این واضح است اما دلایلی قابل بیان است .

    ۲. شمارش در جاعات یک روش معمول برای حل مسائل تخصیص حافظه آشکار است . کد پیاده سازی اعمال اضافه و تفریق هر جا که انتساب صورت می گیرد یکی از دلایل کندی است .

    ۳.پنهان کردن کد مذکور در پس کلاسهای اشاره گر هوشمند به افزایش سرعت کمک نمی کند . ( روش شمارش ارجاعات به هیچ وجه راه حل عمومی نیست جایی که ارجاعات حلقه ای هرگز حذف نمی شوند . )

    ۴. مخرب های کلاس برای آزادسازی منابع مورد نیاز یک شیئ به کار می رود . برای اغلب کلاسها این منابع ، حافظه تخصیص یافته است . با جمع آوری زباله اغلب مخرب ها خالی می شوند و در نهایت می توانند دور انداخته شوند .

    ۵. تمام مخرب هایی که حافظه را آزاد می کنند می توانند معنی دار شوند در مواقعی که اشیاء ، بر روی پشته تخصیص حافظه می یابند . برای هر کدام مکانیزمی باید در نظر گرفته شود طوری که اگر یک استثناء رخ داد تمام مخربها از هر چارچوب فراخوانی شوند تا هر حافظه تخصیص یافته برای آنها را رها کنند . اگر مخرب ها نامربوط شوند هیچ نیازی برای در نظر گرفتن چارچوب های خاص پشته برای پردازش استثناها نیست در نتیجه کد سریعتر اجرا می شود .

    ۶. تمام کدهای لازم برای مدیریت حافظه می تواند برای تکامل جزیی اضافه شود . برنامه بزرگتر کمتر در حافظه اصلی و بیشتر آن در حافظه مجازی قرار می گیرد و آرامتر و کندتر اجرا می شود .

    ۷. جمع آور حافظه هنگامی صورت می گیرد که حافظه تنگ و کم شود . تا وقتی حافظه جا دارد برنامه در حداکثر سرعت ممکن اجرا میشود و هیچ وقتی برای آزاد کردن حافظه ، صرف نمی کند .

    ۸.جمع آورنده های زباله مدرن ، اکنون به مراتب پیشرفته تر و سریع تر هستند . جمع آورنده های تولید کننده و کپی کننده ، قسمت عمده ناکارایی الگوریتم های جارو کردن و اختصاص دادن را حذف می کنند .

    ۹.جمع آورنده های زباله مدرن فشرده سازی توده حافظه را انجام می دهند . فشرده سازی توده مراقب است که تعداد صفحاتی که به طور فعال به وسیله یک برنامه ارجاع شده اند را کاهش دهد بدین معنی که دسترسی های حافظه احتمالاً بیشتر به حافظه می رسند تا به مبادله حافظه .

    ۱۰. جمع آورنده های زباله حافظه استفاده شده را اصلاح می کنند . بنابراین به رخنه های حافظه - که باعث می شوند برنامه های با اجرای طولانی مدت آن قدر حافظه مصرف کننده تا سیستم هنگ کند- تن در نمی دهد .

    ۱۱. برنامه های دارای جمع آور زباله دارای اشکالات کمتر یافتن اشاره گرها می باشند به این خاطر که هیچ ارجاع سرگردان به حافظه آزاد شده نمی ماند .

    ۱۲. برنامه های دارای جمع آور زباله برای گسترش و اشکال زدایی سریعترند . چون هیچ نیازی برای گسترش ، اشکال زدایی ، امتحان ، یا ابقاء کد آزاد سازی حافظه دستی وجود ندارد .

    ۱۳. برنامه های دارای جمع زباله به طور معنی داری کوچکترند چون هیچ کد آزادسازی حافظه وجود ندارد و از این رو نیازی به پردازشگرهای استثناها برای آزاد سازی حافظه وجود ندارد .

    جمع آوی زباله یک نوشداروی همه کاره نیست بعضی اشکالات هم دارد :

    ۱. وقتی یک مجموعه برنامه همزمان اجرا می شود قابل پیشگویی نیست بنابراین برنامه به طور دلخواه می تواند مکث کند.

    ۲. زمانی که برای اجرای یک مجموعه مصرف می شود نامحدود است با اینکه در عمل بسیار کوتاه است اما ضمانتی وجود ندارد .

    ۳. تمام رشته های اجرا به غیر از رشته جمع آوری زباله در حالی که جمع آوری در جریان است باید مکث کند .

+ نوشته شده در  شنبه 1388/01/22ساعت   توسط سعید  | 

زبان برنامه‌نویسی D بخش ششم

نحوه برقراری ارتباط اشیای دارای جمع آوری زباله با کد بیرونی

جمع آور زباله در سگمنت داده ایستا ، پشته ها و محتویات رجیستر هر thread ، به دنبال ریشه ها می گردد . اگر تنها ریشه یک شیئ بیرون از آنها باشد ، جمع آور زباله آن را از بین می برد و حافظه را آزاد می‌سازد .

برای اجتناب از این واقعه باید :

    ۱. ریشه دسترسی به یک شیئ را در جایی نگهداری کنیم که جمع آور زباله در آن جا به دنبال ریشه می گردد .

    ۲.به شیئ مجدداً توسط تخصیص دهنده کد خارجی یا کتابخانه های زمان اجرای C یعنی malloc/ free ، حافظه تخصیص دهیم .

اشاره گرها و جمع آور زباله

الگوریتم های جمع آوری زباله بستگی دارد به اشاره گرهایی که به چیزی در حال اشاره ‌اند و غیر اشاره‌گرها که به چیزی اشاره نمی کرده اند . بدین منظور دستورات زیر که در C غیر معمول نیستند باید به دقت در D از آنها خودداری شود :

۱. اشاره گرها را با xor کردن آنها با مقادیر دیگر مخفی نکنید مانند اشاره گر xor شده حقه‌ی لیست پیوندی در C . از حقه‌ی xor برای جا به جا کردن مقادیر دو اشاره گر استفاده نکنید .

۲. اشاره گرهای به مقادیر صحیح را توسط cast یا دیگر حقه ها ذخیره نکنید ، چون جمع آوری زباله انواع غیر اشاره‌گر را برای یافتن ریشه های دسترسی بررسی نمی کند .

۳. از مزیت هم ترازی اشاره گرها برای ذخیره فلگهای بیتی در بیتهای سطح پائین یا بیتهای سطح بالا استفاده نکنید .

۴. مقادیر صحیح را در اشاره گرها نگهداری نکنید .

۵. مقادیر جادویی را در اشاره گرها ذخیره نکنید به غیر از null .

۶. اگر شما باید یک مکان نگهداری خاص را بین انواع اشاره گر و غیر اشاره‌گر به اشتراک بگذارید از union استفاده کنید تا جمع آور زباله تکلیف خودش را در آن مورد بداند .

در حقیقت تا جایی که می شود از اشاره گرها استفاده نکنید . D دارای امکاناتی مانند اشیاء مرجع ، آرایه های پویا و جمع آوری زباله است که نشان می دهد که اغلب اشاره گرهای آشکارا ، متروک و بلااستفاده خواهند بود . اشاره گرها برای ارتباط موفق با API های C و بعضی کارهای کیمیاگرانه در D فراهم شده اند .

ساختمانها و یونیون ها

نحوه اعلان :

Tag { DeclDefs }
Tag Identifier { DeclDefs }
Tag Identifier ;
Tag: struct / union

شبیه C کار می کنند با تفاوتهای زیر :

۱. بدون فیلد های بیت

۲. نحوه آرایش به طور آشکار قابل مشخص کردن است .

۳. اعلان هایی مانند ; struct ABC x ،مجاز نیستند بنویسید ; ABC x .

۴. ساختمانها یا یونیون های بی نام می توانند عضوی از ساختمانها یا یونیون های دیگر باشند .

۵. انتساب دهنده های پیش فرض اولیه برای اعضا پشتیبانی می شود .

۶. توابع عضو و اعضای استاتیک مجاز است .

ساختمانها و یونیون ها به معنی اجتماع ساده داده ها یا راهی برای رنگ و آب دادن به یک ساختمان داده می باشد ، علاوه بر سخت افزار یا یک نوع خارجی ، انواع خارجی می توانند توسط API سیستم عامل یا یک فرمت فایل تعریف شوند . خصوصیات شیئ گرا نیز با نوع داده کلاس فراهم شده اند .



انتساب اولیه استاتیک ساختمان ها

به اعضای ساختمان استاتیک به طور پیش فرض مقدار صفر انتساب داده می شود و به مقادیر ممیز شناور مقدار NAN . اگر یک انتساب دهنده اولیه‌ی استاتیک فراهم شود ، اعضا به وسیله نام عضو ، علامت ':' و املای دستور ، انتساب اولیه می شوند . در ضمن ممکن است اعضا به هر نحو انتساب اولیه شوند .

struct X { int a; int b; int c; int d = 7;}
static X x = { a:1, b:2}; // c is set to 0, d to 7
static X z = { c:4, b:5, a:2 , d:5}; // z.a = 2, z.b = 5, z.c = 4, d = 5
انتساب اولیه‌ی استاتیک یونیون ها

یونیون ها به طور آشکار مقدار دهی اولیه می شوند :

union U { int a ; double b ; }
static U u = { b : 5.0 } ; // u.b = 5.0

دیگر اعضای یونیون که انتساب دهنده را جای می گذارند ولی فضای بیشتری اشغال می کنند مقدار صفر می گیرند .

Enums
اعلان :
EnumDeclaration:
enum identifier { EnumMembers }
enum { EnumMembers }
enum identifier ;


 

Enum کاربرد معمولی ماکروی define# در زبان C را برای تعریف مقادیر ثابت جایگزین میکند.

Enum ها همچنین می توانند بی نام باشند که در آن مورد به سادگی ثابت های مجتمع را تعریف می کنند و یا دارای نام باشند که مقدمه یک نوع جدید خواهند بود . اعلان زیر :

enum { A, B, C } // anonymous enum

مقادیر ثابت A=0 , B=1 , C=2 که معادل دستورات زیر است را تعریف میکند :

const int A = 0; const int B = 1; const int C = 2;

در حالی که اعلان زیر:

enum X { A, B, C } // named enum

نوع جدید X با مقادیر X.A=0 , X.B=1 , X.C=2 تعریف می کند.

Enum ها باید حداقل دارای یک عضو باشند . اگر برای یک عضو Enum یک عبارت ریاضی فراهم شده باشد ارزش عضو مذکور برابر حاصل عبارت است و عضو بعدی Enum دارای ارزش عضو قبلی به علاوه یک است . مثلاً در مورد زیر :

Enum { A , B = 5 + 7 , C, D = 8 , E }

داریم A = 0 , B = 12 , C = 13 , D = 8 , E = 9

صفات Enum

کوچکترین عضو min

بزرگترین عضو max

سایز نگهداری ارزش عضو size



مقدار دهی اولیه‌ی Enum :

در غیاب یک مقدار دهنده به صورت آشکار ، یک متغیر Enum دارای مقدار اولین عضو است .

Enum X { A = 3 , B,C }

مقدار X برابر 3 می شود .// ; X x

+ نوشته شده در  شنبه 1388/01/22ساعت   توسط سعید  | 

چرا پیتون ؟

کاردینال بیگلز، اریک بی ایمان را بیش از چهار ساعت روی صندلی راحتی نشاند تا سرانجام این اعترافات را از او گرفت ...

اولین نگاه من به پیتون یک تصادف بود، و علاقه چندانی به چیزی که در آن زمان دیدم پیدا نکردم. اوایل سال 1997 بود و کتاب "برنامه نویسی پیتون" نوشته مارک لوتز از انتشارات O'reilly به تازگی بیرون آمده بود. کتابهای O'reilly به ندرت به در خانه من می‌رسند، که در آن مورد هم توسط یک فرد ذینفع درون سازمان طی یک فرآیند تصادفی که من تصمیم گرفته‌ام دیگر سعی در فهمیدن آن نکنم، از بین تازه‌های چاپ برای من فرستاده می‌شوند.

یکی از این کتابها "برنامه نویسی پیتون" بود. از آنجا که من زبان‌های رایانه‌ای را جمع آوری می‌کنم، این موضوع برایم جالب بود. من بیش از دوجین زبان همه منظوره بلدم، برای تفریح مفسر و مترجم‌های زیادی نوشته‌ام و شخصا تعدادی زبان‌های یک منظوره و فرمهای نشانه گذاری (Markup) مختلف طراحی کرده‌ام. تازه‌ترین پروژه‌ای که من در زمان نوشتن این مقاله به پایان رسانده‌ام، یک زبان یک منظوره به نام SNG برای کار کردن روی تصاویر PNG یا Portable Network Graphics است. خوانندگان علاقمند می‌توانند صفحات خانگی SNG را در آدرس http://www.catb.org/~esr/sng مشاهده کنند. من همچنین چند نسخه پیاده سازی شده از چند زبان همه منظوره عجیب را در صفحه Retrocomputing Museum خود به آدرس http://www.catb.org/retro قرار داده‌ام.

من قبلا آنقدر درباره پیتون شنیده بودم که بدانم از آن چیزهایی است که امروزه به آنها زبانهای اسکریپت می‌گویند، یک زبان تفسیری با مدیریت داخلی (built-in) حافظه و تسهیلاتی خوب برای فراخوانی و همکاری با دیگر برنامه‌ها. بنابراین در هنگام شروع پیتون یک سوال بالاتر از همه مسائل برای من مطرح بود: این زبان چه چیزی دارد که پرل ندارد؟

البته، پرل گوریل ۸۰۰ کیلویی زبان‌های اسکریپت امروزی است. این زبان تا حدی به لطف کتابخانه‌های یونیکس و اعلان‌های جامع خود و تا حدی به دلیل مجموعه بزرگ ماژول‌های به وجود آمده توسط جامعه برنامه نویسان پرل ، به نسبت زیادی جایگزین زبانهای اسکریپت انتخابی مدیران و ناظران سیستم‌ها شده است. این زبان، زبان CGI پنهان در پشت حدود ۸۵% محتوای "زنده" بر روی شبکه به شمار می‌رود. سازنده آن، Larry Wall، به درستی یکی از مهمترین رهبران جامعه متن باز به شمار می‌رود و اغلب پس از Linus Torvalds و Richard Stallaman در مکان سوم جایگاه خدایان قرار می‌گیرد.

در آن زمان من پرل را برای تعدادی از پروژه‌های کوچک استفاده کرده بودم. من این زبان را بسیار قدرتمند یافتم گرچه به نظر من می‌رسید سینتکس و بعضی جنبه‌های دیگر این زبان می‌توانند تا حدی برای شخصی که به آن عادت نداشته باشد، خطرناک باشند. به نظر من می‌رسید که پیتون به عنوان یک زبان اسکریپت باید گام مهم دیگری بردارد، بنابراین درحال خواندن به دنبال چیزی می‌گشتم که به نظر برسد آن را از زبان پرل مجزا می‌کند.

من به سرعت مطالب غیرعادی اصلی‌ای که ممکن است در پیتون به نظر هر کسی برسد را مرور کردم: این واقعیت که فضای خالی (indentation) در سینتکس این زبان بامعنی است؛ این زبان هیچ سنخیتی با ساختار آکولادی C و پرل ندارد، در عوض تغییرات در توگذاری (indentation) محدودیت گروه‌های عبارات را از بین می‌برند؛ و مثل اکثر هکرها پس از فهمیدن این مطلب با بی‌علاقگی عقب کشیدم.

آنقدر از عمر من گذشته است که برای چند ماهی در دهه ۷۰ با FORTRAN برنامه نویسی کرده باشم. اکثر هکرهای این دوره چنین نیستند ولی به نظر می‌رسد فرهنگ ما به گونه‌ای ، خاطره ای دقیق وسنتی از اینکه آن زبان‌های قدیمی با محدوده ثابت چقدر عذاب آور بودند حفظ کرده باشد. "فرمت آزاد"، که درآن زمان برای توصیف حالت جدیدتر سینتکس token-oriented زبان‌های C و پاسکال استفاده می‌شد، تقریبا فراموش شده است؛ چندین دهه است تمامی زبان‌ها اینگونه طراحی شده اند، یا تقریبا تمام زبان‌ها. بسیار سخت است کسی را، پس از دیدن این ویژگی پیتون، به خاطر عکس العمل اولیه ای مانند اینکه به صورت غیرمنتظره در انبوهی از بی‌ادبی! دایناسور قدم گذاشته است سرزنش کرد.

این احساس من در آن زمان بود. من بدون علاقه چندانی از کنار بقیه توضیحات این زبان گذاشتم. من دلیل چندان دیگری برای توصیه پیتون پیدا نکردم به جز اینکه احتمالا سینتکس آن تا حدی شسته و رفته تر از پرل بود و امکانات موجود برای اجرای CGI های ابتدایی مانند دکمه ها و منوها بسیار خوب به نظر می‌رسید.

من کتاب را با این یادآوری ذهنی که باید زمانی یک پروژه کوچک با محوریت GUI انجام دهم، تا مطمئن شوم که واقعا این زبان را می‌فهمم، در قفسه گذاشتم. ولی باور نداشتم چیزی که دیده‌ام هرگز بتواند به طور موثر با پرل رقابت کند.

اتفاقات زیادی باعث شدند این یادآوری ذهنی ماه‌ها در فهرست اولویت‌های من در مکان آخر قرار بگیرد. بقیه سال ۱۹۹۷ برای من پر از اتفاقات بود، در کنار بقیه اتفاقات، این سالی بود که من نسخه اصلی "کلیسای اعظم و بازار" را نوشته و منتشر کردم. در عین حال من فرصت یافتم تا چندین برنامه پرل بنویسم، از جمله دو برنامه با حجم و پیچیدگی قابل توجه. یکی از آنها، keeper، برنامه دستیاری است که همچنان برای بایگانی پرونده‌های ارسالی وارده در شرکت نرم افزاری Metalab به کار می‌رود. این برنامه تولیدکننده صفحات وبی است که شما در http://metalab.unc.edu/pub/Linux/!INDEX.html مشاهده می‌کنید. برنامه دیگر، anthologize، با هدف تولید خودکار PostScript برای ششمین ویرایش لینوکس از آرشیو "چگونه‌ها" ی پروژه مستندسازی لینوکس استفاده شد. هر دوی این برنامه ها در Metalab موجود هستند.

نوشتن هر دوی این پروژه‌ها مرا بیشتر و بیشتر از پرل ناراضی کرد. به نظر می‌رسید پروژه‌های با اندازه بزرگتر یک نارضایتی ساده از پرل را تبدیل به مشکلات جدی و مداوم می‌نمایند. سینتکسی که در صد خط ابتدایی بسیار راضی کننده به نظر می‌رسید، با گذشت زمان تبدیل به توده‌ای از خارهای غیرقابل نفوذ می‌شد. "بیش از یک راه برای انجام کار" که حال و هوا و تاثیرگذاری خاصی به آن می‌بخشید، نگهداری یک استیل خاص در یک محدوده کد وسیعتر را به مقدار قابل توجهی مشکل می‌ساخت. و بسیاری قابلیت‌هایی که بعدا به منظور جوابگویی به نیاز برای کنترل پیچیدگی در برنامه های بزرگتر (اشیاء، lexical scoping ،use strict و ...) به پرل اضافه شده بودند حالتی شکننده و نه چندان دلچسب داشتند.

تمامی این مشکلات دست به دست یکدیگر داده بودند تا خواندن و درک حجم زیادی از کدهای پرل به عنوان یک کلیت را تنها پس از چند روز به صورت غیرمنطقی ای مشکل کنند. علاوه بر این، من دریافتم که روز به روز زمان بیشتری را به جای ور رفتن با برنامه خود، صرف ور رفتن با قابلیت‌های این زبان می‌کنم و بدتر از همه اینکه کد من زشت شده بود ، ... این مساله واقعی بود. برنامه های زشت مثل پل‌هایِ معلقِ زشت هستند، واژگون شدن آنها بسیار محتمل تر از انواع زیبای آنها است، زیرا نحوه ادراک انسان‌ها (به خصوص مهندس- انسانها) از زیبایی رابطه بسیار نزدیکی با قابلیت ما برای پردازش و فهم پیچیدگی دارد. زبانی که کار نوشتن کد باوقار و باشکوه را سخت کند در حقیقت نوشتن کد خوب را مشکل کرده است.

با وجود یک دو جین زبان که به آنها تسلط داشتم، من می‌توانستم به تمامی علامات مشهود یک طراحی زبان که به منتهای قابلیت خود رسیده است و چیز بیشتری برای عرضه ندارد پی‌ببرم. من فکر کردم "باید راه بهتری وجود داشته باشد" و شروع به گشتن به دنبال یک زبان اسکریپت باشکوه تر کردم.

موردی که من حتی به آن فکر نکردم بازگشت به C به عنوان یک زبان پیش فرض بود. دوره ای که انجام مدیریت حافظه در یک برنامه به صورت شخصی معنا داشت، به جز در بعضی زمینه ها مانند طراحی هسته سیستم عامل (kernel hacking) ، برنامه نویسی علمی و گرافیک ۳ بعدی که در آنها شما نیاز دارید بیشترین سرعت و کنترل کامل بر روی استفاده از حافظه به منظور حداکثر استفاده از سخت افزار را داشته باشید، مدتهاست که گذشته است.

در اکثر موارد دیگر پذیرفتن بار اضافه debug کردن [ چندین اصطلاح را در این قسمت حذف کردم م.] و دیگر مشکلات از این دست در ماشین‌های امروزی دیوانگی است. بسیار عاقلانه تر است که چندین چرخه و چندین کیلوبایت حافظه برای نیازهای مدیر حافظه یک زبان اسکریپت فدا کنیم و در وقت گرانبهای انسان صرفه جویی کنیم. در حقیقت استفاده از این راهبرد (استراتژی) دقیقا همان چیزی است که باعث رشد انفجاری پرل از اوایل دهه ۹۰ شده است.

مدتی با Tcl ور رفتم تا متوجه شدم که در مقیاس‌های بالا حتی از پرل هم ضعیفتر عمل می‌کند. به عنوان یک برنامه نویس قدیمی LISP، همچنین نگاهی به اشکال ( dialects) مختلف رایج LISP و Scheme انداختم ولی همانگونه که از نظر تاریخی در مورد LISP معمول است، طراحی‌های هوشمندانه متعدد آن به دلیل عدم وجود یا ناقص بودن مستندات، دسترسی ناقص به امکانات POSIX/UNIX و یک جامعه کوچک و در عین حال بسیار پراکنده کاربران، بی استفاده شده بودند. پرطرفدار بودن پرل به هیچ عنوان یک تصادف نیست؛ اکثر رقبای آن یا برای پروژه‌های بزرگ بدتر از پرل هستند یا اصلا و ابدا به آن مفیدی که ساختار نظری برتر آنها انتظارش را ایجاد می‌کند نیستند.

نگاه دومی من به پیتون تقریبا همانقدر تصادفی بود که نگاه اول. در اکتبر ۱۹۹۷، یک سری سوالات در فهرست نامه های الکترونیک افراد استفاده کننده از fetchmail این موضوع را کاملا مشخص کرد که افراد برای ایجاد فایل‌های تنظیمات برنامه fetchmail دچار مشکلات فزاینده‌ای می‌شوند. این فایل دارای ساختاری ساده و کلاس به سبک فرمت آزاد یونیکس است ولی می‌تواند هنگامی که کاربر دارای چندین حساب از نوع POP3 و IMAP باشد، به شدت پیچیده شود. به عنوان نمونه، برای دیدن یک مثال ساده شده از برنامه من به لیست ۱ نگاه کنید.

Listing 1. fetchmail Configuration File

set postmaster ``esr''

set daemon 300

poll imap.ccil.org with proto IMAP and options no dns

aka snark.thyrsus.com locke.ccil.org ccil.org

user esr there is esr here options fetchall dropstatus warnings 3600

poll imap.netaxs.com with proto IMAP

user "esr" there is esr here options dropstatus warnings 3600

skip imap.21cn.com with proto IMAP

user esr here is tranxww there options fetchall

skip pop.tems.com with proto POP3:

user esr here is ed there options fetchall

skip mail.frequentis.com with proto IMAP:

user esr here is imaptest there with options fetchall

من تصمیم گرفتم برای حل مشکل از یک ویرایشگر تنظیمات با حالتی کاربر پسند ( End-User-Friendly ) به نام fetchmailconf استفاده کنم. هدف از طراحی fetchmail مشخص بود؛ پنهان کردن کامل سینتکس فایل کنترل در پشت ظاهر شیک و صحیح از نظر ارگونومی یک رابط گرافیکی کاربر ( GUI ) با کلیدهای انتخاب، منوهای کشویی و فرم‌های مختلف.

فکر پیاده کردن این برنامه با پرل چندان مرا ذوق زده نکرد. من کدهای GUI را در پرل دیده بودم که ترکیبی ناهمگون بود از پرل و Tcl که حتی از کد پرل خود برنامه هم زشت تر بود. در این لحظه بود که قولی را که ۶ ماه قبل داده بودم یادم آمد. این می‌توانست فرصتی برای کسب یک تجربه عملی با پیتون باشد.

البته این موضوع مجددا من را با بامعنی بودن فضای خالی در پیتون روبرو کرد. البته این بار تخته گاز پیش رفتم و مقداری کد برای انبوهی از عناصر GUI نوشتم. جدا ّ حیرت آور بود که تنها پس از ۲۰ دقیقه، استفاده پیتون از فضای سفید دیگر امر عجیبی به نظر نمی‌آمد. من همانقدر از فرورفتگی متن در پیتون استفاده می‌کردم که امکان داشت در C از آن استفاده کنم و این روش جواب هم می‌داد.

این اولین حیرت من بود. حیرت دومی ، حدود ۲ ساعت بعد (با احتساب زمان‌های توقفی که برای نگاه کردن به قابلیت‌های پیتون در کتاب Learning Python صرف شد) ، وقتی پیش آمد که متوجه شدم با همان سرعتی مشغول نوشتن برنامه‌های به دردبخور هستم که می‌توانم تایپ کنم. وقتی متوجه این موضوع شدم تقریبا مبهوت شدم. یکی از معیارهای مهم عملکرد در برنامه نویسی تعداد دفعاتی است که شما چیزی می نویسید که واقعا با درک شما از مساله همخوانی ندارد و ناچارید پس از فهمیدن این موضوع که چیزی که تایپ کرده‌اید، به زبان آنچه را شما فکر می کنید نمی‌گوید به عقب برگردید. یکی از معیارهای مهم طراحی مناسب زبان اینست که درصد چنین اشتباهاتی با تجربه پیدا کردن شخص در آن زبان با چه سرعتی کاهش می‌یابند.

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

این اولین چیزی بود که به من فهماند من در پیتون با یک طراحی عالی سروکار دارم. اکثر زبانها آنقدر دارای تداخل و ضعف در طراحی خود هستند که شما قبل از اینکه ضریب اشتباهاتتان در آنها حتی نزدیک به صفر شود بسیاری از امکانات آنها را فرا گرفته اید. پیتون تنها زبان همه منظوره‌ای بود که من تا آن روز استفاده کرده بودم و این فرآیند را معکوس می‌کرد.

البته یادگیری مجموعه امکانات آن نیز چندان وقت گیر نبود. من یک برنامه fetchmailconf کارآ و قابل استفاده، به همراه GUI ، را در ۶ روز کاری نوشتم که از این ۶ روز احتمالا ۲ روز آن تماما صرف یادگیری خود پیتون شد. این موضوع نشان دهنده یک خاصیت مفید دیگر این زبان است: این زبان حالت اختصاری دارد، شما می‌توانید تمامی مجموعه امکانات آن (حداقل یک ایده فهرست وار از کتابخانه های آن) را در ذهن نگه دارید. C زبانی است که به اختصار معروف است. پرل در این زمینه شهرت خوبی ندارد. یکی از چیزهایی که عبارت معروف "بیش از یک راه برای انجام آن وجود دارد!" قربانی می کند توانایی مختصر بودن پرل است.

ولی هنوز رویایی ترین کشف من باقی مانده بود. طراحی من یک مشکل داشت: من قادر بودم به راحتی فایل‌های تنظیم را با استفاده از عملهای GUI کاربر تولید کنم ولی ویرایش آنها مشکل بزرگتری بود. یا بهتر است بگویم خواندن آنها به یک شکل قابل ویرایش کار مشکلی بود.

Parser به کار رفته برای سینتکس فایل تنظیماتfetchmail بسیار کاربر بود. این برنامه در حقیقت با استفاده از YACC و Lex، دو ابزار کلاسیک یونیکس برای تولید کد parsing زبان در C، نوشته شده بود. تصور من این بود که برای اینکه قادر به ویرایش فایلهای تنظیمات در fetchmail باشم ناچار به تکرار همان parser وقت گیر در پیتون خواهم بود. من برای انجام این کار بسیار دودل بودم، تا حدودی به دلیل حجم کار و تا حدودی هم به دلیل اینکه نمیدانستم از کجا باید مطمئن باشم که دو parser در دو زبان مختلف مثل یکدیگر عمل خواهند کرد. کار فوق العاده زیاد همخوان نگاه داشتن دو parse آخرین چیزی بود که ممکن بود من با تحول زبانها به آن نیاز داشته باشم.

این مشکل برای مدتی مرا متوقف کرد. بعد از این فکری به ذهنم رسید: من به fetchmailconf اجازه می‌دادم از parser خود استفاده کند. من یک گزینه –configdump به fetchmail اضافه کردم و نتیجه را در یک خروجی استاندارد با فرمت یک initializer پیتون تخلیه کردم. برای فایل بالایی، نتیجه تقریبا شبیه به لیست ۲ بود (برای صرفه جویی در فضا بعضی داده های غیرمرتبط با مثال حذف شده اند).

Listing 2. fetchmailrc

fetchmailrc = {

'poll_interval':300,

"logfile":None,

"postmaster":"esr",

'bouncemail':TRUE,

"properties":None,

'invisible':FALSE,

'syslog':FALSE,

# List of server entries begins here

'servers': [

# Entry for site `imap.ccil.org' begins:

{

"pollname":"imap.ccil.org",

'active':TRUE,

"via":None,

"protocol":"IMAP",

'port':0,

'timeout':300,

'dns':FALSE,

"aka":["snark.thyrsus.com", "locke.ccil.org", "ccil.org"],

'users': [

{

"remote":"esr",

"password":"Malvern",

'localnames':["esr"],

'fetchall':TRUE,

'keep':FALSE,

'flush':FALSE,

"mda":None,

'limit':0,

'warnings':3600,

}

, ]

}

,

# Entry for site `imap.netaxs.com' begins:

{

"pollname":"imap.netaxs.com",

'active':TRUE,

"via":None,

"protocol":"IMAP",

'port':0,

'timeout':300,

'dns':TRUE,

"aka":None,

'users': [

{

"remote":"esr",

"password":"d0wnthere",

'localnames':["esr"],

'fetchall':FALSE,

'keep':FALSE,

'flush':FALSE,

"mda":None,

'limit':0,

'warnings':3600,

}

, ]

}

,

# Entry for site `imap.21cn.com' begins:

{

"pollname":"imap.21cn.com",

'active':FALSE,

"via":None,

"protocol":"IMAP",

'port':0,

'timeout':300,

'dns':TRUE,

"aka":None,

'users': [

{

"remote":"tranxww",

"password":None,

'localnames':["esr"],

'fetchall':TRUE,

'keep':FALSE,

'flush':FALSE,

"mda":None,

'limit':0,

'warnings':3600,

}

, ]

}

,

# Entry for site `pop.tems.com' begins:

{

"pollname":"pop.tems.com",

'active':FALSE,

"via":None,

"protocol":"POP3",

'port':0,

'timeout':300,

'dns':TRUE,

'uidl':FALSE,

"aka":None,

'users': [

{

"remote":"ed",

"password":None,

'localnames':["esr"],

'fetchall':TRUE,

'keep':FALSE,

'flush':FALSE,

"mda":None,

'limit':0,

'warnings':3600,

}

, ]

}

,

# Entry for site `mail.frequentis.com' begins:

{

"pollname":"mail.frequentis.com",

'active':FALSE,

"via":None,

"protocol":"IMAP",

'port':0,

'timeout':300,

'dns':TRUE,

"aka":None,

'users': [

{

"remote":"imaptest",

"password":None,

'localnames':["esr"],

'fetchall':TRUE,

'keep':FALSE,

'flush':FALSE,

"mda":None,

'limit':0,

'warnings':3600,

}

, ]

}

]

}

پیتون سپس قادربود خروجی fetchmail--configdump را ارزیابی کند و سپس تنظیمات را به صورت مقدار متغیر "fetchmail" ارائه کند.

حتی این هم آخرین حرکت رقص من نبود. چیزی که من می‌خواستم صرفا این نبود که fetchmail تنظیمات فعلی خود را داشته باشد بلکه می خواستم آن را تبدیل به یک ساختار درختی از اشیا زنده (live objects) کنم. احتمالا در این درخت سه نوع شی وجود داشت: تنظیمات ( که شیء واقع در بالاترین مرتبه و نشان دهنده کل تنظیمات بود)؛ سایت (نشان دهنده یکی از سایتهایی که باید به رای گذاشته می‌شد.) و کاربر ( نشان دهنده داده‌های کاربران که به سایت متصل می‌شود). فایل‌های مثال پنج شیء از نوع سایت که به هر کدام یک شیء از نوع کاربر متصل شده است را نشان می‌دهد.

تا اینجا من سه شیء کلاس را طراحی کرده و نوشته بودم (این همان چیزی بود که چهار روز از وقت من را گرفت که اکثر آن هم صرف چیدن درست و مناسب کنترلهای صفحه شد). هر یک از این کلاسها یک متد داشت که باعث می شد برای ویرایش داده های آن instance خاص یک صفحه GUI باز شود. تنها مشکل باقیمانده من یافتن روشی برای تبدیل اشیاء مرده این برنامه initializer پیتون به اشیاء زنده بود.

چیزی که به نظر من رسید نوشتن کدی بود که به وضوح راجع به ساختار هر سه کلاس بداند و از این دانش برای پلکیدن در initializer و ایجاد اشیایی که پاسخگوی نیازها باشند استفاده کند ولی این ایده را رد کردم زیرا اعضای این کلاس جدید احتمالا با اضافه شدن امکانات جدید به تنظیمات زیاد می شدند. اگر من کد ایجاد اشیا را با این روش مشهود می نوشتم، احتمال زیادی وجود داشت که کد حالت شکننده پیدا کند و با تغییر تعریفهای کلاس یا ساختار initializer از حالت به روز خارج شود.

چیزی که من واقعا به دنبالش بودم کدی بود که شکل و اعضای initializer را تجزیه و تحلیل کند، از تعریفهای کلاس برای پرس و جو درباره اعضای آن کلاس استفاده کند و سپس خودش را با این دو مجموعه هماهنگ کند.

به این گونه چیزها در اصطلاح هک کردن metaclass گفته می شود و در حالت عمومی چیزی به ترسناکی جادوی سیاه به شمار می‌روند. اکثر زبانهای برنامه نویسی شیءگرا مطلقا از این قابلیت پشتیبانی نمی‌کنند و در آنهایی که این کار را می کنند (که پرل هم یکی از آنهاست)، این موضوع امری پیچیده و ظریف و شکننده است. تا همان زمان من از ضریب بسیار پایین اشکال سازی پیتون متعجب شده بودم ولی این یک آزمایش واقعی بود. برای اینکه این زبان را مجبور به انجام چنین کاری کنم چقدر باید با آن کشتی می‌گرفتم؟ با استفاده از تجربیات قبلی می‌دانستم که ، حتی با این فرض که من ببرم، این می تواند تجربه دردناکی باشد ولی روی کتاب شیرجه رفتم و شروع به مطالعه امکانات metaclass پیتون کردم. تابع به دست آمده در لیست ۳ نشان داده شده است و کدی که فراخوانی می کند در لیست ۴ آمده است.

Listing 3. Metaclass Function

def copy_instance(toclass, fromdict):

# Initialize a class object of given type from a conformant dictionary.

class_sig = toclass.__dict__.keys(); class_sig.sort()

dict_keys = fromdict.keys(); dict_keys.sort()

common = intersect(class_sig, dict_keys)

if 'typemap' in class_sig:

class_sig.remove('typemap')

if tuple(class_sig) != tuple(dict_keys):

print "Conformability error"

# print "Class signature: " + `class_sig`

# print "Dictionary keys: " + `dict_keys`

print "Not matched in class signature: " + `setdiff(class_sig, common)`

print "Not matched in dictionary keys: " + `setdiff(dict_keys, common)`

sys.exit(1)

else:

for x in dict_keys:

setattr(toclass, x, fromdict[x])



Listing 4. Code that Calls Metaclass Function

# The tricky part--initializing objects from the

# configuration global

# `Configuration' is the top level of the object

# tree we're going to mung

Configuration = Controls()

copy_instance(Configuration, configuration)

Configuration.servers = [];

for server in configuration[`servers']:

Newsite = Server()

copy_instance(Newsite, server)

Configuration.servers.append(Newsite)

Newsite.users = [];

for user in server['users']:

Newuser = User()

copy_instance(Newuser, user)

Newsite.users.append(Newuser)

برای جادوی سیاه چندان بد به نظر نمی‌رسد، اینطور نیست ؟ سی و دو خط با احتساب توضیحات. فقط با توجه به چیزهایی که من درباره ساختار کلاسها گفتم، حتی کد فراخوان نیز قابل خواندن است. ولی اندازه این کد موضوع شوکه کننده نیست. خودتان را کنترل کنید: نوشتن این کد تنها ۹۰ دقیقه وقت گرفت و در اولین باری که من آن را اجرا کردم به خوبی کار کرد.

تنها گفتن این که من حیرت زده شده بودم می‌تواند کم لطفی باشد. درست و به خوبی کار کردن پیاده سازی حتی ساده ترین تکنیکها در اولین بار همانگونه که انتظار می‌رفته می‌تواند امری قابل توجه باشد؛ ولی اولین هک کردن metaclass من تنها پس از ۶ روز از یک شروع بی مقدمه؟ حتی اگر به اغراق بگوییم که من یک هکر با استعداد هستم این یک موفقیت بزرگ برای پیتون در زمینه شفافیت و شکوه و عظمت طراحی است.

تقریبا هیچ راهی وجود نداشت که من بتوانم با وجود تجربه بسیار زیادترم در پرل عمل مشابهی را با استفاده از آن انجام دهم. در این زمان بود که احساس کردم که احتمالا پرل را ترک خواهم کرد.

این رویایی ترین لحظه من در پیتون بود. ولی حالا که همه اینها تمام شده باید بگویم تمام اینها یک هک هوشمندانه بود. مفید بودن یک زبان برنامه نویسی در بلند مدت بستگی به پشتیبانی آنها از هک های هوشمندانه ندارد بلکه به چند و چون پشتیبانی آن از امور روزمره برنامه نویسی مرتبط است. کار روزمره برنامه نویسی اکثرا به جای نوشتن برنامه های جدید، از خواندن و تغییر دادن برنامه های موجود تشکیل می شود.

مساله تکان دهنده اینجاست: هفته‌ها و ماه‌ها پس از نوشتن fetchmailconf، من هنوز قادر بودم کد آن را بخوانم و بدون هیچ تلاش فکری جدی ای متوجه بشوم که چکار می‌کند و دلیل واقعی این موضوع که من دیگر برای هیچ چیزی جز پروژه‌های کوچک از پرل استفاده نمی‌کنم این است که این موضوع هرگز در مورد پرل صادق نبود. من حتی از تصور این موضوع که زمانی ناچار شوم keeper یا anthologize را تغییر دهم به وحشت می‌افتم در حالیکه برای انجام چنین کاری در مورد fetchmailconf ککم هم نمی‌گزد.

پرل همچنان کاربردهای خود را دارد. برای پروژه‌های کوچک (۱۰۰ خط یا کمتر) که شامل مقدار زیادی جور کردن الگوی متن است، من احتمالا بیشتر از یک راه حل با استفاده از پرل استقبال می‌کنم تا پیتون. برای دیدن چندین مثال خوب، برنامه های timeseries و growplot را در فهرست توزیع fetchmail مشاهده کنید. در حقیقت، این‌ها تا حد زیادی شبیه کاری هستند که پرل در نقش اصلی خود، قبل از اینکه دارای توابع و دسترسی مستقیم به API سیستم عامل باشد، به عنوان نوعی ترکیب awk/sed/grep/sh انجام می‌داد. برای هر چیز بزرگتر یا پیچیده تر، من عادت کرده‌ام که ارزشهای لطیف پیتون را ترجیح بدهم و فکر کنم شما نیز همین کار را انجام بدهید.

+ نوشته شده در  شنبه 1388/01/22ساعت   توسط سعید  | 

وب 2 چیست؟

 وب 2 و معرفی استانداردهای طراحی

        با افزایش کاربرد های وب ، طراحان وب روش های جدیدی را در ایجاد وب سایتها به کار بستند که باعث راحت تر شدن دسترسی به داده ها برای کاربر و مشارکت کاربر در ایجاد داده ها میشود. نمونه بسیار روشنی از این سایت ها Wikipedia است که توسط کاربرانش گسترش پیدا میکند و مدیران این سایت فقط محیطی را برای استفاده از توانایی های کاربران فراهم میکنند.

       مفهوم وب2 اولین بار در یک همایش توسط معاون موسسه oreilly مطرح شد. آنها به دنبال نسل جدیدی از وب بودند که بتواند جذاب، کاربردی و قابل گسترش باشد. اینگونه بود که کنفرانس وب2 شکل گرفت و بحث های زیادی پیرامون این پدیده مطرح شد. امروزه جستجوی این عبارت در گوگل بیش از 10 میلیون نتیجه را بر می‌گراند.

 

مقایسه چند سرویس وب دویی با رقبای های وب یک آنها:

  • Wikipedia یک سایت وب دویی است، یک دایره المعارف که هیچ مولف خاصی ندارد و با نیروی کاربرانش گسترش پیدا میکند. اما دایره‌المعارف بریتانیکا یک سایت وب محسوب میشود. زیرا تعداد بسیار محدودی مولف هستند که مقالات این سایت را به روز میکنند و بر روی سایت قرار می دهند.
  • سایت Last.fm یک سایت وب دویی است. اما MP3.com یک سرویس وب یک محسوب میشود. در سایت Last.fm این کاربران هستند که برای خوانندگان بیوگرافی درست میکنند ، عکس های خوانندگان را روی سایت قرار می دهند، به آهنگ ها امتیاز می دهند ومیزان محبوبیت آهنگ های یک خواننده  را مشخص میکنند. اما در سایت mp3.com پروسه های مذکور توسط مسئولان سایت انجام میشود.
  • در سرویس های آپلود عکس قدیمی، دسته بندی عکس ها بر اساس دایرکتوری های آنها مشخص میشد. اما در سرویس های جدید TAG ها (کلمات کلیدی مرتبط) هستند که باعث دسته بندی عکس ها میشوند. با وجود این سیستم هر عکس می تواند مرتبط با چندین کلمه باشد. در حالی که در دایرکتوری‌ها هر عکس فقط با یک موضوع در ارتباط بود. Flickr.com نمونه ی بارزی از یک سایت عکس با نگرش وب2 است.
  • در سرویس های اشتراک فایلی قدیمی ، چندین سرور وجود داشت که امکان دانلود را برای کاربران فراهم میکرد. اما در سرویس های جدید ، هر کسی که فایل را دانلود میکند خودش تبدیل به سروری برای دیگران میشود و بطور ناخودآگاه وظیفه ی سرور ها را کاربران به عهده گرفته اند. Bittorent نمونه ی روشنی از این سرویس جدید است. هر کاربر با اتصال به شبکه‌ی بیت تورنت، از روی رایانه‌ی دیگر کاربران شروع به دانلود میکند و رایانه‌ی خودش نیز تبدیل به یک سرور برای دیگر کاربران میشود.

 

وب یک پلتفرم است

     یکی از مهم ترین اصول وب2 ، نگاه کردن به وب بعنوان یک پلتفرم است. بر اساس تحقیقات یک شرکت آمریکایی ، بیش از یک میلیارد کاربر در سراسر جهان هستند که رایانه شخصی و به دنبال آن سیستم عامل، نرم افزارهای کاربردی آفیس، و حتی فضایی جهت نگه داری فایل هایشان ندارند، اما کاربر اینترنت هستند و با استفاده از Device های گوناگون مانند موبایلشان و یا با استفاده از کافی‌نت کارهای خود را انجام میدهند. وب2 به نیازهای این افراد پاسخی مستقیم داده است.

     سرویس هایی مانند Google Docs و Zoho.com امکان داشتن نرم افزار Office آنلاین را فراهم کرده اند. سایت های بسیار زیادی برای نگه داری فایل ها تحت وب وجود دارند که نیاز این افراد را به هارد شخصی مرتفع کرده اند، سایت هایی مانند Delicious.com امکان نگه داری بوکمارک های هر فرد را بر روی وب فراهم میکنند. و حتی سایت های متنوعی امکان ویرایش عکس را بر روی اینترنت بوجود آورده اند که این افراد را از داشتن یک نرم افزار ویرایشگر عکس مانند Photoshop بی نیاز میکنند.

    همانگونه که می بینید، وب2 باعث بی نیاز شدن  بسیاری از کاربران از داشتن سیستم عامل شخصی شده است. اینجا بود که مفهومی بنام سیستم عامل جهانی شکل گرفت. کاربران با داشتن یک مرورگر روی هر دستگاهی، و با اتصال به اینترنت میتوانند از کلیه سرویس های لازم جهت کارهای روزمره خود بهره گیرند.

     یکی از پیامد های سیستم عامل جهانی، پایان چرخه ی سنتی تولید و عرضه نرم افزار است. نرم‌افزارهایی مانند MS Office هر چند سال یکبار نسخه جدیدی را منتشر میکنند و کاربران باید آنها را خریداری کنند تا از مزایای نسخه جدید بهره مند شوند. اما برنامه های تحت وب هر ماه و گاهی هر روز آپدیت میشوند و سریعا در دسترس همگان قرار می گیرند.


اهمیت داده ها

     ارزش داده ها در وب2 همان چیزی است که باعث رشد یک سایت میشود. آنچه ویکی پدیا را امروز به اینجا رسانده است، داده هایی است که کاربران در طول مدت زمان طولانی در این سایت وارد کرده اند. این موضوع را در سایت هایی مانند Amazon.com در زمینه ی فروش کالا و کتاب ، در سایت Last.fm در مورد آثار موسیقی، در Flixster.com در زمینه ی سینما ، در Google Maps در زمینه ی نقشه های شهرها و در بسیاری دیگر از سایت های وب2 میتوان مشاهده کرد.
     گوگل از کاربران سرویس MAPS برای نامگذاری خیابان ها و کوچه های نقشه هایش استفاده میکند. به همین دلیل است که امروز شما می توانید حتی به فارسی  "برج میلاد" را در این سرویس جستجو کنید و این منطقه از شهر را روی نقشه های گوگل مشاهده کنید. و در مقابل میتوانید مدرسه ی دوران کودکی خود را روی نقشه بیابید و نام مدرسه تان را روی نقشه وارد کنید. روزگاری شرکت MapQuest بزرگترین مرجع نقشه های جهان به شمار می رفت. اما گوگل با استفاده از نیروهای کوچک جمع بزرگی از کاربرانش ، گوی سبقت را از شرکت MapQuest ربود.

 

طراحی رابط کاربری پویا

      بارز ترین شاخصه‌ی یک سایت وب دویی، داشتن رابط کاربری قدرتمند است. استفاده از روش های جدید و ترکیب تکنولوژی های موجود مانند Ajax  CSS , xml , HttpRequest  و  Javascript باعث بهبود سرعت و افزایش کارایی بسیاری از وب سایت ها شده است. بطور مثال میتوان از سرویس Gmail گوگل در این مورد نام برد که رابط کاربری بسیار سریع و پویایی را در مقایسه با سایر رقبایش ارائه کرد و باعث بدست آوردن محبوبیت در میان کاربران شد.

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

 سرویس های وب 2 از شما یاد می گیرند.

      سرویس های وب 2 برای وقت کاربرانشان ارزش زیادی قائلند و شما را در پروسه هایی مانند ذخیره سازی داده هایتان بهتر یاری میکنند. بطور مثال شما در جیمیل نیازی به ذخیره کردن ایمیل افرادی که برای شما یکبار ایمیلی زده اند ندارید. زیرا هر آدرس ایمیلی که دریافت میشود بطور اتومات در دفترچه ایمیل های شما ذخیره میشود و هنگامی که نیازمند ارسال ایمیل به یکی از دوستان خود هستید، کافیست ابتدای نام او را تایپ کنید تا جیمیل از بین هزاران ایمیل ثبت شده، ایمیل مورد نظر را نمایش دهد. همچنین اگر چند دوست همنام دارید که بیشتر به یکی از آنها ایمیل می زنید، هنگام تایپ نام آنها ، جیمیل ایمیل دوستی را که بیشتر برایش ایمیل زده اید بالاتر از بقیه نمایش می دهد.

      قابلیت یادگیری سرویس های وب2 در بخش جستجوی گوگل نیز قابل مشاهده است. گوگل نتایج جستجوی شما را ذخیره میکند و هنگامی که یک مدخل جدید را جستجو میکنید ، گوگل آنرا با موضوعات و مطالب قبلی تان مقایسه میکند و تا جای ممکن نتایج را بر اساس سلیقه شما مرتب کرده و نمایش میدهد.

      همچنین در بخش جستجوی عکس گوگل، هنگامی که شما بعد از جستجوی یک کلمه، روی یکی از عکس ها کلیک میکنید گوگل میفهمد که عکس مورد نظر رابطه ی نزدیکی با آنچه جستجو کرده اید دارد و از آن به بعد در جستجوهای بعدی آن عکس را به کلمه‌ی جستجو شده، مرتبط تر میداند و در صفحه ی جستجویش آنرا بالاتر نمایش می دهد. به این فرایند استفاده از هوش جمعی میگویند که گوگل به خوبی از آن در الگوریتم هایش استفاده میکند.

 

با آنچه در مورد وب 2 گفته شد اکنون میتوانید سایت های وب2 واقعی را از سایت هایی که ادعای وب2 بودن دارند تشخیص دهید و در طراحی های خود نیز استفاده از این روش ها را بکار ببندید تا بتوانید بر رقبای بسیار بزرگتر از خود چیره شوید.

منبع: ماکرومدیا ایکس

+ نوشته شده در  پنجشنبه 1388/01/20ساعت   توسط سعید  | 

رقابت سيستم های عامل همراه

يكی از تحولات جالب توجه در عرصه كاربرد تلفنهای همراه، مجتمعسازی و ادغام كاربردهای متنوع و خدمات ارائه شده توسط تلفنهای همراه است. امروزه تلفنهای همراه نه تنها برای برقراری مكالمات تلفنی بلكه به عنوان دستيار شخصی ديجيتال(1)، دوربين ديجيتال، مرورگر اينترنت، سرويسگيرنده پستالكترونيكی(2)، و حتی پيامرسان اينترنتی(3)  مورد استفاده قرار میگيرند.

   با پيدايش و گسترش اين كاربردهای متنوع، بهبود سيستمهای عاملِ اين تلفنهای همراه امری ضروری و اجتناب ناپذير به نظر میرسد. به عبارت ديگر سيستمهای عامل قديمی اين تلفنهای همراه با توجه به نيازهای جديد كاربران به محدودههای عملياتی خود نزديك شده و میبايست تغييرات تازهای در معماری اين سيستمها لحاظ گردد. نياز به سيستمهای عاملِ همراهِ كارآمدتر، ماهيت بازار را نيز تحت تأثير قرار داده است و با وجود ركود جهانی اقتصاد، داد و ستد در بازار تلفنهای همراهِ هوشمند(4)، رشد افزايشی داشته است. بنابر گزارش واحد تحقيقات دستگاههای قابل حملِ هوشمند در مؤسسه IDC كه يك بنگاه تحقيقات فناوری-بازاريابی است، فروش تلفنهای هوشمند در سه ماهه اول سال 2003 در مقايسه با همين دوره در سال قبل از آن بيش از 400 درصد رشد داشته است و به مرز 1.71 ميليون دستگاه رسيده است. در حال حاضر در سراسر جهان درحدود 3 ميليون دستگاه تلفنِ هوشمند در حال استفاده و بهره برداری است. تحليلگران مؤسسه تحقيقاتی فورستر(5) عقيده دارند كه رشد و توسعه ميانافزارهای(6) دستگاههای همراه، مجتمعسازی كاربردهای سيـّار در زيرساختار بنگاههای تجاری را بسيار آسان و مقرون به صرفه كرده است كه اين امر به نوبه خود موجب افزايش تقاضا برای تلفنهای هوشمند شده است.

   بدين ترتيب مهمترين عامل و انگيزه توسعه سيستمهای عاملِ همراه را میتوان رشد تقاضای كاربردهای سيـّار با توانايی مشابه با كاربردهای موجود برروی كامپيوترهای قابل حمل؛ تقاضای مصرف كنندگان برای امكانات چند رسانهای غنی(7)؛ و حتی دسترسی به بازیها و سرگرمیهای قابل حمل بر شمرد. در عين حال، افزايش سرعت پردازندهها، افزايش حافظه دستگاههای قابل حمل، و دسترسی به شبكههای محلی بیسيم با پهنای باند بالا، توسعه كاربردهای سيـّار كارآمد و سيستمهای عاملِ همراهِ هوشمند را ميسر ساخته است.

سيستمهای عاملِ همراهِ امروزی

در يك تقسيمبندی كلی، مهمترين سيستمهای عامل تلفنهای هوشمند يا سيستمهای عاملِ همراه عبارتند از:

  • Microsoft Smarphone 2002

  • Palm OS 5.x

  • Symbian OS 7

   هريك از سيستمهای عامل فوق رهيافت مخصوص به خود را به منظور ارائه خدمات بر روی دستگاههای همراه (يا همان سيستم ميزبان) در پيش گرفتهاند. سيستم عامل Smartphone 2002، محصول شركت مايكروسافت، زيرمجموعهای از سيستم عامل Windows CE 3.0 برای دستگاههای قابل حمل است. سيستم عامل Palm OS نيز سيستم عامل دستگاههای دستيارشخصی ديجيتال (PDA) است كه برای استفاده در تلفنهای همراه بهينهسازی شده است. سازندگان تلفنهای همراه نيز سيستم عامل Symbian را برای استفاده در تلفنهای همراه طراحی و پياده سازی كردهاند.

   با وجود تفاوتهای اين سه سيستم عامل، ولی هر سه با مشكلات كم وبيش يكسانی دست به گريبان هستند. به عنوان مثال همگی با يك دستگاه همراه كوچك با صفحه نمايش محدود، منابع پردازشی نسبتاً محدود و گزينههای اندك جهت ورود دادهها مواجه هستند. به همين دليل سازندگان سيستمهای عامل اجزای تكراری و كـُدهای غيرضروری از قبيل واسط برنامههای كاربردی(8) (API) غيرضروری، و راهاندازها(9) را از سيستم عامل حذف كردهاند.

   جهت اجرای كاربردها و خدمات جديد تلفنهای هوشمند، سيستم عامل اين تلفنها عليرغم آنكه در مقايسه با استاندارد سيستمهای عامل روميزی كوچك به شمار میروند ولی برای عملكرد مؤثر به حداقل 16 مگابايت حافظه نياز دارند كه در مقايسه با سيستمهای عاملِ قبلی افزايش قابل توجهی دارد.

   شكل 1 رهيافت سازندگان مختلف را برای استفاده حداكثر از حافظه محدود تلفنهای همراه نشان میدهد.


شكل 1- رهيافت سيستم های عامل مختلف برای استفاده از حافظه
(a) Symbian OS (b) Palm OS (c) Smartphone 2002

   سيستمهای عامل میبايست استانداردهای مختلف مخابرات تلفنی نظير CDMA، GSM، و يا قالب ويدئويی(10) TGPP را در كنار ساير خدمات شبكهسازی نظير تبادل داده با استفاده از امواج مادون قرمز،شبكههای محلی بیسيم، مجموعه پروتكل TCP/IP بر روی شبكههای سـّيارِ سلولی و Bluetooth را پشتيبانی كنند. همچنين سيستمهای عامل میبايست تا جای ممكن مصرف انرژی را به منظور افزايش مدت زمان استفاده از باتری، حداقل كنند.

   سازندگان سيستمهای عاملِ همراه، محصولاتشان را به گونهای طراحی و بهينه كردهاند تا از كارايی پردازندهها و حافظه تلفنهای همراه در كنار افزايش پهنای باند شبكههای بیسيم، نهايت استفاده را ببرند. همچنين واسط برنامههای كاربردی خاصی نيز در سيستم عامل تعبيه كردهاند تا دستگاههای جانبی نظير دوربين ديجيتال نيز به راحتی در تلفن گنجانده شوند.

سيستم عامل SmartPhone 2002

   اين سيستم عامل برخی از توانائیها و قابليتهای دستيارِ شخصی ديجيتال را به تلفنهای همراه اضافه كرده است. اين سيستم عامل در مقايسه با ديگر محصولِ شركت مايكروسافت، Pocket PC Phone Edition در مجموع قابليتهای كمتری فراهم میكند. همچنين به حافظه كمتری نياز دارد و از واسط كاربر سادهای بهره میبرد. همچنين انرژی كمتری مصرف میكند. محصول Pocket PC Phone Edition كه برای دستگاههای دستيارشخصی ديجيتال با قابليتهای تلفنی طراحی شده است از تمهيدات امنيتی بهبود يافته، قابليتهای چند رسانهای، صفحات نمايش تماسی(11) و توانايی چند كاره ای(12) پشتيبانی میكند. بر خلاف Palm OS و Symbian، سيستم عامل Smartphone توانايی صفحه نمايش تماسی را در اختيار كاربر نميگذارد و كاربران میبايست از صفحه كليد تلفن همراه برای وارد كردن فرمانها استفاده كنند.

   شركت مايكروسافت ادعا میكند كه به اين خاطر از صفحات نمايش تماسی در سيستم عامل Smartphone پشتيبانی نمیكند كه كاربران بتوانند با يك دست نيز از اين دستگاهها استفاده كنند. واضح است كه برای استفاده از قابليت صفحات نمايش تماسی هر دو دست كاربر درگير خواهند شد.

   ايساك رو(13)، تحليلگر ارشد گروه تحقيق بازار آبردين(14) عقيده دارد كه نگارشهای اوليه سيستم عامل Smartphone مشكلات فنی و پيادهسازی دارد. وی میگويد از نقطه نظر تاريخی و به طورسنتی معمولاً محصولات اوليه شركت مايكروسافت دارای چنين مشكلاتی هستند ولی نگارشهای بعدی خيلی بهتر و تنومندتر خواهند بود. در حال حاضر شركت مايكروسافت از بازار سازندگانِ نامی و عمده تلفنهای همراه كه از سيستمهای عامل ديگری در تلفنهايشان بهره میبرند، چشمپوشی كرده است و مستقيماً بازار فراهم كنندگان سرويس نظير AT&T Wireless، Telefonica Celular، و Verizon Wireless را هدف قرار داده است. سازندگانی كه میتوانند سيستم عامل Smartphone را در تلفنهای همراهِ ساخت خودشان تعبيه كنند.

سيستم عامل Palm OS

   سيستم عامل Palm يا Palm OS اولين بار در سال 1998 به عنوان سيستم عامل موفقِ اولين دستگاه دستيارشخصی ديجيتال، موسوم به Palm Pilot ، مورد استفاده قرار گرفت. شركتPalm اخيراً واسط برنامههای كاربردی خاصی به اين سيستم عامل افزوده است كه توانائیهای تلفنی را نيز به آن ميافزايد.

   نگارشهای اوليه و 16 بيتی اين سيستم عامل خانواده پردازندههای موتورولا 68000 با نام اختصاری Dragonball را پشتيبانی ميكرد. به منظور پشتيبانی از كاربردهای امروزی تلفنهای همراهِ هوشمند، نگارش 32 بيتی اين سيستم عامل با نام Palm OS 5 بازنويسی شده است و پردازندههای قوی ARM-Based محصول شركتهای اينتل، موتورولا، و تگزاس اينسترومنت را به كار میگيرد. اين سيستم عامل علاوه بر فناوری رمزنگاری 128 بيتی SSL، پخش موسيقی، سرويسگيرنده پستالكترونيكی، و پيامرسان اينترنتی را نيز ارائه میكند. سيستم عامل Palm OS همچنين صفحه نمايش با قدرت تفكيك پذيری بالاتر، مرورگر وِب، نرمافزار شبكههای خصوصی مجازی(15)، و واسط برنامههای كاربردی برای پشتيبانی از شبكههای محلی بی‌‌سيم مبتنی بر IEEE 802.11b را در بردارد.

   قائم مقام توسعه بازرگانی شركت Palm اعلام كرده است كه نگارش ششم اين سيستم عامل، Palm OS 6، قرار است اواخر سال جاری ميلادی روانه بازار شود. اين نگارش خدمات تلفنی و بیسيم بيشتری را فراهم میكند. علاوه بر آن قابليت چند كارهای يا اجرای برنامههای كاربردی در پيشزمينه و پسزمينه را نيز در اختيار كاربران میگذارد.

سيستم عامل Symbian

    سيستم عامل Symbian اولين بار در سال 1998 طراحی و پياده سازی شد. شركت Symbian شركتی است كه توسط بزرگترين سازندگان تلفنهای همراه در جهان نظير اريكسون، موتورولا، نوكيا، پاناسونيك، سيون، سامسونگ الكترونيك، زيمنس، و سوني-اريكسون تأسيس شده است. اين نكته ويژگی قابل توجهی برای محصولات اين شركت به شمار میرود. در واقع مشتريان عمده محصولات شركت Symbian، همان تأسيسكنندگان آن هستند. شركت Metrowerks نيز به عنوان سازنده ابزار برنامه سازی از اين سيستم عامل حمايت می كند.

   با توجه به اين كه اين سيستم عامل بر خلاف Palm OS يا Windows CE از ابتدا برای كاربردهای تلفنی طراحی و پياده سازی شده است لذا از نقطه نظر تكنيكی و فنی مناسبترين انتخاب برای تلفنهای هوشمند به شمار میرود.

   سيستم عامل Symbian علاوه بر پخش صدا، پست الكترونيكی، پيام رسان، و قابليت چندريسمانی(16) در سطح سيستمعامل، توانايی پخش ويدئو را نيز دارد. به علاوه هر برنامه در اين سيستم عامل از فضای آدرسدهی محافظت شدهای بر خوردار است كه اين نكته تداخل دسترسی به حافظه توسط برنامههای كاربردی را كاهش میدهد. تداخلهايی كه میتوانند منجر به از كار افتادن سيستم عامل شوند.

   يكی ديگر از ويژگیهای اين سيستم عامل كه مورد علاقه و توجه سازندگان تلفنهای همراه است، عدم گنجاندن نام سيستمعامل (يعنی Symbian) در واسط كاربر(17) آن است. به اين ترتيب سازندگانِ دستگاه تلفنِهمراه میتوانند منحصراً نام خود را بر روی محصول نهايی نمايش دهند. علاوه بر اين سيستم عامل Symbian بيش از ساير سيستمهای عاملِ تلفنهای هوشمند از استانداردهای باز(18) نظير Java ، Bluetooth و SyncML استفاده و حمايت میكند.

جايگاه لينوكس

   با وجود آن كه سيستم عامل لينوكس میتواند در تلفنهای هوشمند تعبيه شود ولی اين سيستم عامل جايگاه و محبوبيت زيادی در بين كاربران دستگاههای همراه ندارد. مهمترين دليل اين امر آن است كه فنـّاوری لينوكس در كاربردهای تلفنی بالغ نيست و برای ارائه توانائیها و قابليتهای ساير سيستمهای عاملِ همراه، به دو برابر حافظه RAM و Flash نياز دارد. با وجود اين برخی از شركتهای كرهای نظير شركت PalmPalm، MiZi از سيستم عامل لينوكس در تلفنهای همراه خود استفاده میكنند. در عين حال هيچ كدام از توزيع كنندگان لينوكس منابع كافی برای ورود به بازار سيستمهای عامل تلفنهای همراه را ندارند. شرط ورود به اين بازار حمايت سازندگان تلفن همراه و سازندگان پردازشگرها است تا برای پشتيبانی از لينوكس سرمايهگذاری نمايند.

جمعبندی

   بنا به گزارش IDC، در سه ماهه اول سال جاری سهم سازندگان تلفنهای همراه در كل جهان به قرار زير است:

جدول 1- سهم سازندگان تلفن همراه از بازار جهانی در سه ماهه اول 2003

نام شركت

سيستم عامل مورد استفاده

درصد بازار

Nokia

Symbian

53%

Sony-Ericsson

Symbian

11.1%

Motorola

Symbian

7.4%

Samsung

Palm OS, Symbian

5.1%

Handspring

Palm OS

4.1%

سايرين

-

15%

   بر اساس پيش بينی IDC تا سال 2006 ميلادی سيستم عامل Symbian به سبب حمايت گسترده سازندگان تلفنهای همراهِ هوشمند و نيز استفاده از استانداردهای باز پيشتاز بازار خواهد بود و 53 درصد بازار را در اختيار خواهد داشت. در حالی كه شركت مايكروسافت با توان بازاريابی قوی خود 27 درصد و شركت Palm نيز 10 درصد باقيمانده را در اختيار خواهند گرفت.

    همچنين تحليلگران گروه آبردين پيش بينی میكنند كه تعداد سازندگان تلفنهای همراه به سبب بلوغ بازار كاهش خواهند يافت و تنها شركتهای بزرگ به بقای خود ادامه میدهند. در طی اين فرآيند، تلفنهای هوشمند قابليتهای تازهای نظير كنفرانس ويدئويی را برای كاربران خود به ارمغان میآورند.

    اين عوامل سازندگان تلفنهای همراه را وادار خواهد كرد كه تلفنهای مقرون به صرفه و پيچيدهتری بسازند كه نيازهای بيشتری را فراروی سيستمهای عاملِ همراه قرار خواهد داد. لذا تلفنهای هوشمند و سيستمهای عامل آنها در سالهای آتی از اهميت فزآيندهای برخوردار خواهند شد.

مراجع: 

  1. Steven J. Vanghan-Nichols, "Oss Battle in the Smart-Phone market", Ieee Computer, June 2003, pp. 10-12

  2. A. Slawsby, R. Giusto, K. Burden, R. Sealfon, D. Linsalata, "Worldwide smart handheld devices forecast and analysis,2003-2007", June 2003, IDC (www.idc.com), Doc# 29586

  3. Forrester Research, www.forrester.com

  4. Microsoft Smartphone 2002, www.microsoft.com/mobile/smartphone/default.asp,

  5. http://www.smartphone.net

  6. Palm OS 5.x, http://www.palmsource.com/includes/palmos5.pdf

  7. Symbian Operating System, http://www.symbian.com

  8. Aberdeen Group, http://www.aberdeen.com

  9. http://www.Linuxdevices.com

 پانويس ها:


1 -Personal Digital Assistant (PDA)
2 -E-mail client
3 - Internet Instant Messenger
4 -Smart Handheld Devices
5 -Forrester Research (http://www.forrester.com)
6 -Middleware
7 -Rich Multimedia
8 -Application Program Interface
9 -Device Drivers
10 -Third Generation Partnership Project
11 -Touch-Screen
12 -Multitasking
13 -Isaac Ro
14 -Aberdeen Group
15 -Virtual Private Networks (VPN)
16 -Multithreading
17 -User Interface
18 -Open Standards

+ نوشته شده در  چهارشنبه 1388/01/19ساعت   توسط سعید  | 

UML زبان استاندارد جهانی برای مدل‌سازی

با كمی اغماض میتوان ادعا كرد كه در ميان شاخههای مختلف مهندسی در هركدام كه دارای قدمت بيشتری است، همگرايی بيشتری در اتخاذ روش و ابزار برای انجام اعمال نسبتاً مشابه از ميان متخصصان و متوليان آن رشته وجود دارد. به طور مثال در حال حاضر برای اجرای يك سازه در هر نقطه از دنيا، مهندسين عمران از يك روند همسان با توالی مشابه شامل: الف)توليد طرح عمرانی ب)پيادهسازی نقشه ج)محاسبات سازهای د)اجرا استفاده میكنند. ولی در رشته نوپايی چون مهندسی نرمافزار، گاه چنان روشها متفاوت است كه از ديد يك ناظر خارجی، دو تيم نرمافزاری مختلف كه هر دو قصد توليد محصولی مشابه را دارند، دو تيم در رشتههای متفاوت به نظر بيايند. يكی از علل وجود تمايز در توليد نرمافزار ميزان تخصص نيرو و زمان به پيادهسازی میباشد.بدين معنا كه در نزد بسياری از برنامهنويسان توليد نرمافزار معادل است با توليد كد. ولی از نظر بعضی ديگر توليد كد تنها بخشی از توليد نرمافزار است كه در بسياری از موارد حتی منابع و زمان. اختصاص داده شده به آن در طول پروسه.توليد نرمافزار كمتر از50% میباشد.

از يك ديدگاه كلی، پروسه توليد نرمافزار را میتوان به دو بخش كلی شامل:
  
الف)تحليل و طراحی ب)پيادهسازی تقسيم كرد. از ديدگاه دسته اول، برنامهسازان، تحليل و طراحی صرفاً فهم ذهنی مساله میباشد كه دقيقا پس از آن بايستی اقدام به پيادهسازی كرد. در حاليكه در نظر دسته دوم، فاز تحليل و طراحی پر اهميتتر از فاز دوم میباشد كه بايستی برای انجام آن از متدولوژیها و روشهای استاندارد استفاده كرد. UML يك زبان مدلسازی میباشد كه در فاز تحليل و طراحی مورد استفاده قرار میگيرد.

مدلسازی (Modelling) چيست؟

   مدلسازی يكی از تكنيكهای ذهنی بشر میباشد كه نه تنها برای اهداف علمی، بلكه برای انجام امور روزمره بشر به دفعات مورد استفاده قرار میگيرد. مدلسازی به طور كلی يعنی شبيهسازی يك محيط با اندازههای متفاوت و از محيط واقعی و احتمالا مواد و مصالحی متمايز از جنس مواد و مصالح محيط مدل شده. در مدلسازی ابتدا اجزای محيط واقعی انتخاب شده و متناسب با هدف مورد نظر از مدلسازی خصوصياتی از هريك از اجزای واقعی انتزاع میشود، يعنی به ازای هزيك از اجزای محيط واقعی يك موجوديت تجريدی ساخته میشود و با برقراری ارتباطی مشابه با ارتباط اجزای واقعی، در ميان موجوديتهای تجريدی، محيط واقعی مدل میشود. برای روشن شدن مثالی میزنيم:

   فرض كنيم قصد داشته باشيم در فاز طراحی يك اتومبيل ميزان موفقيت هوا در مقابل اتومبيل در حال حركت را بسنجيم يكی از راهها برای انجام اين آزمايش، ساخت يك اتومبيل واقعی، راندن و سپس اندازهگيری مقاومت هوا میباشد كه انجام اينكار اگرچه ما را به هدف میرساند، ولی دارای هزينه بالاييست چرا كه بايستی ابتدا ماشين ساخته شود، سپس مورد آزمايش قرار گيرد.در اين صورت اگر در آزمايش به نتيجه مورد نظر نرسيم، بايستی دوباره طراحی را تغيير داد، و پس از ساخت يك نمونه واقعی ديگر آزمايش را تكرار كنيم و اين روند آنقدر ادامه پيدا كند تا طراحی مناسب برای اتومبيلی با خصوصيات مورد نظر شكل گيرد. میبينيم كه چنين روشی بسيار پرهزينه است و اين هزينه هم شامل هزينههای اقتصادی است و هم هزينههای زمانی، چون علاوه بر اين كه در هر مرحله آزمايش بايستی اتومبيل با صرف هزينه بالا ساخته شود، زمان ساخت آن نيز طول خواهد كشيد.

   ولی متخصصان برای انجام چنين آزمايشی به مدل روی میآورند. يعنی يك جسم فيزيكی كوچك با خصوصيات آئروديناميكی لحاظ شده در طراحی اتومبيل، ساخته میشود و با قرار دادن آن در يك تونل باد، حركت اتومبيل در فضای واقعی را شبيه سازی میكنند و بدين طريق ميزان مقاومت هوا را میسنجند.

   نكات مورد توجه در اين مدلسازی، يكی اندازه مدل و ديگری خصوصيات آن میباشد. مدل بسيار ساده و كوچك میباشد و از طرفی تنها خصوصيت آئروديناميكی اتومبيل در مدل لحاظ میشود. چرا كه هدف ما از مدلسازی تنها بررسی خصوصيات آئروديناميكی اتومبيل است و مدل الزاماً نبايستی از جنبههای ديگر، شباهتی به اتومبيل واقعی داشته باشد. مثلا در ساخت چنين مدلی به هيچوجه به استحكام اجزا و يا زيبايی مدل توجه نمیشود چون بررسی چنين خصوصياتی خارج از هدف اين مدلسازی خاص است.

   مثال بالاتنها يك جنبه از مدلسازی را بيان میكند و آن جنبه شناختExploration میباشد. يعنی در مدلسازیهای مشابه مدلسازی فوقالذكر، هدف از مدلسازی تنها شناخت محيط مورد مدل میباشد. يك جنبه ديگر از مدلسازی تبيين (specitication) میباشد. يعنی گاه برای معرفی و ارائه خصوصيات يك موجوديت واقعی يك مدل از آن ارائه میشود. نقشه جغرافيايی مثال خوبی است كه اين جنبه از مدلسازی را مورد نظر دارد.

پس میتوان گفت كه هدف از مدلسازی دو چيز میباشد:
الف)شناخت(exploration)
ب)تبيين(specification)

كه بر اساس تعريف مسئله، مدلسازی يكی يا هردو هدف را در نظر میگيرد.

  نكته ديگری كه بايستی در مدلسازی توجه كرد، روش (methodo logy) ساخت يك مدل میباشد. در بعضی موارد مدل چيز بسيار سادهای است و به راحتی ساخته میشود. ولی در بعضی از موارد مدل خود بسيار پيچيده میباشد هر چند از نظر منطقی غيرممكن مینمايد ولی میتوان ادعا كرد كه در بعضی موارد مدل پيچيدهتر از موجوديت واقعی است. زمينهای كه اين ادعا را در آن مصداق فراوان دارد، نرمافزار میباشد. بنابراين در شاخهای از مهندسی كه مدلسازی حائز اهميت فراوان میباشد قطعا روشهای استانداردی برای ساختن مدل وجود دارد. در نرمافزار، روشهای توليد نرمافزار مانند SSAPM ,RUP,USDP, در واقع روشهای مدلسازی میباشند. هر روش مدلسازی طبيعتا نيازمند مصالحی برای ساخت مدل میباشد كه در روشهای مدلسازی نرمافزاری مصالح لازم برای توليد مدل، زبانهای مدلسازی میباشند.

UML چيست؟

   Unified Modelling Language يك زبان مدلسازی است كه درسال 1995 به وسيله شركت Rational معرفی شد. UML يك زبان شیگراست يعنی اجزا اين زبان متناسب با مفاهيم به كاررفته و پارادايم شیگرائی طراحی شدهاند.

   پس از ارائه مفاهيم شیگرائی در ابتدای دهه 80 ميلادی به تدريج روشهای شیگرائی توليد نرمافزار به وسيله افراد و سازمانهای مختلف ارائه گرديد. اين روشها در برگيرنده يك مجموعه علائم برای بيان مفاهيم و ايدهها از يك سو و يك طرح كاری برای توليد نرمافزار از سوی ديگر بود كه از مهمترين اين روشها میتوان به OMT,BOOCH,OOSE…. اشاره كرد.

   اگرچه داشتن يك روش استاندارد امری مطلوب است ولی تفاوت روشها امريست طبيعی و با توجه به تفاوت فراوان در نوع مسائل میتوان گفت كه حتی وجود روشهای مختلف الزامی است چرا كه مثلا در يك پروژه بسيار بزرگ نمیتوان همان روشی را به كار برد كه در يك پروژه كوچك. ولی زبان و مجموعه علائم از چنين قاعدهای پيروی نمیكند و داشتن يك زبان استاندارد امری بسيار مطلوب و از بعضی ديدگاهها حتی الزامی میباشد. يكی از الزامات مهم در داشتن يك زبان استاندارد همگانی ناشی از نقشی است كه زبان در ارتباطات به عهده دارد. البته چندگونهبودن زبان خود مولد مشكلات متعددی است.

   با هدف ارائه يك زبان استاندارد فراگير شركت Rational با گردآوری سه نفر از ارائهكنندگان معتبرترين روشهای شیگرا يعنی Irar jacobson مبدع روش OOSE ,BOOCH مبدع روشی با همين نام، Rambaugh مبدع روش OMT و با اخذ نقاط قدرت سه روش فوقالذكر، يك زبان استاندارد به نامUML ارائه كرد. اين زبان پس از ارائه از سوی (Object Mamgement Group) كه يكی از معتبرترين سازمان جهانی در زمينه شیگرائی میباشد بعنوان يك استاندارد پذيرفته شد. پس از ارائه اين زبان و پذيرفته شدن آن به عنوان يك استاندارد جهانی در زمينه نرمافزار، علاوه پروسه اين زبان و ارائه متولوژیهای مبتنی بر آن مانند usop و rup از سوی افراد و سازمانهای مختلف، متخصصين در پی يافتن كاربرد اين زبان در زمينههای ديگر فنی و مخصوصی بر آمدند. برآيند اين تلاشها در حال حاضر uml را به عنوان قدرتمندترين زبان مدلسازی در دنيای نرمافزار مطرح ساخته است.

+ نوشته شده در  چهارشنبه 1388/01/19ساعت   توسط سعید  | 

وضعيت صنعت ميزبانی وب (هاستينگ)

برای بررسی دقيق و حتیالامکان همهجانبه صنعت هاستينگ، با ارسال نامه و تماس، همه شركتهايی كه هماكنون فعالان اصلی عرصه ميزبانی وب به شمار میروند به يک ميزگرد دعوت شدند، همچنين موضوع در سايت ماهنامه نيز منتشر شد. از ميان مدعوين، ضمن آن كه همگی با علاقه از طرح موضوع استقبال نمودند، چهار تن از مديران در اين ميزگرد (که در تاريخ 16 تير ماه 1382 و در دفتر ماهنامه دنيای کامپيوتر و ارتباطات برگزار شد) شركت جستند:

   محمد جواد حاجاتی، مديرعامل شركت سازين رسانه- مهرداد سيجانی، مديرعامل شركت فراكارانت- بهرنگ موسوی، مدير فنی شركت فرارايانه- محمد كاظم قنبری مديرعامل شركت قاصدك
   ديگر شركتها نيز عموما با تماس و پيگيری، همكاری و همفكری خود را برای بررسی دقيق موضوع نشان دادند.

   بايد اذعان كنيم كه نتيجه و محصول اين نشست، بسيار فراتر از حد انتظار بود، گفتوگوی مفيد و موثری صورت گرفت، و با كمال خوشبختی بايد بگوييم كه توفيق در حدی بود كه سوال و انگيزه اوليهای كه موجب تشكيل جلسه و بررسی ويژه صنعت هاستينگ شد، در عمل به يك پروژه جدی بين حاضرين جلسه و حتی ديگر دستاندركاران اين حوزه تبديل شد. ارتباط جدی فعالان اين صنعت، و تشكيل يك نهاد صنفی با اين نگرش كه اين كار، قدم جدی برای تبديل شدن اين نوع فعاليت به يك « صنعت تمام عيار » خواهد شد.

در اين نشست، از حاضرين خواسته شد كه با ذكر مختصری از سابقه كار شركت، سياست شركت متبوع خود را در اين حوزه بازگو كنند.

همچنين به تناسب بحث، موضوعات مهمی نيز از سوی حاضرين مطرح و بررسی شد.

   آنچه در زمينه سياست هر شركت مورد بحث قرار گرفت، با توجه به پارامترهای «قيمت» و «كيفيت» در ارائه سرويس بود. نتيجه بحث، البته از وجود دو خاستگاه متفاوت حكايت ميكرد كه به نظر میرسد با وجود شرايط فعلی ما، كاملا طبيعی است، يعنی ديدگاههايی كه يكی از اين دو پارامتر را ارجحيت میدهند. جالب آنكه، همه در مجموع میپذيرفتند كه اكنون ديگر شرايط ما، توجه حرفهایتر به اين صنعت را طلب میكند و در نتيجه، بايد يك نظام مشخص با در نظر گرفتن هردو پارامتر فراهم نمود.

   نكته ديگری كه مورد توافق بود، تعيين درجات و سطوح مختلف برای ارائه سرويس و همچنين گزينش مخاطب خاص است، به اين معنا كه برای هر نوع و طبقه از مشتريان، سرويس مخصوص به او، تهيه و ارائه گردد، كه متناسب با خواست و توقع او، و نيز ميزان هزينه مورد نظرش باشد، در اين سيستم، طبيعتا دارندگان سايتهای مهم و حساس، بايد پرداخت هزينه بيشتر برای گرفتن سرويس و پشتيبانی متناسب را بپذيرند.

موضوع مورد بحث ديگر، امنيت سايتها، و به تبع آن، مسئله حملات هكری بود كه ديدگاههای گوناگونی در اين خصوص وجود داشت.

اقتصادی و به صرفه بودن يا نبودن اين حرفه نيز از مسائل مهم مطروحه در اين جلسه بود.

از آنجا كه بخشی از مسائل بيان شده از سوی حاضرين، جداگانه و در قالب سؤال و جواب مستقل آمده است، گزيدهای از مطالب اين جلسه در پی میآيد.

   حاجاتی: ما از 5 سال پيش كار خود را شروع كرديم كه سيستم 2000 سيستم جديدی بود و تنها شركتی بوديم كه روی اين سيستم خدمات میداديم و ديگران غالبا با لينوكس كار میكردند، قيمتها را در آن زمان، مطابق خارج از كشور تنظيم كرديم كه البته قيمتهای پايينی بود، در اين مدت سايتهايی را سرويس میداديم و میدهيم كه اكنون ديگر بايد چهار سالگی خود را جشن بگيرند.

   متاسفم كه میبينم اين كار را به عنوان صنعت نگاه نمیكنند و حتی گاهی به صورت سرگرمی و بازيچه آن را میبينند. هرچند الان ديگر داشتن يك سايت، برای سازمانها و شركتها به تدريج جزو واجبات است، اما مشكلی كه هست، برخی سرويس دهندگان هستند كه بدون تعهد وارد اين عرصه میشوند و هيچ تضمينی در ادامه فعاليتشان نيست، ولی سعی میكنند فقط با قيمت پايينتر مشتری را جذب كنند و اين عمل البته به ما و شركتهای ديگری كه چندين سال است در اين زمينه با تعهد فعاليت میكنند لطمه میزند. مثلا با ادعای unlimited subdomain, unlimited POP3 و ... كه مامیدانيم ادعای درستی نيست ولی مشتری ناآگاه ممكن است معنی اينها را متوجه نشود. ببينيد مشتری وقتی تفاوت قيمت بين كارتهای اينترنتی را میبيند، درك میكند كه طبيعتا سرويسهای اين دو كارت با يكديگر متفاوتند. ولی اين موضوع در زمينه هاستينگ هنوز خيلی جا نيفتاده و خيلیها علت تفاوت قيمتها را متوجه نمیشوند و خدماتی را كه از جانب بعضی شركتها در قبال قيمت بالاتر ارائه میشود نمیدانند.

   ما حدود 16000 domain تا بحال ثبت كردهايم. و حدود 1500 هاست داريم( كل هاستهای ما در اين چند ساله حدود 8000 است) هاستهای ما شامل شركتهای بزرگ و سازمانهای دولتی میباشند كه معمولا كيفيت خوب را میخواهند و بنابراين قيمتهای ما پايين نيست. ما فقط با سرورهای 2000كار میكنيم، از لحاظ پهنای باند از OC-12 استفاده میكنيم و در اين زمينه محدوديتی نداريم، البته بر خلاف ادعای رايج، به مشتريان خودمان پهنای باند نامحدود نمی دهيم. بلكه در ازای مصرف بيشتر از حد، آنها مبلغی را بايد بپردازند. سياست شركت ما اين است كه سرويس خوب، پشتيبانی تمام وقت و حتی در ايام تعطيل بدهيم. در ضمن دو سرور ما در كانادا قرار دارند.

    قنبری: شركت قاصدك حدودا در سال 78 تاسيس شده است با هدف مهندسی شبكه، ولی به تدريج به سمت هاستينگ رفتيم، و كار را با 2 سرور يونيكس شروع كرديم. الان حدود 6000 هاست و 14 عدد Dedicated Server داريم كه 12تای آن يونيكس و 2 تا به تازگی برای اولين بار سرور 2000 داريم. سرورهای ما در امريكا و كاناداپراكندهاند و البته گران، چون سرويسهای خوبی ارائه میكنند. در مورد امنيت و مسئله هك، به نظرم آنچه در كشورما به عنوان هك رخ میدهد، خيلی هم هك به معنای واقعی نيست كه لزوما فرد باهوشی آن را انجام داده باشد، بلكه غالبا ضعفهای گاه ساده در سرورهاست كه مثلا با وجود اعلام از سوی مايكروسافت، هنوز از سوی مسئولين سرور رفع نشده است! اين بحثی نيست كه خيلی دامن زده شود. مشكل فعلی به نظر من، هك و اين چيزها نيست، بلكه اين است كه بینظمی در بازار حاكم است و هركسی به خودش اجازه میدهد بدون رعايت هيچگونه استاندارد وارد بازار شود و شروع به فعاليت كند. اتفاقا به نظرم ما بايد به اصطلاح خودمان هكر باشيم تا بتوانيم امنيت هاست را تامين كنيم.

   موسوی: نام اصلی شركت، فراكوشان رايانه است كه از سال 77 تاسيس شده است. فعاليت اصلی اوليه ما اينترنت بود و از سال 78 شروع به ارائه سرويس هاستينگ كرديم. آن زمان ما ابتدا Reseller يك شركت با سرورهای يونيكس بوديم. و در همان سال سرور اختصاصی 2000 گرفتيم و شروع به فروختن Reseller كرديم. كه البته آن زمان بازار گرمی نداشت، ولی ما فروش خوبی داشتيم، از شركت Expert Host كانادا هم میگرفتيم كه جزو 8-7 شركت top در اين زمينه بود. الان ما 3 سرور داريم. البته در جريان هك، ما ضرر زيادی ديديم، چون در اول ژانويه هك شديم و تاشش روز بعد هيچكس جوابگوی ما نبود. 12000-1000 نام domain داريم و بر روی اين 3 سرور، 1400 سايت داريم. من هم موافقم كه اغلب شركتها، از كار هاستينگ سودی نمیكنند و اين مسئله بايد بررسی شود. الان وارد شدن به بازار هاستينگ خيلی راحت است و اين نقطه حساسی است، چون تشكل و استانداردی در اين زمينه وجود ندارد. يكی از دلايلی كه وضعيت بازار را اينگونه كرده Resellerهای خودما هستند، مثلا اين موارد را در نظر بگيريد ما در شركت به فردی 700 MB فروختهايم به ازای حدود يك ميليون تومان ( در سال) حال او تعرفههايی برای خودش ساخته و حدود 400 عدد Domain اضافه كرده و مطمئنم كه سود خيلی خوبی هم برده است، با وجودی كه او ديگر هيچ هزينه و ... ديگری ندارد، به نظرم اين را بايد بررسی و راهكارهای عملی پيدا كرد.

   فكر میكنم تعدادی از شركتهای اين حوزه، با يكديگر جمع شويم و سطوح مختلف و درجات مختلف اين سرويس را تعريف كنيم ( مثلا Level A و Level B و...) و برای آن مشخصات تعيين كنيم و بتوانيم به دستاندركاران Certificate بدهيم و به اين ترتيب، كمی بازار كنترل شود.

   نكته ديگر اينكه بايد با موضوع هك جدیتر برخورد شود، شما میبينيد كه الان به طور رسمی و علنی كلاس هك برگزار میشود!! و نرمافزار هك فراوان در دسترس است. مشكل ديگر اين است كه بعد از اين هكهای اخير، انتظار مشتريان خيلی بيشتر شده است، مثلا بعد از يك بار Restart شدن سرور، چندين تلفن داريم كه آيا هك اتفاقی افتاده است؟ با اينكه بعد از حادثه هك، اين مورد پيش آمده كه مسئولين سرور عليرغم تعهداتشان، Backup مناسبی از اطلاعات مشتريان ما نداشتهاند و اين در حالی بوده كه ما در مقابل مشتريانمان طبيعتا بايد پاسخگو باشيم! ما تلاش میكنيم تعهد خود را به مشتريان نشان دهيم، هرچند اين كار موجب فشار و استرس فراوان میشود و گاه شده كه چندين شبانهروز به طور مستمر در حال حل مشكل و خدمات دهی به مشتری بودهايم، البته هك موجب تجربه بسيار ذیقيمتی نيز برای ما شده است.

   قنبری: البته به نظر من اگر قيمت هاست را خيلی پايين نياوريم و به قيمت مناسبی به مشتری بدهيم، نتيجه مناسبتری خواهيم داشت. ببينيد رقابت در كاهش قيمت،. حداقل نتيجهاش اين است كه مسئولين شركت هاست، سرشان خيلی شلوغ میشود و اين طبيعتا بر كيفيت كار تاثير میگذارد ولی اگر قيمت خوبی بدهند، میتوانند متخصصين فنی خوب را به خدمت بگيرند و سرويس خوب بدهند و هزينه خود را از مشتری میگيرند، ما الان بخش خوبی از درآمدمان از هاستينگ است و اين قابل توجه است. اين عامل رقابت در كاهش قيمت به نظر من كاملا در اين وضع موجود موثر بوده است.

   سيجانی: شركت فراكارانت دارای 2 سرور ويندوز است ( كه در حال افزايش به 3 تا 4 است) 2 تا هم سرور لينوكس داريم كه حدود 1600 سايت روی ويندوز و بيش از 300 سايت روی لينوكس داريم. به نظر من، البته تعداد سرورهای شركت، به تنهايی تعيين كننده نيست يعنی زياد يا كم بودن تعداد نشانه بد يا خوب بودن Provider نيست، بلكه سياست Provider است كه تعيين كننده است، مثلا اين كه در زمينه هاستينگ، آيا به آن فقط به صورت يك كار جانبی و حاشيهای نگاه میكند و يا اين كه به صورت يك كار بااهيمت و مستقل.

   فراكارانت در سال 79 در زمينه برنامه نويسی و طراحی حرفهای وب شروع كرد ولی زمانی كه هاستينگ برای ما اهميت اساسی پيدا كرد اولين سرورمان 2000 بود و قيمت گذاری را با آناليز دقيقی شروع كرديم. اين نكته را يادآوری میكنم كه به طور كلی اين وضعيت در ابتدای راه است و همه در حال تجربه كردن هستيم. نكته ديگر اين كه هنوز مشتری، فرهنگ خوبی در اين زمينه ندارد، به عنوان مثال ما با در پيش گرفتن سياست شفافسازی، وقتی كه در مورد پهنای باند، با مشتری خود به طور صريح مواجه شديم و گفتيم كه در ازای آيتمهای بيش از حد بايد هزينه بپردازند، دچار افت فروش زيادی شديم! ( در حالی كه مانند بقيه میتوانستيم ادعا كنيم كه Unlimited POP3 ، Unlimited email و ...) اين الزامی میكند كه مسئوليت شركت كاملا مشخص شود و در قبال تعهدی كه به كاربر میدهد، كاملا جدی باشد. ما و بقيه همكاران كه در اين صنعت جديد مشغول فعاليتيم، به نظرم اولين نيازمان اين است كه مشتری و كاربر، فرهنگ و اطلاعات اوليه و مناسبی در باره اين وضعيت داشته باشند، و با توجه به افزايش نياز داشتن سايت برای هر فرد حقيقی و حقوقی، بپذيرد كه برای رفع اين نياز خود به قدر كافی هزينه كند. جالب است كه گاهی سازمانهای بسيار بزرگ مالی را میبينيم كه در زمينه تامين هاست مناسب برای سايت خود، گاهی رفتارهای عجيبی از خود نشان میدهند و مثلا ارزانتر بودن به اندازه دوهزار تومان برايشان اهميت دارد!

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

   قنبری: يك نكته مهم به نظر من كنترل كردن Reseller هاست. يعنی بتواند در قيمت و تعرفهها ما رقابت كند ولی در نوع تعرفه و Levelها نتواند رقابت كند. ( من خودم Panel مربوط به يك Reseller را ديدهام كه با گامهای 100K اضافه میشود و اين واقعا غير معقول است) اين كار هرچند كوچك است ولی میتواند Reseller را كاملا مهار كند و موثر است، و من واقعا روی اهميت اين نكته تاكيد میكنم.

+ نوشته شده در  چهارشنبه 1388/01/19ساعت   توسط سعید  | 

در آمدی بر زبان PHP

كمتر كاربر اينترنت را میتوان يافت كه تاكنون با صفحاتی با پسوند PHP برخورد نكرده باشد و البته اين پسوند نامی آشنا برای طراحان و برنامهنويسان وب است.                                                                            

   پی اچ پی (PHP) يكی از محبوبترين و رايجترين زبانهای برنامهنويسی برای ايجاد صفحات پويا در وب است و كمتر خواستهای در محيط وب وجود دارد كه در PHP قادر به انجام آن نباشيم. از ايجاد يك صفحه ساده برای پردازش اطلاعات فرمها، ارتباط با بانكهای اطلاعات، كار با سوكتهای TCP، پردازش فرمتهای PDFوZIP و حتی تصوير بخشی از توانايی اين زبان است.

پی اچ پی چگونه كار میكند؟

   نوشتن يك برنامه پی اچ پی شبيه ايجاد يك صفحه HTML است و تنها با اين تفاوت كه كدهای اين زبان در داخل صفحات و دربين كدهای HTML درج میشود و البته طبيعی است كه يك فايل پی اچ پی میتواند تنها شامل كدهای PHP باشد.با توجه به اين كه PHP يك زبان طرف سرويسدهنده است، و بنابراين برای اجرا، اسكريپتهای آن بايد آنها را به كامپيوتر سرويسدهنده وب (مانند سيستم Windows 2000 و نرمافزار IIS) انتقال دهيم و حالا با تايپ نام فايل آن در گردشگر اينترنت میتوانيم آنرا اجرا و خروجی احتمالی را مشاهده كنيم.

طبيعی است كه در سمت سرويسگيرنده (كاربر سايت)امكان مشاهده كدها وجود ندارد.

   پس از درخواست برای اجرای يك اسكريپت PHP فايل حاوی كدهای PHP به برنامه مفسر PHP انتقال داده شده(معمولا php.exe) و اين برنامه بعد از تفسير واجرای اسكريپت ،نتيجه را به سمت كاربر میفرستد.

   در زير نمونهای از يك اسكريت ساده PHP درج شده است. اين برنامه پيغام ارسالی توسط كاربر را میگيرد (اين پارامتر میتواند توسط يك فرم يا در نوار آدرس گردشگر اينترنت تايپ شود) و آن را در قالب HTML برای كاربر ارسال میكند.

 

كد HTMLنتيجه حاصل كه كاربر امكان مشاهد آنرا دارد
http://www.mysite.com/test.php?message=hello

اسكريت PHP كه در سمت سرويس دهنده اجرا میشود



hello



echo $_GET['message'];?>

 از آنجا كه آموزش اين زبان در اين مقاله نمیگنجد، بنابراين در ادامه نگاهی به تاريخچه ، مزايا و احتمالا معايب آن خواهيم داشت.

تاريخچه

   پی اچ پی در سال 1994 توسط راسموس لردرف Rasmus Lerdorf و برای استفاده شخصیاش ايجاد شد. او بعدها و در سال 1995 نسخه حرفهایتر از مفسر زبان PHP به نام Version 2 PHP/FI را عرضه كرد، و در سال 97 تعداد سايتهايی كه از PHP استفاده میكردند به بيش از 50000 رسيد و امروزه نيز ميليونها سايت از آن استفاده میكنند. سايتهای مشهوری چون Alltheweb و mamma از اين زبان استفاده میكنند و حتی Yahoo نيز در حال شروع استفاده از اين زبان برای توسعه وب سايتهای خود است.

پی اچ پی زبانی برای همه سيستم عاملها

   يكی از برترين مزايای زبان PHP سازگاری آن با اكثر سيستم عاملها و نرمافزارهای وب سرور (مانند IIS و Apache) است. برخی از ديگر زبانها و تكنولوژیها مانند ASP محدود به سيستم عامل windows است و پشتيبانی از آن در ديگر سيستم عاملها بسيار پرهزينه و محدود است، و برخی نيز مانند JSP مشكلاتی با برخی نرمافزارهای وب سرور دارد.

   ساختار و امكانات پی اچ پی به شكل مستقل از سيستم عامل شكل گرفته است و اين بدان معنا است كه به طور مثال برنامهنويس میتواند اسكريپت خود را تحت سيستم عامل ويندوز نوشته و تست كند و سپس آنرا بدون تغيير به سيستم عامل يونيكس يا لينوكس انتقال دهد.

   در PHP امكان استفاده از برخی از امكانات خاص سيستم عاملهای مشهور نيز در نظر گرفته است كه برای نمونه میتوان از پشتيبانی از تكنولوژی DCOM و يا Windows API نام برد.

نسخههای جديد مفسر PHP سازگار با ديگر تكنولوژیهای خاص وبسرورها مانند ISAPI نيز میباشد.

پی اچ پی رايگان و Open Source

   تهيه برنامه مفسر PHP برای همه سيستم عاملها رايگان است و علاقهمندان میتوانند آخرين نسخه مفسر اين زبان را از سايت رسمی PHP بارگذاری (Download) كند.

   همچنين امكان تهيه رايگان سورس مفسر پی اچ پی نيز فراهم است ، و اين مسئله علاوه بر اين كه در گسترش امكانات اين زبان بسيار موثر بوده است، مزيتی برای شركتها و توسعهدهندگان برای انتخاب اين زبان است چرا كه پشتيبانی و اعتماد به آن را راحتتر كرده است.

   بسياری از ويرايشگرهای حرفهای اين زبان نيز يا رايگان هستند و يا با هزينه بسيار كم میتوان آنها را تهيه كرد، در حالی كه ديگر تكنولوژیها، مثلاً تهيه پلاتفورمهای جاوا هزينه هنگفتی دارد و همچنين كار حرفهای با تكنولوژی .NET نيز نياز به تهيه Visual Studio.NET و پرداخت هزينه چند صد دلاری است.
 

" "
پی اچ پی (PHP) يكی از محبوبترين و رايجترين زبانهای برنامهنويسی برای ايجاد صفحات پويا در وب است و كمتر خواستهای در محيط وب وجود دارد كه در PHP قادر به انجام آن نباشيم. از ايجاد يك صفحه ساده برای پردازش اطلاعات فرمها، ارتباط با بانكهای اطلاعات، كار با سوكتهای TCP، پردازش فرمتهای PDFوZIP و حتی تصوير بخشی از توانايی اين زبان است.

" "

سرعت بالای تفسير و اجرای PHP

   پی اچ پی يكی از سريعترين زبانها در نوع خود است. تفسير و اجرای يك اسكريپ php به طور متوسط تا سه و چهار برابر يك اسكريپ ASP است. (البته بايد در نظر داشته باشيم كه IIS با Cach اسكريپتهای ASP سرعت اجرای آنها را در دفعات بعد بالا میبرد)

   همچنين در ASP استفاده زيادی از اشيا COM میشود كه باعث كاهش سرعت و مصرف منابع سيستم میشود در حالی كه در PHP بسياری از امكانات و حتی برقراری ارتباط با يكی محبوبترين نرمافزار مديريت بانكهای اطلاعاتی (mySql به صورت توكار نهاده شده است.

   شركت Zend كه تهيه كننده فعلی موتور مفسر و پشتيبانی كننده آن است، محصولات ديگری را نيز در جهت بهينه كردن سرعت اجرای PHP ارائه كرده است اين محصولات با افزايش سرعت تفسير و همچنين ذخيره كردن نتيجه تفسير (Cash) باعث افزايش چندين برابر اجرای آن میشوند.

ساختار مناسب و امكانات بالا در PHP

   همان طور كه در ابتدای مقاله اشاره شد، كمتری نيازی در برنامهنويسی تحت وب وجود دارد كه در PHP امكان رفع آن نباشد. پی اچ پی شامل كتابخانهای غنی از توابعی است كه امكان پردازش اطلاعات فرمها، كار با بانكهای اطلاعاتی، فايلهای متنی و باينری، فايلهای گرافيكی، PDF ، ZIP و پروتكلهای TCP ، FTP ، DNS ،SMTP و ... را برای برنامهنويس فراهم میكند، اين را مقايسه كنيد با ASP كه به طور مستقل امكان Upload File ،ارسال ايميل يا كار با فايلهای باينری را ندارد.

   همچنين PHP يكی از بهترين پشتيبانیها را از نرمافزارهای بانك اطلاعات دارد. mySql,Sql Server,mSql,dBase,Oracle,IBM DB2,PostgreSQL,InterBase و بسياری از نرمافزارهای ديگر در پی اچ پی قابل استفاده هستند و البته امكان كار با ODBC و COM برا ی استفاده از بانكهای Ms Access و ديگرمحصولات نيز هست.

   قدرت زبان پی اچ پی تنها در كتابخانه توابع آن نيست، پشتيبانی بسيار خوب از برنامهنويسی شیءگرا (OOP) و كار آسان و سريع با متغيرها از مزايای دورنی اين زبان است.

معايب

حال كه از حسن PHP گفتيم، بد نيست اشارهای نيز به برخی معايب آن داشته باشيم.

   نحو (syntax) زبان PHP بسيار شبيه زبان C++ و Perl است. اين اگر چه باعث استقبال از اين زبان توسط برنامهنويسان C و يا Perl شد، اما اين نحو برای بسياری از طراحان صفحات وب چندان آسان نيست و بسياری معتقد هستند كه تكنولوژی ASP و زبان VBScript آسانتر و قابل دركتر است و همچنين JSP و زبان جاوا نيز به دليل محبوبيت و ساختار قدرتمند آن مورد توجه است.

   يك اشكال ديگر PHP عدم پشتيبانی خوب آن از يونيكد و به خصوص زبان فارسی است، حتی آخرين نسخههای اين زبان نيز امكان سورت(Sort) صحيح متون فارسی را ندارد. البته اين اشكال با كامپايل مجدد يا كمی برنامهنويسی قابل حل است.

از كجا شروع كنيم ؟

   تقريبا میتوان گفت اگر دارای هر سيستم عاملی هستيد میتوانيد استفاده و كار با اين زبان را شروع كنيد؛ تنها كافی است به سايت رسمی زبان PHP به آدرس http://www.php.net برويد، و نسخه مفسر اين زبان را با توجه به سيستم عامل خود بارگذاری (Download) كنيد. راهنما و مرجع دستورات و توابع اين زبان در همين سايت قراردارد.

   همچنين سايت http://www.IranPHP.net (كه به همت آقای هاشمی به زبان فارسی ايجاد شده است) میتواند مكانی مناسب برای حل مشكلات و تماس با ديگر برنامهنويسان PHP باشد. 

+ نوشته شده در  چهارشنبه 1388/01/19ساعت   توسط سعید  | 

معرفی دستور alias و كاربردهای آن

دستور alias اين امكان را به كاربران لينوكس میدهد كه برای يك دستور، يك نام جديد تعريف كنند. انجام اين كار باعث نامعتبر شدن نام اوليه اين دستور نمیشود و هر دو نام میتوانند مورد استفاده قرار گيرند. به عبارت ديگر اين دو (يا چند) نام را میتوان مترادفهايی برای يكديگر در نظر گرفت. مثالی از نحوة استفاده از اين دستور به شكل زير است كه در آن نام جديد list برای دستور ls تخصيص میيابد.

$ alias list=ls

   پس از اجرای اين دستور، هرگاه دستور جديد list اجرا شود، دقيقا همان كاری را انجام میدهد كه دستور ls انجام میدهد.

   اما كاربرد اصلی اين دستور زمانی است كه بخواهيم برای يك حالت خاص از يك دستور موجود يك نام جديد و كوتاه اختصاص دهيم. مثال زير را در نظر بگيريد:

$ alias sizes='ls –s'

   در اينجا دستور ls به همراه گزينه –s نام جديد sizes را به خود گرفته است. به اين ترتيب پس از اين به جای اجرای دستور ls –s (كه برای نشان دادن ليست فايلها به همراه اندازة هر فايل استفاده میشود)، كاربر میتواند از دستور جديد sizes استفاده كند. اين ويژگی به خصوص زمانی كه برخی دستورات طولانی استفادة زيادی داشته باشند، بسيار مفيد خواهد بود.

   همانطور كه ديده میشود، برای لحاظ كردن گزينههای يك دستور بايد كل آن دستور را در داخل علامت نقل قول تكی (single quote) قرار داد و نتيجه را پس از علامت مساوی در دستور alias استفاده كرد.

   نكتهای كه بايد مورد توجه قرار گيرد اين است كه اين تعريف تنها تا زمانی معتبر خواهد بود كه كاربر logout نكرده باشد. پس از logout و login دوباره، كاربر بايد تعاريف خود را از اول انجام دهد تا قابل استفاده باشند. برای رفع اين مشكل میتوان تعاريف را در فايل .bash_profile يا ساير فايلهای مشابه قرار داد.

   نكته قابل توجه ديگر اين است كه به نام جديدی كه برای يك دستور تعريف شده است، پارامتر نيز میتوان ارسال كرد. به طور مثال در مورد دستور sizes كه در بالا تعريف شد، میتوان اين دستور را به شكل زير نيز استفاده كرد:

$ sizes *.c

اين دستور معادل دستور ls –s *.c خواهد بود و ليست تمامی فايلهای با پسوند .c را به همراه اندازة هر فايل نمايش میدهد.

   حالت ديگری كه میتوان از دستور alias استفاده كرد اين است كه نام جديدی كه تعريف میشود، با نام يكی از دستورات يا برنامههای موجود يكسان باشد. مثال زير را در نظر بگيريد:

$ alias rm='rm –f'

   همانطور كه در مثال ديده میشود، دستور rm –f (كه منجر به حذف فايلها بدون گرفتن تاييد كاربر میشود) به نام rm معرفی شده است. به اين ترتيب از اين پس هرگاه دستور rm اجرا شود، سيستم دستور rm –f را اجرا خواهد كرد. در اين حالت اجرای دستور rm به شكل اصلی آن تا زمانی كه اين تعريف تغيير نكرده است ممكن نخواهد بود.

   برای مشاهده ليست aliasهای تعريف شده در سيستم، بايد دستور alias را بدون هيچ پارامتری اجرا كرد. به طور مثال نتيجة اجرای اين دستور روی يك لينوكس RedHat 7.2 به اين شكل است:

$ alias

alias l.='ls -d .[a-zA-Z]* --color=tty'

alias ll='ls -l --color=tty'

alias ls='ls --color=tty'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

    همانطور كه میبينيم، اين سيستم در هنگام نصب برخی دستورات را برای راحتی كاربران تعريف كرده است. به عنوان مثال دستور ls با پارامتر –color=tty اجرا میشود تا يك خروجی رنگی را برای كاربران نمايش دهد.

نكتة آخر در مورد اين دستور اين است كه برای حذف يك alias از تعاريف موجود، میتوان از دستور unalias استفاده كرد.

$ unalias ll

+ نوشته شده در  چهارشنبه 1388/01/19ساعت   توسط سعید  | 

دولت اينترنتی با اينترنت دولتی!

آذرماه سال 81 مديران وقت ارتباطات ديتای مخابرات اعلام كردند با صدور مجوزها به ارائهدهندگان ارتباط اينترنتی پر ظرفيت امكان رقابت قانونی با شبكه مهيا شده است. با ايجاد رقابت، كيفيت سرويسها بهينه میشود همچنين با راهاندازی فيبر نوری از طريق شركت فلگ به دنبال ارتقای سرويس اينترنتی در كشور هستيم. مدير وقت از رعايت استانداردهای جهانی در خطوط ديتای شركت مخابرات خبر داد.

   حدود يك ماه پس از اعلام اخبار فوق در حالی كه شبكه فيبر نوری مخابرات تازه راهاندازی شده بود، گروهی متشكل از پرسنل اداره ارتباطات راديويی و حراست وزارت پست با در دست داشتن حكم قضايی پرسشدهای كه ظاهرا مدتها قبل تهيه شده بود، به بهانه نداشتن مجوز فركانس به تعداد زيادی شركتهای ISP مراجعه كرده و مبادرت به پلمپ تجهيزات شركتها در محل انها كردند. پس از اعتراض انجمن به غيرقانونی بودن اين گونه برخوردها و ورود به حريم شخصی شركتها با در دست داشتن حكم كلی كه فقط مربوط به بازبينی تجهيزات راديوآماتوری بود آن هم بدون حضور نماينده دادستان مدتی اوضاع آرام شد تا اين كه پس از گذشت سه هفته مجددا مراجعه به ISPها شروع شد. البته اين بار نه با در دست داشتن يك حكم كلی و بدون حضور ضابط، بلكه با در دست داشتن حكم موردی با نشانی و موضع مورد بازرسی بود كه عبارت بود از «استعمال غيرمجاز تجهيزات دريافت از ماهواره» و با حضور پرسنل اداره اماكن نيروی انتظامی در اين دوره نيز به بهانه تعداد زيادی تجهيزات در محل شركتها پلمپ شد، البته نه تجهيزات فقط دريافت بلكه تجهيزات ارسال- دريافت و حتی بعضی از موارد تجهيزات شبكه نيز جز مواردی بود كه پلمپ شد. خلاصه دهها پرونده تشكيل و تعدادی از آنها با قرار پرداخت جريمه و مصادره تجهيزات مختومه شد.

   پس از اعتراض مجدد به مستندات قانونی كه عبارت بود از قانون منع استفاده تجهيزات ماهواره ( مصوب سال 73) مسئولين وزارت پست اعلام كردند ما با قاچاقچيان مخابرات برخورد كردهايم نه با ISPها!؟

   حال چه رابطهای بين قاچاقچيان مخابرات و قانون منع استفاده از تجهيزات دريافت از ماهواره وجود دارد الله اعلم- به ناچار انجمن با اطلاعرسانی صحيح در خصوص خدمات اينترنتی تلفنی و اصطلاحا VOIP به تشريح آنچه مخابرات ادعا میكرد قاچاق مخابراتی است پرداخت و به اين نكته تاكيد كرديم كه مصاديق قاچاق در قانون به صراحت عنوان شده است و بكار بردن عنوانی كه ماهيت مجرمانه دارد منصفانه نيست. البته از ابتدا مشخص بود ماموران پلمپ به دنبال يافتن تجهيزات VOIP بودند نه تجهيزات دريافت از ماهواره. خلاصه پس از پيگيریهای قانونی انجمن و روشن شدن مسائل پشت پرده تا حدودی اوضاع آرام شد تا اين كه اوايل ارديبهشت 82 مجددا، گروه جديدی به بهانه مبارزه با مفاسد اجتماعی تعدادی ISP و ICP حتی مجاز را پلمپ كردند. اين بار دست به دامن رييس جمهور شديم و از ايشان خواستيم طرح ضربتی ضد اشتغال وزارت پست را متوقف كند! كه پس از اعلام خبر روی خروجی خبرگزاریها، وزارت پست رسما اعلام كرد ما نبوديم!

   البته بررسی نتيجه اين گونه برخوردها بر اشتغال، سرمايهگذاری در حوزه IT، مهاجرت نيروهای متخصص و ... خود بحث مفصلی است كه مجال پرداختن به آن نيست ولی نكته قابل توجه ارزان شدن نرخ مكالمات تلفنی اينترنتی از خارج به داخل به حداقل ممكن پس از برخورد با ISPها بود يعنی درست برعكس سياستهای اعلام شده جهت برخورد با قاچاق مخابرات!!

   ذكر اين نكته ضروری است كه در بررسیهای بعدی معلوم شد مخابرات با تكيه بر مسئله فيلترگذاری سايتهای غيراخلاقی موفق به همسو كردن نهادهای ديگر با خود شده است. اما پس از روشن شدن اين مسئله برای مسئولين قوه قضائيه كه شبكه ديتای كشور فاقد سيستم پالايه است معلوم شد مخابرات از اين حيث از بخش خصوصی عقبتر است و عليرغم دغدغه بجای قوه قضاييه در خصوص عرضه وسيع پورنوگرافی معلوم شد اولين مركزی كه بايستی مورد بازخواست قرار گيرد خود شركت مخابرات ايران است نه ISPها!

   البته پيش از اين انجمن كليات طرح فنی فيلترينگ را با پيشبينی هزينهها اجرای آن به مسئولين اعلام كرده بود وليكن متاسفانه تاكنون فيدبك مثبتی مشاهد نشده كه اميدواريم اين طرح مورد توجه مسئولين مربوطه قرار گرفته و به روش كاملا منطقی در حد امكان از عرضه وسيع پورنوگرافی جاوگيری شود.

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

   به هر حال اميدواريم از اين پس متوليان IT كشور عملا به اين نتيجه رسيده باشند كه رسيدن به دولت اينترنتی (الكترونيكی) از طريق «اينترنت دولتی» ناممكن است.

+ نوشته شده در  چهارشنبه 1388/01/19ساعت   توسط سعید  | 

HDTV چیست ؟

HDTV High Definition Television به معنی تلویزیون با کیفیت بالا می باشد.
در حال حاضر سیستم HDTV به طور گسترده ای در جهان رو به پیشرفت است. این پیشرفت بیشتر در کشور ژاپن به چشم مي‌خورد و در ایالات متحده و اروپا نیز در حال گسترش است. بیشتر شبکه های بزرگ برنامه های پرطرفدار خود را به صورت HDTV هم پخش می کنند. در استرالیا نیز پیشرفت HDTV در ابتدا کند بود اما از سال 2003 به بعد سرعت گرفته است. سیستم HDTV یک سیستم ارسال و پخش تصاویر با کیفیت بالا می باشد که محصولات نمایشی جدید LG با اتصال به یک تیونر HDTV (یک گیرنده HDTV که بتواند کانالهای HDTV ارسال زمینی، کابلی و یا ماهواره ای را دریافت کند) قابلیت پخش آن را دارند.
سه مورد از خصوصیات بارز سیستم HDTV که باعث تفاوت آن با تلویزیون های استاندارد (یعنی با سیستم NTSC , PAL , SECAM ) می شود، عبارتند از :
1. افزایش وضوح (رزولوشن) تصویر
2. استفاده از تصویر عریض 16:9 (سینمایی) به عنوان استاندارد پخش
3. توانایی پشتیبانی از صدای چند کاناله مانند دالبی دیجیتال.
افزایش وضوح (رزولوشن) تصویر : مهمترین ویژگی HDTV و دلیلی که این نام از آن گرفته شده، وضوح بالای آن می باشد.
سیستم های پخش قدیمی NTSC-M دارای 525 خط افقی جهت پخش و جاروب (scan) تصاویر می باشند. در سیستم PAL-B تصاویر با کیفیت اندکی بهتر و با 625 خط افقی پخش می گردند، در حالیکه سیستم پخش HDTV قابلیت پخش تا 1250 خط افقی را دارا می باشد.
سیستم‌های HDTV دو فرمت دارند: 720p و 1080i که این اعداد تعداد خطوط وضوح عمودی (خطوط جاروب تصویر) را نشان می دهند.
با توجه به افزایش تعداد خطوط جاروب تصویر، سیستم های HDTV به راحتی امکان دستیابی به بالاترین کیفیت پخش تصاویر را دارا می باشند.
کیفیت هر دوی این فرمت ها بسیار بهتر از سیستم های پخش قدیمی مانند PAL-B و NTSC-M است.
استفاده از تصویر عریض 16:9 به عنوان استاندارد پخش : با توجه به این نکته که مناسب ترین کادر جهت دیدن تصاویر برای چشم انسان یک کادر با نسبت طولی 16 به عرض 9 می باشد (که در سینما نیز استفاده می شود) در سیستم HDTV نیز از تصاویر عریض 16:9استفاده می گردد. بدین ترتیب تصاویر عریض (wide screen) به طور مناسب ارسال می شوند و اگر سیستم پخش امکان پخش تصاویر عریض را نداشته باشد و یا به صورت کادر 4:3باشد، تصاویر عریض به صورت letterboxed یا pan&scan نمایش داده می شوند:
Letterboxed = تصویر عریضی که در تلویزیون 4:3 پخش شود و نوارهای سیاه رنگی بالا و پایین آنرا پر می کند.
Pan & Scan= نمایش بخشی از تصویر عریض 16:9 روی تلویزیون استاندارد4:3 که گوشه های تصویر حذف می شود.
توانایی پشتیبانی از صدای چند کاناله مانند دالبی دیجیتال : صدای چند کاناله دالبی دیجیتال نیز می تواند به عنوان بخشی از سیگنال HDTV ارسال گردد و استفاده از آن دیگر محدود به DVD ها نخواهد بود .
منبع : http://www.barandeh24.com

+ نوشته شده در  چهارشنبه 1388/01/19ساعت   توسط سعید  | 

ترفندهای کامپیوتر

منوی Start ويندوز بدون انيميشن

زماني كه منويي را باز ميکنيد , ويندوز اين عمليات را در چند تصوير انجام داده و برای شما نشان ميدهد

 ويندوز اين عمليات را در چند تصوير انجام ميدهد. كه اين موضوع بعضي مواقع واقعا خسته کننده

 می شود. براي غير فعال كردن اين موضوع , به  كليد زير در رجيستری برويد :

HKEY_CURRENT_USER\ControlPanel\Desktop


و در سمت راست به دنبال گزينه Menu Show Delay بگرديد و به آن مقدار رشته اي صفر را بدهيد.

حالا به نظر ميرسد منوی استارت شما سريعتر شده و از حالت کندی قبل خارج شده است.

نکته : البته اگر بعد از صفر کردن اين مقدار کامپيوتر خود را Reset  کنيد بهتر است.

حذف درایوها از MY COMPUTER ( مخفی کردن درايوها )

توجه : اگر با رجيستری آشنايی کافی نداريد ، در کار با رجيستری تمامی نکات را به درستی انجام دهيد ،

 چون اگر بخشی از رجيستری ويندوز به اشتباه تغيير داده شود و يا دستکاری شود احتمال به وجود آمدن

هر مشکلی در ويندوز و يا حتی نصب مجدد سيستم عامل خواهد بود.

با اين ترفند شما مي توانيد هر يک از درايوهاي موجود در سيستم خود را ناپديد کنيد.

 ابتدا به کمک دستور Regedit که در Start ==> Run تايپ ميکنيد رجيستري خود را باز نماييد سپس

به کليد زير مراجعه کنيد :
 

HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version \ Policies\Explorer
 

و يک متغير جديد از نوع DWORD ساخته و نام آن را NoDrivers بگذاريد مقداري که براي اين متغير تعيين

مي کنيد نشان مي دهد که چه درايوهايي مرئی هستند راست ترين بيت مربوط به گردونه ي:Aو بيت

 بيست و ششم مربوط به گردونه ي :Z است براي مخفي کردن هر درايو کافي است بيت آن را روشن

 کنيد. اگر با اعداد هگزا آشنايی کافی نداريد مي تونيد از اعداد دسيمال زير براي مخفي کردن هر درايو

يا چند درايو استفاده کنيد مثل اعداد زير :

A:1 , B:2 , c:4 , D:8 , E:16 , F:32 و...........

براي ناپديد کردن تمام درايوها مي توانيد از  6ffffff  ( عدد ۶ و  ۶ تا f پشت سر هم ) 

 را به متغير NoDrives بدهيد .

نکته : برای ديدن تغييرات اعمال شده بر روی ويندوز حتما يا ويندوز خود را Logg off کرده و يا آن را Reset

نمائيد.

چگونه ميشه محدوديت تايپ رو در ياهو مسنجراز بين برد؟

اين كار بصورت ۱۰۰٪ امكان پذير نيست ولي ميتونيد با زدن يك حقه کوچيک به ياهو درحدود ۲۰سطر متن

 تايپ كنيد براي اين كار:

۱-وارد ياهو مسنجر شده و با آي دي خودتون Sign In كنيد.

۲-روي New Status Messege كليك كنيد.

۳-پس از نوشتن متني (تا حدي كه سطر اول پر شود) به جاي ok يا Enter دكمه:

Ctrl+Enter رو همزمان با هم فشار دهيد تا به سطر بعدي برويد . در اين سطر هم متني تايپ كنيد و به

 همين ترتيب ميتوانيد تا ۲۰ سطر ادامه دهيد ولي به اين نكته توجه كنيد كه كل متن در ياهو مسنجر نشان

 داده نميشود و براي ديدن آن بايد موس را روي اي دي خودتون چند لحظه نگه داريد تا كل متن نشان داده

 شود .

 ناپدید کردن فولدر در ویندوز

برای شروع کار یکی از پوشه های موجود بر روی ویندوز خودتون رو انتخاب کرده , بر روی اون راست کلیک

 کنید و گزینه آخر Properties  را انتخاب کنید.

1 - حالا اگر Folder ( یا پوشه ) مورد نظر شما یک  Shortcut ( میانبر ) است به صورت پیش فرض برگه

 Shortcut براتون باز میشه و شما باید بر روی گزینه Change Icon کلیک کنید.

2- و یا اگر Folder  انتخابی شما یک  Shortcut  نیست شما باید به برگه  Customize  رفته و گزینه

Change Icon رو انتخاب کنید .

حالا برای انتخاب ایکون مورد نظر به دقت به عکس زیر نگاه کنید و ایکونی رو  که هیچ تصویری  نداره و

سفید رنگ به نظر میاد  رو انتخاب کرده  و OK کنيد.

بعد از انجام این کار حالا بر روی  همین Folder  راست کلیک  کنید  و گزینه Rename  رو برای تغییر نام 

 Folder  بزنید و یا میتونید اون  Folder  رو  انتخاب کرده و از کلید F2 کیبوردتون  برای تغییر نام استفاده کنید.

حالا برای تغییر نام Folder این کار رو انجام بدید  ==>  کلید ALT روی صفحه کیبوردتون رو پایین  نگه

دارید  و  حتما از قسمت اعداد ( Numeric صفحه کلید ) عدد 255 را بزنید و  Enter رو بزنید .

حالا Folder شما بدون نام و ایکون شده و دیده نخواهد شد.

 *  توجه  : اگر از قسمت اعداد و محاسباتی صفحه کیبوردتون استفاده نکنید ، نام  Folder شما تغییر

 نمیکنه .
 
 *  توجه  : البته باید بگم که اگر  Folder مورد نظر شما  یک Shortcut  است بعد از انجام این کارها اون فلش

 کوچک  مشکی زنگ هنوز  در کنار ایکون Folder شما میمونه و ناپدید نمیشه که اگر خواستید میتونید نظر

 بدید تا  در  بخش  آموزش ترفند  و کار با رجیستری ،  راه از بین بردن اون شکلک فلش مشکی  رو  که در

 کنار هر نوع Shortcut  ظاهر میشه رو براتون بگم.

حالا با انجام این کار  Folder مورد نظر شما به طرز جالبی ناپدید شده و البته برای دیدن Folder ناپدید

شده میتونید محل مورد نظر رو Refresh  کنید و در این زمان  شما اونو خواهید دید.

 راهی برای پیدا کردن IP فرسنده ایمیل , در یاهو

( قابل توجه اونایی که فکر ميکنن  چنین کاری غیر ممکنه )

اين راه نياز به تغيیراتي در تنظيمات دارد مراحل زير را دنبال کنيد Mail Options ايميلتان را باز کرده  سپس

 گزينه General Preferences   را انتخاب کنيد در اين قسمت تغيراتي را ميتوانيد در ايميلتان ايجاد کنيد مثل 

 From name اسمتون رو در نامه هائي که ميفرستيد تغير ميدهد و messeges per page تعداد نامه هائي

 که در يک صفحه نشان داده ميشود و . . .  ادامه ترفند رو بگم : Headers  در اين قسمت با انتخاب . . . 

 Show all ميتونيد IP کسائي که بهتون ايميل ميفرستن رو ببنيد و در انتها تغيیرات را   Save کنيد به همین

 راحتی !

غیر ممکن کردن یافتن رمز عبور توسط برنامه های پسورد یاب

1- براي ايجاد كلمه عبور، از حروف بزرگ و كوچك و به صورت يك در ميان یا هر جوری که دوست دارید 

iDoLdEsIgN یا IdoLDEsiGN

۲ - حروف اول كلمات يك جمله را به عنوان رمز عبور خود انتخاب كنيد.

مثلاًدر جمله:"If sentence is longer password would be safer " كه رمز عبور آن به اين صورت تبديل

مي شود: " Isilpwbs "

3 - عدد يا شماره تلفنی را براي خود در نظر بگيريد و آن را با دكمه Alt تايپ كنيد.

مثلاً : شماره تلفن :  ۹۷۱۲۲۳۳   را با دكمه Alt به صورت تک تک و جدا به اين صورت تبديل مي شود:

البته اين الان برعکس به نمايش در مياد.

○•☺☻☻♥♥ 

4 - لغتي را در نظر بگيريد و سپس حروف سمت راست آن را که بر روي صفحه كليد قرار دارد، بنويسيد:

مثال: Hardware تبديل مي شود به: Jstfestr  ، البته شايد اين روش براتون کمی سخت باشه.

5 - لغت يا تركيبي را براي خود در نظر بگيريد مانند “24Oktober” و بعد آن را بهم بريزيد به اين صورت كه

 حروف اول آن را با حرف آخر، حرف دوم را با حرف ماقبل آخر و به همين ترتيب بقيه را بنويسيد:

 24r4eObkot

6 - لغات يك جمله را به اختصار بنويسيد اين اختصارات را خود شما تعيين مي كنيد و از قاعده خاصي پيروي

 نمي كنند.
مثلاً عبارت White meat with cabbage تبديل مي شود به:

“whtmtwtcabge”

۷ - در رمز عبور از علائم ويژه استفاده كنيد.

مثال: “c/Om%u\t§E~r

تبدیل فایلهای صووتی به Mp3 در مدیا پلیر ویندوز

( قابل اجرا در نسخه های ، مدیا پلیر 7 و بالاتر )

1 - بعد از گذاشتن Cd در کامیپیوترتون ، در پنجره ای که به صورت اتوماتیک ظاهر میشه انتخاب گزینه

Copy  Music From Cd و  یا باز کردن برنامه مدیا پلیر و زدن گزینه Copy From Cd  در منوی کنار مدیا پلیر

( Menu bar )

2- انتخاب فایلهای  مورد نظر شما با تیک   زدن کنار آنها  - ( فایلهایی که میخواهید از Audio   سی دی به 

 فرمت MP3  تبدیل  شوند )

3- انتخاب گزینه Copy Music  که در قسمت بالای Caption  مدیا پلیر قرار دارد. ( آیکون دایره ای قرمز رنگ )

4- انتخاب گزینه های  2 و 3 به ترتیب از بالا ، سپس Next  کنید و در قسمت پایین صفحه بعد میتونید فرمت

 خروجی( تنظیم کیفیت فایل های CD ) که به نظر من بهتره  که اونو روی (  96 Kbps ) قرار بدید  و روی

 گزینه Finish کلیک کنید تا کار کپی و تبدیل به فرمت MP3 شروع بشه.

نکته : محل ذخیره فایل ها بطور پیش فرض در  ( My Documents \ My music  )  شما  می باشد که اگه

خواستید میتونید قبل از زدن گزینه Finish اونو تغییر بدید.

راههایی برای بستن پنجره های ویندوز

نکته : این ترفند فقط برای بستن پنجره های  ویندوز می باشد ( منظور از پنجره های ویندوز

 کادرهایی است که قابلیت  بزرگ  و کوچک شدن  رو دارند  مانند : My Computer  و . . .   .

کادرهایی مانند کادر  ساعت و تاریخ  ویندوز جزوء این پنجره ها نیستند و به اصطلاح فارسی به

آنها کادرهای محاوره ای می گویند.

راههای مختلف برای بستن یک پنجره  و کادرهای محاوره ای ویندوز عبارتند از :

1 - کلیک بر روی دکمه مربع شکل قرمز رنگی که علامت ضربدر بر روی آن دیده می شود.

2- انتخاب منوی File و کلیک بر روی گزینه Exit .

3- استفاده از کلیدهای ترکیبی  ALT  +  F4 .

4- استفاده از   ( Ctrl + Alt + Delete   ( Task  Manager   و انتخاب پنجره مورد نظر و کلیک بر

 روی گزینه  End  Task .

5 - این راه رو هم احتمالا  کمتر از بقیه راهها شنیده اید ،  برای مثال  ایکون My Computer  رو

 یکبار نگاه کنید  و بعد My  Computer  رو باز کنید ، در گوشه سمت چپ در بالای پنجره

 My Computer  ایکون این پنجره  کمی کوچکتر دیده می شود ، حالا بر روی این ایکون کوچک

 کلیک  کرده و  روی گزینه آخر یعنی  Close  برای بستن این پنجره کلیک  کنید.

6 - (  ششمین راه ) استفاده از این 2 کلید ترکیبی   Ctrl  +  W  یک راه دیگر برای بستن پنجره

 مورد نظر شما می باشد.

نکته : ( این 2 کلید ترکیبی یک راه عمومی است و در بعضی موارد استثنا نیز دارد ) این 2 کلید

 ترکیبی بر روی بعضی از پنجره ها مانند  برنامه Word Pad و یا برنامه  Media  Player  کار

نمی کند  و بر روی پنجره هایی مانند برنامه Internet Explorer و . . . کار میکند.

خارج کردن برنامه از حافظه کامپیوتر شما در زمان Shut Down در ویندوز

شايد اين مشکل برای عموم شما  پيش آمده باشه كه  ، وقتي قصد خروج  از ويندوز را داشته اید ، ويندوز

 پيغامي  مبني بر اينكه  برنامه XXXX  در حال اجراست . و سوالی از  شما مبنی بر اینکه آيا مي خواهيد به

 کار این برنامه در حال حاضر پایان داده شود یا خیر  پرسيده است ؟

براي  رفع این مشکل ويندوز به طور خودكار و خاتمه اجرای  چنين برنامه هايي  ،  در رجيستري ويندوز  كليد

 زیر را بیابید :

[HKEY_USER\.DEFAULT\Control Panel\Desktop]

( این مقدار  Auto End Tasks  به طور پیش فرض با مقدار صفر در ویندوز XP موجود است ) ولی اگر از ویندوز

دیگری استفاده می کنید و این مقدار را پیدا نکردید ،   يك مقدار رشته اي به نام Auto End Tasks بسازيد

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

 و به آن مقدار 1 را بدهيد.

عکس گرفتن از فایل ویدئویی با Media Player

 

شاید براتون جالب باشه که بدونید ،  که  با خود برنامه  Media  Player  ویندوز هم میشه عکس گرفت  یا

به اصطلاح کامپیوتری Capture  کرد .

نکته :  (  البته تا اونجائی که من میدونم فقط در  Media  Player 7.x.x  و  Media  Player  9.x.x 

و   Media  Player  10.x.x ).

انجام اینکار به راحتی آب خوردنه . فایل ویدئویی خودتون رو با  Media  Player  باز کرده  و کلیدهای

ترکیبی   Ctrl + i  رو با هم زده و  بعد از اون مسیری رو برای تعیین ذخیره فایل در کامپیوترتون  بدهید

تنظیم وضغیت Num Loack دز زمان ورود به ویندوز

اگر با هر بار ورود به ويندوز XP / 2000 / NT كليد Num Lock صفحه كیبوردتون خاموش است، 

کامپیوترتون رو  بیخودی دستکاری نکنید !

تنظیم اين  کار مربوط به ( رجیستری ) ويندوز مي شود . براي رفع اين مشكل وارد برنامه REGEDIT 

شويد و کلید زیر را پیدا کنید :

[HKEY_Current_User\Control Panel\Keyboard]

يك مقدار رشته اي ( برای اینکار Right click  در بخش راست  رجیستری و انتخاب گزینه String Value  )

به نام InitialKeyboardIndicators (  این مقدار به طور پیش فرض با مقدار صفر در ویندوز XP موجود است

، در صورت عدم وجود این رشته عینا رشته ای با همین اسم بسازید  ) ساخته  و به آن مقدار 2  بدهيد.

مقدار 2 باعث ميشود كه ويندوز آخرين وضعيت كليد Num Lock را ضبط كند و در زمان ورود بعدی شما به

ویندوز  آخرین وضعیت قبلی  این کلید را اجرا کند و   مقدار صفر ، كليد Num Lock را هنگام ورود به ويندوز

خاموش نگه خواهد داشت.

+ نوشته شده در  یکشنبه 1388/01/16ساعت   توسط سعید  | 

دایرکتوری های توزیع شده و LDAP

LDAP چیست؟

LDAP روش استانداردی برای دسترسی و به روزرسانی فهرست های(دایرکتوری های) توزیع شده (Distributed)  ارائه می دهد. LDAP مخفف Lightweight Directory Access Protocol است و مجموعه ای از پادمان ها (Protocols) و متدها، برای دسترسی به اطلاعات شاخه های توزیع شده است. متدهایی که در LDAP در اختیار دارید به شما این امکان را می‏دهد تا از اطلاعاتی که در درخت اطلاعات شاخه ها (Directory Information Tree - DIT) قرار دارد استفاده کنید. برای مثال در یک شبکه، این درخت شامل اطلاعاتی از اشیاء موجود در شبکه مانند کاربران، پرینترها، برنامه ها و ... است.

LDAP از استانداردهای موجود در X.500  ( استاندارد X.500 یک استاندارد جامع تر برای تعریف، نگهداری و مدیریت دایرکتوری های عمومی است. این استاندارد برای نگهداری اطلاعات عمومی (جهانی) استفاده می شود مانند آنچه در DNS استفاده شده است) پیروی می کند. اما LDAP از آن ساده تر و عملی تر است و برخلاف X.500، TCP/IP را نیز پشتیبانی می کند که برای استفاده در اینترنت نیز مفید است. LDAP سبک تر از X.500 است و به همین دلیل گاهی به آن X.500 Lite نیز گفته می شود.

اما X.500 یک مدل کلی برای سرویس های مرتبط با دایرکتوری ها، در OSI (Open System Interconnection) است. این مدل شامل چهارچوب های کلی و پادمان هایی برای به روز نگه داشتن شاخه و پرسش و جو (query) از آن است. پادمان اصلی موجود در X.500 ، DAP است که ساختار کامل و توابع بسیار زیادی دارد.  همین عامل باعث پیچیدگی در آن شده است و استفاده از X.500 را مشکل کرده است.

برخلاف X.500 ، LDAP از مقبولیت خوبی برخوردار است و به یک فناوری استراتژیک تبدیل شده است که اکثر تولیدکنندگان نرم افزار از آن پشتیبانی  می کنند.

 

دایرکتوری (Directory)

دایرکتوری یک فهرست از اشیاء است که اطلاعات مربوط به آنها براساس یک ترتیبِ خاص مرتب شده اند. برای مثال اطلاعات تلفن های یک شهر، مثال خوبی از یک دایرکتوری است که بر حسب نام افراد، طبقه بندی شده اند. در این تلفن دایرکتوری، اشیاء، افراد هستند که بر حسب نام، مرتب شده اند و اطلاعات مربوطه به هر فرد، آدرس و شماره تلفن آن فرد است.

مثال های دیگری که می توان در این مورد از آنها نام برد، کاتالوگ ها، در یک کتابخانه است یا دایرکتوری کاربران، که به شما این اجازه را می دهد تا آدرس پست الکترونیک یا شماره فاکس کاربران را پیدا کنید.

در واقع دایرکتوری ها مانند پایگاه داده ها هستند با این تفاوت که دایرکتوری ها، برای منظور خاصی تعبیه شده اند:

  1. بیشتر برای خوانده شدن طراحی شده اند، تا نوشتن و ایجاد تغییرات در آنها.
  2. یک نمای (view) ثابت از اطلاعات را به نمایش می گذارند.
  3. تغییرات در آنها ساده است و معمولا تراکنش (transaction) را پشتیبانی نمی کنند.
  4. برای دسترسی به دایرکتوری از یک پادمان شبکه استفاده می شود.

 

درخواست ها با نام Directory کاربر و سرویس دهنده ها با نام Directory Server شناخته می شوند. برخی از دایرکتوری سرویس های معروف عبارتند از:

  1. File Servers
  2. Mail Servers
  3. Print Servers
  4. Web Servers

توضیحات بیشتر درباره LDAP

LDAP ، یک پادمان مبتنی بر پیام را، بین سرویس دهنده و سرویس گیرنده، برقرار می کند. پیام های متفاوتی بین سرویس دهنده و سرویس گیرنده ممکن است رد و بدل گردد.  سرویس دهنده و سرویس گیرنده می توانند هر کدام با انتخاب روش های معمول، به شیوه دلخواه پیاده سازی شوند (این از مزایای LDAP است) و سرویس دهنده و سرویس گیرنده هر کدام می تواند از دو تکنیک جداگانه استفاده کنند بدون اینکه مشکلی در ارتباط با یکدیگر داشته باشند.

LDAP یک پادمان ارتباطی مشخص می کند که در آن، یک پیام از سرویس گیرنده، برای استفاده و دسترسی به اطلاعات یک دایرکتوری X.500 ، به سرویس دهنده ارسال می گردد. اکثر سرویس دهندگاه LDAP از نسخه 3.0 آن استفاده می کنند. دایرکتوری ها اغلب با یک مدل ارتباطی کاربر - کارگزار (Client - Server) قابل دسترسی هستند.

برنامه ای که در خواست خواندن، یا ایجاد تغییر در دایرکتوری را دارد، به طور مستقیم نمی تواند چنین کاری را انجام بدهد بلکه با استفاده از یک سرویس میانی قادر به انجام این کار خواهد بود به این صورت که یک API فراخوانی می شود و آن API، پیامی به یک فرآیند دیگر می فرستد و آن فرآیند با استفاده از TCP/IP به اطلاعات دسترسی خواهد داشت. پورت استاندارد برای ارتباط امن، پورت 636 و برای حالت عادی 389 است.

تلاش برای استفاده از XML در LDAP و استفاده در وب سرویس ها، منجر به زبانی به نام DSML شد که این زبان به استفاده کنندگان از دایرکتوری ها این امکان را می داد، که بدون نوشتن Interface برای کار با API های مربوطه، به دایرکتوری ها دسترسی داشته، بتوانند با آنها کار کنند.

انواع دایرکتوری

انواع دایرکتوری عبارتند از:

  1. محلی (Local)
  2. عمومی (Global)
  3. متمرکز (Centralized)
  4. توزیع شده (Distributed)

موارد بالا دو به دو در مقابل همدیگر هستند. معنای هرکدام تا حدودی در ذهن آشنا است. برای مثال در مورد دایرکتوری اطلاعات افراد یک شرکت، دایرکتری Local، شامل اطلاعات افراد در یک تیم یا واحد باشند و دایرکتوری Global شامل اطلاعات کل شرکت است.

در صورتی که اطلاعات در روی یک دستگاه و در یک مکان متمرکز قرار گرفته باشد، Centerilized و در صورتی که به صورت توزیع شده و در چند مکان نگهداری شود، Distributred گفته می شود. (به  طور مشخص اطلاعات در حالت دوم بصورت تقسیم شده در چند مکان قرار خواهد شد)

مثال

اطلاعات در یک دایرکتوری در یک ساختار مانند درخت (tree) ذخیره می شوند که به آن درخت اطلاعاتی دایرکتوری (Directory Information Tree - DIT)گفته می شود و هر شی ء با یک مشخصه شناخته می شود که به آن نام متمایز (Distinguished Name - DN) گفته می شود. هر نام متمایز (DN) یک عنصر در درخت را، مشخص می کند. هر نام متمایز می تواند از چند نام متمایز مرتبط (Relative Distinguished Name - RDN) تشکیل شده باشد. برای مثال، یک نام متمایز، آورده شده است که نام های متمایز مرتبط آن با کاما از هم جدا شده اند:

cn=thomas,ou=itso,o=ibm

جدول نام های متمایز معتبر(RDN)

String

Attribute type

DC

domainComponent

CN

commonName

OU

organizationalUnitName

O

organizationName

STREET

streetAddress

L

LocalityName

ST

StateOrProvinceName

C

CountryName

UID

Userid

 

نمونه درخت اطلاعاتی دایرکتوری (DIT)

 


 

استفاده از LDAP به صورت عملی

APIای که در LDAP در اختیار شما قرار می گیرد، سازوکاری فراهم می کند تا در یک دایرکتوری (که بطور عام، یک اینترنت دایرکتوری است) کارهای معمول مانند وصل شدن، جستجو و تغییرات را انجام دهید. برخلاف بقیه پادمان های اینترنت، LDAP دارای یک APIمشخص است که نوشتن یک سرویس مرتبط با یک Internet Directory را ساده می کند.

استفاده کردن از یک کارگزار LDAP شامل 4 بخش اصلی است :

  1. ایجاد و شروع یک Session : وقتی یک Session ایجاد می کنید، این Session ، مقادیر پیش فرض را، به خود می گیرد. اطلاعاتی که در این Session نگهداری می شود عبارتند از وضعیت کنونی Session، مدت اتصال، شماره ی نسخه ی در حال استفاده و برخی ملاحظات امنیتی. پس از ایجاد (Initialize) کردن session شما یک handle خواهید داشت که با استفاده از آن می توانید برخی مقادیر پیش فرض را تغییر دهید.
  2. مقداردهی اولیه (اختیاری) : تغییر برخی مقادیر پیش فرض
  3. اتصال به کارگزار (اختیاری)
  4. Bind شدن به کارگزار. در این مرحله کارگزار، کاربر را اعتبارسنجی می کند. در صورت تأیید اعتبار کاربر، در حد اختیارات خود اجازه دسترسی به توابع کارگزار را دارا خواهد بود. اگر شما این کار را انجام ندهید به عنوان کاربر anounymous به کارگزار معرفی خواهید شد و در حد کاربر میهمان به امکانات کارگزار دسترسی خواهید داشت.

Active Directory به عنوان یکی از مهمترین بخش های از ویندوز بر پایه LDAP پیاده سازی شده است. Active Directory به دغدغه های کاربران برای پیدا کردن منابع و سرویس ها پایان داد و بی تردید می توان آن را مهمترین خصوصیت افزوده شده به ویندوزهای سری 2000دانست.

+ نوشته شده در  شنبه 1388/01/15ساعت   توسط سعید  | 

برجسته کردن برنامه هاي جديد در منوي START

در ويندوز XP معمولا برنامه هاي جديدي که نصب مي شوند به صورت HighLight برجسته مي شوند و بدين طريق دسترسي سريع به آن را براي کاربر بسيار آسان مي سازد اما براي کنترل اين که چه برنامه اي بايد برجسته شود و کدام برنامه برجسته نشود مي توانيد با يک ترفند ساده روي رجيستري بخوبي اين کار را انجام دهيد. ابتدا رجيستري ويندوز را بالا بياوريد (با تايپ Regedit در منوي Run روي start ). حالا روي کندوي بزرگ HKEY-CURRENT-USER کليک کرده تا شاخه Software را ببينيد. سپس زيرشاخه Microsoft را درون آن خواهيد ديد که با زدن روي آن زيرشاخه Windows را پيدا مي کنيد که اگر روي آن نيز کليک کنيد زيرشاخه Currentversion قابل مشاهده است. داخل اين زيرشاخه نيز زيرشاخه Explorer را مي بينيد که با زدن روي آن شاخه مورد ظر يعني Advanced ديده مي شود. حالا مرحله بعد و ساخت يک پوشه جديد داخل زيرشاخه Advanced را شروع کنيد. براي اين کار بايد يک پوشه در فرمت Dword بسازيد. سمت راست موس را بزنيد و New و Dword را برگزينيد. نام پوشه جديد را
Start-Notify New Apps بگذاريد ( S و N و N و A با حرف بزرگ تايپ شود). براي برجسته شدن برنامه هاي جديد از عدد صفر و براي برجسته نشدن از عدد يک استفاده کنيد و داخل Value data آن عدد مورد نظر را بنويسيد. يک بار سيستم را خاموش و روشن کنيد تا تغييرات Ok شود

+ نوشته شده در  شنبه 1388/01/15ساعت   توسط سعید  | 

اینم یه راه برای افزایش سرعت اینترنت

خب اين هم يه مقاله در مورد افزايش سرعت اينترنت در ويندوز XP Pro كه فكر كنم مفيد باشه.
در ويندوز XP در حالت پيش فرض Packet Scheduler سيستم را به 20 درصد از پهناي باند يك اتصال به اينترنت
محدود مي كند. يعني اگر شما اين تنظيمات را تغيير ندهيد تنها قادريد از 20 درصد از پهناي باند اتصالتان به اينترنت بهره ببريد. براي اين كه بتوانيد از 100 درصد پهناي باندتان استفاده كنيد مراحل زير را انجام دهيد:

1- Run را از منوي Start اجرا كنيد.
2- در Run عبارت gpedit.msc را تايپ كرده و OK را كليك كنيد.
3- منتظر بمانيد تا Group Policy اجرا شود.
4- در بخش Local Computer Policy و در زير Computer Configuration گزينه Administrative Templates را
گسترش دهيد (اين كار را با كليك بر روي علامت + كار آن انجام دهيد)
5- در ليست باز شده گزينه Network را نيز گسترش دهيد.
6- حال در اين ليست QoS Packet Scheduler را انتخاب كنيد.
7- به گزينه هايي كه در سمت راست ظاهر مي شوند دقت كنيد.
8- بر روي Limit reservable bandwith كليك راست كرده و Properties را كليك كنيد.
9- پس از اينكه پنجره Limit reservable bandwith Properties باز شد در برگه Setting و در زير Limit reservable
bandwith گزينه Enabled را انتخاب كنيد .
10- مشاهده مي كنيد كه با انتخاب آن در روبروي Bandwidth Limit مقدار پيش فرض آن يعني 20 درصد به نمايش
در مي آيد.
11- به جاي عدد 20 مقدار 0 را تايپ كرده و OK را كليك كنيد.
12- حال به Connection ي كه بوسيله آن به اينترنت وصل مي شويد رفته و بر روي دكه Properties كليك كنيد.
13- به برگه Networking برويد و دقت كنيد كه QoS Packet Scheduler فعال باشد (تيك كنار آن مشاهده شود)
14- اين پنجره را OK كنيد.
15- كامپيوتر خود را Restart كنيد

+ نوشته شده در  شنبه 1388/01/15ساعت   توسط سعید  | 

نجات ويندوز xp

سلام اگه ويندوز xp تون خراب شده وكار نمي كنه ويندوزتونو عوض نكنيد كامپيوترتونو ريستارت كنين حالا وقتي صفحه انتخاب ويندوز اومد F8 را زده و از ميان گزينه هاي موجود Last Know Good ….. را انتخاب كنين وقتي ويندوز بالا اومد به منوي استارت برين ومسير زير را دنبال كنين:

Accessories/System Tools/System Restore/ All Programs

حالاوارد System Restore شده ايد restore my computer to an earlier time رو تيك دار كنين و Next بزنيد و زمان مورد نظرتون براي برگشت ويندوز به آن زمان را از تقويم انتخاب كنين ونكست روبزنين به همين راحتي.

با اين کار هنگام ورود به ويندوز xp يک عکس دلخواه برای مدت کوتاهی نمايش داده می شود وارد مسير زير شويد

Start=>run=>regedit=>Hkey_users=>.Default=>control panel=>Desktop

در اينجا دستوراتی زيادی می بينيد يک دستور به نام Wallpaper وجود دارد که مقدار اون (none) است شما بايد مقدار اونو به مسير عکس مورد نظر تغيير بدين مثلا f:\navid.bmp سيستم را restart کنيد و نتيجه را ببينيد اگه دوست نداشتيد دوباره اين مسير را برگرديد و مقدار wallpaper را (none) کنيد. نوع عکس شما بايد bmp باشد

ویندوز XP به طور پیش فرض و برای استفاده یکسان کاربران مختلف مقداری از زیبایی های ویندوز خود را کاسته است. یکی از این موارد کیفیت آیکونهاست. در صورتی که میخواهید آيكون‌هاي موجود در ويندوز و برنامه‌هاي مختلف را با كيفيت تصويري بالا و به همراه جزئيات مشاهده كنيد ؛ اين ترفند شما را قادر مي‌سازد تا به وسیله رجیستری ویندوز وضیعت مد Hight-Color را در بهترين شرايط ممكن قرار دهيد. با استفاده از اين ترفند تمامي آيكن‌ها با Resolution بالا و به صورت درخشان نمايش داده خواهند شد.

بدین منظور:
از منوی Start به Run بروید و در محیط Run عبارت regedit را تایپ کنید تا رجیستری باز شود.
سپس به آدرس HKEY_CURRENT_USER / Control Panel / Desktop / windowMetrics بروید.
از قسمت دیگر ، مقدار Shell Icon Bpp را بيابيد. (اگر چنين كليدي را نداشتيد يك مقدار جديد از نوع String باهمين نام ايجاد كرده) و آن را برابر با مقدار رنگ پشتيباني شده توسط كارت گرافيكي قرار دهيد. مثلا در كارت گرافيكهاي 128 رجستري يه طور خود كار آن را برابر 16 قرار مي دهد حال شما با تغيير دادن اين عدد به 32 بهترين حالت ممكن را به دست خواهيد اورد. همچنين در همين مسير با يافتن مقدار Shell Icon Size مي توانيد سايز ايكون ها را به مقدار دلخواه تغيير دهيد كه در حالت معمولي برابر 32 مي باشد .
دقت کنید که با این عمل مقدار کمی از سرعت ویندوز شما کاسته خواهد شد.

+ نوشته شده در  شنبه 1388/01/15ساعت   توسط سعید  | 

بالا بردن سرعت بوت

بالا بردن سرعت بوت ( روش اول )
این ترفند کارش این است که یك دسته فایل را از پوشه temp پاک می کند و history هر زمان که شما کامپیوترتان را خاموش می کنید. با این کار کامپیوتر شما وقت بیهوده ای را برای چک کردن این پوشه ها تلف نمی کند. با این کار سرعت بالا آمدن ویندوز افزایش می آید.
برای انجام این کار مراحل زیر را طی کنید :
1- Notepad را باز کنید و سه جمله زیر را در آن بنویسید :
RD /S /q "C:/Documents and Settings/"UserName without quotes"/Local Settings/History"
"RD /S /q "C:/Documents and Settings/Default User/Local Settings/History
"RD /S /q "D:/Temp/" <--"Deletes temp folder, type in the location of your temp folder
2- حالا این فایل را با هر نامی که می خواهید ذخیره کنید ، البته با پسوند " .bat " برای مثال " fastboot.bat " یا " deltemp.bat "
3- از منوی Start گزینه Run را انتخاب کنید .
4- در Run بنویسید : " gpedit.msc " و روی ok کلیک کنید .
5- از پنجره باز شده در سمت چپ روی گزینه " Computer Configuration " کلیک کنید و سپس " Windows Settings " را انتخاب کنید .
6- بر روی گزینه " Scripts " دو بار کلیک کنید سپس " Shutdown " را انتخاب کنید تا پنجره ای جدید باز شود.
7- روی " Add " کلیک کنید و در پنجره باز شده آدرس فایلی که درست کرده اید را بدهید و سپس روی " ok " کلیک کنید.

بالا بردن سرعت بوت ( روش دوم )
وقتی کامپیوترتان را روشن می کنيد معمولا قبل از اینکه سیستم بخواهد بالا بیاید درایور های فلاپی و سی دی رام و ... را چک می کند ! به نظر من این یه کار بیهوده است که هر بار سیستم این موارد را چک کند . حالا برای از بین بردن این قسمت باید تغییراتی را در بایوس سیستمتان انجام دهید . مراحل زیر را به دقت انجام دهید:
1- معمولا برای ورود به bios باید کلید F2 یا Delete را فشار داد ، زمانی که کامپیوتر در حال بالا آمدن است.
2- به منوی " Boot " بروید .
3- " Boot Sequence " را انتخاب کنید .
4- سپس هر دو گزینه ای که از روی هارد بوت می شوند را به گزینه " First Device " تغییر دهید .
5- دکمه " Escape " را فشار دهید و از بایوس خارج شوید . فراموش نکنید که این تغییرات را قبل از خارج شدن ذخیره کنید .
توجه : وقتی که شما این تغییرات را انجام می دهید ، نمی توانید سیستمتان را از طریق فلاپی یا سی دی رام بوت کنید . اگر روزی لازم شد که این کار را انجام دهید ، کافیست برگردید به عقب ، يعني به بایوس خود بروید ، مرحله بالا را تکرار کنید و گزینه "First Device " را برای فلاپی و سی دی رام بردارید .

همون طور که میدونید برای عوض کردن پسورد در ویندوز XP می بایست پسورد قبلی را تایپ کرد و سپس می توان پسورد جدید را جایگزین کرد. شما می توانید با استفاد از این ترفند بدون نیاز به دانستن پسورد قبلی ، پسورد جدیدی را بر روی سیستم قرار دهید.

از منوی استارت گزینه ی run رو بزنید بعد از اون control userpasswords2 رو تایپ کنید از منویی که باز میشه اسم username ها رو نوشته روی هرکدوم که کلیک کنید اون پایین یه گزینه داره به اسمه reset password اونو که بزنید دوبار پسورد دلخواهتونو تایپ کنید بدون تایپ کردن پسورد قبلی پسورد عوض میشه.
درضمن اینم بدونید که نمیشه پسورده username ی که باهاش on هستید عوض کنید فقط میشه user های دیگه رو دستکاری کرد البته برای عوض کردن پسورد یوزری که داخلشید میشه پسورد ادمین رو عوض کرد بعدش رفت تو ادمین و اونجا پسورد اون یکی یوزرو عوض کرد.

ويندوز XP پس از نصب استاندارد، فضايي بيش از 1/5 گيگا بايت از هارد را اشغال مي كند. شما با چند تغيير مي توانيد چند صد مگابايت را به راحتي از ظرفيت درايو آزاد كنيد. یکی از این روش ها غیرفعال کردن حالت Stand by است ؛ در صورتی که به Stand by موجو در ویندوز احتیاجی ندارید و هارد شما پر شده است می توانید از این ترفند برای غیرفعال کردن Stand by استفاده کنید.

اين عملكرد در ويندوز XP ، فايل hiberfil.sys در فهرست اصلي را در پارتيشن سيستم قرار مي دهد.
اين موضوع باعث مي شود كه پس از نصب سيستم، حجمي معادل چند صد مگا بايت از ظرفيت هارد اشغال شود.
برای انجام این عمل:
به این آدرس بروید: Start>Settings>Control Panel>Power Options>System Standby
و بعد تيك جلوي Standby activate را برداريد.

يكی از ويژگی های dilaup در xp نشان ندادن پسورد است يعنی وقتی شما روی آيكون يك dialup كليك میكنيد فقط username ديده میشود. با استفاده از این ترفند می توانید پسورد خود را هم مشاهده کنید.


در Run تایپ کنید regedit تا رجیستری باز شود.
به این آدرس بروید:
HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services / RasMan / Parameters Modify
در اينجا يك DWORD با اسم DisableSavePassword بسازيد.
مقدار 0 در اين DWORD برای SAVE كردن و مقدار 1 برای SAVE نشدن پسورد است

+ نوشته شده در  شنبه 1388/01/15ساعت   توسط سعید  | 

راه های برای افزایش سرعت ویندوزxp

1.برای با لا بردن سرعت کامپیوتر ابتدا وارد my computer بشوید بعد راست کلیک کنید و گزینه یpropertiesرا انتخاب کنید

در تب advancet در قسمتperformance روی گزینه ی settingsوvisual effects کلیک کنید در ان جا با غیر فعال کردن افکن ها یی که به انها احتیاج ندارید سرعت کامپیوتر را بالا ببرید

2.اگر برنامه های زیادی روی ویندوز نسب شده باشند سرعت کامپیوتر را پایین می اورند من به شما توصیه می کنم که برنامه هایی را که با انها کار نمی کنید وبه انها نیاز ندارید پاک کنید چندین عوامل دیگر در پایین امدن سرعت ویندوز نقش دارند مانند بعضی از بازی ها فارسی سازها

انتی ویروسها مهمتر از این ها یک چیز بیشتر بر سرعت کامپیوتر اثر دارند اینترنت است که بیشترین سرعت کامپیوتر را اینترنت پایین می اورد

من به شما توصیه می کنم که اگر زیاد با اینترنت سروکار دارید از دو ویندوز xp استفاده کنید یکی فقت برای اینترنت ودیگری برای کارهای دیگرتان

3.اگر بر روی دسکتاب خود ایکونهای زیادی دارید سعی کنید انهای که لازم دارید بگذارید و بقیه را در استارت منو بگذارید تا زیادی ایکن باعث پایین امدن سرعت نشود

برای بدست آودن عملکرد بهتراز کامپیوتری که حداقل دارای 32 مگابایت حافظه RAM است می توان آن را بهینه کرد تا هم کامپیوتر دستورات را به راحتی انجام دهد و هم سرعت و کارایی سیستم بالا رود. اکنون قصد داریم ترفندی را به شما معرفی کنیم که میتوانید این کارها را انجام دهید و به نوعی حافظه سیستم خود را مدیریت کنید.

بدین منظور:
1- بر روی My Computer راست کلیک کنید و به Properties بروید.
2- به قسمت Proformance رفته ودکمه File System رابزنید (در ویندوز XP باید به تب Advance رفته و در قسمت Proformance دکمه Settings را بزنید).
3- در قسمت Hard Disc ودر ناحیه Setting از لیست کشویی گزینه Network Server را انتخاب کنید (در ویندوز XP از پنجره Proformance Options گزینه Adjust for best performance را انتخاب کنید).
بدین ترتیب به شکلی بهینه تر ار حافظه استفاده می کنید وسرعت سیستم شما بالا تر میرود.

با استفاده از یکی از قابلیت های ویندوز XP میتوانید برنامه های نصب شده بر روی سیستم خود را به شکل سریع تر اجرا کنید. به عنوان مثال در نرم افزارهایی مثل Photoshop و Corel Draw گه باز شدن آنها مقداری طول میکشد میتوانید این برنامه ها را سریع تر باز کنید.

برای این کار:
بر روی Shotcut برنامه مورد نظر راست کلیک کنید ، سپس Properties را برگزینید.
سپس به تب Shortcut بروید.
اکنون در قسمت Target به پایان آدرس فایل بروید.
سپس بعد از علامت " پایانی یک Space بزنید و دستور prefetch:1/ را تایپ کنید.
در پایان OK را زده و خارج شوید.

 

+ نوشته شده در  شنبه 1388/01/15ساعت   توسط سعید  | 

راه جالب جهت نفوذ به XP بدون رمز عبور

یکي از مشکلات ويندوز xp راه نفوذ به آن در صورت فراموش کردن password مي باشد .همانطور که همه شما مي دانيد xp امکان جالب switch user را دارد که مي توان محيط را براي کار user هاي مختلف فراهم کرد .حالا اگر شما اين password را فراموش کنيد چاره چيست؟. در اين حالت چند راه نفوذ هست

و آن اين است که در هنگام ظاهر شدن منوي کاربران در ابتدا ، دو بار کليدهايALT+CTRL+ DELETE را فشار دهيد سپس در قسمت نام کلمه administrator را تايپ کرده و قسمت password را خالي بگذاريد و Ok را بزنيد در اين حال وارد سيستم مي شويد.

حال اگر در هنگام نصب ويندوز Xp برايAdmin پسورد گذاشته باشند چه كار كنيم؟
براي اين كار قبل يا هنگام بالا آمدن ويندوز كليد F8 را زده سپس بسته به نوع نياز خود بكي از گزينه هاي Safe Mode را انتخاب كنيد.

بعد از وارد شدن به ويندوز در منو Start كليك كنيد سپس گزينه RUN را انتخاب كرده ودر جاي خالي عبارت Control userpasswords2 را تايپ كنيد.
پنجره باز شده داراي 2 TAB به نام هايUsers & Advanced مي باشد.
TAB Users را انتخاب كرده و تيك گزينه:User must enter a username and password to use this computer را برداريد.

با برداشتن تيك اين گزينه ديگر هنگام ورود به ويندوز از شما پسورد گرفته نمي شود.

حالا با استفاده از گزينه Add مي توان نام كاربري را به آن اضافه و با استفاده از گزينه Remove مي توان نام كاربري را حذف كرد همچنين با استفاده از گزينه Properties مي توان ميزان دسترسي كاربران به ويندوز را تعيين كرد

+ نوشته شده در  شنبه 1388/01/15ساعت   توسط سعید  | 

RFID ﭼﻪ ھﺴﺖ و ﭼﻪ ﻧﯿﺴﺖ؟!

سرعت پيشرفت فناوري هر روز بيش‌تر از روز قبل مي‌شود و اين سرعت، گاهي چنان است که ما نيز از آن عقب مي‌مانيم و هنوز با کاربري فناوري جديدي خوب آشنا نشده‌ايم که با فناوري جديدتري روبه‌رو مي‌شويم.

سرعت پيشرفت فناوري هر روز بيش‌تر از روز قبل مي‌شود و اين سرعت، گاهي چنان است که ما نيز از آن عقب مي‌مانيم و هنوز با کاربري فناوري جديدي خوب آشنا نشده‌ايم که با فناوري جديدتري روبه‌رو مي‌شويم. در عصر سرعت، انسان به محصولات و فناوري‌هايي نياز دارد که او را در انجام کارهايش با دقت و سرعت و بهره‌وري بيش‌تري ياري کنند و يکي از آنها RFID است.
RFID از فناوري‌هايي است که سال‌هاست بشر آن را به خدمت گرفته، اما توجه چنداني به آن نداشته است و در واقع چيز چندان جديدي نيست. براي توضيح عملکرد آن مي‌توانيد فروشگاه بزرگي را در نظر بگيريد که با هزاران نوع کالاي مختلف سروکار دارد و به راحتي مي‌تواند ورود و خروج اجناس خود را تنها با نصب يک تراشه کوچک و ساده روي آنها کنترل کند.
امروزه با سيستم‌هاي شناسايي و جمع‌آوري اطلاعات مختلفي سروکار داريم و البته ممکن است با قضاياي پشت پرده برخي از آنها چندان آشنا نباشيم؛ فناوري‌هايي همچون OMR (Optical Mark Reader) که يکي از موارد کاربري آن تصحيح برگه‌هاي امتحانات ۴ جوابي کنکور است، OCR (Optical Character Recognition) که کار آن تشخيص هوشمند دست‌نوشته‌ها است و در سال‌هاي اخير در ثبت‌نام آزمون ورودي رشته‌هاي تحصيلي مقاطع عالي به کار گرفته مي‌شود، کارت‌هاي هوشمند، بارکد، سيستم‌هاي شناسايي اشخاص از طريق صوت، اسکن مردمک چشم و بعضي از فناوري‌هاي بيومتريک ديگر، همه و همه ابزارهايي هستند که به بشر در کار شناسايي و جمع‌آوري اطلاعات کمک مي‌کنند. RFID نيز يکي از همين موارد است. 
. RFIDچيست؟
RFID مخفف عبارت Radio Frequency Identification و به مفهوم «شناسايي از طريق فرکانس راديويي» است. از اين فناوري در شناسايي خودکار کالاها، حيوانات، انسان‌ها و غيره استفاده مي‌شود. شيوه به‌کارگيري آن نيز به زبان ساده نصب تراشه‌اي کوچک روي اين اشياست که فرکانس راديويي اختصاصي خود را دارند و تنها با دريافت اين فرکانس توسط دستگاه گيرنده و تطبيق آن در بانک اطلاعاتي شي شناسايي شده و يا شي مورد نظر رديابي مي‌شود.
RFID را مي‌توان نسل تکامل يافته بارکد دانست، زيرا از بارکد نيز براي همين نوع شناسايي استفاده مي‌شود و البته اين فناوري هنوز نيز مورد استفاده قرار مي‌گيرد. بارکد رديفي متشکل از ۱۲ خط عمودي به ظاهر نازک و کلفت است که معرف عددي ۱۲ رقمي بوده و در سراسر جهان به‌طور انحصاري نمايانگر کالايي خاص است. بارکد توسط دستگاه اسکنر بارکد خوانده شده و بدين ترتيب نوع کالا توسط سيستم بدون نياز به انسان شناسايي مي‌شود. اين فرايند از خطاهاي ورود دستي اطلاعات توسط کاربر نيز مي‌کاهد. اما بارکد کاستي‌هايي نيز دارد. به‌طور مثال، در سيستم بارکد فقط کد شناسايي وارد مي‌شود و اطلاعات ديگري راجع به کالا نمي‌توان در آن جاي داد. از ديگر موارد ضعف بارکد اين که اسکنر فقط زماني قادر به خواندن صحيح آن است که دقيقا در ديد مستقيم اسکنر قرار گرفته باشد و اگر شما بخواهيد آمار کالاهاي زيادي را مثلا در يک انبار يا فروشگاهي بزرگ ثبت کنيد، حتما بايد تک تک کالاها را روبه‌روي اسکنر بگيريد تا کد آنها اسکن شود که کاري است بس دشوار، خسته کننده و زمان‌بر.
در RFID از تراشه‌اي به نامTAG يا همان برچسب استفاده مي‌شود، اين قطعه در واقع يک فرستنده راديويي است که از يک ميکروچيپ، يک آنتن و يک برد الکترونيکي تشکيل شده است. در اين TAG مي‌توان اطلاعاتي راجع به کالا، حيوان يا انساني که TAG روي آن نصب مي‌شود، قرار داد. اين اطلاعات مي‌تواند، اطلاعاتي ساده مثل اسم و آدرس صاحب يک حيوان و يا اطلاعات پيچيده‌اي نظير چگونگي مونتاژ يک خودرو باشد. اين اطلاعات از طريق امواج راديويي منتشر و توسط آنتن گيرنده RFID دريافت و وارد سيستم مي‌شود. حال اگر در همان فروشگاه بزرگ تعداد زيادي کالا خريداري کرده باشيد، با نزديک شدن سبد کالا به صندوق که محل نصب آنتن گيرنده RFID است، تمام کالاهاي خريداري شده به‌طور خودکار توسط صندوق شناسايي مي‌شود و با رسيدن شما به صندوق، فاکتور کالاها نيز آماده جهت پرداخت است. با اين کار ضمن صرفه‌جويي در زمان، از ازدحام در محل صندوق فروشگاه‌ها نيز جلوگيري مي‌شود. همه اينها دست به دست هم داده و کم‌کم واژه احترام به مشتري را از حالت حرف به اجرا نزديک مي‌کند.
البته اين نمونه‌اي ساده از خدمات اين فناوري بود که فقط براي روشن شدن قضيه گفته شد. هم‌اکنون پاسگاه‌هاي مرزهاي زميني آمريکا به اين فناوري مجهز شده‌اند و کارت شناسايي جديد شهروندان آمريکايي نيز به‌طور متقابل مجهز به RFID شده‌ و ساده‌ترين تصوري که از اين تعامل مي‌توان داشت، اين است که با نزديک شدن شهروندان به مرز هنگام خروج يا ورود به کشور، کليه کار شناسايي و انجام امور گمرکي آنها نيز انجام شده و اين فرد بدون هيچ توقفي به راحتي از مرز عبور مي‌کند، البته اگر ورود يا خروج وي از نظر دولت مانعي نداشته باشد!
در حالتي ديگر مي‌توان شرکتي بزرگ را در نظر گرفت که کليه کارکنان آن به RFID مجهز بوده و ضمن انجام خودکار ورود و خروج اشخاص، محل دقيق اين افراد نيز در طبقات و واحدهاي مختلف به‌سرعت و به‌راحتي قابل شناسايي است. شيوه کار نيز بدين ترتيب است که با نصب آنتن‌هاي گيرنده RFID در نقاط مختلف شرکت، به راحتي با يک جست‌وجوي ساده مي‌توان از روي آنتن دريافت‌کننده امواج شخص، محل وي را نيز تشخيص داد. همين کار را نيز مي‌توان براي شناسايي و کنترل ورود و خروج وسايط نقليه شرکت انجام داد.
کنترل ترافيک شهرهاي بزرگ، کنترل ورود و خروج خودروها در پارکينگ‌ها و بزرگراه‌ها، کنترل موجودي انبارهاي بزرگ، استفاده در قفل ضد سرقت خودروها و ...،‌ همه و همه تنها مي‌تواند مواردي از هزاران مورد کاربري RFID باشد.
کيفيت کارايي و نحوه عملکرد RFID به عوامل مختلفي از قبيل کيفيت ساخت، نوع پروتکل به کار گرفته شده، طراحي نوع آنتن، کيفيت واحد بسته‌بندي کالا (در صورت استفاده از RFID براي شناسايي آن کالا) وابسته است.
? تاريخچه RFID
تصور بسياري از افراد اين است که RFID يک فناوري نوظهور و نوپا است. علت اين تصور نادرست اين است که فناوري RFID به تازگي توسعه داده شده است. RFID از دهه ?? ميلادي وجود تجاري داشته اما به دليل هزينه بالايش در پياده‌سازي تاکنون گسترش چنداني پيدا نکرده است. اکنون با پيشرفت فناوري در زمينه سيستم‌هاي اطلاعاتي، ظهور ريزپردازنده‌هاي قدرتمند و نسبتا ارزان و ... مي‌توان با هزينه‌هاي کم‌تري RFID را پياده‌سازي کرد و چون دنياي تجاري امروزي نياز حياتي‌تري نيز به اين‌گونه سيستم‌ها دارد، مي‌توان آن را راحت‌تر در حوزه تجارت گسترش داد.
اگر به مفهوم RFID دقت کنيم، مي‌توان ادعا کرد که از زمان جنگ جهاني دوم اين فناوري حضور داشته است. سيستم مشابهي در آن زمان براي شناسايي هواپيماهاي خودي و تفکيک آنها از هواپيماهاي دشمن توسط انگليسي‌ها ساخته شده بود که IFF نام داشت. IFF اختصار عبارت Identify Friend or Foe به مفهوم تشخيص دوست از دشمن است و مکانيزم آن نيز شبيه RFID است.
در سال ۱۹۴۵ ميلادي نيز فردي به نام لئون ترمين دستگاهي جاسوسي اختراع کرد که فناوري آن مشابهRFID است.
و در نهايت اينکه RFID شکل امروزي توسط مخترعي به نام ماريو کاردلو ساخته شد که به علت گراني بسيارش تا سال ۱۹۷۰ استفاده‌اي از آن در تجارت نشد.
اساس شکل‌گيري RFID به کشف انرژي الکترومغناطيس توسط فارادي در سال ۱۹۴۶ برمي‌گردد. راداري که در سال ۱۹۳۵ ساخته شد نيز مي‌تواند يک RFID مقدماتي باشد. کاربرد RFID براي شناسايي حيوانات نيز در سال ۱۹۷۹ آغاز شد. در حدود سال ۱۹۸۷ نيز کار جمع‌آوري عوارض خودروهاي ايالات متحده توسط اين فناوري آغاز شد و از سال ۱۹۹۴ به بعد نيز کل خودروهاي اين کشور با استفاده از فناوري RFID شناسايي مي‌شود. بيش‌ترين استفاده از RFID از سال ۲۰۰۰ به بعد انجام شده است، مثلا در سال ۲۰۰۳ شناسايي کانتينرها در جنگ آمريکا و متحدان عليه عراق به کمک RFID انجام مي‌شد.
اکنون نيز در سيستم زنجيره تامين محصولات تجاري شرکت‌هاي پيشرفته، از مرحله قبل از توليد کالا تا تحويل آن به مشتري از RFID استفاده مي‌شود.
و سخن پاياني اين‌که اشاره‌اي تيتروار داشته باشيم به مزاياي استفاده از RFID: 
. بي‌نيازي قطعه Tag به قرار گرفتن در معرض ديد مستقيم گيرنده (امتيازي عمده در مقايسه با بارکد). 
. نداشتن استهلاک و فرسودگي به دليل بي‌نيازي از تماس مستقيم. 
. توانايي عبور سيگنال‌هاي راديويي از ميان مواد غير فلزي، هواي باراني و مه‌آلود و برفي و حتي محيط‌هاي کثيف و سطوح رنگ شده. 
. توانايي قرائت هزاران Tag در ثانيه توسط دستگاه کدخوان RFID .

+ نوشته شده در  جمعه 1388/01/14ساعت   توسط سعید  | 

ﭼﺸﻢ اﻟﮑﺘﺮوﻧﯿﮏ ﺑﻪ ﺟﺎی ﭼﺸﻢ ﺷﻤﺎ

اين بار مي‌خواهيم از چشم ديگري به امنيت بنگريم، چشمي که متعلق به ما نيست ولي براي ما کار مي‌کند خيلي دقيق‌تر از آنچه در تصور شماست. معمولا گفته مي‌شود عقاب چشمان تيزبيني دارد، چشم موردنظر نيز به همان اندازه تيزبين و دقيق است.

اين بار مي‌خواهيم از چشم ديگري به امنيت بنگريم، چشمي که متعلق به ما نيست ولي براي ما کار مي‌کند خيلي دقيق‌تر از آنچه در تصور شماست. معمولا گفته مي‌شود عقاب چشمان تيزبيني دارد، چشم موردنظر نيز به همان اندازه تيزبين و دقيق است. صحبت از يک چشم الکترونيکي است، چشمي که در سر شما نيست اما کار چشمان سر شما را انجام مي‌دهد. ممکن است با خود فکر کنيد چشمان شما تصاوير را به مغز منعکس مي‌کند و باعث ديدن تصاوير و بخاطر سپاري آنها در حافظه مي‌شود، آيا اين چشم الکترونيکي هم عمليات ذخيره‌سازي را انجام مي‌دهد؟
سئوال بجايي پرسيديد. در جواب بايد گفت بله!! اين چشم نيز عمليات ذخيره‌سازي را انجام مي‌دهد، بهتر از چشم روي صورتتان. ممکن است شما چيزي را ببينيد و بعد از مدتي آن را فراموش کنيد، اما اين چشم الکترونيکي هيچ چيز را فراموش نمي‌کند و تا آنجايي که مغزش فضاي خالي داشته باشد وقايع را ذخيره مي‌کند، در صورت لزوم شما مي‌توانيد وقايع ذخيره شده در حافظه چشم الکترونيکي را بارها مرور کنيد. ديگر نيازي به توضيح بيشتر نيست اما مي‌توانيم با انواع آنها آشنا شويم.
? انواع چشم الکترونيکي
امروزه در مراکز صنعتي، اداري و تجاري جهت نظارت بر محيط فيزيکي و نظارت بر کارکنان در جـهت کنترل و مديـريت بهـتر و کارآمـد‌تر بـه وفـور از سيستم‌هاي تـلويزيوني مـداربسته Closed Circuit TV يا همان CCTV و CCVE (تجهيزات ويدئويي مداربسته) استفاده مي‌شود. اشتباه نشود اين قبيل محصولات الکترونيکي صرفا جهت کنترل و نظارت بر کار کارکنان ساخته نشده‌اند. در اماکن عمومي مانند بانک‌ها، ادارات، دانشگاه‌ها، کارخانجات، فروشگاه‌هاي بزرگ و فروشگاه‌هاي فروش اجناس گران‌قيمت مانند طلا فروشي‌ها، در سوپرمارکت‌هاي بزرگ و در کنترل ترافيک خيابان‌ها و چهارراه‌ها اين سيستم‌ها را مي‌توان نصب و مورد استفاده قرار داد و استفاده از آنها به حفظ امنيت منطقه تحت پوشش نيز کمک خواهد کرد. جهت تکميل بحث حفظ امنيت لازم است به مسئله‌اي اشاره کنم، اين مسئله ريشه در فرهنگ غلط بعضي از ما ايرانيان دارد. بسياري از ما تصور مي‌کنيم که وقتي پليس را مي‌بينيم بايد از او فاصله بگيريم، «واي خاک برسرم گمان کنم از کنار پليس رد شدم همسايه بالايي مرا ديد، حالا او فکر مي‌کند که من خلافي مرتکب شده‌ام و پليس به سراغ من آمده بوده» و ... .
اينگونه تفکرات به نظر من غلط است. پليس در همه حال حافظ جان و مال و آبروي هموطنانش است، پس از او فرار نکنيم و گمان مبريد کنترل يعني محدود کردن، بلکه حفاظت کردن است، اگر در اتوبان موفق به لايي کشيدن شديد خوشحال نشويد و نگوييد که «اي بابا راهنمايي و رانندگي هم دوربين گذاشته تا جيبش را پر کند»، دوربين داخل اتوبان جهت حفظ جان و مال شماست از پيچاندن آن ممکن است پولي در جيب راهنمايي و رانندگي نرود اما ممکن است خساراتي جبران‌ناپذير به ما وارد شود.
? اصول کار سيستم‌هاي CCTV
اصول کار سيستم‌هاي CCTV به اين صورت است که ابتدا تصاوير توسط دوربين‌هاي مداربسته دريافت شده و براي نمايش و پخش به مانيتور يا تلويزيون انتقال داده مي‌شود. همچنين براي ضبط و يا تغيير نحوه نمايش روي مانيتور و پخش همزمان تصاوير دوربين‌ها روي مانيتور و کنترل از راه دور دوربين‌ها نيز تجهيزات و امکاناتي وجود دارد. چون تصاوير دريافت شده از اين سيستم‌ها براي بينندگان محدودي مي‌باشد لذا به آنها تلويزيون مداربسته مي‌گويند. بر خلاف تلويزيون عمومي (Broadcast TV ) که جهت پخش تصاوير براي عموم مي‌باشد. با توجه به تنظيماتي که روي دوربين‌ها و ساير تجهيزات مي‌توان انجام داد. اين سيستم‌ها در شرايط جوي متفاوت و در روز و شب نيز کارآيي خوبي دارند.
? دوربين‌هاي رايج در سيستم‌هاي CCTV
? دوربين رنگي و مونوکروم: دوربين‌هاي رنگي قابليت ارسال تصاوير تمام رنگي به مونيتورهاي گيرنده را دارند و از نظر قيمت در مقايسه با دوربين‌هاي مونوکروم بسيار گران‌تر هستند اما ممکن است اين نياز احساس شود که اشيا و امکانات بايد با دقت بالايي مورد مشاهده قرار گيرند. از اين رو دوربين‌هاي رنگي وارد بازار CCTV شدند. دوربين مونوکروم که به نام‌هاي دوربين سياه و سفيد و يا B&W نيز خوانده مي‌شوند نسبت به دوربين رنگي قيمت پايين‌تري دارند، اما از آنجا که براي رويت در مقايسه با دوربين رنگي نياز به روشنايي کمتري دارند در محيط‌هايي که نور کم است و اشياء تيره وجود دارند مي‌توان از اين دوربين‌ها استفاده نمود. به اين نکته بايد توجه کنيد که وضوح تصوير در انواع دوربين‌ها متفاوت است.
عموما دوربيني که در بحث امنيتي مورد استفاده قرار مي‌گيرند داراي وضوح افقي بين ??? تا ??? مي‌باشد، اما بطور کلي وضوح تصوير بستگي به ميزان روشنايي تصاوير است در واقع حداقل چگالي نوري است که از شي مورد نمايش بايد تابيده شود تا دوربين بتواند از آن تصوير مناسبي بگيرد. واحد سنجش روشنايي بر حسب لوکس است و هر لوکس در واقع ميزان روشنايي يک مترمربع از سطحي است که شدت نوري برابر ? لومن بر آن تابيده شود. به صورت تجربي مي‌توان گفت که روشنايي يک لوکس ميزان نوري است که از يک شمع در فاصله يک متري ديده مي‌شود. در پاره‌اي موارد ممکن است منبع نوري پرقدرتي در پس زمينه تصويري که دوربين ارايه مي‌دهد قرار گيرد. تصحيح اين نور در دوربين ممکن است باعث شود تا موضوعاتي که در مقابل اين منبع نوري قرار گرفته‌اند بسيار تاريک و حتي غير قابل تشخيص گردند.
از اين رو فناوري BLC در دوربين مجهز به اين فناوري باعث مي‌گردد تا اشيا مقابل منابع نوري با دقت و وضوح مناسب توليد شوند. مواردي چون زوم ديجيتال و امکان نمايش متن روي تصوير که نشان دهنده محل نصب دوربين امنيتي است و معکوس کردن تصاوير به دست آمده از دوربين از ديگر امکانات دوربين‌هاي CCTV مي‌توان بر شمرد. دوربين‌هاي CCTV در اشکال استوانه‌اي، جعبه‌اي و دام (دوربين نصب شده داخل يک هاوسينگ کروي شکل اصطلاحا Dome ناميده مي‌شود) يافت مي‌شوند و متداول‌ترين آنها نوع دام است چون در يک محفظه گنبدي شکل قرار دارد و دوربين را در مقابل خطرات غيرجدي محافظت مي‌کند.
پديده دوربين‌هاي CCTV حداقل به يک دهه گذشته برمي‌گردد ولي به علت رويکرد جوامع به خصوص در حال حاضر ايران به سوي استفاده از سيستم‌هاي امنيتي، بحث آن داغ شده است. از اين رو در شماره‌هاي بعد سعي بر معرفي تکنولوژي‌هاي برتر در دوربين‌هاي امنيتي خواهم داشت.

+ نوشته شده در  جمعه 1388/01/14ساعت   توسط سعید  | 

ﺳﯿﺴﺘﻢ اﻃﻼﻋﺎﺗﯽ اﺗﻮﻣﺎﺳﯿﻮن آﻣﺎری ﭘﺸﺘﯿﺒﺎن ﻣﺪﯾﺮان ﺑﺮای ﺗﺼﻤﯿﻢ ﮔﯿﺮی

سازمان‌ها ديگر با روش‌هاي دستي و سنتي قادر نيستند عملکردها، گزارش‌ها و مجموعه‌اي از فعاليت‌هاي خود را که در قالب داده‌ها، آمار و اطلاعات نمود پيدا مي‌کنند، به اطلاع مردم برسانند يا در سازمان به گردش درآورند.

سازمان‌ها ديگر با روش‌هاي دستي و سنتي قادر نيستند عملکردها، گزارش‌ها و مجموعه‌اي از فعاليت‌هاي خود را که در قالب داده‌ها، آمار و اطلاعات نمود پيدا مي‌کنند، به اطلاع مردم برسانند يا در سازمان به گردش درآورند.
سيستم‌هاي اطلاعات مديريت Management information System به عنوان مکانيزم‌هاي پشتيبان مديران براي تصميم گيري و تصميم‌سازي مي‌توانند نقش موثري در سازمان بر عهده بگيرند. سيستم‌هاي اطلاعاتي بازوهاي موثري در سازمان‌ها هستند که با زير سيستم‌ها، برنامه‌ها و نرم‌افزارهاي مختلف و با کارايي‌هاي متفاوتي، هر کدام به بخشي از نيازهاي اطلاعاتي مديران و سازمان‌ها پاسخ مي‌دهند.
سيستم اطلاعاتي اتوماسيون آماري که از جمله سيستم‌هاي Transaction Processing System TPS يا پردازش رخداد است، مي‌تواند به عنوان سيستم‌هاي تصميم يار در اختيار سازمان‌ها ومديران قرار گيرد تا با کمک آن داده‌ها و آمارهاي توليدي سازمان متبوع خود را در همان محل عمليات ثبت، دسته‌بندي و منتقل کنند تا پس از آن توسط حوزه فرماندهي يا ستادي سازمان مورد پردازش و تحليل قرار گرفته و سپس در اختيار کاربران دورن و برون سازمان قرار گيرد.
يکي از اهداف اصلي هر نظام آماري در سازمان‌ها، سامان‌دهي و نظم بخشي به فعاليت‌هاي آماري و اطلاعاتي است. براي جلوگيري از نقص‌هايي که ممکن است در جريان توليد آمار و اطلاعات در هر سازماني به وجود آيد، اتوماسيون نظام آماري راهکار مناسبي است. اين ايرادها بيش‌تر به نبود دقت و بهنگام بودن آمار بر مي‌گردد. دست کاري مديران، اتلاف وقت و هزينه‌هاي زياد، احتمال خطا به علت دستي بودن و انتقال داده‌ها از محل توليد تا انتشار و مشخص نبودن افراد پاسخگو در فرايند توليد آمار از ديگر مشکلاتي است که در سازمان‌ها وجود دارد. اتوماسيون نظام آماري به نوعي براي جلوگيري از اين گونه خطاهاست.
? اتوماسيون آماري چيست؟
اتوماسيون نظام آماري در حقيقت مجموعه‌اي از نرم‌افزار‌ها، سخت‌افزارها و شبکه‌هاي ارتباطي تحت وب است که مديريت گردش کار فرايند توليد آمار (طراحي فرم‌ها، جمع‌آوري، دسته‌بندي، طبقه‌بندي و گزارش دهي) يک سازمان را از پايين‌ترين نقطه (مکان توليد) تا بالاترين نقطه (مديريت) به صورت بانک‌هاي اطلاعاتي يکپارچه بر عهده دارد.
فرايند کار در اين سامانه شبيه اتوماسيون اداري است، با اين تفاوت که به طور عموم اتوماسيون داراي محدوده‌اي اينترانتي و تحت شبکه داخلي (LAN) است و در داخل يک ساختمان امکان دسترسي به آن وجود دارد، ولي اتوماسيون آماري به دليل ويژگي توليد آمار در منطقه عملياتي و مديريت آن توسط سطوح مختلف سازمان، فارغ از موقعيت مکاني‌شان تحت شبکه وب است و امکان دسترسي در هر زمان و مکاني خارج از سازمان به آن وجود دارد.
به بياني ديگر اتوسيون نظام آماري يک ابزار و سامانه تصميم يار DSS يا Decision Sopport System در نظام مديريتي محسوب مي‌شود و فرايند سياست‌گذاري، برنامه‌ريزي، تصميم‌سازي و تصميم گيري در خدمت مديريت است. بنابر اين اتوماسيون نظام آماري با طيف وسيعي از آمار و اطلاعات، دقيق، بهنگام و با طبقه‌بندي مطلوب امکان تحقق آن سه وظيفه مهم مديريت ر ا فراهم مي‌کند. با توجه به اهميت آمار در نظام برنامه‌ريزي داشتن اين چنين سامانه‌هايي ديگر يک نياز ساده نيست بلکه يک ضرورت اجتناب ناپذير است.
? مزاياي اتوماسيون نظام آماري در سازمان
پياده‌سازي اتوماسيون آماري در يک سازمان موجب سامان دهي و نظم بخشي به جريان فرايند توليد آمار و اطلاعات مي‌شود و از بروز مشکلات جلوگيري مي‌کند و مي‌توان مزايايي به اين شرح براي آن برشمرد:‌
? بالا رفتن سرعت فرايند توليد، پردازش و انتشار آمار و اطلاعات.
? بالا رفتن دقت و درستي آمار و اطلاعات.
? حذف واسطه‌ها. اين واسطه‌ها ممکن است در جريان توليد آمار و اطلاعات با اعمال سليقه و نفوذ، آمار و اطلاعات را به نفع خود يا به نفع جريان خاصي دست کاري کنند. چون يکي از ويژگي‌هاي اتوماسيون نظام آماري مشخص بودن افراد و ميزان مسووليت‌شان در اين سامانه است، بنابراين واسطه‌ها خود به خود در اين چرخه حذف مي‌شوند.
? مشخص بودن جريان توليد و پاسخگويي افراد مسوول در توليد آمار و اطلاعات.
? بهنگام شدن آمار و اطلاعات سازمان.
? جلوگيري از احتمال خطا و اشکال در فرايند توليد آمار به روش سنتي و دستي.
? ايجاد فضايي چند بُعدي در ارايه گزارش‌هاي مديريتي و امکان گزارش‌هاي تحليلي.
? به دليل دسته‌بندي و طبقه‌بندي آمار و اطلاعات به صورت رايانه‌اي امکان پردازش آسان‌تر مي‌شود.
? کاربران اتوماسيون آماري
يک اتوماسيون نظام آماري مناسب داراي قابليت‌هاي متعددي است. اما براي اين سامانه مخاطبان آن را به سه دسته به اين شرح تقسيم مي‌کنند:
?) مديران و کارکنان درون سازماني: مديران و کارکنان در هر زمان و در هر مکان به گزارش‌هاي مورد نظر خود در قالب جدول‌ها و نمودار‌هاي گرافيکي يا به صورت متن دسترسي دارند.
?) واحدهاي متولي آمار در سازمان‌ها: اين واحدها که در ستاد سازمان‌ها فعاليت مي‌کنند، افزون بر مديريت فرايند توليد آمار مي‌توانند با شناسايي نياز‌هاي آماري جديد نسبت به توسعه اين سامانه و اقلام آماري اقدام کنند.
?) رابطان آماري: گروه يکم رابطان آماري در واقع افرادي هستند که در پايين‌ترين نقطه توليد آمار به ثبت داده‌ها و اقلام آماري در اتوماسيون مي‌پردازند و گروه دوم کارکنان يا مديران واحد‌ها يا بخش‌هاي مياني سازمان‌اند که بر جريان راست آزمايي و درستي داده‌هاي واحد‌هاي پايين دست نظارت مي‌کنند.
?) کاربران برون سازماني: اين گروه در واقع فقط استفاده‌کنندگان اتوماسيون نظام آماري هستند و با سطح دسترسي که براي آنها تعريف شده است، مي‌توانند از آمار و اطلاعات آن استفاده کنند.
اتوماسيون نظام آماري امکان دريافت اطلاعات از طريق قالب استاندارد "زبان نشانه گذاري گسترش پذير" XML را فراهم مي‌کند. با استفاده از اين قابليت، آمار و اطلاعات به‌صورت مکانيزه از سامانه‌هاي عملياتي و نرم‌افزارهاي مختلف سازمان دريافت و در يک بانک متمرکز جهت استفاده و بهره‌برداري کاربران سازمان قرار مي‌گيرد.
? کاربردهاي اتوماسيون نظام آماري در يک سازمان
? مديريت اطلاعات و دانش: اين سامانه امکان نگهداري و ايجاد بانک‌هاي اطلاعاتي سازمان را دارد و از اين طريق مي‌توان با ايجاد مديريت اطلاعات به استخراج نتايج مطلوبي از اطلاعات دست يافت که اطلاعات تشکيل دهنده دانش سازماني و آرشيو اطلاعات مرتبط به دانش منجر مي‌شود.
? امکان تهيه گزارش‌هاي متنوع و متکثر از رابطه بين داده‌ها در سريع‌ترين زمان ممکن
? توليد سالنامه عملکردي: اتوماسيون‌ اين امکان را فراهم مي‌کند که سازمان، با استفاده از جدول‌ها و نمودارهاي گرافيکي، در سريع‌ترين زمان نسبت به ارايه گزارش عملکردي خود اقدام کند.
? مديريت پروژه: اين سامانه امکان کنترل، نظارت و ارزيابي بر عمليات مالي و اجرايي هر پروژه را مي‌دهد.
? امکان مانيتورينگ کردن عملکرد کلان سازمان در هر لحظه و زمان
? کنترل برنامه و بودجه سازمان به منظور مقايسه و کنترل برنامه‌هاي آتي سازمان و مقايسه عملکرد جاري با برنامه و اهداف تعيين شده
? مديريت نظارت و ارزش يابي: سازمان‌ها مي‌توانند با استفاده از امکانات اين سامانه نسبت به دريافت بازخوردهاي عملکردي سازمان و مقايسه وضعيت جاري با شاخص‌هاي مورد انتظار پيش‌بيني شده در برنامه به ارزيابي وضعيت موجود و وضعيت مطلوب بپردازند.
? ايجاد بانک متمرکز اطلاعاتي: چنان چه اين سامانه مناسب و با کيفيت خوبي طراحي و پياده‌سازي شود، مي‌تواند با استخراج اطلاعات از نرم‌افزارهاي پراکنده سازمان و دريافت الکترونيکي اطلاعات از سامانه‌هاي عملياتي جاري سازمان، با تجميع آنها نسبت به توليد گزارش‌هاي يکپارچه مديريتي اقدام کند.

+ نوشته شده در  جمعه 1388/01/14ساعت   توسط سعید  | 

ده ﺑﺎزی ﺑﺮﺗﺮ ﮐﻨﺴﻮل Wii

از ابتدا ي عرضه ي اين کنسول بازي هاي زيادي که از پيش معرفي شده بودند يکي پس از ديگري عرضه شدند و حتي پر سرو صدا ترين آن ها يعني Red Steel شکست خورد .

از ابتدا ي عرضه ي اين کنسول بازي هاي زيادي که از پيش معرفي شده بودند يکي پس از ديگري عرضه شدند و حتي پر سرو صدا ترين آن ها يعني Red Steel شکست خورد . اما در طي ? سال اخير بازي ها لذت بخشي براي اين کنسول عرضه شده اند که جايي غير از wii پيدا نخواهيد کرد. در ادامه به بررسي ?? بازي برتر wii از ابتداي عرضه مي پردازيم که بازي هاي ? سال اخير تا پايان تابستان ???? را در بر ميگيرد .
? Super Mario Galaxy
بازي پلتفرمري موفق که محيط بزرگ و جذابش متشکل از سيارات متعدد و گيم پلي شاد هر کسي را به خود جذب مي کرد ،بازي که نه تنها شخصيت محبوب ماريو از برگ برنده هايش بود بلکه ايده هاي نو تمام اسکلت بازي را تشکيل ميداد . بعد از معرفي بازي در e? ???? کسي سراغي از بازي نگرفت اما با بازگشت ماجراهاي شاهزاده پيچ و بروزر در اول نوامبر ???? ماريو دوباره در اوج قرار گرفت ، به طوري که عنوان بهترين بازي سال wii و همچنين بهترين بازي مستقل از نينتندو (بعد از wii play و wii sports) را از آن خود کرد . بازي به طور سه بعدي در کهکشان بزرگ اتفاق مي افتاد که ماريو با پرش از روي سياره اي به سياره اي ديگر ماموريت هاي بازي را به طور دلخواه به پايان مي رساند و آيتم هايي را نيز جمع آوري مي کرد . مطمئنا يوشياکي کويزومي ايده ي بجايي مطرح کرد ، در بغير اينصورت چه دليلي داشت که ماريو بعد از مدت طويلي دوباره اوج بگيرد و بازي سال شود !
? Super Smash Bros. Brawl
به جرات مي توان گفت که بعد از super Mario galaxy اين smash bros است که برترين بازي wii به شمار مي رود ،بازي در e? ???? توسط sora معرفي شد و در يک تريلر third party نمايش خوبي را پشت سر گذاشت. مهم ترين دليل جذابيت بازي حضور تمام شخصيت هاي پيشين نينتندو و قابل بازي بودن آن ها بود که بخش single player را بسيار جذاب مي کرد . قابليت بازي هاي آنلاين در شبکه ي wi-fi مخصوصا با کنترل شخصيت ها مورد علاقه (مثلا ماريو در برابر زلدا) سرور ها را شلوغ کرده بود ، خلاصه بازي آنقدر جذاب و کامل بود که از نظر تکنيکي وارزش نمره هاي بالاي نود درصد را دريافت کند ،در ضمن نمي توان اين را فراموش کرد که Super Smash Bros. Brawl از روز عرضه در ?? جون ???? تا ?? مارس در سطح جهان ?.? ميليون نسخه فروخت!
? The Legend of Zelda:Twilight Princess
مطمئنا کمتر کسي است که نام زلدا يا شاهکارها ي شيگرو مياموتو به گوشش نخورده باشد ، بازي که با نسخه ي ocarina of time اوج گرفت و با عرضه ي نسخه twilight princess (سيزدهمين نسخه از سري زلدا) باري ديگر نشان داد که يک بازي اکشن ادونچر تا چه حد مي تواند جذاب باشد .بازي قرار بود در نوامبر ???? عرضه شود ، اما مطمئنا بدون وجود کنسول وي عرضه ي بازي امکان پذير نبود بنابراين نينتندو تاريخ عرضه را يک سال عقب انداخت و انتشار جهاني در ?? نوامبر ???? با فروش قابل توجهي مصادف شد.داستان بازي صد ها سال بعد از ماجراهاي ocarina of time اتفاق مي افتد و بازهم لينک شخصيت اول بازي است که بازيباز ها به همراه او در گيم پلي جذاب و داستاني متفاوت غرق مي شوند و بعد از اتکام بازي نام زلدا در ذهنشان ابدي خواهد شد !
? No More Heroe
اگر معمولاً از خريدن بازي هاي wii غافل نشويد مطمئنا No More Heroes يکي از متفاوت ترين بازي هايي خواهد بود که تحربه مي کنيد و آنوقت است که تعجب و حس تحسين گويچي سودا با هم مي آميزند. گويچي سودا يا سودا ?? مطمنا ُسوژه اي نيست که بخواهيم در موردش بحث کنيم چون به اندازه ي کافي از او اطلاعات خواهيد يافت. اما اينکه چرا تمام بازي هاي وي عليرغم سبک خشن و بي رحمانه ي بيش از حد طرفداران بسياري پيدا مي کنند مي تواند بحث مناسبي باشد. وي قبلا به خاطر بازي killer? شناخته شد ، و گرچه No More Heroes ادامه اي بر اين بازي نيست اما به خوبي سبک و سياق سودا گونه (!) را القا مي کند.خشونت در قالب اکشن سوم شخص سند باکس گونه (آن هم با کنترلر هاي وي) عوامل موفقيت no more heroes بودند که توسط سود ?? تعيين شدند. بازي بعد از اتمام ساخت توسط grasshopper manufacture در ? دسامبر ???? عرضه شد و ? روز نگذشته بود که بازي علاوه بر فروش بالا بر سر زبان ها نيز افتاد تا بار ديگر گويچي سودا را به جامعه ي بازيباز <<يادآوري>> کند !
? Wii sports
Wii sports تنها به اين دليل جزو بهترين بازي هاي وي به شمار مي رود که علي رغم اين که يک عنوان امتحاني (launch title) اما بيشترين بهره را از کنترلر هاي وي مي برد ؛ (مطمئنا دليل ساخت بازي نيز چيز ديگري نبوده ) مجموعه ي ورزش هايي که با حرکات واقعي بدن شما انجام مي شد واقعا جذاب بودند ؛ عده اي نيز به وسيله ي همين بازي ورزش هاي صبحگاهي تدارک مي ديدند ؛ مطمونا اگر بازي به صورت يک بازي سرهم با خود کنسول نبود به تنهايي نيز فروش بسيار بالايي را تنها به خاطر کنترل و موضوع جالبش رقم ميزد ؛ گرچه چندان پيچيده نبود !
? Resident evil : umbrella chronicles
شايد يکي از موفق ترين نسخه بازي ها رزيدنت اويل umbrella chronicles بر روي wii باشد. کنترل آلبرت وسکر در مجموعه اي از اتفاقات مربوط به resident evil zero ،resident evil و resident evil nemesis بسيار خوب کار شده بود ؛ بازي از نظر فني و کنترل (ريموت و نانچاک) به هيچ وجه ضعفي نداشت و مطمئنا شما نيز اين بازي را جزو بهترين بازي هاي wii خواهيد دانست ، تاريخ عرضه ي جهاني بازي در ?? نوامبر اصلا براي طرفداران wii قابل باور نبود ، نسخه اي از رزيدنت اويل که تمام پلتفرم هاي ديگر را تحت شعاع قرار داد !
? Zack & Wiki: Quest for Barbaros’ Treasure
Zack & Wiki: Quest for Barbaros’ Treasureيکي ديگر از بازي هاي انحصاري wii هستند که توانستند بدون تبليغات اضافي و ادعاي زياد به موفقيت خوبي دست پيدا کنند. بازي کنترل زک را در اختيار شما مي گذاشت تا در قالب يک بازي اکشن ادونچر سوم شخص آيتم ها و دشمنان بازي را ارزيابي کنيد و همين فاکتور ها ارزش تکرار دوباره ي بازي را افزايش مي دادند.کنترل مناسب و استفاده ي مناسب از ويزگي هاي وي يکي ديگر از برگ برنده هاي آن محسوب مي شد.بازي در ?? اکتبر براي wii عرضه شد ؛ باز هم capcom موفق عمل کرد.
? Metroid prime ?:corruption
Metrod prime ?:corruption از جمله بازي هايي به شمار مي رفت که با اينکه ديگران رويش حساب بازنکرده بودند اما توانست نظر همه ي کاربران را به خود جلب کند و به جرات يکي از موفق ترين اکشن ادونچرهاي (اول شخص) wii به شمار مي رود. اين بازي که دهمين نسخه از بازي هاي اين سري و سومين قسمت سه گانه ي metroid prime است در آغاز به خوبي از قابليت هاي wii بهره مي گيرد و داستان مناسب و دقت به کار رفته در سيستم نانچاک و ريموت راه ها را براي اينکه اين بازي جزو ده برتر ما باشند باز مي کند. داستان بازي نيز به نوبه ي خود خوب کار شده و مقابله با دزدان فضايي را دنبال مي کند اما همانطور که retro studios در اولين نمايش بازي (e? ????) و بعد از عرضه ي بازي در ?? اگوست تاکيد کرد ، در يک بازي بر روي پلتفرم وي گيم پلي بالاتر از ساير فاکتور ها قرار مي گيرد.
? Rock Band
در اين جا اولين بازي غير انحصاري براي wii که به خوبي روي همه ي پلتفرم ها و به خصوص wii ظاهر شد Rock Band است. اگر بخواهيم از نسخه هاي ديگر بازي حرفي به ميان نياوريم مي توانيم تنها با متذکر شدن حس زيباي نواختن موسيقي با کنترلر وي اين بازي را تحسين کنيم ؛ بخش هاي مختلف بازي که شاملگيتار باس و گيتار ليد در حالي ? نفر همزمان يک گروه راک را تشکيل داده اند (آن هم روي پلتفرم wii) تنها يکي از معجزات هارمونيکس در اين عنوان به شمار مي رفت و شايد همين نقاط قوت بسيار بودند که منتقدان در مورد امتيازات guitar hero تجديد نظر کنند.
? Super paper Mario
حتما دليلي داشته که دو جايگاه در اين ده برتر به سري ماريو اختصاص يافته ! super paper Mario زماني عرضه شد که هيچ کس فکر نمي کرد ماريو دو بعدي باز هم محبوب باشد اما اين نقش آفريني پلتفرمر ثابت کرد که اينطور نيست و البته علاوه بر اين سيستم جديدي که در بعضي بخش ها دوربين ماريو را به صورت سه بعدي اما به صورت کاغذي (و تخت) نشان ميداد رابط مهمي براي اين نوع گيم پلي پلتفرمر بود ؛ به هر حال همه ميدانيم ماريو هيچ وقت شخصيتي نبوده که بشود بازي هايش را دست کم گرفت و جا دارد ياد آور شويم اگر اين ليست ظرفيت بيشتري داشت به احتمال زياد Mario kart wii باز هم جايگاهي براي ماريو در نظر مي گرفت !

+ نوشته شده در  جمعه 1388/01/14ساعت   توسط سعید  | 

ﺑﺮﺧﻮرد ﺟﺪی ﺑﺎ ﺳﺎﯾﺘﮫﺎی ﻣﺴﺘﮫﺠﻦ

يکي از مهمترين خبرهايي که در اواخر اسفند ۸۷ در رسانه هاي خبري منتشر شد خبر انهدام تعداي از شبکه هاي فساد و منتشر کننده محتواي مستهجن در اينترنت بود.

يکي از مهمترين خبرهايي که در اواخر اسفند ?? در رسانه هاي خبري منتشر شد خبر انهدام تعداي از شبکه هاي فساد و منتشر کننده محتواي مستهجن در اينترنت بود.در اطلاعيه که توسط نهادي به نام مرکز بررسي جرائم سازمان يافته دايره جرايم سايبر منتشر شده بود اين چنين آمده بود که نيروهاي اطلاعاتي سپاه پاسداران اقدام به شناسايي و انهدام شبکه‌هايي نموده که به طرز کاملا پيچيده و سازمان يافته به توليد و انتشار محتواي ضد ديني و ضد فرهنگ و عفت عمومي مي‌نموده اند. در اطلاعيه و گزارشهاي تکميلي ديگري که در همين زمينه منتشر شده اسامي سايتهايي که در زمينه پورنوگرافي و انتشار تصاوير يا محتواي غير اخلاقي فعاليت مي‌ کردند و همچنين اسامي مديران آنها که بازداشت شده به صورت خلاصه منتشر شد. همچنين در صورت بازديد از سايتهاي اشاره شده در گزارش فوق بازديدکننده به سايت رسمي مرکز بررسي جرائم سازمان يافته ( با آدرس gerdab.ir) راهنمايي مي‌شد که نشان از کنترل کامل اين سايتها توسط نهاد فوق داشت.
برخورد با محتواي غير اخلاقي و پورنوگرافي مسئله جديدي در ايران نيست و يکي از مهمترين دلايل راه اندازي سامانه فيلترينگ در کشور نيز کنترل و جلوگيري از دسترسي به چنين سايتهايي است.در طول چند سال اخير گاهي آنهم بصورت خلاصه و مبهم در اخبار به برخورد با برخي منتشر کننده محتواي غير اخلاقي اشاره شده باشد اما خبري که در اواخر سال ۸۷ منتشر شد نشان از بعد جديدي از برخورد با سايتهاي غير اخلاقي دارد. در واقع اين براي اولين بار بود اطلاعيه و گزارشهاي کاملي از برخورد با چند سايت مستهجن منتشر شده بود و گزارشات نيز حاوي جزئيات زيادي از جمله اشاره به نام مديران و شيوه فعاليت اين سايتها بوده است. همچنين در ابتداي سال ?? نيز در گزارشي تصويري ،مصاحبه هايي با افراد بازداشتي از صدا و سيما منتشر شد. برداشتي که مي‌توان از اين تغيير در اطلاع رساني در برخورد با سايتهاي غير اخلاقي داشت نمايش توانايي ها نهادي اطلاعاتي و امنيتي در برخورد با بزرگترين و معروفترين سايتهاي غير اخلاقي است و حقيقت اين است که آنچه صورت گرفته قابل ستايش است. صحبت از چند کليک و فيلتر کردن يک سايت نيست، سايتهايي که در گزارشات آمده معروفترين و بزرگترين منتشرکنندگان محتواي پورنو به زبان فارسي بوده اند و حال آنکه نه تنها دسترسي به محتواي اين سايتها به طور کامل متوقف شده بلکه کنترل آنها نيز در اختيار گرفته شده است و مهمتر آنکه برخي مديران اين سايتها که بازداشت شده اند ساکن خارج از کشور بوده و از شيوه هاي فني براي فعاليت بصورت ناشناس استفاده مي کردند. مطمئناً شناسايي مديران و برخورد با چنين شبکه اي نيازمند صرف وقت و شيوه هاي پيچيده فني و اطلاعاتي بوده است و حتي به نظر مي‌رسد که انتشار گزارش نتيجه آن نيز با برنامه ريزي خاصي همراه بوده است.
آنچه در اکثر سايتهاي پورنوي فارسي منتشر مي شود صرفا پاسخ به يک کنجکاوي يا لذت جويي از مشاهده چند تصوير از برهنگي نيست. حجم قابل توجهي از محتواي اين سايتها مربوط به داستانهايي از روابط جنسي با محارم است. ارتباط جنسي بردار و خواهر، پسر با مادر يا با اقوام نزديک و يا ارتباط با زنان متاهل است و براستي کداميک از ما با آنچه در اين داستانها به نوعي تبليغ مي شود موافقيم؟ به خاطر داشته باشيم که در ايران خانواده ها کنترل يا اطلاعات چنداني از نحوه استفاده فرزندان خود از اينترنت ندارند و حتي اگر بپذيريم که فرد بالغ بتواند بين اينگونه داستانها با واقعيت تفاوت قائل شود تصور آنچه که اين داستانها و عادي سازي اينگونه ارتباطات در ذهن نوجوانان و در برخورد با خانواده ايجاد مي کند. چند تصوير از برهنگي يا ارتباط جنسي حداقل چيزهايي هستند که در سايت پورنو بخصوص از نوع فارسي و معروف آن قابل مشاهده است. تشويق بازديدکنندگان به تهيه تصاوير برهنه از خود و ارسال آنها به سايت براي نمايش عمومي، تشويق يا ذهنيت سازي در مورد انواع و شيوهايي نامتعارف از روابط جنسي مانند تبادل و ارتباط جنسي با همسران دوستان و دادن ذهنيت و اطلاعات اشتباه در مورد روابط جنسي در جايي که شايد نوجوان و جوانان کمترين اطلاعات صحيح در اين مورد را از مراکز رسمي دريافت مي کنند گوشه ديگري از فعاليت سايتهاي پورنو است.
توجه داشته باشيم که صحبت از يک وبلاگ يا يک سايت کوچک با فعاليت محدود نيست که بتوان آنرا به ذهن بيمار نويسنده يا گرداننده سايت و فعاليت در زمان بيکاري نسبت داد. مديريت سايتهايي با چنين ترافيکي به هزينه بالايي براي ميزباني و تامين پهناي باند و صرف زمان زياد براي پشتيباني و به‌روز رساني نياز دارد و کمي ساده انديشي که تصور کنيم که مديران اين سايتها به اصلاح صرفا جهت پاسخ به خواسته جامعه و حمايت از جريان آزاد اطلاعات چنين هزينه اي را براي بلند مدت پرداخت کنند. حتي برخي از اين سايتها از تبليغات خاصي نيز براي تامين هزينه هاي خود بهره نمي برند و کافيست کمي در مورد هدف مديران و نحوه تامين هزينه هاي اين سايتها و به خصوص محتواي منتشر شده در آنها تامل کنيم.
توانايي نهادي انتظامي و اطلاعاتي در شناسايي متخلفان اينترنتي اگر چه ميتواند شمشير دو لبه اي باشد که احيانا تهديدي براي انتشار مطالب انتقادي و اعتراضي باشد اما در وجه مثبت آن يک نياز براي جامعه اطلاعاتي است اگر امروز بسياري از تخلفات اينترنتي محدود به انتشار اطلاعات يا چند تصوير از محافل خصوصي و نقض حريم خصوصي، بازي با آبروي شهروندان يا انتشار محتواي غير اخلاقي است با رواج تجارت الکترونيک و ورود تبهکاران حرفه اي نيازمند تخصص در نهادهاي انتظامي و اطلاعاتي براي برخورد با جرايم پيچيده رايانه اي خواهيم بود.

+ نوشته شده در  جمعه 1388/01/14ساعت   توسط سعید  |