دروس رشته کامپیوتر

framework چیست؟

 Framework در اصل محیطی است که برای یک زبان برنامه ‎نویسی خاص ایجاد می‌ شود و باعث آسان‎تر شدن کار می‎ شود. بطور کلی می‌ توان فریم‎‌ ورک را ...

عمومی کامپیوتر

Intel-Haswell-EP-Xeon-E5-2600-V3-Processors-635x407

چهار پردازنده بر روی یک بورد! Intel Xeon E5 4600 v3

Intel Xeon E5 نام سری پردازنده هایی است که به عنوان بالاترین رده پردازنده های اینتل شناخته می شود و ...

framework چیست؟

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

پنج فریم ورک برتر از نگاه سایت phpframeworks :

١. فریم ورک Yii :

yii-framework

٢. فریم ورک PhpOpenbiz :

openbiz-framework

٣. فریم ورک CodeIgniter :

CodeIgniter-framework

۴. فریم ورک CakePHP :

phpcake-framework

۵. فریم ورک Symfony :

symfony-framework

معمولا فریم ورک ها مبتنی بر الگوی برنامه نویسی MVC  طراحی می شوند (MVC نرم‎افزار را به سه قسمت Model و View و Controller  تقسیم می‎کند)؛ اما نمی توان گفت کتابخانه هایی که بر اساس الگوی شی گرای MVC ساخته نشده اند فریم ورک نیستند. عموماً پرتال ها و سیستم های مدیریت محتوا نظیر جوملا، مامبو، نیوک، وردپرس و … در نهایت تبدیل به یک کتابخانه یا فریم ورک می شوند. با این حساب می توان سیستم های مدیریت محتوا را نوعی فریم ورک به حساب آورد، اما در دنیا برنامه نویسی واژه Platform (بستر) انتخاب بهتری برای سیستم های مدیریت محتوا است؛ Framework به برنامه نویسان  کمک می‌کند تا کارشان را توسعه دهند اما معمولاً این برنامه نویسان هستند که به پلتفرم ها کمک می‌کنند تا توسعه یابند.

چرا framwoek؟

  • افزایش امینت برنامه
  • کاهش قابل توجه زمان توسعه برنامه
  • بروز رسانی و ارتقا آسان برنامه

متدلوژی agile

چکیده:

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

delivery_agile

متدولوژی Agile

 متدولوژی Agile در سالهایی بوجود آمد که شرکت های نرم افزاری در تولید محصول خود با شکست مواجه می شدند. علت این شکست برآورده نشدن نیازهای مشتریان بود. به عنوان مثال روی یک پروژه نرم افزاری زمان و انرژی گذاشته میشد ولی در هنگام تحویل آن، نیازهای مشتری را مرتفع نمی کرد.
agiledevelopmentprocess1
دلیل آن هم عمدتا این بود که آنها به نیازمندی و رضایت مشتری که یکی از اهداف اصلی پروژه است توجه کمتری می کردند. در این هنگام مدیران چند شرکت نرم افزاری در سال ۲۰۰۱ گرد هم آمدند و متد های مدیریتی را بوجود آوردند که باعث می شد محصول نهایی کامل مطابق نیاز مشتری باشد.

شکست در پروژه ها Agile را بوجود آورد!

طبق تحیقات انجام شده توسط سازمان IEEE، حدود نیمی از پروژه های نرم افزاری با شکست مواجه میشوند یا اصطلاحا Failed میشوند. عمده دلایل شکست پروژه های نرم افزاری عبارتند از :
۱- زمانبندی نا مناسب
۲- کیفیت پائین در تولید نرم افزار
۳- ارتباط نداشتن با مشتری
۴- تحلیل نادرست نیازمندی ها
۵- کمبود در تست کردن نرم افزار

فلش

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

Agile برای چه پروژه هایی مناسب است؟

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

نیاز به مستندات در روش Agile الزامی است.

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

Document

همچنین مشتری باید کاملا نیازهای خود را به طور واضح و و روشن بیان کند و این نیازها ریز به ریز در مستندات ثبت می شود. ممکن است در طول تولید پروژه نیازهای مشتری تغییر کند، در این صورت باید حتما کدها دستخوش تغییر شوند. پس مستندات همیشه به روز، یکی از اصول این متدولوژی است.

اصول ۱۲ گانه Agile

