یک blockchain یک hosted ledger، رکوردی از رویدادها و متغیرهای موافقتشده است که به شکل رمزنگاری شده از آن محافظت میگردد. شما میتوانید آن را مثل یک صفحهگستردهی فوق پیشرفته و مبتنی بر ابر با ویژگی عدم وابستگی به پلتفرمی که روی آن اجرا میشود در نظر بگیرید. مشهورترین پیادهسازی blockchain در تبادل و ردیابی روالها برای پولهای cryptocurrencies مثل bitcoin محسوب میشود. قبل از blockchain، ما به یک موسسهی انسانی قابل اطمینان مثل یک بانک نیاز داشتیم تا به عنوان واسطه در این میان عمل کند، حتی برای چیزهای سادهای مثل انتقال پول الکترونیکی. با استفاده از blockchain که به شکل یک موسسهی قانونی عمل میکند ما میتوانیم کارهایی مثل نقل و انتقال وجه را بدون این که محبور به پرداخت درصدی از مبلغ به یک واسط ثالث مثل بانک باشیم به انجام برسانیم. در دوره Udemy Blockchain Technology and Innovation for Beginners - TEC102 با آموزش مقدماتی تکنولوژی بلاک چین و نوآوری آن آشنا می شوید.
Flexbox ها کدهای جدید در CSS می باشند که توسط W3C برای رفع مشکلات استفاده از کد های float و طراحی زیبا و دقیق تر سایت ها بخصوص سایت های ریسپانسیو ارائه شده است. پس از منسوخ شدن استفاده از table در طراحی قالب سایت، استفاده از کد float جز کد های پرطرفدار طراحان به شمار می رفت که استفاده از آن طراحان را دچار مشکلاتی می کرد. علاوه بر اینکه استفاده از Flexbox ها اصولی تر از کدهای Float می باشند، استفاده از آن تاثیر بسزایی در index صفحات سایت توسط موتورهای جستجوی گوگل نیز دارد و در نتیجه در سئوی سایت بسیار موثر است. مهمترین نکته ای که در روزهای اول ارائه Flexbox وجود داشت این بود که این کدها تنها برای طراحی بخشی از صفحه سایت (برای مثال منو) استفاده می گردید و برای طراحی قالب کل صفحه مورد استفاده نبود، چرا که برای ساخت قالب اصلی سایت با Flexbox ها باید از مجموعه کدهای Flexbox و CSS در کنار هم استفاده شود که به این مجموعه Grid Layout Module گفته می شود. جدا از تمام مزایای Grid Layout Module، این مجموعه یک محدویت بزرگ را برای طراحان به همراه داشت، حتی آخرین نسخه های بروزرسانی مرورگرها هم با آن مشکل داشت. در واقع یکی از علت هایی که ورژن های مختلفی از Flexbox ها ارائه شد تردید شرکت های ارائه دهنده مرورگر ها در پشتیبانی از آن بود. به کمک کد های Flexbox می توانیم بجای اینکه برای هر آبجکت بصورت انفرادی خصوصیت تعیین کنیم، تمام آبجکت ها را بصورت گروه در آورده و برای آنها style های گروهی قرار دهیم. در واقع استفاده از Flexbox ها بهترین گزینه برای موقعیت دهی آبجکت های درون یک صفحه می باشد. در دوره آموزشی Udemy CSS FLexbox Tutorial with Website Projects با ساخت وب سایت با سی اس اس فلکس باکس آشنا می شوید.
در خصوص چیستی فضای سایبری،متاسفانه هنوز هیچگونه تعریف کامل و شاملی برای این فضا وجود ندارد؛اما از مجموع نظرات مطرح شده اینگونه تعریف می شود:شبکه ای متصل به هم از زیر ساخت های فناوری اطلاعات است که اینترنت،شبکه های مخابراتی،سیستم های کامپیوتری،و پردازشگرها و کنترلگرهای داخلی صنایع مهم را شامل میشود.در سند سیاست فضای سایبری آمریکا در سال 2009 این فضا به عنوان زیر ساخت جهانی و متصل به هم ارتباطات و اطلاعات دیجیتال که تقریبا زیر بنای تمامی وجوه جوامع مدرن را تشکیل میدهد تعریف شده است. این محیط در کنار زمین،هوا،دریاو فضا،تعریف جداگانه و مستقلی برای خود دارد؛به طور کلی از فضای سایبری به عنوان محیطی برای انتقال داده ها و اطلاعات یاد میشود و تنها شامل اینترنت نمیشود ؛بلکه شامل تمام شبکه ها و سیستم های ارتباطی-اطلاعاتی است؛درک تغییراتی که فناوری به میدان نبرد وارد کرده است،چالشی مستمر و پایدار است. امنیت شامل سه عنصر پایه ای است. محرمانگی، به این معنا که اگر داده هایی که در فضای سایبری در حال انتقال هستند،توسط مهاجمین خوانده شوند و محرمانه بودن آن نقض شود. یکپارچگی، اگر در حین انتقال داده ها در فضای سایبری(به عنوان مثال در یک شبکه) اطلاعات توسط مهاجمین دستکاری شده و تغییر داده شوند. در دسترس بودن، این نوع حملات با هدف خارج کردن منبع اطلاعاتی از سرویس به گونه ای که دیگر آن منبع قادر به ارائه سرویس به دیگران نبوده و نتواند تبادل اطلاعات درستی با کاربرانش داشته باشد، انجام می شود. در دوره آموزشی Lynda CySA+ Cert Prep: The Basics با آموزش امنیت سایبری همراه با سرفصل های اخذ مدرک مدرک +CySA به صورت مقدماتی آشنا می شوید.
جاوا (Java) یک زبان برنامهنویسیِ شیءگرا است که برای نخستین بار توسط جیمز گاسلینگ در شرکت سان مایکروسیستمز ایجاد گردید و در سال ۱۹۹۵ به عنوان بخشی از سکوی جاوا منتشر شد. زبان جاوا شبیه به ++C است اما مدل شیءگرایی آسانتری دارد و از قابلیتهای سطح پایین کمتری پشتیبانی میکند. یکی از قابلیتهای بنیادین جاوا این است که مدیریت حافظه را بطور خودکار انجام میدهد. ضریب اطمینان عملکرد برنامههای نوشتهشده به این زبان بالا است و وابسته به سیستمعامل خاصی نیست، به عبارت دیگر میتوان آن را روی هر رایانه با هر نوع سیستمعاملی اجرا کرد. برنامههای جاوا به صورت کدهای بیتی همگردانی (کامپایل) میشوند؛ که مانند کد ماشین هستند و به ویژه وابسته به سیستمعامل خاصی نیستند. در دوره آموزشی Udemy Complete Java programming Masterclass 2018: Zero to Mastery شما از ابتدایی ترین کارها تا پیشرفته ترین آنها در زبان برنامه نویسی جاوا آشنا می شوید.
امروزه کمتر کاربردی از تکنولوژی را می توان یافت که از یادگیری ماشین و هوش مصنوعی بهره نگرفته باشد. از شناسایی چهره گرفته تا تشخیص عیب در سیستمهای صنعتی همه و همه با به کارگیری یادگیری ماشین شاهد پیشرفتی غیر قابل وصف بوده اند. ابزارهای زیادی برای پیاده سازی روشهای متداول یادگیری ماشین ارائه شده اند که از میان آنها می توان به کتابخانه Tensorflow گوگل اشاره کرد. از لحاظ راحتی برای شروع کار کتابخانه های توسعه یافته مبنی بر SciPy مثل Scikit-learn کار را بسیار ساده تر می نماید. کتابخانه Scikit-learn که مبتنی بر SciPy است، برای کاربردهای یادگیری ماشین از جمله خوشه بندی، رگرسیون و کلاس بندی ابزار قدرتمند و در عین حال ساده ای می باشد. یادگیری استفاده از آن بسیار سریع و آسان بوده و انعطاف آن باعث می شود تا بتوان آن را در مسائل متنوعی مورد استفاده قرار داد. در دوره Packt Hands-on Scikit-learn for Machine Learning با آموزش شروع کار با سی کیت برای یادگیری ماشین آشنا خواهید شد.
جنگو (Django) یک چارچوب نرمافزاری تحت وب آزاد و متنباز است که به زبان پایتون نوشته شده است و از معماری مدل-نما-کنترلگر (Model-view-controller) پیروی میکند. جنگو اولین بار برای مدیریت صفحات خبری وبسایت شرکت Lawrence Journal-World توسعه داده شد و سپس در سال ۲۰۰۵ تحت اجازهنامه بیاسدی منتشر شد. نام جنگو از جنگو راینهارت، نوازندهٔ گیتار جاز گرفته شده است. هدف اصلی جنگو ساخت آسان سایتهای پیچیده و وابسته به دیتابیس است و بر پایهٔ قابلیت استفادهٔ مجدد و قابل اتصال بودن اجزای مختلف، توسعه ی سریع و اصل خودت را تکرار نکن (DRY) طراحی شده است. جنگو سراسر از پایتون استفاده میکند، حتی برای تنظیمات، فایلها و مدلهای اطلاعات. هروکو (Heroku) یک بستر به عنوان سرویس ابری است که از زبانهای برنامهنویسی مختلف پشتیبانی میکند. هروکو در سال ۲۰۱۰ توسط شرکت سیلزفورس خریداری شد. هروکو یکی از اولین بسترهای ابری است که از جون ۲۰۰۷ در حال توسعه است. این سرویس در ابتدا فقط از زبان برنامهنویسی روبی پیشتیبانی میکرد ولی بعداً پشتیبانی از جاوا، نود. جیاس، اسکالا، کلوژر، پایتون، پیاچپی و گو را به سرویس خود اضافه کرد. در دوره Udemy How To Push Django Python Apps To Heroku for Web Hosting به آموزش ترکیب جنگو پایتون با هروکو برای میزبانی وب می پردازیم.
Laravel یکی از فریم ورک های زبان PHP است که برای توسعه اپلیکیشن های وب در نظر گرفته شده است و بر پایه MVC کار می کند. فریم ورک لاراول، برنامه نویسی برنامه های کاربردی تحت وب با زبان PHP را سادهتر می نماید و کمک بسزایی برای انجام پروژه های PHP و توسعه آسان آنها می کند. فریم ورک Laravel بر روی اجزای مختلف فریم ورک symfony ساخته شده است و به برنامه شما پایهای بزرگ از کد های قابل اعتماد و تست شده می دهد. لاراول مجموعه ای از بهترین راه حل ها با سینتکس پر معنا و خلاقانه را ارائه میکند که به درستی انجام می پذیرند. چند ماه پیش بود که لاراول ۵.۳ انتشار یافت و حالا لاراول ۵.۴ با یکسری ویژگی های جدید و امکانات جدید که به آن اضافه شده ریلیز شد. اگرچه ما تا بحال هم به صورت پیوسته نوآوریهای فراوانی را برای این فریم ورک ارائه کردهایم، اما ۵٫۴ یکی از جالبترین نسخههایی است که تا امروز دیدهاید. لاراول نسخه 5.1 همراه با ویژگی های جدیدی معرفی شد؛ مهمترین ویژگی هایی که با این نسخه لاراول معرفی شده است اعلام رویدادها، بهبود امکانات تست و پشتیبانی از LTS است . در دوره ی آموزشی Udemy 2018 Fullstack: Laravel 5.6 With QRCodes, APIs, Android/IOS با ویژگی های جدید لاراول 5.6 برای طراحی حرفه ای بلاگ و سی ام اس آشنا می شوید.
دارت زبان برنامهنویسی است که توسط گوگل توسعه داده میشود. هدف دارت جایگزین کردن جاوااسکریپت که زبان داخلی مرورگرهای وب است است. دارت راه حلی برای مشکلات موجود در جاوا اسکریپت (بهطور مثال مشکل حافظه) است که کارایی بهتر، قابلیت استفاده سادهتر برای پروژههای بزرگ و امنیت بیشتری را فراهم میکند. گوگل همچنین بسیار تلاش دارد تا دارت را پیچیده تر بسازد و ویژگیها و قابلیتهای فراوانی به آن ببخشد. دارت زبانی برپایه کلاس، وراثت یگانه و شی گرایی است که گرامر آن شبیه زبان C بوده و دارای Interface،reified generics کلاسهای Abstract و Optional typing است. type annotationهای ایستا تأثیری بر روی سمانتیک کد در زمان اجرا ندارد. در عوض type annotation میتواند پروندههایی برای ابزارهایی مانند checkerهای ایستا و checkهای پویای در زمان اجرا را فراهم نماید. این پروژه توسط لارس بک و کسپر لاند پایهگذاری شدهاست. Flutter ابتدا توسط گوگل به عنوان یک چارچوب رابط کاربری یا همان طراحی UI برای ایجاد رابط های بومی (Native) در سیستم عامل های IOS و Android مطرح شد. Flutter با کد های موجود درون برنامه کار می کند و اغلب توسط توسعه دهندگان و سازمان ها به دلیل استفاده رایگان (Free Use) و منبع باز بودن در سراسر دنیا مورد استفاده قرار میگیرد. همچنین Flutter یک روش اصلی برای ایجاد کردن برنامه های کاربردی برای Google Fuchsia است ( Fuchsia یک سیستم عامل مبتنی بر قابلیت هایی است، که توسط گوگل ارائه شده و توسعه یافته است). اولین نسخه Flutter به نام SKY شناخته شده و در سیستم عامل اندروید مورد استفاده قرار میگیرد. در دوره آموزشی Udemy Dart and Flutter The Complete Developer's Guide با آموزش فلاتر و دارت برای ساخت اپ های آی او اس و اندروید آشنا خواهید شد.
R، یک زبان برنامهنویسی و محیط نرمافزاری برای محاسبات آماری و علم دادهها است، که بر اساس زبانهای اس و اسکیم پیادهسازی شده است. این نرمافزار متن باز، تحت اجازهنامه عمومی همگانی گنو عرضه شده و به رایگان قابل دسترس است. زبان اس بجز R، توسط شرکت Insightful، در نرمافزار تجاری اسپلاس نیز پیادهسازی شده است. اگرچه دستورات اسپلاس و R بسیار شبیه است لیکن این دو نرمافزار دارای هستههای متمایزی میباشند. R، حاوی محدودهٔ گستردهای از تکنیکهای آماری (از جمله: مدلسازی خطی و غیرخطی، آزمونهای کلاسیک آماری، تحلیل سریهای زمانی، ردهبندی، خوشهبندی و غیره) و قابلیتهای گرافیکی است. در محیط R، کدهای سی، سی++ و فورترن قابلیت اتصال و فراخوانی هنگام اجرای برنامه را دارند و کاربران خبره میتوانند توسط کدهای سی، مستقیماً اشیا R را تغییر دهند. گرچه R اغلب به منظور انجام محاسبات آماری به کار میرود، این نرمافزار قابل به کارگیری در محاسبات ماتریسی است و در این زمینه، همپای نرمافزارهایی چون اُکتاو و نسخهٔ تجاری آن متلب (MATLAB) است. R، همچنین نرمافزار قدرتمندی برای ایجاد اشکال گرافیکی و نمودارهاست. در دوره آموزشی Lynda Cleaning Bad Data in R با آموزش پاکسازی داده ای کثیف در آر آشنا می شوید.
به صورت کلی برای تست عملکرد (functional test) دو روش جعبه سفید (whitebox) و جعبه سیاه (blackbox) وجود دارد. در حالت جعبه سفید، خود برنامه نویس یک روال تست را در قالب unit test برای تک تک کلاس ها و توابع برنامه می نویسد و کد را تست می کند. ولی در حالت جعبه سیاه ما دیگر کاری با ساختار داخلی کد نداریم و فقط به سیستم ورودی لازم را میدهیم و انتظار داریم خروجی درستی به ما بدهد. یکی از بهترین ابزارهای این تست Selenium است که با این نرم افزار نه تنها می توانید تست هایی را برای هر بخش تعریف کنید، بلکه می توانید تست ها را زمان بندی کرده و به طور خودکار انجام دهید. فرض کنید وب سایت شما ۱۰۰ ویژگی مختلف دارد، شما همه ی این ۱۰۰ ویژگی را تست می کنید و وب سایتتان را منتشر میکنید. بعد از دو روز یک باگ گزارش می شود و یا میخواهید تغییر کوچکی در روند فعالیت کاربر ایجاد نمایید. آیا پس از اعمال تغییرات یا رفع باگ میخواهید دوباره همه ی آن ۱۰۰ ویژگی را تست کنید. اینجاست که سلنیوم به کمک شما می آید و همه ی تست ها را به صورت خودکار انجام می دهد. سلنیوم دو بخش اصلی به نام های سلنیوم IDE یا (selenium IDE) و سلنیوم وب درایور (selenium webdriver) دارد. سلنیوم IDE یک addon برای فایرفاکس است و پس از نصب آن می توانید آیکن آن را در کنار نوار آدرس ببینید. سلنیوم وب درایور یک کتابخانه برنامه نویسی است که برای اکثر زبان های معروف از جمله پایتون و جاوا موجود است. این کد را می توانید از سلنیوم IDE خروجی بگیرید. پس از اینکه در سلنیوم IDE ضبط دستورات تمام شد از منوی فایل روی export test case رفته و زبان مورد نظر خود را انتخاب کنید. سپس سلنیوم یک خروجی به همان زبان به شما خواهد داد. در دوره آموزشی Packt Beginning Selenium WebDriver Testing in Python به طور کامل با امکانات و ویژگی های سلنیوم وب درایور و معماری اتوماسیون تست با پایتون آشنا می شوید.