Unified Extensible Firmware Interface


"رابط فرمویر توسعه پذیر یکپارچه" یا Unified Extensible Firmware Interface که به اختصار UEFI خوانده می شود مجموعه مشخصاتی است که یک رابط نرم افزاری بین سیستم عامل و فرمویر سخت افزار تعریف می کند. پس به عبارت بهتر UEFI رابطی بین فرمویر و سیستم عامل است. UEFI جایگزینی (یا مکملی) برای رابط BIOS است که در کامپیوتر های شخصی بر مبنای پلتفرم های IBM مورد استفاده قرار می گیرد.
قبل از شکل گیری UEFI ، "رایط فرمویر توسعه پذیر" (به انگلیسی: Extensible Firmware Interface - EFI ) توسط کمپانی اینتل ایجاد شده بود؛ در سال 2005 توسعه EFI به دلیل توسعه UEFI متوقف شد و الان این رابط جدید به وسیله ی اتحادی به نام "Unified EFI Forum" یا "UEFI Forum" متشکل از چندین شرکت بزرگ فناوری مانند ماکروسافت، اینتل، اپل، ای ام دی، ای بی ام، اچ پی و ... توسعه داده می شود.

رابطه بین EFI و UEFI :
مشخصات UEFI بر اساس مشخصات EFI 1.10 که کمپانی اینتل آن را منتشر کرده است و توسط UEFI Forum اصلاح شده است، می باشد. از این پس دیگر EFI توسعه پیدا نمی کند و مشخصات UEFI توسط فروم منتشر خواهد شد.
{ بایوس سسیستم ورودی-خروجی پایه کامپیوتر است که عهده دار پیکربندی اجزای مختلف کامپیوتر و همچنین راه اندازی سیستم عامل طی مراحی مختلف است که به اصطلاح "بوت" (boot) نامیده می شود. بایوس یک نرم افزار یا رابط سطح پایین است و در یک تراشه در درون مادربورد ذخیره شده است.}
UEFI محدود به هیچ معماری پردازنده خاصی نیست و میتواند بر روی رابط بایوس یا به جای آن، اجرا شود. چیزی که باید بدانید این است که حداقل فعلا قرار نیست این رایط به طور کل جایگزین بایوس شود. رابطی که به وسیله ی EFI تعریف می شود شامل جداول اطلاعاتی می شود که اطلاعات پلتفرم و سرویس های بوت و زمان اجرا که در اختیار بارگذار سیستم عامل (OS loader) و خود سیستم عامل است، را در بر میگیرند. فرمویر (سفت افزار) UEFI چندین مزیت دارد:
- قابلیت بوت (راه اندازی) از دیسک های خیلی بزرگ. (بالای 2 ترابایت) :
EFI علاوه بر استفاده از طرح پارتیشن بندی دیسک استاندارد، ازیک طرح جدید به نام "GUID Patition Table" استفاده می کند که از تمام محدودیت های boot sector محیط داس (مانند تعداد و اندازه ی پارتیشن دیسک) فارق است. { Boot sector یا "قطاع راه اندازی" بخشی از دیسک است که اطلاعات راه اندازی کامپیوتر را ذخیره می کند}
- بوت سریع تر.
- معماری مستقل از پردازنده.
- درایورهای مستقل از پردازنده.
- محیط انعطاف پذیرتر و قابلیت پشتیبانی از شبکه قبل از ورود به سیستم عامل.
- طراحی پیمانه ای یا بخش بخش.
به علاوه برخی از فناوری هایی که به عنوان ارتقای بایوس ایجاد شده اند (مانند "Advanced Configuration and Power Interface" که رابطی برای مدیریت انرژی و پیکربندی کامپیوتر توسط سیستم عامل است) در EFI نیز ارائه شده اند؛ البته بدون وابستگی به یک رابط زمان اجرای 16 بیتی.
وظیفه :
EFI دو وظیفه را انجام می دهد: سرویس های بوت و سرویس های "زمان اجرا". وظایف بوت، شامل کنسول های متنی و گرافیکی برای اجزای مختلف، گذرگاه ها، بلوک ها و خدمات فایل می شود. سرویس های "زمان اجرا" شامل سرویس های مانند دسترسی به زمان، تاریخ و حافظه ی NVRAM (حافظه ای غیر-فرار با دستیابی تصادفی برای نگهداری برخی اطلاعات کامپیوتر در هنگام خاموش بودن) می شوند. سرویس های بوت در محیط قبل از سیستم عامل و سرویس های زمان اجرا حتی در محیط سیستم عامل در دسترس هستند.

بیش از 10 سال از استفاده از EFI در کامپیوتر ها می گذرد. در ابتدا این رابط بر روی سرور ها و کامپیوتر های بزرگ استفاده می شدند و به تدریج جایگاه خود را بین سخت افزار های و سیستم عامل های کامپیوتر های شخصی باز کردند و حتی امروزه در معماری های غیر-PC مانند سیستم های تعبیه شده (Embedded Systems) بر مبنای معماری ARM نیز به کار میرود. در بخش سخت افزار، سازنده گان مادربورد امروزه محصولات مختلفی برمبنای این رابط ارائه داده اند.

یکی از مزایای EFI نسبت به بایوس، وجود رابط گرافیکی و پشتیبانی از موس است که شاید برای کاربرانی که با محیط داس آشنایی ندارند، خوشایند باشد و کار در آن را آسان تر کند. البته تمام سیستم هایی که این رابط را اجرا کرده اند دارای رابط های گرافیکی نیستند و اکثرا ظاهری شبیه به بایوس رایج دارند. یکی دیگر از تفاوت های بایوس و UEFI این است که بایوس محدود به پردازنده های 16 بیتی و یک مگابایت آدرس دهی حافظه است. ولی UEFI توانایی عمل کردن در حالت های 32 و 64 بیتی را دارا است که باعث می شود توانایی آدرس دهی مقدار بیشتری حافظه را داشته باشد و وظایف پیچیده تری را اجرا کند. همچنین میتواند معماری مستقلی داشته باشد و برای اجزایی نیز که مستقل از نوع پردازنده ای شما هستند، درایور ارائه دهد. نکته ی آخر اینکه UEFI نیز مانند BIOS در برابر ویروس ها و سایر بدافزارها آسیب پذیر است و نمیتوان گفت که امنیتی بالاتر یا پایین تر از آن دارد.

uefi.org
wikipedia.org
howtogeek.com

Control Unit


"واحد کنترل" (به انگلیسی: Control Unit ) به طور کلی به بخشی از یک سیستم گفته می شود که عملکرد سیستم را کنترل می کند. در مدار های مجتمع (IC) نیز عموما این بخش (یا بخش های مشابه) وجود دارند. در "واحد پردازش مرکزی" یا همان CPU ، واحد کنترل مجموعه ای مدار ها است که جریان اطلاعات در درون پردازنده و فعالیت بخش های دیگر را کنترل می کند. در حقیقت واحد کنترل، کنترل واحد پردازش مرکزی و به صورت کلی تر کنترل کامپیوتر را بر عهده دارد.
عملکرد واحد کنترل نسبت به معماری داخلی پردازنده متغییر است. از این رو که واحد کنترل عموما این معماری را در پردازنده ی CISC که کد های x86 (که دستورعمل های 32 بیتی هستند) را اجرا می کند، عملیات هایی مانند، Fetching (دریافت و بارگذاری دستورعمل ها)، decoding (رمز گشایی) ، مدیریت عملیات ها و ذخیره کردن نتایج بر عهده واحد کنترل هستند. در یک پردازنده با معماری RISC ، پردازنده علاوه بر این بایستی ترجمه ی دستورعمل های x86 به ریز دستورعمل های RISC ، زمان بندی این ریز دستورعمل ها بین واحد های پردازشی مختلف و هدایت خروجی های آنها به مکان صحیح را مدیریت کند. در این پردازنده ها ممکن است واحد کنترل به علت پیچیدگی وظایف و نحوه ی معماری داخلی، در بخش های دیگر (مانند "واحد زمان بندی" ) اذغام شود.

