زبان برنامهنویسی سی، زبانی همه منظوره، ساختیافته، دستوری و روندگرا است که در سال ۱۹۷۲ توسط دنیس ریچی در آزمایشگاههای بل ساخته شد. در دهه ۱۹۶۰ میلادی توسعه نرمافزار دچار مشکلات عدیدهای شد. در آن زمان سبک خاصی برای برنامه نویسی وجود نداشت و برنامهها بدون هیچگونه ساختار خاصی نوشته میشدند. وجود دستور پرش (goto) نیز مشکلات بسیاری را برای فهم و درک برنامه توسط افراد دیگر ایجاد میکرد، چرا که جریان اجرای برنامه مرتباً دچار تغییر جهت شده و دنبال کردن آن دشوار میگردید؛ لذا نوشتن برنامهها عملی بسیار زمان بر و پرهزینه شده بود و معمولاً اشکال زدایی، اعمال تغییرات و گسترش برنامهها بسیار مشکل بود. فعالیتهای پژوهشی در این دهه باعث بوجود آمدن سبک جدیدی از برنامه نویسی بنام برنامهنویسی ساختیافته گردید؛ روش منظمی که باعث ایجاد برنامههایی کاملاً واضح و خوانا گردید که اشکالزدایی و خطایابی آنها نیز بسیار سادهتر بود. برنامههای نوشته شده به زبان C در فایلی متنی با پسوند c. ذخیره میشوند. به این فایل، کد منبع (source code) گفته میشود. فایل کد منبع برای اجرا باید به زبان ماشین ترجمه شود که به اینکار ترجمه (compile) و به برنامهای که عمل ترجمه به زبان ماشین یا زبان دیگر را انجام میدهد مترجم (compiler) میگویند. در دوره آموزشی Udemy C Programming For Beginners - Master the C Language به صورت مقدماتی با آموزش تسلط بر زبان سی آشنا می شوید.
Burp Suite یکی از ابزارهای بسیار جذاب هم در حوزه امنیت تدافعی و هم در حوزه امنیت تهاجمی محسوب می شود. این ابزار به عنوان یک مجموعه ابزار یا بهتر بگوییم یک پلتفرم برای انجام تست های امنیتی بر روی نرم افزارهای تحت وب مورد استفاده قرار می گیرد. ابزارهای مختلفی که در این مجموعه ابزار قرار گرفته اند با هماهنگی هم می توانند یک پشتیبانی کامل از فرآیند تست امنیتی یک Web Application را به ما ارائه بدهند. بعضا شما می توانید با استفاده از Burp Suite باگ های نرم افزاری و امنیتی یک Web Application را شناسایی کنید و حتی بعد از تجزیه و تحلیل با استفاده از همین مجموعه ابزار حمله مورد نظر را نیز به Web Application انجام دهید و آسیب پذیری های موجود در این نرم افزارها را شناسایی کنید. Burp Suite به شما قابلیت های پیشرفته ای می دهد که بتوانید بهصورت دستی تغییراتی بر روی ورودی های داده یک نرم افزار وب انجام دهید و بعضا از کار امنیت در این حوزه لذت ببرید ، از Burp Suite به ویژه در حوزه هک و تست نفوذ به نرم افزارهای تحت وب بسیار استفاده می شود. در دوره Udemy Learn Burp Suite for Advanced Web Penetration Testing با آموزش بورپ سوئیت برای تست نفود پیشرفته وب آشنا خواهید شد.
MEAN stack به مجموعه ای از تکنولوژی ها و کتابخانه های جاوااسکریپت گفته می شود که امکان توسعه برنامه های تحت وب را کاملا با استفاده از زبان جاوااسکریپت به توسعه دهندگان می دهد و توسعه دهنده می تواند در تمامی لایه ها فقط از جاوااسکریپت استفاده کند (دیتابیس، سرور و کلاینت). به طور مثال مونگو دی بی یک پایگاه داده متن باز و رایگان مثل MySQL است با این تفاوت که عمر زیادی ندارد (از سال 2009 انتشار آن آغاز شده) و مهمتر از همه اینها؛ بسیاری از محدودیت های سایر پایگاه های داده را ندارد. این پایگاه داده سندگرا است بنابراین برخلاف پایگاه داده های رابطه ای، اسناد شبیه به جی سون را مدیریت می کند. این اجازه می دهد که مدل داده های برنامه بیشتر به شکل طبیعی شان نزدیک باشد به این خاطر که داده ها می توانند در سلسله مراتبی پیچیده و تودرتو قرار بگیرند اما قابلیت اجرای درخواست و شماره بندی شان را از دست ندهند. در دوره آموزشی Packt Hands-On MEAN Stack Web Development با تکنیک های توسعه در مین استک آشنا می شوید.
اگر تاکنون اخبار مربوط به سرویسهای کلود را دنبال کرده باشید، احتمالاً میدانید که تکنولوژیهای قدیمی هاستینگ و سرورها جای خود را با سرویسهای ابری عوض کردهاند؛ یکی از ویژگیهایی که سرویسهای کلود دارند این است که سرویس مورد نظر شما بر روی چندین سرور کلود در سراسر جهان در حال اجرا است و در صورتی که یکی از این سرورها از کار بیفتد، سرور دیگری به کاربران شما سرویسدهی خواهد کرد. در معماری Serverless معیار اندازهگیری مدت زمانی است که تابع مورد نظر شما در حال استفاده منابع سرور بوده است؛ در این معماری بحث بر سر این موضوع نیست که چه مقدار RAM یا CPU برای اجرای تابع مورد نظر شما نیاز است بلکه فقط مدت زمانی که طول میکشد تا تابع شما اجرا شود بررسی میشود. درواقع، هیچ یک از معیارهای قدیمی در این معماری در نظر گرفته نمیشوند! شما تابع مورد نظر خود را مینویسید، آن را بر روی کلود پابلیش میکنید و فقط به اندازهٔ زمانی که تابع شما طول کشیده است تا اجرا شود هزینه پرداخت میکنید. در این معماری برای شما مشخص نمیکنند که تابع مد نظر به طور فنی باید چگونه باشد؛ درواقع، از نظر شرکت مد نظر آن تابع یک واحد کاری است که باید انجام شود. توابع میتوانند به روشهای مختلفی اجرا شوند؛ ممکن است یک شمارنده به صورت دورهای تابع ما را اجرا کند یا اینکه یک پاسخدهنده به درخواستهای HTTP یا حتی رویدادی برای سرویسهای مشابه باشد. فرقی نمیکند که تابع شما چه کار میکند بلکه تنها چیزی که در این معماری مهم است این است که چقدر طول میکشد تابع شما اجرا شود. در دوره آموزشی Packt Serverless Design Patterns and Best Practices با آموزش ساخت طراحی الگوهای اپ های بدون سرویس آشنا می شوید.
SchemaAgent نرم افزاری قدرتمند برای مدیریت روابط بین فایل های XML در طول یک پروژه، یک شبکه اینترانت و یا حتی یک سازمان می باشد. از آنجایی که SchemaAgent به شما اجازه می دهد تا فایل های XML Schema، XSLT و WSDL را به عنوان منبعی از منابع، آنالیز و مدیریت کنید، می توانید به آسانی اسناد پیچیده ای را از عناصر فایل های توزیع شده در شبکه خود، به منظور استفاده مجدد از کامپوننت های موجود و کاهش زمان برنامه نویسی، ایجاد کنید. این نرم افزار همچنین تصاویر واضحی از ساختار فایل XML شما را برایتان نمایش می دهد. SchemaAgent از کامپوننت های گرافیکی و خطوط رنگی استفاده می کند تا یک نمایش بصری از ساختار اطلاعات XML به نمایش بگذارد. این ویژگی به شما کمک می کند تا سریعا روابطی را که بین طرح های مرتبط وجود دارد توصیف نموده و همچنین اجزای مختلف و انواع داده ها موجود در هر طرح را به راحتی تشخیص دهید. این نرم افزار به شما امکان اصلاح ارتباطات و ایجاد ارتباطات جدید و تعریف مجدد روابط را با استفاده از عملکرد آسان drag & drop کردن می دهد.
در فرهنگ رایانه، رابط گرافیکی کاربر یا واسط نگارهای کاربر، مجموعهای از نشانههای گرافیکی نمایش داده شده بر روی یک نرمافزار است که در آن کاربر به جای تایپ فرمانهای بلند و پیچیده از اعلان فرمان، با اشاره بر نمایشهای تصویری بر روی صحنه تصویر، پروندهها، برنامهها یا فرمانهای گوناگون را انتخاب میکند. به عبارتی سادهتر، یک محیط گرافیکی که نرمافزارهای رایانه، برای راهنمایی و کاربری بهتر انسان بکار میگیرند واسط گرافیکی کاربر نامیده میشود. این نما، چگونگیِ روش کاربریِ رایانه را، توسط انسان، بهبود میبخشد و روشی است گرافیکی برای نمایش نرمافزار سیستمعامل رایانه، به کاربرانش. در رایانههای قدیمیتر، این نما، مجموعهای بود از نشانهای تایپی نشان داده شده بر صفحه نمایشگر. در رایانههای امروزی اما، نمای گرافیکی کاربری مجموعهای است از نشانها و پس زمینهها و کلیدهایی زیبا و رنگین، برای بهبود رابطه انسان-ماشین در راستای بهبود کاربری کارایی بهتر. در دوره آموزشی Udemy Building amazing GUI applications in Python 3 from scratch با نحوه برنامه نویسی رابط گرافیکی کاربر با پایتون 3 آشنا می شوید.
به عنوان یک کاربر ما ترجیح می دهیم برنامه ای که با آن در حال کار هستیم، به سرعت به درخواست ها و تعاملات ما پاسخ بدهد و در زمان پردازش اطلاعات و یا بارگذاری آن ها، دچار freeze نشود (یا به اصطلاح، هنگ نکند.). در برنامه هایی که بر روی دسکتاپ اجرا می شوند، معمولا کاربران، شکیبایی بیشتری در صورت اجرا نشدن درست برنامه دارند ولی در مورد برنامه های موبایل اینطور نیست و کاربران انتظار پاسخ سریع و درست دستگاه را دارند. همچنین برای جلب رضایت کاربران در سیستم عامل های جدید، امکانی به کاربران داده شده است که می توانند برنامه هایی که راندمان دستگاه را پایین می آورند، به طور کلی از حالت اجرا خارج کنند. اگر شما یک برنامه نویس باشید، احتمالا با این مورد مواجه شده اید که ناگهان برنامه تان قادر به واکنش و انجام امور نباشد. یک مثال ساده می تواند زمانی باشد که درخواست های زیادی به سمت سرور فرستاده می شود و پاسخ آن ها بیشتر از حد معمول طول می کشد (که مثلا این مساله می تواند ناشی از مشکلاتی در سمت سرور باشد). اگر این درخواست ها به صورت همزمان فرستاده شده باشند، دستگاه تا زمانی که مشکل خود را برطرف نکند، نمی تواند به هیچ یک از درخواست ها پاسخ بدهد. در دوره آموزشی Udemy Asynchronous JavaScript با برنامه نویسی غیرهمزمان در جاوا اسکریپت آشنا می شوید.
Atmel Studio محیط توسعه یکپارجه (IDE) برای توسعه و برنامه نویسی میکروکنترلر های AVR و ARM می باشد. این نرم افزار که در نسخه قبلی از نظر شکل ظاهری بسیار زیباتر از نسخه های قبلی شده بود، این بار با یک تغییر نام کوچک و یک تغییر بزرگ آمده است. 6 Atmel Studio که در نسخه های قبلی با نام AVR Studio ارائه می شد یک امکان بسیار مهمی به آن افزوده شده است و آن هم این است که شما می توانید با این نسخه برای میکروهای سری ARM شرکت اتمل نیز برنامه نویسی کنید. همان طور که می دانید سری ARM یکی از موفق ترین سری میکروهای شرکت اتمل بوده است و روز به روز استفاده از آن گسترده تر می شود. این سری را شما می توانید حتی در گوشی های موبایل خود ببینید. این سری آن چنان مورد استقبال قرار گرفت که اکثر شرکت های سازنده گوشی های تلفن همراه را به خود جذب کرد و ARM را در بسیاری از گوشی های خود به کار بردند. البته این ها باعث نمی شود که از ارزش میکروکنترلرهای سری AVR چشم پوشی کنیم. سری AVR پیشرفت بسیاری پیدا کرد. خصوصا در کشور ما جایگاه ویژه ای باز کرده است. اما باز با این حال سری ARM ویژگی های منحصر به فرد خود را دارد. برای همین دلیل هم شرکت اتمل با این نرم افزار امکانی را برای کاربران خود فراهم کرده است تا بتوانند با یک نرم افزار برای هر دو سری این میکروهای برنامه نویسی کنند.
در طی مراسم توسعه دهندگان کانکت، مایکروسافت رسماً از ویژوال استودیو ۲۰۱۷ RC و ویژوال استودیو ۲۰۱۷ برای مک رونمایی کرد. مایکروسافت تاکید ویژه ای بر سادگی و سهولت استفاده از این ویژوال استودیو برای توسعه برنامه ها توسط توسعه دهندگان نموده است. در حالی که نسخه های عرضه شده در دسته پیش نمایش قرار می گیرند اما برگزیدن نام RC که مخفف عبارت "Release Candidate" است نشان از کمترین تفاوت این نسخه ها با نسخه های رسمی دارد. یک موضوع مهم در رابطه با ویژوال استودیو جدید سهولت بخشیدن به روند ساخت و تست برنامه های موبایل توسط مایکروسافت در ویژوال استودیو ۲۰۱۷ است. در کنار سهولت توسعه برنامه های موبایل، مایکروسافت الحاق ها و قابلیت های اضافه بسیاری را برای ویژوال استودیو جدید خود تدارک دیده است که این به معنای بهبود کارایی و بازدهی، سهولت استفاده از سطوح مختلف فضای ابری و تحولات و امکانات آن و دسترسی های بیشتر می باشد. از نوامبر ۲۰۱۴ و در کنار مجموعه ویژوال استودیو ۲۰۱۳، نسخه Community نیز عرضه شد. این نسخه از ویژوال استودیو، محدودیتهای Express را نداشته و با امکانات کامل عرضه میشود و جایگزین Visual Studio Express است و برای تیمهای نرمافزاری کوچک، پروژههای اپن سورس و کارهای تحقیقاتی و آموزشی رایگان است. آخرین محصول عرضه شده از این ویرایش، Visual Studio Community 2017 است. در دوره آموزشی Udemy C# Acceleration with Visual Studio 2017 Community یا امکانات و ویژگی های جدید ویژوال استودیو 2017 آشنا می شوید.
رمزنگاری دانشی است که به بررسی و شناختِ اصول و روشهای انتقال یا ذخیرهٔ اطلاعات به صورت امن میپردازد. رمزنگاری استفاده از تکنیکهای ریاضی، برای برقراری امنیت اطلاعات است. دراصل رمزنگاری دانش تغییر دادن متن پیام یا اطلاعات به کمک کلید رمز و با استفاده از یک الگوریتم رمز است، به صورتی که تنها شخصی که از کلید و الگوریتم مطلع است قادر به استخراج اطلاعات اصلی از اطلاعات رمز شده باشد و شخصی که از یکی یا هر دوی آنها اطلاع ندارد، نتواند به اطلاعات دسترسی پیدا کند. دانش رمزنگاری بر پایه مقدمات بسیاری از قبیل تئوری اطلاعات، نظریه اعداد و آمار بنا شدهاست و امروزه به طور خاص در علم مخابرات مورد بررسی و استفاده قرار میگیرد. معادل رمزنگاری در زبان انگلیسی کلمه Cryptography است، که برگرفته از لغات یونانی kryptos به مفهوم «محرمانه» و graphien به معنای «نوشتن» است. در دوره آموزشی Udemy Cryptography from Scratch | Master Cryptography in Java با رمزنگاری در جاوا و اصول آن آشنا می شوید.