این اصول که در سال ۲۰۰۱ توسط مدیران شرکت های نرم افزاری جهت مقابله با شکست در پروژه های نرم افزاری تدوین شده اند عبارتند از :
۱- بالاترین اولویت در این متدولوژی جلب رضایت مشتری با تحویل زود هنگام نرم افزاری توانمند است.
۲- استقبال از تغییر نیازمندی ها، حتی در اواخر فرآیند توسعه.
۳- تحویل نرم‌افزار قابل استفاده با فاصله زمانی سه هفته یک بار و یا سه ماه یک بار.
۴- ذی نفعان و توسعه دهنده ها می بایست به صورت روزانه در طول پروژه با هم کار کنند.
۵- پروژه ها به دست افراد با انگیزه سپرده شود ، فضای لازم به آنها داده شود تا کارها را به درستی انجام دهند.
۶- کارآمدترین و موثرترین روش انتقال اطلاعات به تیم توسعه و تبادل آن در میان اعضای تیم ، گفتگوی چهره به چهره است.
۷- نرم افزار قابل استفاده اصلی ترین معیار سنجش پیشرفت است
۸- فرآیند های Agile توسعه پایدار را ترویج می دهند. حامیان مالی، توسعه دهندگان و کاربران باید بتوانند سرعت پیشرفت ثابتی را برای مدت نامحدودی حفظ کنند.
۹- توجه مداوم به برتری فنی و طراحی خوب باعث افزایش کیفیت تولید می شود.
۱۰- باید ساده ترین راه که با هدف پروژه سازگار است را انتخاب نمود و از گذاشتن وقت بر روی مشکلاتی که ممکن است در آینده رخ دهد صرف نظر کرد.
۱۱- بهترین مدیریت، تحلیل نیازمندی ها و طراحی از تیم های خود سازمان ده (هرفرد در تیم بر کل پروژه تاثیر دارد) پدید آور می شود.
۱۲- در فواصل منظم، تیم نشان میدهد که چگونه میتواند در تولید نرم افزار موثرتر باشد و سپس تیم رفتار خود را بر اساس بازتاب این تفکر تنظیم و هم سو می نماید.

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

  • نویسنده: مهرناز توکلی

RUP چیست؟

متدولوژی (Rup (Rational Unified Process یک فرآیند تولید و توسعه نرم افزاری میباشد که در سال ۲۰۰۰ این متدولوژی توسط شرکت Rational  ارائه گردید. مهم ترین هدف Rup اطمینان از تولید نرم افزار با کیفیت بالا می باشد.

توضیح : شرکت IBM در سال ۲۰۰۳ اقدام به خریداری rationl نمود و امروزه این نرم افزار و اشکال مختلف آن از طریق سایت IBM در دسترس هستند.

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

Releases
تولید یک محصول نرم افزاری در Rup شامل چهار فاز آغازین (Inception ) ، جزئیات (Elaboration ) ، ساخت (Construction )  و انتقال (Transition ) می باشد . میزان استفاده از نیروی انسانی و زمان صرف شده در هر فاز متفاوت است همان گونه که در شکل زیر مشاهده می کنید  فاز ساخت بیشترین زمان و نیروی انسانی را نیاز دارد.
phases
در Rup در ابتدای پروژه یک معماری اولیه تهیه می گردد این امر باعث به حداقل رسیدن ریسک های پروژه در ابتدای کار شده و کیفیت نرم افزار تولیدی را بالا می برد. از دیگر ویژگی های Rup قابلیت توسعه و تغییر نرم افزار براساس سلیقه و نیازهای کاربران و مشتریان می باشد.یک فرآیند در Rup  دارای عناصر اصلی زیر می باشد:

نقشها(Roles ):
  رفتارها و مسئولیتهایی هستند که توسط یک فرد یا افرادی از یک تیم در پروژه انجام می شوند از جمله نقش های موجود در یک  پروژه  می توان به تحلیلگر سیستم ، معمار ، مشتری و کاربر نهایی اشاره کرد.فعالیتها(Activities ): کارهایی که یک نقش در طول پروژه انجام می دهد را فعالیت می گویند . هر فعالیت دارای هدف مشخصی می باشد و تنها به یک نقش منصوب می شود. فعالیتها ممکن است چندین بار در تکرارهای مختلف پروژه انجام شوند .

فرآورده‌ها(Artifacts ):
  فرآورده‌ها در واقع محصولات و خروجی های پروژه می باشند که در طول فرآیند تولید یک نرم‌افزار، بوجود می آیند و مورد استفاده قرار می گیرند و بروز رسانی می شوند .به طور کلی روند تولید و توسعه  یک نرم افزار با استفاده از متدولوژی Rup در ۲ بعد صورت می پذیرد :

۱٫بعد افقی یا بعد زمانی فرآیند که شامل فازهای Rup می باشد.در شکل زیر بعد افقی همان محور افقی است که بیانگر ساختار داینامیک فرآیند می باشد .
۲٫بعد عمودی یامحورعمودی، ساختار استاتیک فرآیند را نمایش می دهد که شامل ۹  دیسیپلین )مدل سازی کسب و کار، نیازمندیها ، تحلیل و طراحی ، پیاده سازی ، تست ، استقرار، مدیریت پیکر بندی ،مدیریت پروژه و محیط) می باشد.

همان گونه که در شکل مشاهده می کنید با گذشت  زمان و در هر فاز دیسیپلین های  خاصی اجرا می گردد و میزان استفاده از دیسیپلین ها بسته به نوع فازها متفاوت است. مثلا در فاز آغازین کاربرد دیسپلین استقرارِ(Deployment) صفر می باشد اما در فازهای ساخت و انتقال که پروسه تولید نرم افزار به اتمام رسیده است کاربرد این دیسپلین بسیار بالاست .