{ RISC مخفف عبارت Reduced Instruction Set Computer نام معماری پایه ریزپردازنده هایی است که برای اجرای عملیات های خاص و محدود بهینه سازی شده اند و در نتیجه سرعت بالایی در اجرای این عملیات های خاص دارند. پردازنده های بر پایه معماری ARM مثالی از این معماری پایه هستند.

CISC مخفف عبارت Complex Instruction Set Compuer نام معماری پایه پردازنده هایی است که در آنها یک دستورعمل می تواند چندین دستورعمل سطح پایین (مانند بارگذاری از حافظه یا یک عملیات حسابی) را اجرا کند و/یا قابلیت اجرای عملیات ها چند مرحله ای را داشته باشد. پردازنده های x86 مثالی از این نوع معماری پایه هستند. }  

pcguide.com

PCMark


به احتمال زیاد با نرم افزار PCMark آشنا هستید؛ اگر اینطور نیست... این نرم افزار به همراه "3DMark" ، دو نرم افزار تست و ارزیابی کامپیوتر هستند که هر دو به وسیله ی شرکت "Futuremark" ساخته شده اند و از معروف ترین های این زمینه و البته رایگان/تجاری هستند. هدف این نرم افزاز ارزیابی عملکرد اجزای کامپیوتر با قرار دادن آنها در فعالیت ها و تست های مختلف است. هنگامی که ارزیابی سیستم با PCMark را شروع میکنید این برنامه چندین و چند تست مختلف برای ارزیابی اجزای مختلف سیستم انجام می دهد و عملکرد کلی سیستم را با یک عدد به شما نشان می دهد. البته در صورت نیاز میتوانید نتیجه ارزیابی را به صورت مجزا و با جزئیات نیز مشاهده کنید. باز البته، تست ها و نتایج این نرم افزار با توجه به نسخه ای که استفاده می کنید می تواند متفاوت باشد. برای مثال "از چه نسخه ای از برنامه استفاده می کنید" یا "کدام ویرایش از یک نسخه را استفاده می کنید" و غیره. عددی که به عنوان عملکرد کلی کامپیوتر دریافت می کنید به خودی خود سودمند نیست و هنگامی کارایی و مفهوم دارد که آن را با عملکرد یک سیستم دیگر یا همین سیستم بعد از تغییرات سخت افزاری یا اورکلاک مقایسه کنید. (برای مثال رتبه ی عملکرد کلی کامپیوتر قدیمی من حدود 2350 و برای کامپیوتر جدید تر حدود 8300 بود). البته برای مقایسه دو کامپیوتر باید دو کامپیوتر را در شرایط نرم افزاری یکسان مقایسه کنید.
آزمون های این برنامه شامل قطعات مختلف کامپیوتر مانند پردازنده، حافظه، کارت گرافیک یا در کل پردازنده گرافیکی و هارد دیسک می شود و تست هایی از قبیل، تست سایه زنی و پردازش فیزیک، رمزنگاری فایل، رندرینگ صفحات وب، فشرده سازی صوت و کدینگ ویدئو، ویرایش متن، اکسترکت تصاویر، اسکن ویروس، سرعت خواندن و نوشتن و تاخیرهای هارد و حافظه (رم) و... را شامل می شود. که البته می توانید به صورت دستی و دلخواه نیز این تست ها را انتخاب کنید. فراموش نکنید برخی نسخه های این نرم افزار برای اجرای کامل تست های خود نیاز به نصب پیشنیازهایی مانند DirectX و Media Encoder دارند.

نسخه های مختلفی از برنامه هم در حال حاضر موجود است که هر کدام ویژگی های مختلفی دارند و نیازمند سیستم عامل های مختلفی نیز هستند. برای مثال PCMark2002 و PCMark04 از ویندوز XP و 2000 پشتیبانی میکنند (نسخه 2002 از ویندوز 98 نیز پشتیبانی می کند) و تقریبا از رده خارج شده اند. نسخه PCMark05 به سیستم عامل ویندوز XP و Vista و نسخه PCMark Vantage به سیستم عامل ویندوز Vista و 7 نیاز دارد و نسخه ی PCMark 7 برنامه که جدیدترین آنها است تنها از ویندوز 7 پشتیبانی می کند و برای برخی تست های خود به DirectX 11 نیاز دارد. این نسخه بیش از 25 تست مختلف بر روی اجزای سیستم در هفت حالت مجزا انجام می دهد. این نسخه در سه ویرایش Basic ، Advanced و Professional موجود است که ویرایش Basic رایگان است و طبیعتا کمترین قابلیت را دارد و از هفت حالت تست، تنها "حالت کلی" را انجام می دهد و ویرایش Professional قویترین ویرایش است و البته 995 دلار نیز هزینه دارد!

http://www.futuremark.com

Tom's Hardware


اگر به سخت افزار علاقه دارید و به دنبال منبعی برای آشنایی، تست و اخبار دنیای سخت کامپیوتر هستنید، سایت Tom's Hardware یکی از سایت های خبری جالب و معتبر در این زمینه است. این سایت توسط پزشک آلمانی به نام Tom Pabst در سال 1996 ایجاد شده و اکنون در اختیار کمپانی Bestofmedia Group یکی از ناشران بزرگ و انلاین محتوای فناوری در جهان، است. این سایت از بخش های مختلفی تشکیل شده و مجموعه ای از اخبار، مقالات، مقایسه کارایی و قیمت، ویدئو و بررسی سخت افزار و فناوری های مرتبط را در چند زبان ارائه می کند. دو سایت دیگر این کمپانی Tom's Guide و Tom's Gane هستند که در حوزه آموزش و بازی های ویدئویی هستند. 

Intel Turbo Boost & AMD Turbo Core


هر دو کمپانی اینتل و AMD فناوری های تقریبا مشابه ای را توسعه داده اند که می تواند در هنگام نیاز کارایی پردازنده هایشان را نسبت به حالت عادی افزایش دهد. در ادامه به طور مختصر با این دو فناوری آشنا می شویم.
Turbo Boost فناوری است که اینتل در برخی از پردازنده های جدید خود یعنی پردازنده های با معماری Nehalem و sandy bridge افزوده است و به پردازنده اجازه می دهد تا در هنگام نیاز به صورت پویا (یا دینامیک) از فرکانس کاری عادی خود فراتر رود و در فرکانس بالاتری فعالیت کند و در نتیجه کارایی کل پردازنده در محاسبات افزایش پیدا کند. این فناوری به نوعی Overclocking خودکار پردازنده است و به صورت پویا و خودکار انجام می شود و خارج از کنترل کاربر است. (تنها کاری که کاربر می تواند بکند فعال کردن / غیر فعال کردن این فناوری است). Turbo Boost در مواقعی فعال می شود (و بیشترین تاثیر را دارد) که پردازنده در حال اجرای پروسه های تک رشته ای باشد. یعنی پروسه هایی که نمی توانند از تمام هسته های پردازشی (در کل از تمام توان پردازشی) پردازنده استفاده کنند. در این هنگام به صورت خودکار هسته هایی موردنیاز نیستند غیرفعال شده و فرکانس هسته ای که بار پردازشی را برعهده دارد افزایش می یابد تا پروسه تک رشته ای زودتر انجام شود. البته این افزایش فرکانس نیز به توان ، گرما و هسته های پردازشی فعال پردازنده محدود می شود. در حالت کلی هر چه قدر که هسته های پردازشی فعال کمتری وجود داشته باشد ، امکان افزایش فرکانس هسته های پردازشی فعال، بیشتر می شود. 
فناوری Turbo Core شرکت ای ام دی نیز در کل کارایی مشابه ای دارد و مانند فناوری Turbo Boost هدفش افزایش توان پردازشی پردازنده در هنگام نیاز سیستم عامل است. برای مثال سوئیچ کردن خودکار از حالت یک پردازنده شش هسته ای با فرکانس های کاری عادی به یک پردازنده سه هسته ای با سه هسته Overclock شده در پروسه هایی که فرکانس کاریی برایشان مهمتر از تعداد هسته های پردازشی است. برای مثال سوئیچ از شش هسته با فرکانس های 3200 مگاهرتز به سه هسته با فرکانس های 3600 مگاهرتز که حالت دوم در بعضی مواقع میتواند کارایی بالاتری نسبت به حالت اول داشته باشد. فناوری Turbo Core نیز در بعضی از پردازنده های رده بالای ای ام دی مانند سری Phenom 2 به کار رفته است.باز هم ذکر می شود که عملکرد این دو فناوری کاملا پویا و خودکار است و به نیاز سیستم عامل و پروسه های در حال اجرا بستگی دارد.

