کوتلین زبان برنامهنویسی از نوع ایستا است که بر روی ماشین مجازی جاوا اجرا میشود. همچنین میتواند به سورس کد جاوا اسکریپت نیز کامپایل شود. اولین توسعهٔ ان از تیم برنامهنویسان JetBrains واقع در سنت پترزبورگ روسیه است (این نام از روی جزیره کوتلین در نزدیکی سنت پتربورگ میآید). کوتلین در ژانویهٔ سال ۲۰۱۲ به عنوان زبان ماه انتخاب شد. با وجود آنکه از نظر syntax با جاوا سازگار نیست، کوتلین طراحی شده تا با کد جاوا همکاری داشته باشد و متکی بر کد جاوا از کتابخانهٔ کلاس جاوا است، مانند مجموعهٔ فریم ورکها. مشابه با Pascal, Haxe, PL/SQL, F#, Go و اسکالا (بی شباهت به نحو C و زبانهای مشتق از ان مانند نیست C++, Java, C# و زبان D)، اعلامات متغیر کوتلین و پارامتر لیستها دارای نوع هستند که بعد از نام متغیر میآید (با جدا کنندهٔ کالن). مانند دیگر زبانهای مدرن مانند اسکالا و Groovy، سمی کالنها به عنوان عبارت خاتمه دهنده اختیاری هستند. در بیشتر اوقات یک خط جدید برای کامپایلر کافی است تا بتواند استنباط کند که عبارت به پایان رسیده است. در دوره آموزشی Packt The 7 Day Android App Bootcamp - Android Pie and Kotlin با آموزش توسعه اندروید با کوتلین در 7 روز اشنا خواهید شد.
یادگیری تقویتی یکی از گرایشهای یادگیری ماشینی است که از روانشناسی رفتارگرایی الهام میگیرد. این روش بر رفتارهایی تمرکز دارد که ماشین باید برای بیشینه کردن پاداشش انجام دهد. این مسئله، با توجه به گستردگیاش، در زمینههای گوناگونی بررسی میشود. مانند: نظریه بازیها، نظریه کنترل، تحقیق در عملیات، نظریه اطلاعات، سامانه چندعامله، هوش ازدحامی، آمار، الگوریتم ژنتیک، بهینهسازی بر مبنای شبیهسازی. در مبحث تحقیق در عملیات و در ادبیات کنترل، حوزهای که در آن روش یادگیری تقویتی مطالعه میشود برنامهنویسی تخمینی پویای (approximate dynamic programming) خوانده میشود. این مسئله در تئوری کنترل بهینه نیز مطالعه شدهاست. البته دغدغه اصلی بیشتر مطالعات در این زمینه، اثبات وجود پاسخ بهینه و یافتن ویژگیهای آن است و به دنبال جزئیات یادگیری یا تخمین نیست. یادگیری تقویتی در اقتصاد و نظریه بازیها بیشتر به بررسی تعادلهای ایجاد شده تحت عقلانیت محدود میپردازد. در یادگیری ماشینی با توجه به این که بسیاری از الگوریتمهای یادگیری تقویتی از تکنیکهای برنامهنویسی پویا استفاده میکنند معمولاً مسئله تحت عنوان یک فرایند تصمیمگیری مارکف مدل میشود. تفاوت اصلی بین روشهای سنتی و الگوریتمهای یادگیری تقویتی این است که در یادگیری تقویتی نیازی به داشتن اطلاعات راجع به فرایند تصمیمگیری ندارد و این که این روش روی فرایندهای مارکف بسیار بزرگی کار میکند که روشهای سنتی در آنجا ناکارآمدند. در دوره آموزشی Packt Hands-on Reinforcement Learning with PyTorch با آموزش یادگیری تقویتی با پای تورچ اشنا خواهید شد.
اسپرینگ (Spring) یکی از معروف ترین و پرکاربرد ترین framework های جاوایی است. این framework متن باز بوده و اولین بار در سال 2003 ارائه شده است. اسپرینگ از ابتدای ارائه تا الان تغییرات زیادی داشته و بسیار قدرتمند و معروف شده است. اسپرینگ framework قدرتمندی است که هدف اصلی آن برنامه های enterprise هستند اگرچه اسپرینگ بیشتر java EE را هدف گرفته است ولی در محیط های غیر از EE نیز می توان از آن استفاده کرد. بر خلاف تصوری که اشتباهاً در بین خیلی ها شکل گرفته است اسپرینگ برای ساخت اپلیکیشن تحت وب نیست بلکه Spring web که مبتنی بر مدل MVC بود و بیشتر به عنوان Spring MVC شناخته می شود تنها بخشی از اسپرینگ است که از آن برای ساخت برنامه های تحت وب استفاده می شود. یکی از زیر مجموعه های اسپرینگ، Spring Boot می باشد. اسپرینگ بوت در طراحی اپلیکیشن هایی کاربرد دارد که به صورت تکی و بدون هیج وابستگی به نرم افزار های دیگر یا چارچوب خاصی طراحی می شوند. در دوره آموزشی Packt Spring Boot Tips, Tricks, and Techniques با آموزش ترفندها، حقه ها و تکنیک های اسپرینگ بوت اشنا خواهید شد.
یادگیری عمیق (Deep learning) (یادگیری ژرف ماشین، یادگیری ساختار ژرف یا یادگیری سلسله مراتبی) یک زیر شاخه از یادگیری ماشینی و بر مبنای مجموعهای از الگوریتمها است که در تلاش هستند مفاهیم انتزاعی سطح بالا در دادگان را مدل نمایند که این فرایند را با استفاده از یک گراف عمیق که دارای چندین لایه پردازشی متشکل از چندین لایه تبدیلات خطی و غیر خطی هستند، مدل میکنند. به بیان دیگر پایهٔ آن بر یادگیری نمایش دانش و ویژگیها در لایههای مدل است. یک نمونه آموزشی (برای نمونه: تصویر یک گربه) میتواند به صورتهای گوناگون بسان یک بردار ریاضی پر شده از مقدار به ازای هر پیکسل و در دید کلی تر به شکل یک مجموعه از زیرشکلهای کوچکتر (نظیر اعضای صورت گربه) مدل سازی شود. برخی از این روشهای مدل سازی سبب ساده شدن فرایند یادگیری ماشین (برای نمونه: تشخیص تصویر گربه) میشود. در یادگیری ژرف امید به جایگزینی استخراج این ویژگیهای تصویر به دست بشر (مانند اعضای گربه) با روشهای کامل خودکار بدون نظارت و نیمه نظارتی وجود دارد. انگیزهٔ نخستین در بوجود آمدن این ساختار یادگیری از راه بررسی ساختار عصبی در مغز انسان الهام گرفته شده است که در آن یاختههای عصبی با فرستادن پیام به یکدیگر درک را امکانپذیر میکنند. بسته به فرضهای گوناگون در مورد نحوهٔ اتصال این یاختههای عصبی، مدلها و ساختارهای مختلفی در این حوزه پیشنهاد و بررسی شدهاند، هرچند که این مدلها به صورت طبیعی در مغز انسان وجود ندارد و مغز انسان پیچیدگیهای بیشتری را دارا است. این مدلها نظیر شبکه عصبی عمیق، شبکه عصبی پیچیده، شبکه باور عمیق پیشرفتهای خوبی را در حوزههای پردازش زبانهای طبیعی، پردازش تصویر ایجاد کردهاند. در دوره آموزشی Packt Deep Learning with Java با آموزش یادگیری عمیق با جاوا اشنا خواهید شد.
Nest.js یک فریموریک پروگرسیو نودجیاس، نوشته شده با Typescript است. این ابزار به صورت متن باز ارائه میشود. Nest.js ویژگیهای زیادی را از Anguar به ارث برده، همچنین این نکته بسیار مهمی است که بدانیم، انگولار و Nest.js هر دو با تایپاسکریپت نوشته شدهاند. Nest.js فریمورکی برای بک-اند است، با استفاده از این فریمورک شما میتوانید اپلیکیشنهای بهینه، مطمئن و مقیاسپذیری را برای سازمانها بنویسید. این ابزار توسط توسعهدهنده Kamil Mysliwiec نوشته شده است. در دوره آموزشی Packt Hands-On Web Development with TypeScript and Nest.js با آموزش توسعه وب با تایپ اسکریپت و نست جی اس اشنا خواهید شد.
Splunk یک SIEM است که بهصورت پلتفرمی قدرتمند بمنظور جمع آوری لاگها، جستجو، مشاهده، آنالیز و تحلیل دادهها در سازمانها نصب میشود و فعالیت میکند. کشف اطلاعات از طریق پردازش هزاران داده از بررسی لاگها انجام میشود. به بیانی دیگر Splunk دادههای خام را جمع آوری و فهرست بندی میکند و به شما این امکان را میدهد که بتوانید بر روی تمام دادهها عملیات جستجو را انجام دهید و نتایج را به هر صورت قابل دلخواه مشاهده کنید. ضمناً توسط Splunk میتوان از تمامی دادههای جمع آوری شده به بهترین نحو استفاده و بهره برداری کرد همچنین این امکان نیز فراهم میشود تا با ایجاد سطحی از هوش عملیاتی، سازمان را در سطح بالاتری از عملکرد، رقابت، سودآوری و امنیت قرار دهد تا بتواند به نوعی تمامی داده ها را مشاهده نماید. در دوره آموزشی Packt Splunk 7 Essentials با آموزش ملزومات اسپلانک 7 اشنا خواهید شد.
یونیتی (Unity) جزو چهار موتور بازی ساز بزرگ می باشد. ساخت بازی با این موتور بازی ساز بسیار ساده است و بیشتر کار در محیط ویژوال انجام می شود، یعنی حدود ۸۰ درصد کار بدون کدنویسی انجام می شود و تنها حدود ۲۰ درصد کار کدنویسی است، که این موضوع باعث جذب بسیاری از کاربران علاقه مند به بازی سازی شده است که علم زیادی در برنامه نویسی ندارند. نرم افزار Unity امکان ساخت و کار با محیط های سه بعدی را فراهم می کند. این نرم افزار در ساخت بازی های سه بعدی و محیط های 3D که با کاربر به صورت همزمان ارتباط برقرار می کند کاربرد دارد. می توان گفت این نرم افزار قدرتمند و حرفه ای برای طراحی و ساخت بازی های سه بعدی برای کامپیوتر و کنسول ها با محیط کاربری ساده می باشد. در دوره آموزشی Packt Unity 2019 3D Game Physics با آموزش فیزیک بازی های سه بعدی در یونیتی 2019 اشنا خواهید شد.
Puppet (پاپت) یک ابزار مدیریت پیکربندی متن باز (open source) است که می تواند به عنوان برنامه ای بسیار کاربردی و دستیاری مفید برای مدیران سیستم های لینوکس/ویندوز در نظر گرفته شود. از آن جایی که بسیاری از کارهای مدیریتی و تنظیمات مربوط به پیکربندی در سیستم های لینوکس مرتباً باید انجام شوند، با استفاده از این نرم افزار می توان با خودکارسازی آن وظایف در وقت و هزینه مدیر سیستم صرفه جویی نمود. Puppet با زبان برنامه نویسی روبی (Ruby) نوشته شده است. پاپت می تواند یک فایل پیکربندی به نام مانیفست (manifest) که در واقع یک فایل پیکربندی حاوی دستورات است، ایجاد کند که پیکربندی دلخواه سیستم ها در آن قرار می گیرد، سپس نزدیک ترین حالت ممکن به آن مانیفست را در سرورها پیاده می کند. بنابراین Puppet قابلیت مدیریت پیکربندی تمام میزبان های تحت شبکه را برای مدیر فراهم می کند. در دوره آموزشی Packt Learn Puppet 6 با آموزش پاپت 6 اشنا خواهید شد.
نرم افزار بلندر (Blender) یکی از محبوبترین برنامه های کاربردی مدلسازی و ساخت انیمیشن به صورت سه بعدی است که با حفظ سادگی رابط کاربری و در عین حال ارائه ویژگی هایی نظیر مانند پنل قدرتمند و حرفه ای، کاربرد آسان برای افراد مبتدی و حرفه ای، امکان ویرایش ویدیو و ... امکان ساخت انیمیشن به صورت سه بعدی را فراهم می کند. Blender امکان ایجاد طیف گسترده ای از محتوای دو بعدی و سه بعدی در زمینه های گسترده ای از مدل سازی های مربوط به بافت متن، نور، انیمیشن، ویدیو و Post Production را به شما ارائه می دهد. Blender از طریق معماری باز امکان همکاری cross-Platform، قابلیت توسعه پذیری و ایجاد یک گردش کاری یکپارچه را برای بکارگیری در پروژه های فیلم، انیمیشن و بازی سازی به وجود می آورد. در دوره آموزشی Packt Blender 3D Modeling and Animation: Build 20+ 3D Projects in Blender با آموزش مدلسازی و انمیشین سازی دو بعدی و سه بعدی با بلندر اشنا خواهید شد.
الگوریتم (Algorithm) یکی از مهم ترین بخش های دنیای کامپیوتر می باشد. در واقع الگوریتم مجموعه ای ترتیبی از دستور العمل ها است که به ترتیب خاصی اجرا می شوند و مساله ای خاص را حل می کنند. در دنیای کامپیوتر مسائل مختلفی وجود دارد که برای هرکدام الگوریتم های متفاوتی وجود دارد، هر کدام از آن ها دارای مزایا و معایبی هستند، به طور مثال یکی در استفاده از فضا بهینه است و یکی زمان اجرای بسیار بهینه و کمی دارد. از این رو دانستن الگوریتم های مختلف مثل جست و جو، مرتب سازی و... در دنیای کامپیوتر بسیار اهمیت دارد. از طرفی برای استفاده مناسب از الگوریتم ها باید با انواع ساختمان های داده مثل صف، پشته، لیست پیوندی و... آشنا بوده و ویژگی های هرکدام را بدانیم. ما می توانیم با انتخاب ساختمان داده و الگوریتم مناسب مسائل مختلف را به صورت بهینه حل کنیم و برنامه های بسیار مناسبی تولید نماییم. در دوره آموزشی Packt Advanced Data Structures and Algorithms in Python با آموزش پیشرفته ساختمان داده و الگوریتم ها در پایتون اشنا خواهید شد.