برنامه نویس

به اشتراک گذاری تجربیات، دانش ها و غیره در برنامه نویسی و کامپیوتر

برنامه نویس

به اشتراک گذاری تجربیات، دانش ها و غیره در برنامه نویسی و کامپیوتر

دنبال کنندگان ۱ نفر
این وبلاگ را دنبال کنید
تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران
بایگانی
نویسندگان

۳۳ مطلب در آبان ۱۳۹۵ ثبت شده است


روز 23 ماه مه سال 1990 یک روز عادی برای همه،جزء برای «ویلیام هنری گیتس سوم» و در حقیقت «ویلیام هنری گیتس چهارم» و به صورت رسمی فقط «ویلیام هنری» بود که قصد داشت دنیای ریز رایانه را بار دیگر دسخوش عظیم و چشم کیر سازد.این برنامه نویس 34 ساله،پر تحرک و مقتدر که برنامه نویسی را بر ادامۀ تحصیل در هاروارد ترجیح داده و اکنون ثروتش سر به چند بیلیون دلار می زند،در شرف ایراد مهمترین سخنرانی زندگی حرفه ای پر محتوا و سرشار از تجربه خود،در تالار تئاتر مرکز شهر ماتهاتان بود:«بی گیتس»،موسس،رئیس هیئت مدیره،مدیرعامل و همه کاره مایکروسافت،شرکت شمارۀ یک و بی رقیب نرم افزار جهان،آخرین نمونه نرم افزار «ویندوز» ساخت شرکت را عرضه می کند.این برم افزار قبلاً سه یا چهار عرضه شده،که توفیق چندانی نداشته و با استقبال مواجه نشده بود.اما اکنون دگرگونی ها را شاهد باشید.


برای دریافت مقاله اینجا کلیک کنید.َ

  • وحید بابائی

این تصویر یکی از نمادهای مهم شرکت مایکروسافت و البته یکی از نمادهای بزرگ دنیای تجارت محسوب میشود. ۳۳ سال پیش و در سال ۱۹۷۸ این ۱۱ نفر نخستین کارمندان شرکت مایکروسافت بودند و بنیان یکی از بزرگترین شرکت های جهان را گذاشت اند. چه کسی آن زمان فکر می کرد بیل گیتس این عکس با آن ظاهر جوان تبدیل به ثروتمند ترین فرد جهان
می شود؟

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

اما هر کدام از این ۱۱ نفر چه مسیری را طی کردند و هم اکنون چه می کنند؟ اگر علاقمند هستید از سرنوشت آنها مطلع شوید ادامه مطلب را از دست ندهید. 

برای دریافت مقاله اینجا کلیک کنید.
  • وحید بابائی

دسامبر سال 1974 را می‌توان ماه شکل‌گیری صنعت نرم‌افزار نام نهاد. در یکی از روزهای همین ماه بود که پل‌ آلن قدم زنان به سمت خوابگاه بیل گیتس می‌رفت، که بین راه، یک نسخه از یک مجله الکترونیکی نظرش را جلب کرد. روی جلد این مجله، تصویر یک کامپیوتر Altair 8800 با تیتر و عنوان " نخستین کیت میکرو کامپیوتر جهان قابل رقابت با مدلهای تجاری" نقش بسته بود.

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

چند روز بعد گیتس با شرکت سازنده کامپیوتر Altair 8800 تماس گرفت و گفت که اخیراً یک روایت (نسخه) از برنامه مترجم BASIC را نوشته است و می‌تواند آن را روی کامپیوتر آن شرکت اجرا کند، اما او دروغ گفته بود. آنها حتی یک خط از برنامه را ننوشته بودند. در واقع گیتس و آلن حتی یک بار هم کامپیوتر Altair 8800 را به چشم ندیده بودند و یک مترجم هم نداشتتد، پس چگونه می‌توانستند با چشم بسته و بدون اطلاع از معماری آن، چنین کاری انجام دهند. البته شرکت MITS بدون بررسی دقیق این موضوع پذیرفت که برنامه‌شان را امتحان کند. آنها باید ادعایشان را ثابت می‌کردند. پس دست به کار شدند و در حالی که گیتس شبانه روز مشغول کدنویسی بود (مانند رانندگی با چشم بسته)، آلن نیز در پی راهی می‌گشت که Altair را روی دستگاه PDP _10 شبیه سازی کند. پس از حدود 8 هفته قبل از اجرای اولیه نرم افزار او و آلن یک برنامه مفسر نوشتند، آلن برنامه را برداشت و به شرکت MITS ببرد. لحظات حساسی بود و اگر حتی یک اشکال کوچک در اجرای برنامه دیده می‌شد، کل آینده این دو ممکن بود به صورت چشمگیری رقم بخورد. اما این چنین نشد و برنامه کاملاً درست کار کرد. قرارداد بسته شد و حقوق BASIC به MITS منتقل شد. در سال 1980 شرکت با ارائه سیستم عامل برای ریزپردازنده های 16 بیتی 8088 اینتل که به سفارش شرکت IBM انجام شد به شهرت و ثروت رسید.

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