QuickSort


مرتب سازی سریع یا QuickSort الگوریتمی برای مرتب سازی است که در سال 1960 توسط C.A.R Hoare دانشمند کامپپوتر انگلیسی ابداع شد. این روش به علت سرعت مناسب در لیست های بزرگ و پیاده سازی آسان بسیار مورد استفاده قرار می گیرد. در ادامه نگاهی به شیوه مرتب سازی و نحوه ی پیاده سازی این لگوریتم می اندازیم.
این الگوریتم برای مرتب سازی از متدی به نام "تقسیم و حل" استفاده می کند. به زبان ساده "تقسیم و حل" به معنی خرد کردن یک مسئله به اجزای کوچکتر (و ساده تر) و حل اجزای ساده است و در نهایت به وسیله حل تمام اجزای ساده به حل کل مسئله می رسیم. در مرتب سازی سریع نیز لیست یا آرایه عناصر مورد نظر را در هر مرحله به قطعات کوچکتر تقسیم می کنیم و سپس عملیات مورد نظر را روی آنها انجام می دهیم.

در اولین قدم، یک عنصر دلخواه از لیست را انتخاب می کنیم (بهتر است این عنصر از خانه های وسط لیست باشد)؛ به این عنصر به "عنصر محوری" یا "Pivot element" معروف است. در قدم بعدی تمام عناصر کوچکتر از Pivot را به طرف چپ آن منتقل می کنیم. به این ترتیب تمام عناصر بزرگتر از Pivot نیز به طرف راست آن منتقل خواهند شد. تمام عملیات مرتب سازی سریع از تکرار این دو مرحله تا پایان حاصل می شود. خب گفیتم که تمام عناصر کوچکتر را به طرف چپ و تمام بزرگتر ها را به طرف راست Pivot آوردیم. با این کار لیست اولیه ما به دو لیست کوچکتر تقسیم خواهد شد. می توانیم آنها را لیست چپ و لیست راست بنامیم. برای مرتب سازی کامل لیست کافی است دو باره دو مرحله بالا را برای لیست چپ و لیست راست تکرار کنید . یعنی از هر دو لیست به ترتیب یک عنصر به عنوان عنصر Pivot انتخب کنید و دو باره عناصر کوچکتر را به چپ و عناصر بزرگتر را به سمت راست Pivot منتقل کنید. هر بار که این کار را تکرار کنید لیست های چپ و راست هر کدام به دو لیست کوچکتر تقسیم می شوند که دو باره می توانید آنها را چپ و راست بنامیم.

در هر مرحله عنصر Pivot در مکان صحیح و نهایی خود قرار می گیرد و باید مراحل بالا را تا زمانی که لیست چپ و راست بیش از یک خانه (یا عنصر) دارند ادامه دهید. هنگامی که دیگر لیست های چپ و راست مرحله آخر هر کدام یک خانه دارند دیگر کل لیست مرتب شده است و نیازی نیست عملیات مرتب سازی ادامه پیدا کند.

پس به طور خلاصه سه کار را در هر مرحله انجام می دهیم، ابتدا یک عنصری دلخواه از لیست را انتخاب می کنیم که به آن عنصر محوری یا Pivot گفته می شود. سپس عناصر کوچکتر از Pivot را به طرف چپ آن منتقل می کنیم. لیست به دو بخش از (ابتدا تا Pivot-1 ) و از ( Pivot+1 تا انتها) ( عنصر Pivot دیگر تغییر نخواهد کرد) تقسیم شده است. در مرحله بعد، دو مرحله ی قبل را برای هر دو بخش جدید تکرار می کنیم.
برای اینکه عناصر کوچکتر از Pivot را به سمت چپ آن منتقل کنید از روش های مختلفی می توانید استفاده کنید ولی یکی از بهترین ها روش زیر است :
عنصر Pivot را به انتهای لیست منتقل کنید. ( جای Pivot و خانه ی آخر لیست را عوض کنید)
یک متغیر به نام دلخواه ( برای مثال position ) برای نگه داری مکان فعلی بررسی تعریف کنید و مقدار اولیه آن را ایندکس خانه ابتدای لیست قرار دهید.
از ابتدا تا انتهای لیست اگر هر عنصر کوچکتر از Pivot بود ، آنگاه جای آن را با عنصر خانه ی position عوض کنید و یک واحد به position اضافه کنید.
به زبان برنامه نویسی ( a[ ] لیست مورد نظر است) : if (a[i] < Pivot) swap (a[position++] , a[i])
در آخر جای Pivot (که همان خانه ی آخر لیست است) را با خانه ی position عوض کنید. (دقت کنید که position ایندکس خانه است نه مقدار آن)
با انجام این مراحل تمام عناصر کوچکتر از Pivot به سمت چپ و تمام بزرگتر ها به سمت راست آن منتثل می شوند.
wikipedia.org

Advanced Encryption Standard


"استاندارد رمزنگاری پیشرفته" که به اختصار AES نامیده می شود یک استاندارد و معیار برای رمزنگاری اطلاعات دیجیتال است. الگوریتم رمزنگاری AES (که ابتدا ریجیندل یا Rijndeal نامیده می شد) به وسیله ی دو دانشمند بلژیکی به نام های Vincent Rijmen و Joan Daemen طراحی شده است و به وسیله ی سازمان های دولتی برخی از کشور ها از جمله سازمان امنیت ملی آمریکا (NSA) تصدیق و استاندارد شده است و اکنون به صورت گسترده در نرم افزار های کاربردی استفاده می شود.
AES بر پایه ی یک قاعده ی طراحی که "شبکه جایگزینی-جایگشت" (Substitution-permutation network) نامیده می شود طراحی شده است. AES هم در نرم افزار و هم در سخت افزار سریع عمل می کند و برخلاف استاندارد پیشین خود یعنی DES از "شبکه فیستل" (Feistel network) استفاده نمی کند. حال این دو قاعده طراحی چیستند؟ برای ادامه دادن بحث استاندارد AES بایستی مقدمات علم رمز شناسی را بدانیم پس ابتدا به سراغ مفاهیم پایه آن میرویم. پس فعلا AES را فراموش کنید.

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

Plaintext و Ciphertext :
منظور از plaintext همان محتوای اولیه یا ورودی برای رمزنگاری است که به صورت قابل درک و فهم برای انسان است و منظور از ciphertext محتوای رمزنگاری (امن) شده است که باید برای قابل فهم و استفاده بودن رمزگشایی شود.

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

الگوریتم های کلید متقارن - Symmetric-Key algorithm :
الگوریتم های کلید متقارن، کلاسی از الگوریتم ها در کریپتوگرافی هستند که از کلید های رمز یکسان (یا مرتبط) برای رمزگذاری و رمزگشایی استفاده می کنند.

الگوریتم های کلید نامتقارن - Asymmetric-Key algorithm :
برخلاف الگوریتم های متقارن اینگونه الگوریتم ها از دو کلید یکی برای رمز گذاری و یکی برای رمزگشایی محتوا استفاده می کنند و به کلید های "عمومی" (public) و "خصوصی" (private) معروف هستند.

Cipher :
Cipher یا Cypher الگوریتمی است که برای رمزنگاری یا رمزگشایی به کار می رود. پس اگر الگوریتم است باید شامل مراحل و قدم هایی تعریف شده و منظم باشد تا بتوان مانند یک رویه آن را دنبال کرد. دقت کنید که برخی از مفاهیم رمز شناسی تقریبا معانی مشابه دارند ولی ممکن است در برخی مواقع معانی تفاوت های کوچکی با هم داشته باشند. برای مثال code ، cipher و encipherment ممکن است به جای یکدیگر به کار روند.