rup
فازهای یک پروژه در RUP
در Rup انجام هر پروژه به چند قسمت تقسیم می شود که به هر کدام از این قسمت ها فاز گفته می شود. همان طور که گفته شد بعد افقی Rup  شامل فاز های پروژه می باشد که در زیر به توضیح آن ها پرداخته ایم .فاز آغازین (Inception ) :
در این فاز در ابتدا محدوده پروژه مشخص شده و به صرفه بودن انجام پروژه از نظر اقتصادی مورد ارزیابی قرار می گیرد و سپس به جلب رضایت سهامداران برای اجرای پروژه و اهداف آن پرداخته می شود. همچنین تهیه یک معماری اولیه و تخمین هزینه کلی پروژه ، زمان و مقدار سود دهی پروژه در این فاز انجام می گردد.فاز جزئیات (Elaboration ) :
تحلیل و بررسی دامنه پروژه و  بدست آوردن یک معماری مناسب برای سیستم در این فاز صورت گرفته و توسعه پروژه و پیشگیری از ریسک های مهم سیستم از اهداف اصلی این فاز می باشد.فاز ساخت (Construction ) :
فاز ساخت، عبارتست ازفرآیند تولید صنعتی که در آن روی مدیریت منابع، کنترل عملیات، به حداقل رساندن هزینه‌ها و بدست آوردن یک کیفیت عالی در کوتاه ترین زمان تاکید می شود و به تکمیل تولید سیستم بر اساس معماری اولیه می پردازد. این فاز با استقرار یک نسخه کارکردی کامل از سیستم ، شامل نصب مستندات پشتیبانی و ابزارهای آموزشی خاتمه می یابد.

فاز انتقال (Transition ) :

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

دیسیپلین های Rup
دیسیپلین ها کارهای به هم مرتبطی هستند که برای به نتیجه رسیدن هدف خاصی از یک پروژه انجام می شوند. در هر دیسیپلین یک گردش کار  وجود دارد. متدلوژی Rup از ۶ دیسیپلین اصلی که مربوط به تولید محصول و ۳ دیسیپلین  پشتیبانی و مدیریت که مربوط به تیم و محیط تولید می باشد تشکیل شده است .

دیسیپلین های اصلی (مربوط به تولید محصول)

مدل سازی کسب و کار (Business Modeling ) :

اهداف اصلی این دیسپلین شناخت ساختار سازمان مورد نظر برای تولید و ارائه سیستم به آن سازمان ، بررسی مشکلات موجود و ارائه راه حل برای رفع مشکلات موجود می باشد و هم چنین با ارائه یک مدل Use-Case کسب وکار به تعریف فرآیندها ، نقش ها و مسئولیت های آن سازمان می پردازد.

نیازمندی ها (Requirements ) :
این دیسیپلین به بررسی نیازمندیهای سیستم براساس توافقات انجام شده با مشتری پرداخته و به تعیین حد و حدود سیستم و تخمین هزینه ها و زمان می پردازد.

تحلیل و طراحی (Analysis and Design ) :
تبدیل نیازمندیهای سیستم به طراحی به طوری که طراحی مورد نظر با محیط پیاده سازی هماهنگ باشد و هم چنین ایجاد یک معماری مستحکم از مهم ترین اهداف این دیسپلین می باشد.

پیاده سازی (Implementation ) :
پیاده سازی طراحی سیستم و تولید یک محصول نرم افزای در این مرحله صورت می پذیرد.

تست (Test ) :
تست محصول و بررسی کیفیت و نقایص محصول، بررسی هماهنگ بودن محصول پیاده سازی شده بر اساس طرح  از اهداف اصلی دیسیپلین تست می باشد.

استقرار (Deployment ) :

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

دیسیپلین های پشتیبانی و مدیریت  (مربوط به تیم و محیط تولید)

مدیریت پروژه (Project Management ) :
مدیریت پروژه ، مدیریت ریسک ها و از بین بردن محدودیت ها برای ارائه محصولی موفقیت آمیز از اهداف اصلی این دیسپلین می باشد.

مدیریت تغییرات و پیکربندی (Configuration & Change Management ) :
پیکر بندی و اعمال تغییرات لازم با حفظ صحت خروجی های پروژه در این بخش صورت می پذیرد.

مدیریت محیط(Environment ) :
فراهم کردن محیط تولید و ابزارهایی که در جهت پشتیبانی تیم تولید است مانند ایجاد سایت برای سازمان هدف در این بخش صورت می پذیرد .

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

  • نویسنده: مرضیه افشاری

چهار پردازنده بر روی یک بورد! Intel Xeon E5 4600 v3

Intel Xeon E5 نام سری پردازنده هایی است که به عنوان بالاترین رده پردازنده های اینتل شناخته می شود و مدت های طولانی توانسته است بی رقیب باشد. ما از این سری و از خانواده Haswell-EP در سال جاری میلادی نسخه ای با نام Haswell-EP V2 را شاهد بودیم که می تواند از یک یا دو پردازنده در هر بورد پشتیبانی نماید. اما Haswell-EP V3 چطور؟Intel-Haswell-EP-Xeon-E5-2600-V3-Processors-635x407

به نظر می رسد که نسل سوم خاندان، از قرار معلوم در نیمه دوم سال ۲۰۱۵ میلادی عرضه و توانایی آن را خواهد داشت که از چهار پردازنده بر روی یک بورد پشتیبانی نماید. ۲۰۱۵ ، سالی که برای اینتل و بر مبنای خبرهایی که در گذشته از سوی این شرکت و پردازنده هایش منتشر شده است، سالی پربار به نظر می رسد.