"Micro-soft" کوتاه شده کلمات (Microcomputer software) می‌باشد در ابتدا توسط بیل گیتس و پل آلن در آلبوکرکی "Albuquerque" در نیو مکزیکو سال 1975 تأسیس شد، که فعالیت آنان برای گسترش و فروش basic Interpreters برای  Altair 8800  بود. سرانجام این کمپانی توانست حکمفرمای تمام سیستم عامل ها شود. در ۱ ژانویه ۱۹۷۹ شرکت از آلبوکرکی به مکان جدیدش در بلویو (Bellevue) در واشنگتن منتقل شد.


برای دریافت مقاله اینجا کلیک کنید.
  • وحید بابائی

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

1- مسابقه برنامه نویسی گوگل

Google Code Jam  مسابقه‌ ای است که گوگل هر ساله برگزار می‌کند. این مسابقات بیشتر با هدف شناسایی استعداد های بالقوه در زمینه‌ی برنامه نویسی و کامپیوتر انجام می‌شود و برنده‌ مسابقه علاوه بر اینکه جایزه نقدی دریافت می‌کند، شانس استخدام در این شرکت را بدست می‌آورد.

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

اولین مسابقه Code Jam در سال ۲۰۰۳ برگزار شد و بعد از پنج سال، یعنی در سال ۲۰۰۸ تعداد شرکت کنندگانش به ۱۱۰۰۰ نفر رسید که از ۱۲۸ کشور دنیا برای رسیدن به جایزه‌ی ۱۰۰۰۰ دلاری گوگل رقابت می‌کردند. در آخرین دور این مسابقات که سال گذشته برگزار شد، تعداد شرکت کنندگان از ۲۵۰۰۰ نفر بیشتر بود و برندگان نهایی مسابقه هم شرکت کنندگانی از کشور های چین، بلاروس و روسیه بودند.


 سایت رسمی: code.google.com


2- مسابقه Facebook Hacker Cup

مسابقات Facebook Hacker Cup رقابت های بین المللی برنامه نویسی است که توسط فیسبوک برگزار می‌شود. این رقابت‌ها در سال ۲۰۱۱ با هدف شناسایی استعدادهای مهندسی برای کار در فیسبوک راه اندازی شده است. این رقابت مجموعه الگوریتم هایی است که باید در مدت زمان مشخصی حل شوند. برای حل مسایل هیچ گونه محدودیتی وجود ندارد و از هر زبان و محیطی می‌توان برای ارائه‌ی راه حل درست استفاده کرد.

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


3- مسابقات آنلاین TopCoder

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

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

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

سایت رسمی: topcoder.com


4- مسابقات برنامه نویسی بیان

مسابقات برنامه نویسی بیان یک رویداد جهانی است که در سه دوره‌ی متوالی در ایران برگزار شده است و فینال دور سوم آن به زودی در تهران برگزار خواهد شد. این مسابقات را که اولین دوره‌ی آن در سال ۱۳۹۰ برگزار شد، می‌توان بزرگترین رویداد قدرتمند حوزه‌ی برنامه‌نویسی در منطقه دانست. شرکت در این مسابقه انفرادی بوده و تمام مراحل آن به جز فینال به صورت آنلاین برگزار می‌شوند.

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

در دوره‌ی قبل این مسابقات، از میان ۳۱۸۲ شرکت کننده‌ که از ۵۴ کشور جهان در رقابت حضور داشته اند، تعداد ۱۷۲۸ نفر از آن‌ها ایرانی بودند. سومین دوره مسابقات برنامه نویسی بیان، آمار و ارقام جالبی را تا قبل از برگزاری دور نهایی از خود به جای گذاشته است. مرحله مقدماتی این مسابقات به پایان رسیده و ۶۰ نفر برگزیده نهایی برای رقابت در فینال اردیبشهت ماه مشخص شده اند.

۲۰ نفر شرکت کننده خارجی برتر (با رعایت شرط از هر کشور یک نفر) به همراه ۴۰ نفر برتر شرکت کنندگان ایرانی، ۶۰ فرد حاضر در دور نهایی را تشکیل
می دهند. به طور کلی تعداد 
۱۰ هزار و ۲۶۶ نفر برنامه نویس از ۱۰۳ کشور جهان برای شرکت در سومین دوره مسابقات برنامه نویسی بیان ثبت نام کردند.

سایت رسمی: bayancontest.blog.ir


5- مسابقات دانشجویی ACM