سایفر می تواند به دو بخش block cipher و stream cipher تقسیم شود.
Block cipher :
block cipher یک الگوریتم کلید متقارن است که روی گروهی با طول ثابت از بیت ها که "بلوک" نامیده می شود، به صورت تبدیلات یکنواخت عمل می کند. یک اگلوریتم رمزگذاری بلاک سایفر برای مثال ممکن است یک بلوک 128 بیتی متن را به عنوان ورودی دریافت کند و یک خروجی متناظر 128 بیتی را تحویل دهد. تغییر روی ورودی به وسیله ی یک ورودی دوم که یک کلید مخفی است کنترل می شود. رمز گشایی نیز به صورت مشابه خواهد بود.
Affine Transformation تبدیلی که شامل ضرب در یک ماتریس همراه با جمع با یک بردار است.

Array مجموعه قابل شمارش از چیزهای مشابه ( مثلا آرایه ای از بیت ها).

Bit عددی باینری که دارای یکی از مقادیر 0 یا 1 است.

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


Byte گروهی از هشت بیت که به هر دو صورت 1- آرایه ای از هشت بیت منفرد یا 2- یک واحد تک، رفتار می کند.


Cipher Key کلید سری و رمزنگارانه که به وسیله "جریان توسعه کلید" برای تولید مجموعه ای از کلید راند ها بکار می رود.

Ciphertext داده خروجی از Cipher یا ورودی Inverse Cipher.

Inverse Cipher سری هایی از تبدیلات که با استفاده از کلید رمز، متن رمزی را به متن اصلی تبدیل می کنند.
Key Expansion جریانی که برای تولید یک سری از کلید راند ها از کلید رمز بکار می رود.

Plaintext داده ورودی به Cipher یا خروجی Inverse Cipher .

Rijndael الگوریتم رمزنگاری که در استاندارد رمزگذاری پیشرفته (Advanced Encription Standard (AES)) بکار رفته است.

Round Key کلید راندها مقادیری هستند که از کلید رمز و با جریان توسعه کلید بوجود می آیند. در Cipher و Inverse Cipher آن ها به حالت (State) اعمال می شوند.

State متوسط ​​نتیجه رمزنگاری که می تواند مانند آرایه ای مستطیلی از بایت ها نمایش داده شود که دارای 4 سطر و Nb ستون است.( در ادامه به بیان Nb خواهیم پرداخت).

S-box جدول تعویض غیر خطی که در چندین تبدیل تعویض بایتی و در روال توسعه کلید برای ایجاد یک جانشینی یک به یک برای مقدار یک بایت بکار می رود.

Word گروهی از 32 بیت که می توانند به صورت یک آرایه چهار بیتی یا بصورت منفرد عمل کنند.

ادامه در قسمت دوم ...

Intel Quick Sync Video



فناوری Quick Sync شرکت اینتل کار ساخت، ویرایش، تطابق و اشتراک ویدئو های شما را در خانه و به صورت آنلاین بدون به نیاز به صرف هزینه اضافی برای سخت افزار، تسریع می کند.
Quick Sync که در نسل دوم پردازنده های Core ارائه شده یک پیشرفت انقلابی در شتاب دهی سخت افزاری است که به شما امکان می دهد کاری که چند ساعت طول می کشد در چند دقیقه انجام دهید. ایجاد دیسک های DVD و Blu-ray ، ویرایش و تبدیل فایل های ویدئویی، آپلود فایل ها در اینترنت و .. همه با صرف کمترین زمان. کامپیوتر های شخصی دارای این فناوری می توانند با سرعت بسیار بیشتری نسبت به کامپیوتر های فاقد این فناوری فایل های ویدئویی را به یکدیگر تبدیل کنند. فایل های ویدئویی معمولا به صورت یک فرمت خاص فشرده و رمزنگاری و بر روی وسایل ذخیره سازی ذخیره می شوند. هنگامی که می خواهید ویدئوی خود را ببینید یا آن را به فرمت دیگری تبدیل کنید باید فایل ابتدا رمزگشایی و سپس دوباره رمزنگاری شود و این پروسه در بسیاری مواقع وقت گیر و سنگین است. فناوری Quick Sync رمزگذاری و رمزگشایی محتوای ویدئویی را سرعت می دهد و همچنین پردازنده را برای انجام کارهای دیگر نیز آزاد می گذارد و بنابراین عملکرد کلی سیستم را افزایش می دهد. این فناوری در حال حاضر به همراه پردازنده های sandy bridge اینتل عرضه می شود و برای استفاده از آن بایستی مادربورد شما قابلیت استفاده از گرافیک مجتمع را داشته باشد و نرم افزار های شما نیز این فناوری را پشتیبانی کند. 
منبع : intel.com

Fraps



Fraps یک نرم افزار ارزیابی ، ضبط ویدئویی ریل تایم و گرفتن عکس از صفحه نمایش (اسکرین شات) از برنامه های کاربردی استفاده کننده از directX و openGL می باشد. برای مثال از این برنامه می توان برای تعیین عملکرد کامپیوتر در یک بازی ویدئویی (فریم سنجی) و ضبط بلادرنگ آن استفاده کرد و در هنگام نیاز از بازی عکس یا "اسکرین شات" تهیه نمود. کدک ویدئویی Fraps تقریبا "بی اتلاف" یا Lossless می باشد و می تواند با کمترین تداخل در عملکرد بازی، خروجی آن را ضبط کند.  در نظر داشته باشید که این "بی اتلاف" بودن باعث می شود که این کدک، فشرده سازی زیادی نداشته باشد و در صورتی که کیفیت و نرخ فریم ویدئوی شما بالا باشد، حجم فایل های ضبط شده بسیار بالا روند.
تنظیمات سه قابلیت برنامه در سه تب FPS ، Movies و Screenshots در دسترس هستند. 
FPS : در این تب تنظیماتی از قبیل تعیین کلید میانبر برای شروع ارزیابی (Benchmark) ، مدت زمان و محل ذخیره ی بنچمارک و اطلاعاتی که برنامه باید در طول ارزیابی تهیه کند، قابل دسترسی هستند.
Movies : محل ذخیره فیلم های تهیه شده ، کلید میانبر برای شروع ضبط ، تعیین نرخ فریم ویدئوی خروجی ، تعیین خروجی صدا از تنظیماتی هستند که در این قسمت برای شما قابل اعمال هستند.
Screenshots : محل ذخیره اسکرین شات ها، کلید میانبر ، فرمت اسکرین شات ها و زمان تهیه خودکار اسکرین شات را در این قسمت می توانید به دلخواه مشخص کنید.
در تب General اطلاعاتی در مورد برنامه و محدودیت های نسخه رایگان و رجیستر نشده برنامه ذکر شده است. محدودیت های مهمی مانند "ضبط ویدئو حداکثر 30 ثانیه" و "تهیه اسکرین شات تنها در فرمت BMP" که برای رفع آنها باید هزینه حدود 40 دلاری برنامه را بپردازید یا از نسخه های رجستر شده استفاده کنید. برنامه ی فرپس را میتوانید از آدرس www.fraps.com دریافت کنید.

IOPS


IOPS (Input/Output Operation per Second) یا "آی آپس" یکی از سنجش های عملکرد متداول می باشد که برای ارزیابی وسایل ذخیره سازی کامپیوتر مانند هارد دیسک ها (HDD) ، درایو های حالت جامد (SSD) و شبکه های ذخیره سازی محلی (SAN) به کار می رود. اعداد IOPS که به وسیله ی سازندگان وسایل ذخیره سازی برای محصولاتشان منتشر می شود، دقیقا همان عملکرد را در هنکام کار واقعی (خارج از محیط آزمایشگاهی) را تضمین نمی کند. IOPS میتواند به وسیله ی نرم افزار هایی lometer ، IOzone یا FIO سنجیده و محاسبه شود.
متداول ترین مشخصه های اندازه گیری عملکرد، عملیات های "ترتیبی" و "تصادفی" هستند. عملیات ترتیبی (Sequential) به دست یابی به موقعیت های مشخص در وسیله ذخیره سازی به صورت پیوسته و مرتب و اغلب با حجم بالای انتقال داده ها (برای مثال 128 کیلوبایت) اشاره دارد. عملیات تصادفی (Random) نیز به دست یابی به موقیت های مورد نظر در وسیله ذخیره سازی به صورت غیر ترتیبی و تصادفی و اغلب با حجم پایین انتقال اطلاعات (برای مثال 4 کیلوبایت) اشاره دارد. چند شاخص معمول عملکرد عبارتند از :
Total IOPS : تعداد کل عملیلت های ورودی-خروجی در یک ثانیه.
Random Read IOPS : تعداد میانگین عملیات های خواندن ورودی-خروجی تصادفی در یک ثانیه.
Random Write IOPS : تعداد میانگین عملیات های نوشتن ورودی-خروجی تصادفی در یک ثانیه.
Sequential Read IOPS : تعداد میانگین عملیات های خواندن ورودی-خروجی ترتیبی در یک ثانیه.
Sequential Write IOPS : تعداد میانگین عملیات های نوشتن ورودی-خروجی تصادفی در یک ثانیه.
wikipedia.org