در این نسل ما شاهد تغییراتی چند از قبیل افزایش تعداد هسته ها در کنار افزایش مقدار حافظه کش سطح سوم و همچنین دارا بودن کنترلر حافظه DDR4 خواهیم بود. همچنین در این نسل دستورالعمل های FMA و AVX2 نیز پشتیبانی خواهند شد و چیپ ست در نظر گرفته شده نیز C610 می باشد. از طرف دیگر و به استناد خبرهای منتشر شده، اینتل چهار رده برای پردازنده های خود در نظر گرفته است. اولین رده که در واقع پایین ترین رده به حساب می آید، ما پردازنده Xeon E5-4610 v3 را می بینیم و در رده بالاتر از آن یعنی رده میانی، ما شاهد دو پردازنده هستیم، یکی E5-4620 v3 و دیگری E5-4640 v3. در رده سوم که در واقع رده پردازنده های سطح بالا می باشد باز هم دو پردازنده خودنمایی می کنند! Xeon E5-4650 v3 و E5-4660 v3 .

اما رده چهارم پردازنده هایی را در بر می گیرد که بهینه سازی شده اند و چهار پردازنده با نام های E5-4627 v3 , E5-4655 v3, E5-4667 v3 و E5-4669 v3 ، در این رده قرار می گیرند.

از دیگر مشخصات این نسل نیز می توان به پشتیبانی از حافظه های نسل چهارم با فرکانس کاری ۲۱۳۳ MHz و همچنین برخوراری از ۴۰ مسیر PCI-E نسل سوم در کنار پشتیبانی از سوکت LGA 2011-3 اشاره کرد. مصرف توان در نظر گرفته شده نیز چیزی ما بین ۷۰W تا ۱۴۵ به استثنای مصرف ۱۶۰W پردازنده های رده بالا خواهد بود.Capture

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

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

سرعت ۹۵ مگابایت در ثانیه در نسل جدید کارت‌های حافظه مقاوم اپیسر UHS-I U3

SD

اپیسر جدیدترین کارت‌های حافظه با استاندارد ذخیره‌سازی UHS-I U3 را معرفی کرده است. این‌سری از کارت‌های حافظه از گروه کارت‌های SDXC و microSDHC بوده و برای حرفه‌ای‌های عکاسی و تصویربرداری و کسانی که سرعت‌بالای ذخیره‌سازی در تبلت‌ها و گوشی‌های هوشمند برایشان مهم است، طراحی و ساخته‌ شده است.

استفاده از استاندارد UHS-I U3 در انتقال اطلاعات، باعث شده تا سرعت خواندن و نوشتن به ترتیب به ۹۵ و ۸۵ مگابایت در ثانیه برسد. سرعت بالای انتقال اطلاعات در کنار حداکثر ظرفیت ۱۲۸ گیگابایت، علاقه‌مندان به فیلم‌برداری سه‌بعدی یا فیلم‌برداری با رزولوشن ۴K که حجم زیادی از فضای ذخیره‌سازی را می‌طلبد، باعث شده تا این سری از کارت‌های حافظه گزینه‌ای ایده‌آل برای کاربران ابزارهای پیشرفته امروزی باشد. علاوه بر سرعت و ظرفیت بسیار بالا، کارت‌های حافظه جدید Apacer UHS-I U3 برای استفاده در شرایط دشوار نیز آبدیده هستند که باعث می‌شود حیطه استفاده از این سری محصولات افزایش یابد.

SD

عکاسان و فیلم‌برداران حرفه‌ای، برای ثبت سریع لحظه‌ها و حفظ کیفیت بالا، به ابزارهای ذخیره‌سازی پرسرعت و باثبات نیاز دارند تا بتوانند محتوای مورد نظرشان را با خیال راحت ذخیره کنند. نسل جدید کارت‌های حافظه اپیسر گزینه‌ای مناسب برای استفاده در دوربین‌های عکاسی و فیلم‌برداری جدید است که قابلیت فیلم‌برداری ۴K یا ثبت تصاویر با فرمت RAW (فرمت خام ثبت عکس) را دارند. انتقال اطلاعات ذخیره‌شده از روی کارت حافظه به سیستم‌های مجهز به پورت‌های پرسرعت نیز همچنان با سرعت‌بالا صورت خواهد گرفت و در زمان صرفه‌جویی خواهد کرد.

استفاده از استاندارد جدید SDXC باعث شده تا اپیسر بتواند حجم این‌سری از کارت‌های حافظه را به ۱۲۸ گیگابایت افزایش دهد. تمامی دستگاه‌ها و ابزارهایی که توانایی پشتیبانی از این استاندارد را دارند، می‌توانند کارت‌های حافظه جدید اپیسر را شناسایی کرده و از ظرفیت بالا و سرعت انتقال اطلاعات بالای آن بهره‌مند شوند.

ماوس هایی برای خوره های بازی رایانه ای

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

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

ماوس های گیمینگ به طور معمول از نظر نرم افزاری قابل سفارشی سازی هستند و می توان بر اساس نیازهای گیمر تغییراتی در آنها ایجاد کرد. ماوس های گیمینگ از حسگرهای بیشتر برای DPI (نقطه در هر اینچ) یا دقت ماوس بالاتر نسبت به ماوس های معمولی سود می برند که بدون خطا حرکات کاربر را ترجمه می کنند. اگر برای ارتقا تجربه بازی رایانه ای خود آماده هستید در ادامه برخی از بهترین ماوس های گیمینگ حال حاضر را معرفی می کنیم.

ماوس Corsair Vengeance M65

mouse1

ماوس ونجنس M65 به یک دکمه اختصاصی برای علاقمندان به بازی های تک تیراندازی مجهز شده است. طراحی این ماوس به طور کامل طرفداران بازی های تیر اندازی اول شخص را مد نظر داشته است. میزان DPI تا ۸,۲۰۰ قابل افزایش است که حساسیت لازم برای سرعت عمل و هدف گیری دقیق را فراهم می کند.