مسابقات ACM توسط شرکت IBM و تحت نظارت انجمن ماشین آلات محاسباتی  (ACM)، میان دانشجویان سراسر جهان برگزار می‌شود و بعنوان یکی از معتبرترین و بزرگترین رقابت های برنامه نویسی جهان شناخته می‌شود.

تاریخچه‌ی برگزاری این رقابت ها به سال ۱۹۷۷ بازمی‌گردد. از سال ۱۹۷۷ تا سال ۱۹۸۹ بیشتر شرکت کنندگان این مسابقه تنها از دو کشور آمریکا و کانادا بودند اما در سال ۲۰۰۵ و پس از حمایت هایی که از این مسابقات صورت گرفت، ACM  به یک رقابت جهانی تبدیل شد که تیم های مختلفی از بیشتر کشورهای دنیا در آن شرکت می‌کردند.

در این مسابقات تیم ها در قالب گروه هایی ۳ نفره با هم رقابت می‌کنند و به هر تیم یک رایانه جهت برنامه نویسی داده می‌شود. مسابقه به این صورت است که حدودا ۸ سوال محاسباتی و الگوریتمی به هر گروه داده می‌شود. هر تیمی که سوال های بیشتری را در مدت زمان کمتر و با خطای کمتری حل کند، رتبه‌ی بهتری کسب خواهد کرد. البته پاسخ به مسائل تنها از طریق دو زبان  C، C++،C#  و جاوا امکان پذیر خواهد بود. شرط رسیدن به مسابقات جهانی  ACM، پیروزی در رقابت های منطقه ای و راه یافتن به مراحل بعدی است.

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

سایت رسمی: acm.org


6-مسابقات IEEEXtreme

این مسابقات با پشتیبانی موسسه‌ بین المللی IEEE و میان دانشجویان برق و کامپیوتر سراسر جهان برگزار می‌شود. در این مسابقه گروه ‌های ۲ یا ۳ نفره‌ی شرکت‌کننده طی ۲۴ ساعت و به صورت آنلاین به حل مسائل برنامه‌نویسی می‌پردازند. شرکت کنندگان می‌توانند تمام این ۲۴ ساعت را کد بنویسند یا اینکه فقط استراحت کنند!

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

اولین دوره‌ی مسابقات IEEEXtreme در سال ۲۰۰۶ برگزار شد. در این رقابت ۴۷ تیم شامل ۱۵۰ نفر شرکت کننده، در مسابقه حضور داشتند. این رقم در سال ۲۰۰۸ به ۱۳۰ تیم رسید و سال گذشته نیز ۲۲۰۰ تیم با بیش از ۵۰۰۰ دانشجو در رقابت های IEEEXtreme  ثبت نام کردند.

سیستم امتیاز دهی در این رقابت ها بر اساس مدت زمان حل مسئله و راه حل ارائه شده است. داوری میان شرکت کننده ها نیز توسط اعضای IEEE صورت می‌گیرد.

سایت رسمی: ieee.org


7-وب سایت داوری آنلاین CodeChef

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

برنامه نویسان می‌توانند از این پلت فرم برای افزایش سرعت کد نویسی خود و یادگیری مسایل برنامه نویسی استفاده کنند. CodeChef در همان لحظه‌ی پاسخگویی، خطا های برنامه را مشخص می‌کند و در صورت درست بودن جواب، راه حل کاربر را ثبت می‌نماید.بسته به نوع سوال نیز امتیاز خاصی برای هر شرکت کننده ثبت می‌شود. فردی که بیشترین امتیاز را در طول ماه کسب نماید، عنوان “برنامه نویس ماه” را خواهد گرفت.

CodeChef  در سال ۲۰۰۹ با هدف ارائه‌ی بستری مناسب برای دانش آموزان و برنامه نویسان هندی آغاز به کار کرد. با استقبالی که برنامه نویسان نشان دادند،CodeChef  در سال ۲۰۱۳ به یکی از وب سایت‌های معتبر جهانی تبدیل شد که مسابقات برنامه نویسی برگزار می‌کند.

سایت رسمی: codechef.com


8-سایت UVa Online Judge

UVa Online Judge  یکی از معتبرترین وب سایت‌هایی است که به میزبانی دانشگاه والادولید اسپانیا مسابقات برنامه نویسی برگزار می‌کند. این سایت مجموعه‌ی بزرگی از سوالات برنامه نویسی را گرد هم آورده و در حال حاضر بیش از ۱۰۰ هزار کاربر دارد. شرکت کنندگان باید با استفاده از یکی از زبان های برنامه نویسی جاوا، پاسکال، ANSI  و ++C سوالات پرسیده شده را پاسخ دهند.

UVa برای اولین بار در سال ۱۹۹۵ برای دانشجویان دانشگاه والادولید راه اندازی شد. آن زمان تنها سه نفر در مسابقات آن شرکت کردند. UVa دو سال بعد برای استفاده‌ی عموم آزاد شد و در سال ۲۰۰۰ نیز میزبان برگزاری مسابقات ACM جهانی شد.