Cocktail sort

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

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

wikipedia.org

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


(توجه : این نوشته در مورد موتور های جست و جو مانند Webkit و .. که هسته ی جست و جوی و رندر مرورگر های اینترنتی هستند، نیست)

در مرورگر های اینترنتی در کنار نوار آدرس (AddressBar) قسمتی وجود دارد که می توانید از طریق آن به طور مستقیم واژه یا عبارت موردنظر خود را با موتور های جست و جو (سایت هایی که موتور جست و جو دارند) معروف مانند google ، Yahoo ، wikipedia ، Amazon ، Bing و .. جست و جو کنید. این چند سایت معروف به طور پیشفرض توسط مرورگر انتخاب شده اند ولی این قابلیت وجود دارد که شما نیز موتور جست و جوی دلخواه خود را به این لیست اضافه کنید و از این پس سریعتر به آنها دسترسی داشته باشید.

برای اضافه کردن موتور جست جو در سایت مورد نظر (برای مثال سایت IMDb ) روی قسمت جست و جو کلیک راست کنید و گزینه Create Search را کلیک کنید. با اینکار صفحه ای برای شما باز می شود که می توانید در آن می توانید نام ، آدرس ، کلید میانبر و چند تنظیم دیگر را برای موتور جست و جو اعمال کنید (دقت کنید که نام و آدرس موتور به طور پیشفرض کامل می شوند). پس از زدن کلید Ok این موتور به لیست موتور های جست و جوی مرورگر اضافه می شود و از این به بعد می توانید آن را در آخر لیست موتور های جست و جو پیدا کنید.

Lucid Virtu


Lucid Virtu فناوری جدیدی است که توسط شرکت اسرائیلی - آمریکایی LucidLogix برای تعامل با واحد پردازش گرافیکی یا GPU در کامپیوتر شخصی ارائه شده است. این فناوری که اکنون فقط در مادربورد ها با تراشه Z68 اینتل قابل استفاده است قادر است به صورت پویا (دینامیک) در هنگام نیاز بین گرافیک مجزا و گرافیک مجتمع کامپیوتر سوئیچ کند. حتما می دانید که چندی از CPU های جدید دارای یک تراشه گرافیکی هستند که می تواند نیاز به کارت گرافیک را در کامپیوتر بر طرف کند. این تراشه گرافیکی یا همان GPU در داخل واحد پردازش مرکزی قرار گرفته است و می تواند نقش کارت گرافیک را در کامپیوتر ایفا کند و به آن گرافیک مجتمع گفته می شود. از مزایای استفاده از گرافیک مجتمع می توان به مصرف پایین انرژی و حذف هزینه کارت گرافیک از کامپیوتر اشاره کرد. ولی نکته این جاست که هر چند که گرافیک مجتمع برای کارهای معمولی و سبک مانند استفاده از اینترنت و رمزگشایی فایل های تصویری بسیار مناسب هستند ولی هنوز توانایی انجام فعالیت هایی مانند بازی ها و کارهای گرافیکی سنگین را ندارند و برای انجام چنین کارهایی حتما نیاز به کارت گرافیک مجزا دارید.
در این جا فناوری Virtu وارد میدان می شود و به صورت پویا هنگامی که نیازی به پردازشات سنگین وجود ندارد بار پردازش را به عهده گرافیک مجتمع می گذارد و هنگامی که بار پردازش بیش از توان گرافیک مجتمع شد گرافیک مجزا را به کار می گیرد. با این کار در مصرف انرژی تا حد زیادی صرفه جویی می شود. همانگونه که گفته شد این فناوری تا کنون فقط با چیپست z68 قابل استفاده است و برای این کار باید نرم افزاری که شرکت Lucid ارائه کرده را به همراه هر دو درایور گرافیک های مجتمع و مجزا، نصب کرده باشید تا از این قابلیت بهره ببرید. برای اطلاعات بیشتر می توانید به سایت شرکت سازنده و شرکت اینتل مراجعه کنید.

HJ-Split


HJ-Split یک برنامه بسیار کم حجم و رایگان برای تکه تکه کردن (split) و به هم چسباندن فایل ها (join) است. این برنامه را می توانید از سایت hjsplit.org دریافت کنید. این برنامه نیاز به نصب ندارد و با باز کردن برنامه می توانید در بخش Split فایل مورد نظر خود را انتخاب کنید و پس از مشخص کردن حجم قسمت ها (پارت ها)، برنامه فایل شما را به پارت هایی با حجم تعیین شده تبدیل می کند. در قسمت Join می توانید فابل های تکه تکه را به هم بچسبانید و یک فایل یک تکه و کامل تحویل بگیرید. برای این کار، قسمت یا پارت اول فایل خود را به برنامه وارد می کنید و سپس برنامه بقسه قسمت ها را (در صورت وجود در یک پوشه) به صورت خودکار به آن اضافه می کند و فایل کامل را تحویل می دهد. دو قابلیت دیگر در برنامه Compare و Checksum است که اولی برای مقایسه دو فایل جهت "یکسان بودن" و دومی برای مشخص کردن خطا های به وجود آمده در تبدیل، انتقال و محاسبات فایل ها است.



Matroska

 

Matroska (ماتروسکا) یک قالب "استاندارد باز" (استاندارد عمومی و باز جهت دستیابی عموم مردم) است که می تواند تعداد نامحدودی تصویر، صوت، عکس و متن را در خود (در یک فایل) نگهداری کند. هدف ایجاد این قالب، ارائه ی یک قالب جهانی و همه گیر برای نگهداری و انتشار محتواهای چند رسانه ای معمول مانند فیلم ، ویدئو و موزیک و صوت است و در بخش های ویدئو (.mkv) ، صوت (.mka) ، زیرنویس (.mks) و ویدئویی سه بعدی (توهم سه بعدی) (.mk3d) ایجاد و ارائه شده است.
ماتروسکا در مفهوم شبیه دیگر قالب های محتوا مانند AVI ، MP4 و ASF است ولی به صورت کاملا "باز" یا Open در مشخصات. همانگونه که گفته شد انواع فایل های ماتروسکا شامل MKV برای ویدئو (همراه با صوت و زیر نویس) ، MKA برای صوت ، MKS برای زیر نویس و MK3D برای ویدئوهای سه بعدی (ویدئو ها با تکنیک برجسته نگاری یا Stereoscopy ). در توسعه ماتروسکا از قالب EBML -Extensible Binary Meta Language یا "ابر زبان باینری قابل تعمیم" به جای قالب باینری استفاده شده است. برخی از اهداف تیم توسعه دهنده ی این قالب محتوا عبارتند از :
- توسعه یک قالب محتوای نوین، انعطاف پذیر، قابل توسعه و چند سکویی.
- پشتیبانی قوی از "جریان" ها یا استریمینگ.
- توسعه ابزارهای برای ایجاد و ویرایش فایل های ماتروسکا.

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

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