ونجنس M65 از هسته آلومینیومی با پنل های پلاستیکی روی آن ساخته شده است. این ماوس از دکمه های قابل برنامه ریزی زیادی برخوردار نیست که می تواند گیمرهای علاقمند به سبک های RTS و MMO را ناامید کند. ونجنس M65 برچسب قیمت ۵۲ دلاری را یدک می کشد.

ماوس Mionix NAOS 7000

mouse2

این ماوس از اندازه بزرگی سود می برد و برای گیمرهای که ماوس خود را با کل کف دست می گیرند گزینه ای ایده آل محسوب می شود. حسگر نوری (اپتیکال) این ماوس از مشکلات مربوط به شتاب که در ماوس های لیزری به واسطه فناوری اصلاح داخلی ایجاد می شوند، رنج نمی برد. سرعت ردیابی این ماوس ۵٫۴۵ میلی ثانیه و DPI آن تا ۷,۰۰۰ قابل تنظیم است. چرخ اسکرول یکی از نقاط ضعف این ماوس ۵۸ دلاری محسوب می شود.

ماوس Razer DeathAdder Chroma

mouse3

ماوس های گیمینگ که از حسگر نوری استفاده می کنند به طور معمول DPI را پایین نگه می دارند زیرا به لطف نسبت حرکت ساده‌تر خود به گشتاور بالا برای انجام وظایف مشابه نیازی ندارند. اما ماوس ریزر دث‌ادر کروما این قاعده را نادیده گرفته و DPI 10,000 را ارائه می کند.

این ماوس از ارگونومی بالایی برخودار است و به خوبی در دست کاربر جای می گیرد. قسمت های لاستیکی کناره های ماوس از لیز خوردن دست جلوگیری می کنند. متاسفانه این ماوس فاقد حافظه داخلی است و ریزر یک سیستم مبتنی بر فضای ابری را ارائه می کند. از این رو، نرم افزار “ریزر سیناپس” را باید هر کجا که ماوس خود را می برید، نصب کنید. ریزر دث‌ادر کروما برچسب قیمت ۶۰ دلاری را یدک می کشد.

ماوس Zowie Gear EC1 Evo CL

mouse4

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

اوو سی‌ال یکی از معدود ماوس های گیمینگ است که به واقع از توانایی پلاگ اند پلی سود می برد و حتی با کروم بوک نیز قابل استفاده است. میزان DPI در سه حالت ۴۵۰، ۱,۱۵۰ و ۲,۳۰۰ قابل تنظیم است. این ماوس ۶۰ دلاری از حسگر نوری سود می برد و چراغ های LED آن قابل خاموش کردن نیستند.

ماوس Razer NAGA

mouse5

ریزر ناگا دارای ۱۹ دکمه قابل برنامه ریزی است و از این رو برای علاقمندان بازی های سبک MMO گزینه ای ایده آل محسوب می شود. حسگر نوری این ماوس با DPI 8,200 تکمیل می شود و از این رو نسبت به واکنش سریع به دستورات کاربر اطمینان حاصل می شود. ریزر ناگا برچسب قیمت ۶۱ دلاری را یدک می کشد.

ماوس Cougar 700M

mouse6

کوگار ۷۰۰M را می توان چاقوی سوئیسی دنیای ماوس های گیمینگ نامید زیرا به طور کامل قابل برنامه ریزی و سفارشی سازی است. کاربران مختلف می توانند اندازه این ماوس را متناسب با نوع گرفتن خود تنظیم کنند تا یک ماشین کشتار را در اختیار داشته باشند!

هشت دکمه قابل برنامه ریزی با یکی از ساده‌ترین و جامع‌ترین رابط های کاربری سفارشی سازی نسبت به هر ماوس گیمینگ دیگر انجام تغییرات نرم افزاری را همانند تغییرات سخت افزاری تسهیل می کنند. کوگار ۷۰۰M به پردازنده ۳۲بیت آرم و فضای ذخیره سازی ۵۱۲ کیلوبایت مجهز شده است. در این ماوس برای علاقمندان به تک تیراندازی یک دکمه اختصاصی اسنایپر تعبیه شده است. کوگار ۷۰۰M برچسب قیمت ۷۰ دلاری را یدک می کشد.

ماوس Logitech G502 Proteus Core

mouse7

هر چه DPI ماوس بالاتر باشد با حرکت های کمتر می توانید بخش بیشتری از نمایشگر را پوشش دهید. اما ماوس گیمینگ لاجیتک G502 پروتئوس میزان DPI را وارد سطح جدیدی کرده و عدد ۱۲,۰۰۰ را ارائه می کند. با استفاده از این ماوس در بازی های تیراندازی نگرانی از بابت چرخش های ۳۶۰ درجه نداشته و یا در نقشه های بزرگ بازی های استراتژی می توانید در یک لحظه چندین مایل از میدان نبرد را پوشش دهید. البته میزان DPI این ماوس قابل تنظیم است تا نیازهای کاربران مختلف را پوشش دهد.