سایت رسمی: uva.onlinejudge.org


9-مسابقات آنلاین Sphere online judge یا SPOJ

این سایت یکی از پر طرفدارترین مسابقات برنامه نویسی آنلاین را برگزار می‌کند. بیش از ۲۰۰ هزار کاربر عضو SPOJ هستند که می‌توانند سوالات برنامه نویسی آن را با استفاده از ۴۰ زبان مختلف پاسخ دهند.

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

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

سایت رسمی: spoj.com


10-مسابقات Internet Problem Solving Contest

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

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

سایت رسمی: ipsc.ksp.sk


منبع: digiato.com

  • وحید بابائی

1 ساعت = 60 دقیقه
1 دقیقه = 60 ثانیه
1 ثانیه = 1000 میلی ثانیه
1 میلی ثانیه = 1000 میکرو ثانیه
1 میکرو ثانیه = 1000 نانو ثانیه
  • وحید بابائی

WWW: World Wide Web

به معنای "وب جهان گستر" می باشد. عمده‌ترین محیط خدماتیاینترنت است که امکانات چند رسانه‌ای برای دستیابی به داده‌ها٬ اطلاعات٬ و دانش را در اختیار کاربران قرار می‌دهد.


URL: Uniform Resource Locator

به معنای " مکان یاب متحدالشکل منابع " می باشد. به آدرس منحصر بفرد یک صفحه وب در اینترنت را URL گویند. مثلاً www.blog.ir.

 

ADSL: Asymmetric Digital Subscriber Line

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

 

VPN: Virtual Private Network

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

 

IIS: Internet Information Services 

به معنای "سرور اطلاعات اینترنتی" می باشد. یک سرور برای کنترل کردن محتویات و دسترسی به سایت های وب یا FTP شما بر روی هارد ایجاد می کند.

  • وحید بابائی


IT: Information Technology             فناوری اطلاعات

PC: Personal Computer                کامپیوتر شخصی


RAM: Random Access Memory

حافظه دسترسی تصادفی- یکی از انواع حافظه‌های اصلی است که وظیفه حفظ داده‌ها به صورت موقت را دارد. یکی از وظایف اصلی RAM واسطه گری بین Hard Drive Disk و CPU است.

ROM:  Read Only Memory

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

BIOS: Basic Input Output System

ورودی پایه خروجی سیستم- این قطعه همان ROM است فقط تفاوت در اسم این قطعه است. ROM نام علمی این قطعه است ولی BIOS نام تجاری این قطعه می باشد.

HDD:  Hard Disk Drive

   دیسک خوان سخت- درواقع حافظه ایست جانبی برای ذخیره سازی اطلاعات و امکان بخش بندی کردن این حافظه به قسمتهای مختلف  

CPU: Central Processing Unit   

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

CD ROM: Compact Disk Read Only Memory

.دیسک فشرده، حافظه فقط خواندنی-وظیفه این دستگاه فقط خواندن دیسک های فشرده است

CD Writer:

دیسک فشره نوشتاری- وظیفه این دستگاه خواندن و نوشتن، دیسکهای فشرده است.

CD R: Compact Disk Recorder

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

CD RW: Compact Disk Re-Writer

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

DVD: Digital Versatile Disk 

دیسک چند مظوره دیجیتالی- همانند دیسک فشرده معمولی است (که به دو دسته: خواندنی و خواندنی/ نوشتنی تقسیم می شود) با این تفاوت که حجم این نوع دیسک بالا تر است. که در دو

حجم 4.75 و 8.5 گیگابایتی وجود دارد. 

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

VGA: Video Graphics Array

آرائه‌های گرافیکی ویدئو- درگاه VGA دارای 15 پین (DB-15) به صورت سه ردیفی است. این درگاه داده‌های تصویری را به صورت آنالوگ منتقل می‌کند. داده‌های رنگ‌ها متمایز از همدیگر هستند، یعنی داده‌های مربوط به هر یک از رنگ‌های قرمز، سبز و آبی از طریق سه پین متفاوت ارسال می‌شوند. پین‌های یک تا سه به ترتیب وظیفه انتقال داده‌های مربوط به رنگ قرمز، سبز و آبی را برعهده دارند.

FDD: Flopy Disk Drive

گرداننده دیسک نرم -دیسک نرم وسیله‌ای برای ذخیره اطلاعات است که از یک صفحه (دیسک) مدور نازک از جنس پلاستیک منعطف با پوششی از مواد فرو مانیتیک ( قابلیت اهن ربایی ) تشکیل شده‌ است. دیسک‌های نرم توسط گرداننده دیسک نرم (floppy disk drive) یا FDD خوانده و نوشته می‌شوند. آنها در اندازه‌های ۸ اینچ، ۵٫۲۵ اینچ، و جدیدترین و متداول‌ترین نوع ۳٫۵ اینچ، به عنوان قالب پر طرفدار و متداول نگهداری و تبادل اطلاعات مطرح بود.