بسیاری از برنامه های مولتی مدیا رایج این قالب را پشتیبانی می کنند که معروف ترین آنها شامل jetaudio ، km player ، media player classic ، power dvd ، all player و .. می باشند. همچنین بسیاری از برنامه های تبدیل و ویرایش فایل های چند رسانه ای قابلیت پشتیبانی از ماتروسکا را دارند. در بخش سخت افزار نیز بسیاری از تولید کنندگان بزرگ مانند LG ، Sharp ، Samsung ، Asus ، nokia و ... به پشتیبانی از این فرمت در برخی از محصولات خود روی آورده اند. ماتروسکا یک قالب باز یا open است بدین معنی که مشخصات و استاندارد های تخصصی خود را در اختیار عموم قرار داده است و بدین ترتیب راه برای توسعه آن برای همه علاقه مندان باز است. از ویژگی های فرمت های ماتروسکا فشرده سازی بالا فایل ها است و از این لحاظ مانند فرمت های divx و avi انتخاب خوبی برای فرمت فایل ها هستند.

wikipedia

Format Factory



در پست های قبل در مورد برنامه ی Format Factory توضیحاتی داده و این برنامه را معرفی کرده بودم ولی دیدم بد نیست یک بار دیگه به صورت کاملتر این برنامه ی بسیار بسیار مفید و کاربردی را برای شما معرفی کنم. برنامه ی format factory یا به فارسی "کارخانه ی قالب" یک مبدل رایگان و قدرتمند برای تبدیل بسیاری ازفایل ها به یکدیگر است. در همین ابتدا نکته ی مهم این است که این برنامه همین طور که گفته شد کاملا رایگان است و بنابراین برای استفاده از آن هیچ مشکلی اعم از مشکلات قانونی، شرعی، وجدانی، کرک و سریال و تمام شدن تاریخ اعتبار ندارید. نکته ی دیگری که در این جا لازم است به آن اشاره کنم این است که شاید مقایسه یک برنامه رایگان با یک برنامه تجاری کار درستی نباشد، برای مثال شاید format factory قویترین برنامه تبدیل فرمت نباشد ولی "رایگان بودن"، نقطه ی قوت این گونه برنامه ها در مقابل برنامه های تجاری است. البته این برنامه هم در حد و اندازه های خود بسیار عالی کار کرده است. خب با ذکر این مقدمه به سراغ بررسی این برنامه می رویم.
روش کار این برنامه به صورت زیر است :
- انتخاب فرمت خروجی
- انتخاب فایل های مورد نظر برای تبدیل
- انجام تغییرات تخصصی در فرمت خروجی در صورت نیاز (تغییر اندازه- نرخ فریم - کیفیت و ...) و انتخاب محل خروجی برنامه ( به طور پیش فرض پوشه my document )
- شروع تبدیل ( کلید start )
برنامه چه خروجی هایی را می تواند ارائه دهد ؟
تصویری :
AVI, 3GP, RMVB, GIF, WMV, MKV,MPG, VOB, MOV, FLV, SWF, MP4
صوتی :
MP3, WMA, FLAC, AAC, MMF, AMR, M4A, M4R, OGG, MP2, WAV, WavPack
عکس :
JPG, PNG,ICO,BMP,GIF,TIF,PCX,TGA
دیسک و ایمیج :
DVD to Video File
Music CD to Audio File
DVD/CD to ISO/CSO
ISO <-> CSO

دیگر قابلیت های برنامه :
- join یا به هم چسباندن فایل های ویدئویی و صوتی چند قسمتی؛ همراه با تغییر فرمت آنها در صورت دلخواه
- نمایش اطلاعات کامل یک فایل در قسمت media file info
- ترکیب و ادغام فایل های تصویری و صوتی در قسمت mux
- وجود قسمت mobile devices در قسمت video files برای انتخاب برند و مدل گوشی در صورتی که فایل های خود را برای پخش در گوشی تلفن همراه تبدیل می کنید. دراین صورت برنامه تنظیمات تخصصی هر فرمت را مطابق با نوع گوش شما تغییر می دهد تا بهترین عملکردرا در گوشی خود داشته باشد.
- پشتیبانی از زبان های مختلف از جمله فارسی.
- امکان ذخیره ی تنظیمات تخصصی اعمال شده.(شخصی سازی فرمت)

K-Multimedia Player



"K-Multimedia Player" یا KMplayer یک برنامه ی بخش مولتی مدیا بسیار قوی و نسبتا کم حجم است که توسط Pandora TV توسعه داده می شود. این برنامه توانایی پخش طیف وسیعی از فرمت های صوتی و تصویری را دارا است که از مهمترین آنها می توان به VCD ، DVD ، AVI ، MKV ، Ogg ، 3GP ، MPEG 1/2/4 ، WMV ، FLV ، Quick Time اشاره کرد. توانایی این برنامه باعث شده است که بسیاری از افراد KMplayer را به عنوان نرم افزار اصلی پخش فرمت های صوتی و تصویری خود انتخاب کنند و این در حالی است که حجم این نرم افزار به 20 مگابایت هم نمی رسد و مقایسه این برنامه با دیگر برنامه های بخش مولتی مدیا مانند Windows Media Player به سادگی دلیل این انتخاب را مشخص می کند. ویژگی بعدی این برنامه پشتیبانی از زبان های مختلف از جمله فارسی است و از همه مهمتر این که این برنامه رایگان است و این خود باعث می شود که نگاه ما به آن متفاوت شود.
دیگر ویژگی های این برنامه پشتیبانی از زیر نویس ها و ضبط صدا، تصویر و اسکرین شات و اسکین های مختلف است و قادر است افکت های صوتی و تصویری بسیاری را هنگام پخش اعمال کند و همچنین سرعت پخش را تغییر دهد و بسیاری دیگر از قابلیت های کاربردی که دیگر برنامه های تجاری و بزرگ دارند را در اختیار شما قرار دهد. KMP برای سیستم عامل ویندوز ایجاد شده است و هم اکنون تا نسخه ی 3 به پیش رفته است. در زیر با چند قابلیت دیگر این برنامه و فایل های پشتیبانی شده توسط آن آشنا می شویم :
- پخش فایل های AVI ناقص یا آسیب دیده.
- پشتیبانی از DirectShow (یک چهارچوب چندرسانه ای و API برای اجرای عملیات های مختلف بر روی فایل های رسانه ای و جریانی )
- استفاده از کدک های برنامه های دیگر مانند RealPlayer و QuickTime برای باز کردن فایل های مختلف (در صورت نصب بودن آنها)
- پخش DVD و فایل های ایمیج VCD (BIN_ISO_IMG_NRG) و سی دی صوتی
- ادوبی فلش - FLC - FLI
- فایل های عکس مانند JPEG ، BMP و ... و فایل های ایمیج مانند PNG و GIF و ..
- زیر نویس SRT , RT , SUB , TXT , USF و ... و لیست پخش LINK, WAX, ASX, ZIP ,RAR و ...
- پشتیبانی از استریم های ورودی به وسیله HTTP
- پشتیبانی از پلاگین های ورودی Winamp
- دیگر فایل شامل: FLAC, M4A, AAC, MKA, MID, DIVX, M4V, TS, VOB, OGM, MOV, FLV و ...

ویکی پدیا . 

http://www.kmplayer.com

Bjarne Stroustrup


"بیارنه استراستروپ" (متولد 30 اکتبر 1950 ) دانشمند علوم کامپیوتر اهل دانمارک است که بیشتر به خاطر توسعه زبان برنامه نویسی پر کاربرد C++ شناخته شده است. وی هم اکنون پروفسور و سرپرست دانشکده مهندسی در علوم کامپیوتر دانشگاه A&M تگزاس است. وی ابتدا مدرک کارشناسی ارشد خود را در رشته ی ریاضیات و علوم کامپیوتر از دانشگاه "Aarus" دانمارک و سپس دکتری خود را از دانشگاه کمبریج انگلستان دریافت کرد. بیارنه در طول عمر خود در چند سازمان و موسسه ی بزرگ فعالیت داشته که از جمله انها می توان به "انجمن ماشین های محاسب ACM " ، "انستیتوی مهندسان برق و الکترونیک" و "آزمایشگاه های بل" اشاره کرد.