لاجیتک G502 پروتئوس برای گیمرهایی که ماوس را با پنجه می گیرند گزینه ای ایده آل است و تمامی دکمه ها به راحتی در دسترس آنها قرار دارد اما برای گیمرهایی که با کف دست ماوس را کنترل می کنند کار با دکمه ها کمی دشوار می شود. با استفاده از نرم افزار گیمینگ لاجیتک می توانید ماوس خود را برای کار روی سطوح مختلف از چوب تا شیشه کالیبره کنید و همواره از دقت بالای ماوس لذت خواهید برد. لاجیتک G502 پروتئوس برچسب قیمت ۷۲ دلاری را یدک می کشد.

ماوس Roccat Kone XTD Optical

mouse8

نسخه ویژه ماوس XTD از حسگر نوری به جای نمونه های سنتی لیزری سود می برد. این ماوس به پردازنده ۳۲ بیت V2 آرم MCU و حافظه ذخیره سازی ۵۷۶ کیلوبایت مجهز شده است. دقت ۶,۴۰۰ DPI ممکن است کمتر از مدل های لیزری به نظر برسد اما به هیچ وجه با مشکلات شتاب مواجه نخواهید شد. اندازه و طراحی این ماوس آن را برای افرادی که از کف دست و پنجه استفاده می کنند ایده آل کرده است. ماوس XTD اپتیکال قیمت ۷۷ دلاری را یدک می کشد.

ماوس Steel Series Sensei Wireless

mouse9

ویژگی هایی در ماوس سنسی وجود دارند که می توانند نگرانی گیمرهای حرفه ای را موجب شوند. نخست، این ماوس بی سیم است. دوم، این ماوس به جای حسگر نوری از حسگر لیزری برخوردار است. این موارد به همراه برچسب قیمت قابل توجه ۱۲۳ دلاری می توانند ماوس سنسی را در رده دوم انتخاب برای گیمرها قرار دهد.

در این ماوس زمان انتقال داده روی یک میلی ثانیه با نرخ نمونه برداری ۱,۰۰۰ هرتز تنظیم شده است که بی تردید هر ماوس بی سیم دیگری را پشت سر می گذارد. اگر حالت سیم دار را ترجیح می دهید سنسی گزینه ای را در اختیار شما قرار می دهد تا بدون کوچکترین تاخیر حرکات خود را انجام دهید. دقت این ماوس تا ۸,۲۰۰ DPI قابل تنظیم است. سنسی دارای هشت دکمه قابل برنامه ریزی است. نرم افزار این ماوس شامل “موتور استیل سریز” می شود که استفاده از آن برای تغییر تنظیمات به دلخواه کاربر آسان است.

ده زبان جدید به مترجم گوگل افزوده شد

n00033641-b

ترجمه‌گر گوگل یا Google Translate یکی از سرویس‌های محبوب گوگل است.
در ۱۹ ژوئن ۲۰۰۹ (۲۹ خرداد ۱۳۸۸) زبان فارسی به این سرویس افزوده شد و پس از آن تاریخ، این مترجم آنلاین بیش از پیش مورد استقبال و توجه کاربران ایرانی قرار گرفت.

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

به گزارش ایتنا از رایورز به نقل از وبلاگ رسمی مترجم گوگل، این شرکت اخیراً ۱۰ زبان جدید را نیز به سرویس Google Translate افزوده است.

این زبان‌ها که بعضاً گویشوران آنها محدود به مناطق جغرافیایی خاصی هستند، عبارتند از: چیچوا (Chichewa) زبان ملی کشور مالاوی در جنوب شرق آفریقا، مالاگاسی (Malagasy) زبان ملی کشور جزیره‌ای ماداگاسکار در اقیانوس هند، سوتو (Sesotho) زبان رسمی کشورهای آفریقای جنوبی و لسوتو، مالایام (Malayalam) زبان رایج در جنوب هند، برمه‌ای (Burmese) زبان رسمی برمه یا همان میانمار فعلی واقع در آسیای جنوب شرقی، سینهالی (Sinhala) زبان مورد استفاده در سری‌لانکا، سوندایی (Sundanese) یکی از زبان‌های رایج در بخش غربی جزیره جاوه در اندونزی، قزاقی (Kazakh) زبان مورد استفاده قزاق‌ها و زبان تاجیکی (Tajik) و ازبکی (Uzbek).

Malayalam

بنا به گفته گوگل افزوده شدن این ۱۰ زبان جدید به مترجم آنلاین گوگل باعث می شود بیش از ۲۰۰ میلیون نفر بتوانند با استفاده از این سرویس، متون را به زبان محلی خود ترجمه کنند.

با این حساب ترجمه‌گر گوگل اکنون از ۹۰ زبان پشتیبانی می‌کند.

منبع: www.itna.ir

مسئله آرایشگر خوابیده

barberدر علوم رایانه، مسئلهٔ آرایشگر خوابیده یک مسئلهٔ همگام سازی و ارتباط داخل فرآیندیِ کلاسیک بین چند فرآیند سیستم عامل است. مسئله مشابه حالتی است که آرایشگر به کار مشغول می‌شود زمانی که مشتری باشد، زمانی که کسی نباشد استراحت می‌کند و تکرار این امر به شیوه‌ای منظم.

مسئله

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

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

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

راه حل

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

یک مسئلهٔ چند آرایشگر خوابیده دارای پیچیدگی‌های بیشتری برای هماهنگی چند آرایشگر در بین مشتریان منتظر است.

پیاده‌سازی