USB: Universal Serial Bus

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

  • وحید بابائی

  1. Bit (بیت): بیت کوچک‌ترین واحد حافظه است که فقط دو مقدار صفر (۰یا یک (۱را می‌توان در آن ذخیره کرد.
  2. Nibble (نیبل)به مجموعه‌ی ۴ بیت که کنار هم قرار گرفته باشند یک نیبل گفته می‌شود.
  3. Byte (بایت)هر بایت برابر ۸ بیت است.
  4. KB (کیلوبایت)هر کیلوبایت برابر ۱۰۲۴ بایت است.
  5. MB (مگابایت)هر مگابایت برابر ۱۰۲۴ کیلوبایت است.
  6. GB (گیگابایت)هر گیگابایت برابر ۱۰۲۴ مگابایت است.
  7. TB (ترابایت)هر ترابایت برابر ۱۰۲۴ گیگابایت است.
  8. PB (پتابایت)هر پتابایت برابر ۱۰۲۴ ترابایت است.
  9. EB (اگزابایت)هر اگزابایت برابر ۱۰۲۴ پتابایت است.
  10. ZB (زتابایت)هر زتابایت برابر ۱۰۲۴ اگزابایت است.
  11. YB (یوتابایت)هر یوتابایت برابر ۱۰۲۴ زتابایت است.
  12. SB (سوتابایت)هر سوتابایت برابر ۱۰۲۴ یوتابایت است.
  • وحید بابائی

تفاوت زبان برنامه نویسی #C و ++C

اولاً با C# فقط برنامه های تحت .NET میشه نوشت(در واقع C# برای .NET درست شده)، اما با C++  هم برنامه های تحت (NET managed) و هم برنامه های native میشه نوشت.
دوماً هنوز برای کارهای سطح پایین (مثل Device Driver) و سنگین (مثل بازی های سه بعدی) C++  انتخاب اول و آخر محسوب میشه.
C#  خیلی راحتتر ، تمیزتر و خوش ساخت تر از C++ طراحی شده و از نظر شی گرایی هم پشتیبانی بهتری داره نسبت به C .C# کاملاً شی گراست و اصلا نمیتونید برنامۀ غیر شی گرا در اون بنویسید ، در صورتی که با C++ میتونین هم شی گرا و هم غیر شی گرا ، برنامه بنویسید.
از ویژگی های C# :

  1. مدیریت خودکار حافظه توسط  CLR
  2. پشتیبانی از یک نوع String داخلی
  3.  پشتیبانی از foreach
  4. پشتیبانی کامل از delegate و event و interface و Property و attribute ها
  5. XML Documentation
  6. checked / unchecked keywords
  7. و ...
در C# برای انجام تمام کارها از کلاس های .NET استفاده میشه ، در ضمن در C# چیزی به نام فایلهای Header و #include  و از این حرفا ندارد. در واقع C# خیلی زیباتر از C++ طراحی شده ، چون به هر حال در طراحی C# از زبانهایی مثل C++ و JAVA و Delphi درس گرفته شده و اشتباهات اون زبانها در C# تکرار نشده ؛ به عنوان مثال در   C++  به تعداد انگشتان دست، نوع دادۀ String داریم. یا Multiple Inheritance که خیلی دردسر سازه، یا مثلا در JAVA ، enum  ها و Operator Overloading و Pointer و Property ها که همگی جزو ضروریات محسوب میشن ، وجود ندارن. البته کسانی که میخوان کار سنگین یا سطح پایین در .NET انجام بدن ، معمولا همه قسمتهایی رو که امکانش هست با C# می نویسن و بقیه رو با C++ ؛ و در C# از کلاسهای نوشته شده در C++ استفاده می کنن . (Wrapper Classes )  در کل C# ، سطح بالاتر(High Level )  از C++ است ؛ در C++ حتی میتونید مستقیماً از کد اسمبلی استفاده کنید.
در ضمن C# اولین زبان Component Oriented در خانوادۀ C محسوب میشه.
خیلی تفاوتها و شباهتهای دیگری هم هست که در صورت پرداختن به اونا بحث خیلی تخصصی میشه ، فقط در یه جمله بگم : بزرگترین شباهت این دو زبان اینه که هر دو جزو خانوادۀ C هستن و بزرگترین تفاوت اینکه : C# یک زبان
 type-safe هست (بر خلاف C++ ) و فقط باهاش میشه برنامه های تحت .NET نوشت.
البته منظوراز این مطالب اثبات برتری C# به C++ نیست، چون به هر حال برای برنامه های تحت .NET ، C#  بهترین گزینه است و در جاهای دیگه هنوز هم C++ قویترین زبان دنیاست. 


  • وحید بابائی

++C/C:

قدرت محاسبه عددی، ارتباط مستقیم با سخت افزار

#F:

  1. برنامه هایی که بصورت موازی روی چند هسته
  2. برنامه هایی که با حجم وسیعی از داده ها سرو کار دارند
Pathon:
برنامه های کاربردی تحت وب و برنامه های کاربردی ابری در قالب هایی مثل Django استفاده میشوند و در هوا و فضا ، اقتصادی ،نظامی و ... نیز مورد استفاده قرار می گیرد.

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

Ada:
بیشتر برای مقاصد هوش مصنوعی مورد استفاده قرار می گیرد.

Matlab:

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

 برخی ویژگی ها:

  1. زبان سطح بالا برای محاسبات فنی
  2. محیط توسعه برای مدیریت کد، فایل ها و دادها
  3. ابزاری مناسب برای حل های مبتنی برتکرار، طراحی و حل مساله
  4. توابع ریاضی برای جبر خطی، آمار، تچزیه و تحلیل فوریه، فیلتر کردن، بهینه سازی و یکپارچه سازی عددی
  5. توابع گرافیکی دوبعدی و سه بعدی برای تجسم اطلاعات
  6. ابزاری برای ایجاد یک رابط کاربر گرافیکی
R:
این زبان برنامه نویسی به ویژه برای برنامه نویسانی طراحی شده است که نیازمند تولید نرم افزارهایی برای داده کاوی در حجم عظیمی از داده ها و نمونه های آماری است. ای نزبان 22 سال پیش طراحی شده اما تا به امروز همچنان توسعه یافته است.
زبان برنامه نویسی R با ساختار منطقی خاص خود برای واکاوی و جستجو و همچنین تحلیل پایگاه های داده عظیم مناسب است و برنامه نویسان از این زبان برای طراحی ساختارهای تصمیم گیری و مدیریت منابع شرکت ها استفاده میکنند.
  • وحید بابائی

مقدمه ای بر JQuery

انتخاب آیتم ها با JQuery

فیلتر های ابتدایی و پیشرفته JQuery

تغییر در اجزای DOM توسط JQuery

متدهای CSS

مدیریت رویدادها

پاسخگویی به متد ها

افزودن رویداد به عنصرهای صفحه با استفاده از JQuery

ایجاد افکت با JQuery


منبع: payait.com

  • وحید بابائی

JQuery یک کتابخانه جاوااسکریپتی سبک و سریع است که شعارش "کمتر بنویس و بیشتر انجام بده" و هدفش استفاده آسان و سریع از امکانات جاوااسکریپت در وب سایت است. برای یادگیری JQuery باید اطلاعات پایه ای در مورد HTML، CSS و JavaScript داشته باشید. جی کوئری کارهایی که نیازبه کدنویسی های فراوان جاوااسکریپت دارد را به گونه ای ساده می کند که می توانید با یک خط کد همه آنها را انجام دهید.

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

در استفاده از JQuery ما دو تا فایل خواهیم داشت:
- یک فایل، خود فایل JQuery می‌باشد که باید در ابتدا به صفحه مورد نظر ما لینک شود.

- فایل دوم فایل JS ای هست که دستورات ما بر اساس قوانین Jquery داخلش نوشته شده است. (البته می‌تواند این دستورات را در داخل کدهای صفحه نیز قرار داد و یک فایل جداگانه نداشت)


منبع: dlplanet.ir

  • وحید بابائی

دوره مقدماتی MVC:
  • Automatic Property ها
  • Object Iniatializer
  • Collection Initialzer
  • Extension Method ها
  • استفاده از Extension Method ها در Interface ها
  • Delegate ها
دوره پییشرفته MVC:
  • چرخه حیات MVC
  • نصب و پیکر بندی IIS
  • View Engins
  • Http Handler و HttpModule ها
  • Repository
  • Generic Repository
  • Unit Of Work
  • Dependency Injection
  • Dependency Inversion
  • Dependency Injection Container
  • Ninject
  • Microsoft Unity
  • NoSql نحوه استفاده از mongoDB
  • AngularJs
  • Unit Test
  • SignalR (ساخت چت آنلاین)
  • Web Api پیشرفته
  • امنیت و مدیریت پیشرفته کاربران با استفاده از Identity 2.0
  • External Logins
  • Glimps
  • آشنایی و استفاده از امکانات جدید Entity 7
  • Fillter های پیشرفته
  • Chaching پیشرفته
  • Model Binding
  • Bundle ها
  • SPA مخفف Sinle Page Application
  • امنیت و آسیب پذیری در MVC
  • Async و Await
  • Katana & Owin
منبع دوره مقدماتی: barnamenevisan.info

منبع دوره پیشرفته: barnamenevisan.info
  • وحید بابائی

MVC  مخفف سه کلمه Model (مدل ) و View(نمایشگر) و controller( کنترلگر) است. فریم ورک ASP.NET که از آن برای ساختن برنامه های وبی با MVC استفاده می شود.

برخی از برنامه نویسان، همچنان از ASP.NET که بر مبنای فرم های وب و Postback است، استفاده می کنند، برخی از ویژگی های MVC سود می برند و بعضی ها هم دو پلت فرم را ترکیب می کنند و این موضوع بیانگر ایت است که هیچکدام از پلت فرم ها ناقص یکدیگر نیستند. در واقع MVC بر روی معماری های چند لایه ای جهت تفکیک بخش های مختلف برنامه (بخش های منطقی برنامه مانند داده ها، مجوزها، کنترل صحت داده ها و لایه های مرتبط با کاربر نهایی) قرار می گیرد. مفهوم تازه ای نیست، خیلی وقت است که در جاوا، PHP و بسیاری پلت فرم های دیگر از این الگوها برای طراحی نرم افزار استفاده می شود. اما برای طراحان و توسعه دهندگان ASP.NET تازگی دارد.
اجزای تشکیل دهنده ی  MVC
1- Model(
مدل): قسمتی از برنامه کاربردی است که مسئول بازیابی داده از بانک اطلاعاتی، ذخیره آن، تبدیل آن به شی یا آبجکت ها و پیاده سازی منطق برنامه برای داده های دامنه ی مسئله است. در حقیقت بار اصلی معماری MVC بر عهده ی این بخش است. مثلاً یک آبجکت Product ممکن است اطلاعات را از بانک اطلاعاتی بازیابی کرده، بر روی آنها عملیاتی را انجام دهد و سرانجام نتیجه را در بانک اطلاعاتی ئ در جدول Products ذخیره کند.
۲- view(نمایشگر): اجزایی از برنامه است که واسط کاربری برنامه (UI) را می سازد. معمولاً این UI از داده های مدل ساخته می شود. در واقع نقطه پایان برنامه کاربردی است . به کاربر نتایج عملیات و بازیابی و نمایش داده از طریق برقراری ارتباط با دو بخش دیگر؛ یعنی مدل و کنترلگر را نشان می دهد.برای مثال، هنگامی که کاربر در فرم ورود به سیستم رمز عبور خود را وارد می کند، اکثر برنامه نویسان در همان فرم اقدام به چک کردن رمز عبور می کنند که این عمل مغایر با قوانین MVC است. در MVC هنگامی که کاربر رمز عبور را کرد، رمز عبور بدون هیچگونه اعمالی به بخش های دیگر فرستاده می شود و فقط یک نتیجه ساده یا خبر از بخش های دیگر دریافت می کند که از طریق آن اجازه ی ورود به برنامه داده
می شود
.
۳- Controller(کنترلگر): اجزایی از برنامه هستند که مدیریت تعامل با کاربر را بر عهده دارند. می توان گفت که واسط بین مدل و نمایشگر می باشند؛ یعنی با مدل کار می کند و در انتها نمایشگری را برای نشان دادن واسط کاربری انتخاب می کند. ورودی کاربر را مدیریت کرده و به آنها پاسخ می دهد و با کاربر تعامل می کند. برای مثال، کنترلگر عبارت های پرس و جوی بانک اطلاعاتی را مدیریت کرده و آن ها را به مدل ارسال می کند، وظیفه اجرای پرس و جوها با مدل است.

چه زمانی برنامه های MVC را ایجاد کنیم؟
شما باید در هنگام انتخاب ASP.NET و ASP.NET MVCبرای ساخت برنامه های وبی بسیار دقت کنید. MVC جایگزینی برای فرم های وب ASP.NET نیست و شما می توانید از هر کدام از آنها برای ساخت برنامه های وبی استفاده کنید. اگر شما یک برنامه وبی بر مبنای فرم های وب دارید، می توانید همچنان آن را به همان شیوه ی سابق ادامه دهید.
مزایای برنامه های وبی مبتنی بر MVC
-
با تقسیم یک برنامه به سه قسمت مدل، نمایشگر و کنترلگر، مدیریت برنامه یا پروژه را ساده تر می کند.
-
از ViewState و فرم های سروری استفاده نمی کند و از این نظر برای برنامه نویسانی که تسلط کامل بر رفتار برنامه را می خواهند عالی است.
-
از الگوی کنترلگر جلو استفاده می کند که درخواست های برنامه را توسط یک کنترلگر پردازش می کند. این مسئله باعث می شود تا بتوانیم برنامه هایی را طراحی کنیم که از زیر ساخت های غنی مسیر یابی پشتیبانی می کند.
-
پشتیبانی بهتری از طراحی و توسعه آزمون محور دارد.
-
برای برنامه های پشتیبانی شده توسط تیم های بزرگ برنامه نویسان و زارحی که کنترل بسیار بر رفتار برنامه را می خواهند، بهتر کار می کنند.
مزایای برنامه های وبی مبتنی بر فرم های وب
-
از مدل رویداد استفاده می کند که وضعیت را روی HTTP حفظ می کند. این روش برای برنماه های وبی با منطق یک خطی مناسب است.
-
از الگوی کنترلگر صفحه استفاده می کند که به هر صفحه کارایی تابعی می دهد.
-
از View State و فرم های سروری استفاده می کند که مدیریت اطلاعات وضعیت را ساده تر می کند.
-
برای تیم های کوچک برنامه نویسی که می خواهند با استفاده از صدها کنترل موجود برای ساخت سریع برنامه وبی استفاده کنند، مناسب است.
-
عموماً‌برای توسعه وب ساده تر است. زیرا اجرای آن ( کلاس Page، کنترل ها و …) متمرکز شده اند و معمولاً کد کمتری نسبت به MVC نیاز دارد.
ویژگی های ASP.NET MVC
-
جداسازی وظایف برنماه کاربردی (منطق ورودی، منطق کاری و منطق واسط کاربری) و امکان تست کردن برنامه و طراحی و توسعه آزمون محور به صورت پیش فرض. تمام ارتباطات اصلی در MVC بر مبنای واسط است و می توان آن ها را با اشیای ساختگی Mick تست کرد. می توانید ک. نترلگرها را بدون اینکه آنها را در ASP.NET اجرا کنید، تست کنید و این باعث افزایش سرعت و انعطاف تست برنامه می شود. می توانید از هر فریم ورک تست که با فریم ورک Net. منطبق است برای این کار استفاده کنید.
-
فریم ورکی توسعه پذیر و قابل اتصال. اجزای اصلی ASP.NET MVC به گونه ای طراحی شده اندکه به راحتی جایگزین یا سفارشی شوند. می توانید به سادگی پیاده سازی های خودتان را جایگزین موتور نمایشگر، سیاست های آدرس، سریالی کردن پارامترهای متدهای عملیات یا سایر اجزا کنید. همچنین ASP.NET MVC از فریم ورک های تزریق وابستگی و وارونگی کنترل پشتیبانی می کند. به شما امکان می دهد به جای این که اشیا را توسط کلاس ها بسازید، آنها را از جایی بیرون از کد مثل فایل های تنظیمات بگیرید و این مسئله تست برنامه را ساده تر می کند.
-
نگاشت های قوی آدرس ها که امکان ساخت برنامه هایی با آدرس های با معنی و جستجو شدنی (قابل جستجو توسط موتورهای جستجوگر) را می دهدو نیازی نیست که آدرس ها پسوند فایل داشته باشند، آنها به گونه ای طراحی شده اند که از الگوهای نامگذاری قابل فهم برای موتورهای جستجوSEO و آدرس های انتقال وضعیت قابل نمایش REST پیروی کنند.
-
پشتیبانی برای استفاده از نشانه گذاری در صفحات ASP.NET(فایل های aspx). کنترل های کاربر (فایل های ascx.) صفحات Master(با پسوند master.) به عنوان قالب های نمایشگر. شما می توانید از برخی ویژگی های موجودASP.NET از قبیل صفحات master تو در تو، اسکریپت درونی (<%=%>)، کنترل های سرور اعلان شده، قالب، انقیاد داده ها، محلی سازی و … در فریم ورک ASP.NET MVC استفاده کنید.
-
پشتیبانی از ویژکی های موجود ASP.NET : ASP.NET MVC به ما این امکان را می دهد تا از ویژگی هایی مانند مجوز فرم و تشخیص هویت ویندوز، مجوز آدرس ها، عضویت و نقش ها، خروجی و کش کردن داده ها و Session و مدیریت وضعیت پروفایل، مانیتور کردن صحیح، سیستم پیکر بندی و معماری عرضه کننده استفاده کنید.

منبع: barnamenevis.org

  • وحید بابائی

 AJAX چیست؟

استفاده مستقیم از XMLHttpRequest

تاریخچه ASP.NET Ajax

کامپوننت های ASP.NET Ajax

ساخت یک پروژه ASP.NET Ajax در محیط Visual Studio

کار با کنترل UpdatePanel

بهینه سازی UpdatePanel

ساخت trigger برای UpdatePanel

مدیریت خطاها در AJAX

مدیریت سمت سرور در AJAX

مدیریت سمت کلاینت AJAX

آموزش کامل کار با ASP.NET Ajax Control Toolkit

 منبع: git.ir

  • وحید بابائی