او در سال 1979 ایجاد و توسعه زبان C++ را آغار کرد که زبانی متاثر و دنباله رو زبان C بود که خود در دهه ی 70 در آزمایشگاه های "بل" به وجود آمده بود. زبان c++ بعد از آن توسط گروه های مختلفی توسعه داده شد و سپس توسط "مرکز استاندارد های ملی آمریکا" به صورت استاندارد درامد. وی همچنین چند کتاب نیز در همین زمینه تالیف کرده است که کتاب "برنامه نویسی: اصول و تمرین C++ " یکی از آنها است.

Merge Sort


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

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

منبع : ویکی پدیا


Intel Smart Response Technology - SRT


اینتل یکی از معدود تولید کنندگان کنترلرهای حالت جامد است و محصولات حرفه ای پسندی تولید می کند. طبیعتا SSD ها (درایو های حالت جامد) هنوز به عنوان محصولات حرفه ای به شمار می روند و کارایی بسیار بالاتری نسبت درایو های سخت رایج ارائه می دهند. ولی درایو ها ی سخت بسیار خوش قیمت تر از SSD ها هستند و در قیمت های یکسان ظرفیت ذخیره سازی بسیار بیشتری را در اختیار کاربر قرار می دهند. بهبود فناوری می توان این هزینه ها را برای SSD ها پایین بیاورد ولی همین کاهش قیمت می تواند برای HDD ها هم اتفاق بیافتد.
فناوری حالت جامد به دو طریق تجربه کاربری کاربر را بهبود می دهد، شما می توانید "ببینید" و "احساس کنید". می گویند دیدن، باور کردن است و نمی توان آن با نمودار و مدرک نشان داد. SSD ها در حال حاضر سرعتی در حدود 500 مگابایت بر ثانیه را ارائه می دهند که سه برابر سریعترین HDD های امروزی است.
با ذکر این مقدمه در باره ی SSD ها ، تکنولوژی (فناوری) جدید اینتل به نام Smart Response  یا SRT یک تکنولوژی ذخیره سازی سریع کشینگ است که کارایی کامپیوتر را افزایش می دهد. این فناوری به کاربر اجازه می دهد که از یک SSD به عنوان یک حافظه کش (Cache) بین حافظه سیستم و هارد دیسک استفاده کند. به دلیل اینکه SSD سرعت بالاتری نسبت به هارد دیسک دارد سرعت انتقال اطلاعات بین حافظه کامپیوتر و هارد دیسک را افزایش می دهد به این ترتیب که اطلاعات مورد نیاز حافظه قبلا در SSD ذخیره می شوند و در موقع نیاز به سرعت به حافظه منتقل می شوند. این فناوری در حال حاضر برای تراشه Z 68 اینتل طراحی شده است و دارندگان این تراشه می توانند از این قابلیت استفاده کنند. برای اطلاعات بیشتر می توانید به سایت رسمی اینتل مراجعه کنید.

ذخیره تنظیمات Jet Audio


من وقتی برنامه ی Jet Audio را نصب می کنیم تقریبا 15 تا 20 تغییر در تنظیمات پیشفرض آن انجام می دهم تا این برنامه به صورت دلخواه من در آید. مشکلی که وجود دارد این است که هر بار که ویندوز کامپیوتر را عوض می کنم باید این تنظیمات را دوباره انجام دهم که کاری بسیار آزار دهنده است.(مخصوصا اگر مثل من زود به زود ویندوز سیستم را خراب کنید و مجبور شوید دوباره آن را نصب کنید !) 
برای حل این مشکل می توان تنظیماتی که برنامه ی شما در حال حاضر دارد را از قسمت رجیستری ویندوز استخراج (Export) کنید. برای این کار به رجیستری ویندوز بروید و به دنبال قسمت زیر بگردید و آن را انتخاب کنید.
HKEY_CURRENT_USER\Software\COWON

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

Registry Booster



هنگامی که برنامه ای را در ویندوز نصب یا پاک می کنید یا سخت افزاری را به کامپیوتر متصل یا جدا می کنید یا تنظیماتی را تغییر می دهید، قسمت رجیستری ویندوز به روز می شود و تغییر می کند. به مرور زمان رجیستری از حالت اولیه خود (هنگامی که تازه ویندوز را نصب کرده اید) فاصله می گیرد و از فایل های زائد و اضافی انباشته می شود. یکی از اصلی ترین دلایلی که سرعت ویندوز شما به مرور زمان کاهش می یابد همین تغییرات رجیستری است. برنامه های مختلفی برای اصلاح ، پاک سازی و تعمیر رجیستری ویندوز وجود دارد که بعضی رایگان و بعضی نیز تجاری هستند. یکی از این برنامه ها برنامه ی registry booster است که امکانات خوبی در اختیارتان قرار می دهد ولی متاسفانه رایگان نیست ! البته نسخه آزمایشی برنامه نیز وجود دارد که دارای محدودیت هایی است. برای مثال این نسخه در هر بار جست و جو فقط 15 خطا در رجیستری را اصلاح می کند. در پست های بعد با معایب و مشکلات احتمالی این گونه نرم افزار ها نیز آشنا می شویم.
به هر حال این برنامه در این زمینه جوایزی نیز کسب کرده و با اسکن دقیق رجیستری، خطا هایی که باعث کاهش سرعت و پایداری در سیستم می شوند را شناسایی و رفع می کند. این برنامه همچنین قابلیت یکپارچه سازی یا defragment رجیستری برای افزایش سرعت و کارایی را دارد. این برنامه برای من که نتیجه قابل قبولی به همراه داشت و توانست سرعت کامپیوتر قدیمی من که زمان تقریبا زیادی از نصب ویندوز در آن می گذشت را به طور محسوسی افزایش دهد. سایت رسمی این برنامه http://www.registrybooster.com است.
آدرس دیگر : http://www.uniblue.com/software/registrybooster/

مرتب سازی درجی - Insertion Sort


مرتب سازی درجی یا الحاقی نوع دیگری از الگوریتم های مرتب سازی است که برای مرتب کردن یک آرایه یا لیست از عناصر می توان از آن استفاده کرد. این روش برای لیست های کوچک مناسب است و برای لیست های بزرگ سرعت مناسبی ندارد. می توان این الگوریتم را به گونه ای ایجاد کرد که به محض دریافت ورودی، آنها را مرتب کند. در این روش اگر لیست مورد نظر n خانه داشته باشد ، حد اکثر به تعداد (n-1) + (n-2) + ... + 1 مقایسه و جابه جایی برای مرتب سازی لیست نیاز داریم. در شکل نیز به خوبی مراحل این الگوریتم نشان داده می شود.


در این روش ابتدا دو خانه ی اول بررسی می شوند و اگر خانه ی دوم از خانه ی اول کوچک تر بود جای خود را به خانه ی اول می دهد. در قدم بعد به سراغ خانه ی سوم می رویم. این خانه را از ابتدا با دو خانه ی قبل از خود مقایسه می کنیم. به این ترتیب مکان خانه ی سوم نیز مشخص می شود. به همین صورت کل لیست از کوچک به بزرگ مرتب می شود. در این روش هر چه جلوتر می رویم بایستی مقایسه های بیشتری انجام دهیم تا مکان خانه ی مورد نظر را تعیین کنیم. پس در لیست های بزرگ که عناصر آنها به شدت به هم ریخته هستند این روش رفته رفته سرعت خود را از دست می دهد. قطعه برنامه ی زیر قسمت مربوط به مرتب سازی درجی را نشان می دهد. در این برنامه دو حلقه ی تودرتو ایجاد شده است تا لیست مورد نظر را پیمایش کنند. در این برنامه [] l لیست مورد نظر ، i و j شمارشگر های حلقه ها و lim تعداد خانه های لیست است.


جست و جوی دودویی - binary search