شبه کد زیر همگام سازی بین آرایشگر و مشتری را ضمانت کرده و بدون بن‌بست است، اما ممکن است منجر به قحطی یک مشتری شود. توابع ()wait و ()signal توابعی هستند که توسط سمافور(نشانبر)ها تأمین می‌شوند.

# The first two are mutexes (only 0 or 1 possible)
Semaphore barberReady = 0
Semaphore accessWRSeats = 1     # if 1, the # of seats in the waiting room can be incremented or decremented
Semaphore custReady = 0         # the number of customers currently in the waiting room, ready to be served
int numberOfFreeWRSeats = N     # total number of seats in the waiting room
 
def Barber():
  while true:                   # Run in an infinite loop.
    wait(custReady)             # Try to acquire a customer - if none is available, go to sleep.
    wait(accessWRSeats)         # Awake - try to get access to modify # of available seats, otherwise sleep.
    numberOfFreeWRSeats += 1    # One waiting room chair becomes free.
    signal(barberReady)         # I am ready to cut.
    signal(accessWRSeats)       # Don't need the lock on the chairs anymore.
    # (Cut hair here.)
 
def Customer():
  while true:                   # Run in an infinite loop to simulate multiple customers.
    wait(accessWRSeats)         # Try to get access to the waiting room chairs.
    if numberOfFreeWRSeats > 0: # If there are any free seats:
      numberOfFreeWRSeats -= 1  #   sit down in a chair
      signal(custReady)         #   notify the barber, who's waiting until there is a customer
      signal(accessWRSeats)     #   don't need to lock the chairs anymore
      wait(barberReady)         #   wait until the barber is ready
      # (Have hair cut here.)
    else:                       # otherwise, there are no free seats; tough luck --
      signal(accessWRSeats)     #   but don't forget to release the lock on the seats!
      # (Leave without a haircut.)

فیلسوفان خورنده به همراه توضیحات کامل و کد مسئله در ۶ زبان برنامه نویسی

philsophiaکد سورس  فیلسوفان خورنده به همراه توضیحات کامل

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

 

مساله اینطور است که این فیلسوف ها باید دو کار انجام دهند : ۱- فکر کنند ، ۲- بخورند با دو چنگال

وقتی فیلسوفی خوردنش تمام شد ، باید هر دو چنگال را رها کند و فیلسوف بعدی می تواند استفاده نماید.

در اصل ، ماکارونی و چنگال ها به عنوان Resource و فیلسوفان به عنوان Process یا Thread هستند.

یک الگوریتم حل اینست که:

گام ۱ : یک فیلسوف آنقدر فکر کند تا چنگال سمت چپ آزاد شود و آنرا بردارد.

گام ۲ : باز آنقدر فکر کند تا چنگال سمت راست آزاد شود و آن را بردارد.

گام ۳ : تا مقدار زمان خاص مثل کوانتوم یا Q از ماکارانی بخورد. ( اگر زمانبدی CPU از نوع 

  Round Robin باشد.)

گام ۴ :چنگال راست را رها کند . (Flush Right)

گام ۵ : چنگال چپ را نیز رها کند . ( Flush Left)

گام ۶ : برو به گام ۱٫

الگوریتم ضعیف بالا ، باعث میشود ما به deadlock برسیم. چرا ؟ چون فرض کنید همه فیلسوف ها بیایند و

چنگال سمت چپ را بردارند ، چون چنگال سمت راست هر فیلسوف ، چنگال سمت چپ فیلسوف دیگر است

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

فیلسوف دیگر است، آزاد شود ، و چون این حالت هیچگاه رخ نمیدهد ، به بن بست یا deadlock میرسیم

و سیستم عاملی که با این الگوریتم کار کند ، در این مورد ، به حالت Not Responding میرود.

در الگوریتم فوق حتی ممکن است گرسنگی منبع هم رخ دهد.

به هر حال ، راه حل هایی برای حل این بحران ارائه گردیده است که در زیر من به راه حل Conductor و

نیز راه حل Chandy/Misra اشاره میکنم :

راه حل اول  : Conductor یا راهنما

استفاده از یک خدمتکار یا waiter است که از تعداد چنگال های مانده و در حال استفاده آگاهی دارد ، هر

فیلسوفی که می خواهد ماکارونی بخورد، به خدمتکار میگوید تا برای خود نوبت بگیرد و سپس خدمتکار

چنگال را در اختیارش می گذارد . ( چنگال سمت چپ را به او میدهد)

واضح است که این همان سمافور است .

در سی شارپ برای استفاده از سمافور ها باید از کلاس زیر استفاده کرد :

System.Threading.Semaphore

راه حل دوم  : راه Chandy/Misra

اساس این الگوریتم روش Message Passing است ، یعنی فیلسوف ها با هم حرف بزنند یا به بیان تخصصی

هر Process به Process های جانبی خود ( حالا میتواند از PCB شماره ID آنها را بیابد ) یک پیغام و درخواست

برای انحصار منبع یا Resource Allocation بفرستد و آن پرسه ای که منبع را به انحصار خود در آورده است ، آنرا

آزاد نماید برای پرسه درخواست کننده.

الگوریتم به شرح زیر است :

گام ۱ :چنگال ها دو حالت دارند : ۱-کثیف ، ۲-تمیز

گام ۲ : هنگامیکه یک فیلسوف می خواهد از ماکارونی اش بخورد ، باید چنگال هایش را از فیلسوف 

 های اطرفش بگیرد ، پس به ازای هر چنگالی که ندارد ، به فیلسوف های کناری اش ، درخواست

 میدهد.