در پست های قبل با روش جست و جوی خطی آشنا شدیم و دیدیم که در این شیوه از ابتدای لیست یا آرایه به دنبال عضو مورد نظر می گردیم و یکی یکی عناصر را بررسی کرده تا عنصر مورد نظر را بیابیم. پس می توان نتیجه گرفت که در این روش اگر لیست ما برای مثال 100 عضو داشته باشد برای پیدا کردن یک عضو دلخواه بایستی حد اکثر 100 جست و جو انجام دهیم. همان گونه که می بینید این روش زیاد سرعت مناسبی ندارد و در لیست های بزرگ ایجاد مشکل می کند. راه منطقی نیز این نیست که برای پیدا کردن یک کتاب در کتابخانه از ابتدا کل کتاب ها را بگردید چون در کتابخانه کتاب ها به صورت طبقه بندی شده قرار دارند و برای پیدا کتاب مورد نظر باید درست به قسمت مربوط به آن رجوع کنید. 
این الگوریتم جست و جو ، جست و جوی دودویی یا باینری نامیده می شود و به نسبت جست و جوی خطی سرعت بالا تری دارد. ولی پیشنیاز این روش این است که لیست مورد نظر ما مرتب باشد. یعنی عناصر به ترتیب از کوچک به بزرگ چیده شده باشند. اگر این پیشنیاز رعایت شده باشد این روش موثر است و جواب صحیح باز می گرداند و سرعت جست و جو را تا حد زیادی افزایش می دهد. در این روش در یک لیست n عنصری حداکثر به تعداد log2 (n+1) جست و جو نیاز داریم تا عنصر مورد نظر خود را بیابیم.
در این روش خانه ی وسط لیست را در نظر می گیریم ، اگر عنصر مورد نظر ما از خانه ی وسط لیست بیشتر بود پس باید در قسمت بالای لیست به دنبال آن بگردیم و اگر از خانه ی وسط لیست کوچک تر بود پس باید در قسمت پایین لیست جست و جو را ادامه دهیم . پس در اولین قدم نیمی از لیست ما حذف می شود و جست و جو در نیمه دیگر لیست ادامه می یابد. سپس دوباره خانه ی وسط از لیست باقی مانده را با عنصر مورد جست و جو مقایسه می کنیم. مثل قدم اول اگر آن از خانه وسط بیشتر بود به قسمت بالای لیست و اگر از خانه ی وسط کوچک تر بود به قسمت پایین لیست می رویم و جست و جو را در آن ادامه می دهیم. با این روش هر دفعه لیست مورد نظر کوچکتر می شود و در نهایت به عنصر مورد جست و جو می رسیم.

تکه برنامه بالا با زبان c++ موشته شده است و قسمت جست و جوی باینری را نشان می دهد. در این برنامه l [] لیست مرتب شده ، hi خانه ی آخر لیست و lo خانه ی پایین لیست ، mid خانه ی وسط لیست و a عنصر مورد جست و جو است.

Accelerated Processing Unit - APU

واحد پردازش شتاب یافته یا "Accelerated Processing Unit" به اختصار APU یک سیستم پردازشی است که شامل قابلیت های پردازشی اضافی برای افزایش سرعت یک یا چند نوع محاسبات در CPU می شود. این ممکن است شامل یک واحد پردازش گرافیکی (GPU) یا هر سیستم پردازشی مشابه باشد. در دنیای سخت افزار رایانه APU بیشتر به یک واحد پردازشی اشاره دارد که CPU و GPU را به صورت یکپارچه در یک قطعه (Die) گرد آورده است و باعث افزایش نرخ انتقال اطلاعات و کاهش توان مصرفی شده است. مثال هایی برای APU می تواند شامل فناوری های مانند AMD Fusion ، Intel HD Graphics و Nvidia Project Denver باشد.




Bubble sort - مرتب سازی حبابی


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



که در آن n طول لیست مورد نظر و i و j شمارشگر های حلقه ها هستند است. سپس برای مقایسه خانه های لیست می توانیم از یک شرط (برای مثال if ) استفاده کنیم.
   

linear search - جست و جوی خطی


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

برای ایجاد این متد جست و جو کافی است که یک حلقه در برنامه خود ایجاد کنید (حلقه ی for ، while یا هر حلقه دیگر ..) که لیست شما را از ابتدا بررسی کند ( برای مثال با دستور if ) و هنگامی که عنصر مورد نظر شما پیدا شد، شما را مطلع کند. برای پیدا کردن تکه برنامه این روش جست و جو کافی است یک جست و جو در دنیای اینترنت بزنید تا بهتر با عملکرد این روش آشنا شوید...

در حلقه ی for شکل بالا ، []m لیست یا آرایه مورد نظر ما ، size طول لیست و  num متغیر مورد جست و جو است. می بینید که اگر متغیر مورد نظر در لیست باشد برنامه شماره ی اولین خانه ی یافت شده را نشان می دهد و برنامه پایان می یابد.

برنامه ی پرتابل ساز Cameyo

چند وقت پیش در برنامه ی صفر و یک برنامه ای معرفی شد که قابلیت تهیه ی نسخه ی قابل حمل یا پرتابل از دیگر برنامه ها را داشت. نام این برنامه Cameyo است و می توانید آن را از سایت www.cameyo.com به صورت رایگان دریافت کنید. این برنامه که خود برنامه ای پرتابل است می تواند نصب دیگر برنامه ها را کپچر کند و از آنها نسخه ی قابل حمل (نسخه بدون نیاز به نصب) بسازد.

وقتی برنامه را باز می کنید دو گزینه می بینید، Capture installation و Edit existing package که برای ایجاد پکیج از برنامه مورد نظر باید گزینه ی Capture installation را انتخاب کنید. پس از آن صفحه ی کوچکی باز می شود و مقدمات ایجاد پکیج اجرا می شود.(چند لحظه منتظر بمانید تا برنامه آماد شود). سپس وقتی که صفحه ی جدید که دو گزینه cancel و installation done دارد ظاهر شد، برنامه مورد نظر خود را نصب کنید. پس از اتمام نصب برنامه گزینه ی installation done را کلیک کنید. cameyo نسخه ی قابل حمل نرم افزار را برایتان ایجاد کرده و آن را تحویل می دهد.



Ever wished you could pack an entire application into one single EXE and take it with you anywhere without having to reinstall it every time? 
At work, at home, on your laptop, at a friend...
Ever wanted to avoid having to reinstall all your applications every time you change, upgrade or reformat your computer?
Or, if you are an IT admin, have you ever dreamed you didn't have to test and deploy applications, and simply let your users launch them on demand whenever they needed to?

برنامه ی صفر و یک


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

شنبه : بازی های رایانه ای
یک شنبه : تازه های فناوری اطلاعات
دو شنبه : گفت و گوی چالشی
سه شنبه : انیمیشن
چهار شنبه : شهروند الکترونیک

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

K-lite codec pack


برنامه ی k-lite codec pack مجموعه ای از اجزای صوتی و تصویری است که برای سیستم عامل ویندوز ایجاد شده است و به برنامه های آن قابلیت اجرای طیف وسیعی از فرمت های صوتی و تصویری که به صورت عادی پشتیبانی نمیشدند، را می دهد. این بسته محصول شرکت KL Software است و می توانید آن را از سایت www.codecguide.com دریافت کنید. این برنامه شامل پنج نسخه است که در زیر به ویژگی های هر یک اشاره می کنیم .

نسخه ی basic :
این نسخه کم حجم ترین نسخه این برنامه است و به برنامه ها امکان پخش فرمت های MKV ، MP4 ، Ogg ، FLV و AVI را می دهد. این نسخه شامل ffdshow (برای رمزگشایی صوت و تصویر) و DirectVobSub (برای رمزگشایی زیر نویس) و چند جزء دیگر می شود و مدیا پلیر classic را ندارد.

نسخه Standard :
این نسخه به غیر از موارد بالا ، دارای رمزگشای DVD Video و ویندوز مدیا پلیر کلاسیک (home cinema) نیز می شود و برای کاربران معمولی مناسب است.

نسخه Full و Mega :
این دو نسخه نسبت به نسخه های قبلی دارای اجزای بیشتری هستند و بنابراین حجم بیشتری نیز دارند. برای مثال قابلت رمزگذاری ویدئو و مدیا پلیر کلاسیک اورجینال همراه بالا مدیا پلیر کلاسیک home cinema و چندین جزء اضافه همراه این نسخه ها است. در حال حاضر نسخه ی mega که کامل ترین بسته ی این مجموعه است حدودا 20 مگابایت حجم دارد. نسخه ی 64 بیتی از برنامه نیز موجود است که برای استفاده در سیستم عامل های 64 بیتی طراحی شده است.