گام ۳ : وقتی یک فیلسوف ، پیغام  ، چنگال بده را دریافت میکند ، اگر چنگالش تمیز باشد ، آن را 

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

گام ۴ : بعد از اتمام خوردن یک فیلسوف ، همه چنگالهایش کثیف میشود ، اگر در صف 

درخواست ها ،چشم فیلسوف دیگری به چنگالهایش بود ، باید آن چنگال درخواست شده 

را تمیز کند و در اختیار  فیلسوف درخواست کننده منتظر در صف waiting  ، قرار دهد.

کپی برداری بدون منبع گناه بوده چون نویسنده رضایت ندارد

دانلود شبه مسئله فیلسوفان خورنده

دانلود کد مسئله به زبان C

دانلود کد سورس به زبان  C++

دانلود کد سورس به زبان C#

دانلود کد سورس به زبان F#

دانلود کد سورس به زبان جاوا

دانلود کد سورس به زبان Perl
منبع: www.wavesoft.ir

 

نکته هایی برای استفاده حرفه ای از فایرفاکس

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

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

firefox

اطلاعاتی در مورد فایرفاکس در techteach.ir

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

۱ – Restart کردن فایرفاکس

هیچ آیکون یا منویی برای Restart کردن فایرفاکس در واسط کاربری وجود ندارد. در حالی که در بسیاری از مواقع از جمله نصب افزونه ها این گزینه سودمند است و برای شما به شکل خودکار نمایش داده میشود. اما برای این کار به شکل دستی ابتدا Shift + F2 را فشار دهید و سپس در نوار فرمان که باز در پایین پنجره مرورگر باز میشود عبارت restart را وارد کرده کلید Enter را بزنید:

نکته هایی برای استفاده حرفه ای از فایرفاکس، حتی برای شما

۲ – باز کردن پوشه Profile فایرفاکس

دو گزینه برای باز کردن پوشه پروفایل فایرفاکس وجود دارد. یعنی پوشه ای که اطلاعات اساسی همچونBookmark ها، اغلب افزونه ها، تاریخچه وب گردی و مانند آن ذخیره شده است. روش اول این است که مجددا بر Shift + F2 را فشار داده و عبارت openprofile را وارد کنید و روش دوم این که در نوار آدرس عبارت about:support و سپس بر روی دکمه Show Folder کلیک نمایید:

نکته هایی برای استفاده حرفه ای از فایرفاکس، حتی برای شما

۳ – باز کردن فایرفاکس در حالت Safe Mode

حالت Safe Mode حالت ویژه ای از مرورگر است که در آن برخی ابزارها نظر افزونه ها غیر فعال هستند. این حالت به ویژه در زمانی که به دنبال عیب یابی مرورگر هستید به کار می آید، مثلا اگر اشکال از یک افزونه باشد، میتواند آن را شناسایی نمایید. برای ورود به حالت Safe Mode قبل از اجرای فایرفاکس، کلیدShift را بچسبید تا پیغامی مبنی بر اجرای مرورگر در حالت Safe Mode نمایش داده شود:

نکته هایی برای استفاده حرفه ای از فایرفاکس، حتی برای شما

اما اگر مرورگر در حال اجرا است، از منوی Help گزینه Restart with add-ons disabled را انتخاب کنید (اگر منو ها را نمی بینید، یک بار کلید Alt را فشار دهید).

۴ – استفاده از میانبرها

فایرفاکس چندی میانبر کاربردی دارد. اما این میانبرها پر کاربرد ترین و در عین حال کارآمد ترین آنها است:

باز کردن تب جدید : Ctrl + t

بزرگنمایی مثبت و منفی : Ctrl + و Ctrl –

بارگذاری مجدد صفحه یا Refresh بدون استفاده از Cache : Ctrl + F5

جستجو در صفحه : F3

باز کردن Download Manager : Ctrl + j

باز کردن Developer Tools : F12

۵ – افزونه Save File to

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

نکته هایی برای استفاده حرفه ای از فایرفاکس، حتی برای شما

۶ – شخصی سازی دسترسی به صفحات

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

همانطور که میبینید Permission ها بسیار کاربردی هستند. برای تنظیم آنها از منوی Tools گزینه Page info را انتخاب کنید و در پنجره ای که باز میشود به تب Permissions بروید:

نکته هایی برای استفاده حرفه ای از فایرفاکس، حتی برای شما

۷ – حذف منو های اضافی و بدون کاربرد

منو ها در مرورگر فایرفاکس گزینه های متعددی را نمایش میدهند. البته ما و شما از همه آنها استفاده نمی کنیم و به همه آنها هم احتیاج نداریم. افزونه Menu Wizard (اینجا) به شما کمک میکند تا منو های اضافی را از نوار منو و کلیک راست حذف کنید.

۸ – باز کردن چندین لینک به شکل همزمان

به شکل معمول شما در یک زمان تنها میتوانید یک لینک را در فایرفاکس و در صفحات وب باز کنید. اگر بر روی وب سایتی مانند تابناک مشغول خواندن اخبار هستید، میتوانید لینک چندین خبر را همزمان باز کنید. کافی است از افزونه ای مانند Multi Links (اینجا) و یا Snap Links Plus (اینجا) که با نسخه های اخیر فایرفاکس کاملا همخوان است، استفاده کنید.

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