رفتن به مطلب
مرجع رسمی سی‌پلاس‌پلاس ایران

کامبیز اسدزاده

بنیـــان گذار
  • تعداد ارسال ها

    505
  • تاریخ عضویت

  • روز های برد

    266

نوشته‌های وبلاگ ارسال شده توسط کامبیز اسدزاده

  1. کامبیز اسدزاده
    نرم‌افزار و اپلیکیشن‌های ایرانی روی آیفون (سیستم‌عامل iOS) از کار افتادند!
    مدت‌ها است که زمزمه‌هایی در مورد محدودسازی استفاده از «گواهی توسعه‌دهنده سازمانی» (Enterprise Developer Certificates) از سوی اپل به گوش می‌رسد. حالا ظاهراً این محدودیت گریبان کاربران ایرانی این سرویس را گرفته است.
    از دیشب گزارشات های متعددی مبنی از از کار افتادن نرم‌افزار و اپلیکیشن‌های ایرانی آیفون و آی‌پد یا به صورت کلی سیستم عامل iOS اپل به گوش می‌رسد. متاسفانه باید گفت که به صورت رسمی این یک مشکل همگانی بوده و از سوی اپل ایجاد شده است. نرم‌افزار و اپلیکیشن‌های ایرانی بر روی آیفون (سیستم عامل iOS) از کار افتاده‌اند و در ادامه با هم درباره آن صحبت خواهیم کرد، با جامعهٔ برنامه‌نویسان مدرن ایران همراه باشید.

    همانطور که در تصویر فوق مشاهده می‌کنید، کاربران برای استفاده از نرم‌افزارهایی که توسعه‌دهندگان آن‌ها ایرانی می‌باشند با مشکل روبرو شده‌اند. در حقیقت از دیشب نرم‌افزارهای مشهور ایرانی مانند بانک ملت، اسنپ، همراه‌من، مای ایرانسل و … روی آیفون قطع شده‌اند و کاربران نمی‌توانند از آن ها استفاده کنند. خطای فوق هنگان اجری برنامه‌ها رخ می‌دهد.
    گواهی‌های توسعه‌دهندگان سازمانی به شرکت‌ها اجازه می‌دهد اپلیکیشن‌های خود را خارج از فضای اپ‌استور و به شکل مستقیم در اختیار مخاطب قرار دهند. اما چندی قبل مشخص شد که تعدادی از اپلیکیشن‌های مستهجن، قمار و نیز اپ‌های کرک شده از این روش به طور گسترده در اختیار کاربران قرار گرفته‌اند. اپل هم اعلام کرد که توسعه‌دهندگانی که از این گواهی‌ها سوء استفاده می‌کنند خلاف تعهدنامه این شرکت عمل کرده‌اند و مجوزشان باطل خواهد شد.
    بسیاری از شرکت‌های ایرانی نیز به دلیل تحریم‌های اعمال شده علیه کشور از همین روش استفاده می‌کنند تا محدودیت‌های اعمال شده را دور بزنند. اما همین روش مشکلاتی را برای اپلیکیشن‌های معروف ایرانی ایجاد کرده است.
    به نظر می‌رسد در روزهای آتی شاهد پیش آمدن مشکلات بیشتری از این دست برای اپلیکیشن‌هایی باشیم که از گواهی سازمانی اپل برای انتشار اپ‌ها استفاده می‌کنند. بررسی‌های جامعهٔ برنامه‌نویسی ایران خبر از غیر قابل استفاده شدن اپ‌های دیگری از جمله همراه‌بانک‌ها، دیجی‌کالا، آسان پرداخت و ریحون دارد در حالی که برخی دیگر مانند دیوار همچنان قابل استفاده هستند.
    نکته: بر اساس توصیهٔ شرکت‌های سازندهٔ اپلیکیشن‌های ایرانی، فعلاً جهت استفاده از خدمات آن‌ها بهتر است در صورت وجود نسخهٔ تحت وب از آن پلتفرم استفاده شود.
  2. کامبیز اسدزاده
    پردازنده‌ها چگونه طی ۴۰ سال گذشته تغییر کرده‌اند؟
    پردازنده‌ها از پیدایش تا‌به‌حال، در‌حال‌پیشرفت بوده‌اند و روز‌به‌روز درکنار قدرتمند‌ترشدن، مصرف انرژی آن‌ها هم بهینه‌سازی شده است. اما این پیشرفت‌ها چقدر بوده و در آینده چگونه خواهد بود؟
    وقتی از طرح‌های پیشرفت تکنولوژی، به‌ویژه قانون مور، صحبت به‌میان می‌آید، طرح «۳۵ سال از داده‌های ریزپردازنده‌ها» که آن را ام. هورویتز، اف. لابونت، اُ. شچم، کی. الوکتن، ال. هموند و سی. بَتِن جمع‌آوری کرده‌اند، می‌تواند یکی از طرح‌های مهم باشد. بعد‌ها، سی. مور هم اطلاعاتی به این پروژه اضافه کرد. این طرح را چه با خطوط پیشرفت و چه بدون آن‌ها می‌توان در جاهای مختلفی از اینترنت پیدا کرد؛ هر‌‌چند این طرح فقط تا سال ۲۰۱۰ کامل شده و در چند سال اخیر، کامل نشده است.
    برای به‌روزکردن داده‌های این طرح که هر‌چند درست‌بودن آن تا سال ۲۰۱۰ مشخص نیست، داده‌هایی از g3data و داده‌های دیگری هم از پردازنده‌های AMD Opteron، پردازنده‌های Intel Xeon، پردازنده‌های Power7+ و Power8 مانند Xeon Phi به این طرح اضافه شدند. جزئیات این داده‌های جدید را به‌صورت خام می‌توانید درون این فایل زیپ ببینید. نتیجهٔ این طرح عکس زیر است:

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

    نکته‌ای جالبی که وجود دارد، این است که باتوجه‌به اینکه عملکرد پردازش تک‌هسته‌ای ازنظر کمّیّت مهم است، این مقدار پیوسته در‌حال‌پیشرفت بوده است. این افزایش نتیجهٔ مدیریت انرژی هوشمندانه و تنظیم دینامیک فرکانس کلاک (توربو) بوده است.
    در آینده، چه تغییراتی به وجود خواهد آمد؟
    احتمالا فرکانس و انرژی مصرفی دستخوش تغییرات زیادی قرار نخواهند گرفت. بهبود بیشتر در ساختار کلاک ممکن است باعث افزایش تدریجی عملکرد تک‌هسته‌ای پردازنده‌ها شود که البته نمی‌توان انتظار تغییر بزرگی داشت. دو نمونه از کمّیّت‌های مهم، تعداد ترازیستور‌ها و تعداد هسته‌ها هستند.
    تا چه زمانی قانون مور ادامه خواهد داشت؟
    این احتمال وجود دارد که در آینده‌ای نزدیک، افزایشی در تعداد هسته‌ها را شاهد خواهیم بود؛ اما شاید تعداد ترانزیستور‌ها تغییری اساسی نکنند. در‌حال‌حاضر، Haswell Xeon در صدر فهرست پردازنده‌ها هستند که ۱۸ هستهٔ پردازشی دارند. به‌هرحال با وجود این پردازنده‌ها، قانون امدال ما‌ را به‌ دنبال‌کردن همین الگوریتم ملزم خواهد کرد.
    پردازندهی Knight Landing Xeon Phis که به‌زودی رونمایی خواهد شد، ۷۲ هسته دارد که بیش از ۶۱ هسته بیشتر از نسل کنونی‌اش خواهد داشت. از دیدگاه الگوریتم‌ها، واقعا مهم نیست پردارنده با ۶۱ یا ۷۲ هسته کار می‌کند یا خیر؛ بلکه در هر دو مورد، الگوریتم‌هایی موازی موردنیاز هستند. در این مرحله، باید خوشحال باشیم که در‌حال‌حاضر، توانسته‌ایم با یادگیری برنامه‌ریزی GPU‌ها این الگوریتم‌ها را طراحی و اجرا کنیم.
    به‌روزرسانی ۲۰۱۸
    دو سال دادهٔ بیشتر به‌نظر مهم نیست، هرچند به‌نظر می‌رسد قانون مور در‌حال‌ کم‌رنگ‌شدن است. یکی از موضوعاتی که باید به آن اشاره کرد، این است که اینتل دیگر تعداد ترانزیستور‌های پردازنده‌های خود را اعلام نمی‌کند. همچنین، تعدادی از پردازنده‌های این شرکت زمان زیادی بعد از موعد مقرر معرفی شدند. مدل Tick-Tock هم اصلاح شده است. با داده‌هایی از تعداد ترانزیستور‌ها که از AMD Epyc و IBM Power 9 به‌دست‌آمده طرح را به‌صورت زیر به‌روزرسانی کرده‌اند:

    واضح است تعداد ترانزیستور‌ها به‌صورت نموداری نمایی رو‌به‌پیشرفت بوده است. تا‌به‌امروز، پردازندهٔ AMD Epyc با ۱۹،۰۰۰،۰۰۰،۰۰۰ ترانزیستور که به‌صورت عمومی اعلام شده، بیشترین تعداد ترانزیستور را در میان پردازنده‌ها دارد. برای مقایسه باید گفت تراشهٔ پاسکال Nvidia GP100 درحدود ۱۵،۰۰۰،۰۰۰،۰۰۰ ترانزیستور دارد. با درنظرگرفتن این تعداد، این ارقام باهم سازگار هستند و جای شکی در تعداد ترانزیستور‌ها وجود ندارد.به‌زودی، با معرفی نود‌های پردازشی ۱۰ نانومتری منطقی است که احتمال دهیم تا چند سال آینده، منحنی نمایی و رو‌به‌رشد تعداد ترانزیستور‌ها پیشرفت خود را حفظ کند. تعداد ترانزیستور بیشتر موجب افزایش تعداد هسته‌ها می‌شود. این درحالی است که پیشرفتی که در SpecINT برای محاسبه عملکرد تک‌هسته‌ای قابل مشاهده‌است، مستقیما نتیجهٔ استفاده از کامپایلر‌های Auto-Vectorization و Auto-Parallelization است.
  3. کامبیز اسدزاده
    اگر شما از آن دسته از کاربرانی هستید که هزینه‌ای برای گیت‌هاب پرداخت نمی‌کنید، این هفتهٔ خوبی است برای شما! 

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

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

    وب سایت ورج با پیگیری این موضوع به نقل از مدیران روابط عمومی اسلک گزارش داده است که به جز کاربران ایرانی، افرادی با ملیت کوبا، کره شمالی، سوریه و کریمه اکراین هم در فهرست تحریم شدگان قرار دارند. این اقدام در حالی صورت می گیرد که بسیاری از خدمات اسلک به صورت رایگان در اختیار کاربران قرار می گیرد و به جز آن، استفاده از سرویس های مدیریت پروژه آنلاین عملا هیچ تاثیری در تحریم های کالایی و اقتصادی علیه ایران ندارد. ضمن آنکه ایرانیانی که خارج از کشور به کار و زندگی مشغول هستند در اثر این تحریم ممکن است کار خود را از دست داده و زندگی اجتماعی و شغلی خود را در خطر فروپاشی ببینند. دولت آمریکا اخیرا اعلام کرده بود تحریم های ایران دارای اهداف سیاسی بوده و مردم این کشور را تحت فشار قرار نمی دهد؛ اما این اقدام و تحریم های مشابه علیه ایرانیان در سراسر جهان به خوبی نشان دهنده تلاش سازمان یافته این کشور و اتاق فکرهای مرتبط با آن برای مقابله با مفهومی به نام "هویت ایرانی" است. 
    برای جایگزینی اسلک می توانید از نمونه های دیگر خارجی مانند Trello یا سرویس های مشابه سازی شده ایرانی مانند Taskulu استفاده کنید.
  5. کامبیز اسدزاده
    پس از فرود انسان روی کره ماه در قرن بیستم، سیاره مریخ همواره به عنوان مقصد بعدی در منظومه شمسی شناخته شده؛ اما یکی از فضانوردان سابق ناساانجام چنین کاری را احمقانه می داند.
    بیل اندرس فضانورد سابق ناسا که در مأموریت آپولو 8 سال 1968 نیز شرکت داشته، معتقد است سفر به سیاره مریخ در حال حاضر صرفاً یک نمایش تبلیغاتی از سوی ناسا بوده و هیچ نفعی برای جامعه علمی دنیا نخواهد داشت.
    به گفته اندرس، بودجه لازم برای سفر به مریخ می تواند صرف پروژه های مفیدتری مانند ارسال ربات های کاوشگر به سیارات مختلف شود و از این طریق، سطح آگاهی ما از جهان اطراف را افزایش دهد.

    آقای اندرس معتقد است سازمان ناسا از مأموریت اصلی خود فاصله گرفته و بیشتر به دنبال برنامه های فضایی پر سر و صدا برای جذب سرمایه و بودجه بیشتر است که در نهایت، این پول ها هم خرج برنامه های تبلیغاتی و کم فایده بعدی خواهند شد.
    سفر انسان به مریخ در حال حاضر توجیه علمی ندارد
    به گفته فضانورد سابق ناسا، حضور انسان روی سیاره مریخ مسلماً یک موج رسانه ای عظیم و قدرتمند را به راه خواهد انداخت اما هیچ کمکی به گسترش مرزهای دانش بشری نخواهد کرد. جالب است بدانید که چنین دیدگاهی تنها مختص به بیل اندرس نبوده و بسیاری از مدیران ناسا، اسپیس اکس و بلو اوریجین (هر سه به دنبال فرود انسان روی مریخ هستند) نیز با نظر وی موافقند.
    البته نظر اندرس مخالفانی هم دارد؛ به عنوان مثال فرانک بورمن (یکی دیگر از سرنشینان آپولو ? معتقد است جست و جوی عمیق در منظومه شمسی یکی از مهم ترین مأموریت های ناسا بوده که حضور انسان بخش جدایی ناپذیر چنین پروژه هایی خواهد بود.
    گفتنی است آقای بورمن از سوی دیگر هیجان موجود در زمینه سفر به سیاره مریخ را هم تأیید نکرده و اظهار داشته: «ماسک و بزوس (صاحبان اسپیس اکس و بلو اوریجین) درباره تشکیل جوامع انسانی در مریخ صحبت می کنند؛ چنین چیزی مسخره است.»
    به هرحال باید منتظر بود و دید که آیا در سال های آتی ناسا و دیگر سازمان های فضایی بودجه خود را صرف امور علمی خواهند کرد یا بر شکستن محدودیت های حضور انسان در سایر سیارات تمرکز خواهند داشت.
  6. کامبیز اسدزاده
    رقابت با AMD Ryzen‌ها باعث شده است تا Intel هم مدام در حال تغییر رویه محصولات خود باشد؛ این شرکت به زودی با 2 چیپست Z399 و X599 بخش بزرگتری از بازار CPUهای سطح بالای دسکتاپ (HEDT) را در اختیار خواهد گرفت.

    طبق اطلاعات موجود، کمپانی اینتل تراشه های حرفه ای خود را به 2 قسمت تقسیم خواهد کرد. تراشه Z399 جایگزین تراشه X299 فعلی می گردد؛ اما دلیل حذف حرف X از ابتدای نام PCH به چه علت است؟
    این شرکت هدایت پردازنده های Extreme Edition را به سطح بالاتری از دسکتاپ برده و آن را به عهده چیپست X599 می گذارد؛ این چیپست برای هندل مادربردهای مبتنی بر سوکت LGA 3647 طراحی شده و اساسا چیزی شبیه به تراشه C629، اما با قابلیت های بیشتر است. پلتفرم های مانند Basin Falls به بخش های بالاتری از دسکتاپ سپرده شده و چیپست X599 هدایت CPUهایی با 22 الی 28 هسته را بر عهده خواهد داشت.
    از سوی دیگر، چیپست Z399 برای سطح بالاتری از دسکتاپ میانی معرفی می گردد. همانطور که می دانید، Z390 برای مادربردهای جدید نسل نهم با کد رمز WhiskyLake معرفی می گردد؛ این CPUها تا 8 هسته منطقی را به همراه داشته و توان پردازشی آنها حتی بیش از نیاز بازی های روز است. پس از آن، Z399 برای پردازنده هایی با بیش از 10 هسته معرفی می شود. پیشبینی می گردد که این چیپست برای CPUهایی با 16 الی 22 هسته معرفی گردد. Z399 بر روی مادربردهای LGA 2066 مورد استفاده قرار می گیرد. تراشه های جدید اینتل برای سیستم های قدرتمندی مانند Workstation و تولید محتوا مناسب هستند.
  7. کامبیز اسدزاده
    یک استارتاپ آمریکایی با موفقیت کامپیوتری کوانتومی را تست و معرفی کرده که با درهم شکستن رکوردهای قبلی قدرت کوانتوم را به رخ می کشد. کامپیوتر کوانتومی کمپانی IonQ که در «مریلند» واقع شده، از توان پردازش ۷۹ کیوبیتی بهره می برد که از Bristlecone گوگل هفت کیوبیت قوی تر است. علاوه بر توان بالا، نرخ خطای این پردازنده‌های کوانتومی به ازای هر کیوبیت در حد ۰.۰۳ است و این در حالی که نزدیکترین گزینه نرخ خطایی برابر با ۰.۵ درصد دارند. این میزان به ازای هر جفت کیوبیت به ۰.۷ می رسد که باز هم با ۵ درصد دیگر رقبا کیلومترها فاصله دارد.

    برای تست این سیستم ها از الگوریتم هایی نظیر بنچمارک «برنستاین-وزیرانی» استفاده می شود که در آن دستگاه برای شناسایی یک عدد رمزنگاری شده تنها اجازه پرسیدن سوال های با جواب بله یا خیر را دارد. زمانی که این عدد بین ۱ تا ۱۰۲۳ قرار داشته باشد، احتمال موفقیت کامپیوتر عادی و کوانتومی به ترتیب برابر ۰.۲ و ۷۹ درصد خواهد بود.
    «کریستوفر مونرو»، مدیرعامل IonQ بر این باور است که سرمایه گذاری روی کامپیوترهای کوانتوم یونی بهترین گزینه است:
    در کامپیوترهای معمولی برای ذخیره داده و انجام محاسبات از بیت های صفر و یک استفاده می شود اما در کامپیوترهای کوانتومی به این منظور کیوبیت هایی به کار برده می شوند که می توانند در آن واحد صفر، یک و یا ترکیبی از هردو مورد باشند.
    IonQ در ساخت کامپیوتر کوانتومی خود فناوری سیلیکون فوق سرد مورد استفاده گوگل، IBM و Rigetti برای به دام انداختن یون ها را با فلز نادر ایتربیم جایگزین کرده است. در این فرایند ایتربیم یونیزه شده در یک میدان الکترومغناطیسی نوسان دار معلق می شود تا از طریق لیزرهای برنامه نویسی شده اطلاعات وارد، ذخیره یا بازیابی شوند.
    دقت و صحت سیستم IonQ نشان دهنده این است که به زودی و احتمالا سال آینده شاهد استفاده عملی از کامپیوترهای کوانتومی خواهیم بود.
  8. کامبیز اسدزاده
    برای پیداکردن نشانه های حیات در سیاره های دیگر می توان از فضاپیماهای کنونی هم استفاده نمود. اما آنها وسیله اختصاصی این امر نیستند و احتمال دارد نتوانند به درستی این ماموریت را به انجام برسانند.

    در همین راستا، ناسا به تازگی دستگاهی ساخته تا شواهد درست و کاملی در این مورد بیابد. آنها نام «لپ تاپ شیمیایی» را برای اختراع جدید خود انتخاب کرده اند. این لپ تاپ که در اصل یک ربات محسوب می شود نخستین وسیله ای خواهد بود که به طور اختصاصی برای کشف آمینو اسید و اسیدهای چرب (که عناصر ضروری حیات هستند) در کره های دیگر ساخته شده.
    این ربات با باتری کار می کند و برای انجام وظایفش به نمونه های مایع نیاز دارد. از آنجا که یافتن مایع در سیارات دیگر چندان آسان نیست، مکانیسم آن مشابه قهوه ساز طراحی شده. به این صورت که از آب داغ برای خارج نمودن عناصر ارگانیک مواد بهره می گیرد. یعنی نمونه مورد نظر به همراه آب درون مخزن آن قرار داده شده و تا 212 درجه فارنهایت گرم می شوند.
    در آخر، لپ تاپ شیمیایی ناسا، آب حاوی نمونه را با رنگ فلورسنت که به مولکول های آمینو اسید و اسیدهای چرب می چسبد، مخلوط و سپس آنها را به میکروچیپی در داخل دستگاه ارسال می کند تا مولکول ها از هم جدا شوند. در نهایت، دانشمندان با عبور دادن مولکول ها از لیزر، نشانه های حیاتی موردنظرشان را جستجو می کنند.
    البته لازم به یادآوری است که هر نوع اکتشاف جدید برای عملی شدنش به سال ها زمان نیاز دارند و مریخ نورد جدید ناسا نیز از این قاعده مستثنا نیست و تا سال 2021 میلادی روی سطح هیچ سیاره دیگری (همانند اروپای ژوپیتر یا انسلادوس زحل) فرود نخواهد آمد.البته تا آن زمان هم قرار نیست این دستگاه اختراعی بی استفاده بماند. مثلا می توان از آن برای آزمایش های زیست محیطی یا در صنعت داروسازی برای تشخیص داروی تقلبی بهره گرفت.
  9. کامبیز اسدزاده
    ششمین ماراتون برنامه‌نویسی تلفن همراه کشور در تاریخ ۱۵ تا ۱۷ شهریورماه سال جاری در محل دانشگاه صنعتی شریف برگزار می‌شود.

    این رویداد باهدف « شناسایی تیم‌های برنامه‌نویسی برجسته کشور، شناسایی ایده‌های بکر و خلاقانه و ورود این تیم‌ها به بازار کار» برگزار می‌شود . مهلت ثبت‌نام در این رویداد تا  ۳۱ مردادماه ۱۳۹۷ است.
    این رویداد از معتبرترین مسابقات برنامه‌نویسی تلفن همراه کشور است و از سال ۱۳۹۲ تاکنون ۵ دوره این مسابقات در سطح کشور برگزارشده و تیم‌های برنامه‌نویسی متعددی را وارد بازار کار کرده است. در این مسابقات، تیم‌های برنامه‌نویسی ۴۸ ساعت فرصت دارند تا نسخه اولیه یک برنامه تلفن همراه در حوزه‌های مشخص‌شده توسط کمیته ارتباط با صنعت مسابقه را به تیم داوری تحویل دهند. در کل این مدت، تیم‌ها در محل برگزاری رویداد قرنطینه هستند و تیم‌های داوری و مشاور به‌صورت کامل بر نحوه عملکرد تیم‌ها نظارت می‌کنند. در انتها، تیم‌های برتر با نظر داورها به مرحله نهایی راه پیدا می‌کنند و فرصت دارند تا مجددا برنامه خود را برای داوران ارایه دهند.
    ثبت‌نام در این رویداد رایگان و ظرفیت آن محدود است، اما اولویت با تیم‌هایی است که زودتر ثبت‌نام کرده باشند. ثبت‌نام به‌صورت اینترنتی و از طریق سایت اختصاصی مسابقات انجام خواهد پذیرفت.
    تیم داوری از اساتید برتر دانشگاه صنعتی شریف و با مدیریت جناب آقای دکتر ربیعی (مدیر آزمایشگاه و مدیر گروه فناوری اطلاعات دانشگاه صنعتی شریف) هستند. سه تیم اول جوایز نقدی دریافت خواهند کرد.
    گروه‌ها در قالب تیم‌های ۲ الی ۴ نفره خواهند بود. همچنین مدت‌زمان ماراتون ۴۸ ساعت است و گروه‌ها با حضور در محل مسابقه، امکان خروج از محل تا پایان مدت‌زمان ماراتون را نخواهند داشت. البته تامین محل استراحت، وعده‌های غذایی، میان وعده‌ها و اینترنت پرسرعت بر عهده برگزارکننده ماراتون است.
    جهت ثبت‌نام و کسب اطلاعات بیشتر می‌توانید به سایت ششمین ماراتون برنامه‌نویسی تلفن همراه کشور مراجعه کنید.
     
  10. کامبیز اسدزاده
    همانطور که می‌دانید منابع بسیاری در شبکهٔ گیت‌هاب وجود دارد که بعضاً به عنوان کتابخانه‌های Third-Party بسیار مفید هستند. در این پُست به ترِند‌های برخی از زبان‌هایِ برنامه‌نویسی این ماه در GitHub اشاره شده است.

     
    ۲۰ نوع منبعِ ترِند شدهٔ امروز و این ماه تحت زبان‌ برنامه‌نویسیِ ++C:
    Tensorflow Electron  OpenCV  Protobuf  Bitcoin Pytorch  EventCleaner  Mcilroy-regex  Grpc Aseprite  Waterius Godot Msgui  Swift v8  XGboost Google Test AnyQ  Aspia Tars ۲۰ نوع منبعِ ترِند شدهٔ امروز و این ماه تحت زبان‌ برنامه‌نویسیِ #C:
    Shadowsocks-Windows Wox  eShopOnContainers  Docs  .Net ML Blazor  DNSpy  Corefx  PowerShell Ml-Agents  Graphy ShareX Musoq  Roslyn SimplCommerce  MaterialDesignInXamlToolkit SafetyKatz Azure-functions-host  UnityCsReference React-NW  
    15 نوع منبعِ ترِند شدهٔ امروز و این ماه تحت زبان‌ برنامه‌نویسیِ Php:
    Laravel SecLists  Composer  Larastan  Faker PhpSpreadsheet  Phpstan  Phpunit  Twine Guzzle  Symfony Nextcloud Server Voyager  Swiftmailer Parsedown  18 نوع منبعِ ترِند شدهٔ امروز و این ماه تحت زبان‌ برنامه‌نویسیِ JavaScript:
    Javascript-algorithms Ndb  Browsh  Vue  Terminalizer React  Graphql Engine  Carbon-now-cli  v8n Mdx-deck  Guppy Evergreen Axios  Rogue.js Parcel  Node Gatsby Storybook  16 نوع منبعِ ترِند شدهٔ امروز و این ماه تحت زبان‌ برنامه‌نویسیِ QML:
    Latte-Dock Monero-gui  QtQuickControls2  Turtle-wallet-go  Qml Material Fluid  Material  Unity8  Cutegram Deepin-movie  Terrarium-app Qml Bootstrap Quick Android  Yunit QDriverStation  Got-qt 18 نوع منبعِ ترِند شدهٔ امروز و این ماه تحت زبان‌ برنامه‌نویسیِ Python:
    System Dp Cheat.sh  Termtosvg  Photon  Models Youtube-dl  Python Robotics  100-Days-Of-ML-Code  Public-apis Glow  Awesome Python Cartoonify Termgraph  Faust Byob  Flask Django cPython 19 نوع منبعِ ترِند شدهٔ امروز و این ماه تحت زبان‌ برنامه‌نویسیِ Swift:
    Opensource macOS app Wormholy  GPUImage3  Bartinter  CocoaDebug Sica  Awesome iOS  iina  Top AudioKitSynthOne  Alamofire RxSwift RxCoordinator  Hero Charts  SkeletonView Twig WeScan Lona  
    20 نوع منبعِ ترِند شدهٔ امروز و این ماه تحت زبان‌ برنامه‌نویسیِ Objective-C:
    EasyReact lottie-ios  YNPageViewController  React-native-maps  DBDebugToolkit Texture  iOS-InterviewQuestion-collection  TZImagePickerController  SDWebImage AFNetworking  Sequelpro iTerm2 IGListKit  Expo FLEX  MonkeyDev AAChartKit FSCalendar ZFPlayer Realm-cocoa 19 نوع منبعِ ترِند شدهٔ امروز و این ماه تحت زبان‌ برنامه‌نویسیِ Java:
    Java-Interview Jib  Data Transfer Project  J Design Pattern  Spring-boot Proxyee-down  Elasticsearch  Weixin-java-tools  Vjtools Incubator-dubbo  Spring-framework Apollo Nacos  Guava S-MVP  RxJava Pandora Sentinel Netty
  11. کامبیز اسدزاده
    یادگیری ماشین یک استراتژی برای تحقیق و بررسی به صورت خودکار جهت ساختن مُدل‌های توصیفی (نمایشی) می‌باشد.

    یادگیری ماشین چیست؟ چرا یادگیری ماشین مهم است؟
    یادگیری ماشین یک استراتژی برای تحقیق و بررسی اطلاعات است که ساخت مُدل به صورت توصیفی را خودکار می‌کند. یک شاخه که از استدلال‌هایِ انسانی از نگاه ساختار‌ها است می‌تواند از اطلاعات به دست آید، نمونه‌ها را تشخیص دهد و با اختیار بی‌نظیر انسانی بین انتخاب‌ها اقدام به انتخاب کند.
    چرا یادگیری ماشین ضروری است؟
    اشتیاق برای یادگیری ماشین به دلیل حجم توسعه و مجموعه‌ای از اطلاعاتی که قابل دسترس هستند طرفدار بسیاری دارد. همهٔ کسانی که به دنبال پردازش محاسباتی ارزان هستند و معمولاً برای ذخیره سازی اطلاعات شتاب‌زده عمل می‌کنند، یادگیری ماشین را مهم می‌دانند. بنابراین این امکان وجود دارد که سریعاً و به طور طبیعی مُدل‌هایی در این زمینه ایجاد شود که بتواند اطلاعات بسیار بزرگ و پیچیدهٔ (سرگیجه‌آور) و دقیق‌تری را در اختیار شما قرار دهند که منجرع به ارائه‌ نتایج سریع و دقیق خواهشد شد، حتی در مقیاس بسیار بزرگ که شاید انتظارش را نداشته باشید. علاوه بر این، با ساخت مدل‌های دقیق، ویژگی برتری شکل می‌گیرند که امکان شناخت احتمالات مفید و یا نگه‌داری فاصلهٔ استراتژیکی از خطرات مبهم را فراهم می‌سازد.
    چه کسانی این فناوری را مورد استفاده قرار می‌دهند؟
    اکثر شرکت‌هایی که با اطلاعات زیادی سرو کار دارند، نوآوری یادگیری ماشین را تخمین زده و آن را درک می‌کنند. آن‌ها با جمع‌آوری بیت‌های دانش از این اطلاعات استفاده کرده و اغلب به تدرج می‌توانند به صورت کارآمد‌تر (مفید‌تر) کار کرده و یا موقعیت‌های مطلوب را نسبت به رقبای خود انتخاب کنند.
    ادارات و بودجه
    بانک‌ها و سازمان‌های مختلف در صنایع مربوط به پول از نوآوریِ یادگیری ماشین برای دو هدف کلیدی استفاده می‌کنند: برای تشخیص تجربیاتِ بحرانی در اطلاعات و جلوگیری از اخاذی. بیت‌هایِ دانش می‌تواند فرصت‌های سرمایه‌گذاری را شناسایی کرده و یا به متخصصانِ مالی زمانی که می‌خواهند معامله کنند کمک کند.
    دولت
    اداره‌های دولتی، برای مثال، تامین امنیت به صورت امنیت باز و کاربردپذیری آن‌ها نیاز به یادگیری ماشین دارند، چرا که آن‌ها منابع فراوانی از اطلاعات را دارا هستند که می‌تواند به عنوان سر نقطه‌ای از دانش‌ باشد. به عنوان نمونه، روشی را برای افزایش مهارت و صرفه‌جویی در پولِ نقد را متمایز می‌کند. همچنین یادگیری ماشین می‌تواند در محدود سازی و ارائهٔ اطلاعات نادرست کمک کند.
    خدمات انسانی
    یادگیری ماشین یک طرحِ (الگویِ) توسعه سریع در صنعت خدمات انسانی است که به عنوان یک ویژگی در قالب گجت‌های پوشدنی و سنسور‌هایی که می‌توانند اطلاعات قابل استفاده برای ارزیابی یک بیماری تصاعدی (در حال پیشرفت) را ارائه دهد مورد استفاده قرار می‌گیرد. همچنین این نوآوری می‌تواند در تجزیه کردن اطلاعات پیش‌رونده در قادر ساختن متخصصین برای تشخیص الگو‌های مناسب برای مقابله با خطراتی که ممکن است سریعاً نتیجه داده و درمان آن به آن‌ها کمک کند استفاده می‌شود.
    نمایشگاه‌ها و معاملات
    سایت‌ها چیز‌هایی را که ممکن است با توجه به خرید‌هایی که شما در گذشته داشته‌اید پیشنهاد دهند. آن‌ها می‌دانند که چگونه تاریخچهٔ خرید شما را تجزیه و تحلیل کنند. این ظرفیت برای گرفتن اطلاعات، تجزیه آن‌ها و استفاده از آن‌ها برای سفارشی کردن یک پس زمینهٔ خرید (و یا تحقق بخشیدن به ارائهٔ تبلیغات) می‌باشد.
    نفت و گاز
    یافتن منابع جدید حیاتی؛ تجزیهٔ مواد معدنی در زمین؛ پیش‌بینی‌های ناامیدانهٔ سنسور یک پالایشگاه؛ بهینه سازی تولید و انتشار نفت برای تولید و آگاهی بیشتر، کمیتِ استفاده از یادگیری ماشین برای این صنایع بسیار بزرگ است و هنوز هم در حال گسترش می‌باشد.
    حمل و نقل
    تجزیه اطلاعات برای تمایز نمونه‌ها و الگو‌ها برای کسب‌و‌کار‌های حمل‌و‌نقل حیاتی است، که بستگی به دوره‌های تولیدی و پیش‌بینی مسائل بالقوه برای افزایش بهره‌وری دارد. بازرس اطلاعات و نمایش بخش‌هایی از یادگیری ماشین ابزار‌های ضروری برای حمل‌و‌نقل سازمان‌ها، حمل‌و‌نقل آزاد و دیگر انجمن‌های حمل‌و‌نقل می‌باشد.
  12. کامبیز اسدزاده
    آیا فایل‌های شما نیاز قابل توجهی به صرفه‌جویی در حافظهٔ سرور دارند؟ در این مقاله ما به شما خواهیم گفت که چگونه توسط چه الگوریتم‌هایی می‌توانید اطلاعات خود را تا ۹۰٪ فشرده سازی کنید.
    الگوریتم‌های فشرده سازی داده‌ها (دو نوع اصلی فشرده‌سازی داده وجود دارد)
    فشرده‌سازی بی‌اتلاف اطلاعات (کاملاً برگشت پذیر) فشرده‌سازی با اتلاف (بخش کوچکی از داده‌ها از دست می‌روند و بازسازی کامل آنها امکان پذیر نیست) اولین نوع فشرده سازی زمانی مورد استفاده قرار می‌گیرد که اطمینان حاصل شود داده‌های فشرده شده بازیابی شده و بدون تحریف باشند. این نوع فشرده سازی هیچ کدام از داده‌های اصلی را حذف نمی‌کند و با کاسته شدن حجم آن مصرف فضای کمی برای فشرده‌سازی به دست می‌آورد.
    اجازه دهید بعضی از رایج‌ترین الگوریتم‌های فشرده‌سازی از نوع فشرده‌سازی بی‌اتلاف یا همان (lossless)  را در نظر بگیریم:
    تکنیک کُدگذاری هافمَن (Huffman) — این امر مستلزم جایگزینی کد یکسانی برای نمادهایی با کدهای نامحدود است، بسته به تکرار وقوع یک نماد در متن هستند می‌باشد. در کد گذاری استاندارد هافمن، فرض شده‌است که هر نماد در مجموعه‌ای که کدها از آن استخراج می‌شوند، ارزشی یکسان با بقیه دارد: کد کلمه‌ای که طول آن N است ارزشی برابر N خواهد داشت، مهم نیست که چند رقم آن ۱ و چند رقم آن ۰ است. وقتی با این فرض کار می کنیم، کم کردن هزینهٔ کلی پیام، با کم کردن تعداد رقم‌های کل ۲ چیز یکسانند. کد هافمن با ارزش حرفی متفاوت به نحوی عمومیت یافته که این فرض دیگر صحیح نیست: حروف الفبای کدگذاری ممکن است طول‌های غیر همسانی داشته باشند، به خاطر خصوصیت‌های واسطهٔ انتقال. مثالی بر این ادعا، الفبای کد گذاری کد مورس است، که در آن فرستادن یک 'خط تیره' بیشتر از فرستادن یک 'نقطه' طول می‌کشد، پس ارزش خط تیره در زمان انتقال بالاتر است. درست است که هدف هنوز کم کردن میانگین طول وزنی کد است اما دیگر کم کردن تعداد نمادهای بکار برده شده در پیام، به تنهایی کافی نیست. هیچ الگوریتمی شناخته نشده است که این را به همان روش و همان کارآیی کد قراردادی هافمن انجام دهد. تکنیک رمزگذاری شانون-فانو (Shannon–Fano) — این یک پیشوند است، که به عنوان یک الگوریتم کُد گذاری یکتواخت است. این تکنیک فشرده‌سازی را بر اساس احتمالات نشان می‌دهد. مانند الگوریتم هافمَن، این تکنیک بر روی افزونگی پیام است. در رمزگذاری شانون-فانو، نمادها به ترتیب احتمال از زیاد به کم مرتب شده‌اند و پس از آن به دو مجموعه که احتمال کلشان تا حد ممکن به هم نزدیک است تقسیم می‌شوند. سپس اولین رقم رمز همهٔ نمادها به آن‌ها اختصاص داده می‌شود؛ نمادها در مجموعهٔ اول "۰" و در مجموعهٔ دوم "۱" می‌گیرند. تا زمانی که مجموعه‌ای با بیش از یک عضو باقی بماند، همین فرایند برای تعیین ارقام متوالی رمزهایشان، روی آن‌ها تکرار می‌شود. وقتی یک مجموعه به یک نماد کاهش پیدا کند بدان معناست که رمز آن نماد کامل است و پیشوند هیچ رمزِ نماد دیگری را تشکیل نمی‌دهد. این الگوریتم کدگذاری‌های با طول متغیر نسبتاً کارامدی تولید می‌کند. تکنیک طول اجرا (Run-length) — این تکنیک به جای مجموعه‌ای از نماد‌های مکرر با کد نماد و تعداد تکرار اشاره داد. یک شکل ساده از فشرده‌سازی داده‌ها است که در آن داده‌های یکسان پشت سر هم به صورت مقادیر تکی و تعداد تکرارشان ذخیره می‌شوند. اگرچه آسان است و می‌توان به راحتی آن را درک کرد اما هنوز کارآیی چندانی ندارد. تکنیک ال زد دابلیو (Lempel–Ziv–Welch) — الگوریتم‌های فشرده‌سازی این گروه (LZ78، LZ77، و LZW) در ایدهٔ جستجو برای متن مشترک هستند. الگوریتم کاراکترها را متراکم کرده و در واژه نامه به جای کاراکتر، رشته‌های متراکم شده را قرار می‌دهد تا اینکه به رشته‌ای برسد که در واژه نامه قرار دارد. الگوریتم ساخت کدهای نابرابر که توسط هافمَن پیشنهاد شده است یکی از مهم‌ترین دستاوردهای تئوری اطلاعات از دیدگاه‌های نظری و کاربردی است. بهتر است کدهای باینری C = {c1, ..., cm} با با طول های {l1,.. ,IM} برای پیام‌های مورد نظر بهینه باشد.
    در صورتی که شرط به این گونه باشد pi < pj, then li > lj طول مقدار در قالب lM = maxm1m از نظر کُد‌نویسی بهینه شده است دو کُد lM = maxmlm که طول آن است در سمبُل آخر متفاوت خواهد بود. اگر کد C دارای شرایط مطلوبی باشد، آنگاه C به عنوان کُد X مطلوب خواهد بود. ورودی: اندازهٔ الفبای M خروجی: درخت دودوییِ کد هافمَن مقداردهی اولیه: تعداد گِره‌ (نود‌های) پردازش شده  M0=M می‌باشد. با اجرای شرط While M0>1 do مراحل بعدی به صورت زیر باید انجام شوند: یافتن دو گِره (نود) با کمترین احتمال در صف از نودهای پردازش شده حذف نودها را از صف پردازش تولید یک نود جدید با دو گرده انتخاب شده به عنوان فرزند. به این ترتیب که، وزن نودها برابر است با مجموع نودهای فرزند. افزودن گِره (نود) جدید به صف. لینک کردن نودهای جدید با لبه‌های نودهای حذف شده М0 <– М <– 1. اگر بیشتر از یک نود در صف وجود داشته باشد، مراحل ۲  تا ۵ را تکرار کنید.
  13. کامبیز اسدزاده
    مهندسی ویژگی‌ها (FE) بخش بزرگی از یادگیری ماشین (ML) و یادگیری عمیق است. مقاله فوق را برای آشنایی بیشتر با اینکه ویژگی مهندسی چگونه به توسعه‌دهنگان در کار با داده کمک می‌کند مطالعه کنید.
    داده‌ها بدون توجه به اندازه و مقایس کسب‌و‌کار‌های مُدرن، شرکت‌ها و سازمان‌ها به عنوان دارایی از نوع طبقه‌-اولِ آن‌ها تبدیل شده است. هر سیستم هوشمند، صرف نظر از پیچیدگی آن، باید بر اساس داده باشد.  در قلب هر سیستم هوشمند، ما یک یا چند الگوریتم بینش داده‌ای را بر اساس  مجموعه‌ای از داده‌های یادگیری، مانند یادگیری ماشین، یادگیری عمیق و یا روش‌های آماری استفاده می‌کنیم که این اطلاعات را برای جمع آوری دانش و ارائه بینش هوشمند بیش از یک دوره زمانی نیاز داریم. الگوریتم‌ها خودشان کاملاً مجزا کار می‌کنند و نمی‌توانند خارج از جعبه داده‌های خام که برای آن‌ها مشخص شده است کار کنند.
    هر سیستم بینش اطلاعاتی هوشمند، اساساً شامل یک خط یا نقطهٔ سر-به-سر با استفاده از داده‌های خام برای استفاده از تکنیک‌های پردازش داده‌ها جهت گردآوری، پردازش و خواص ویژگی‌های مهندسی از این داده‌ها است. ما معمولاً تکنیک‌هایی مانند مُدل‌های آماری یا مدل‌های یادگیری ماشین را برای مدل سازی بر روی این ویژگی‌ها استفاده می‌کنیم و در صورت لزوم برای استفاده آن‌ها در آینده بر اساس مشکلاتی که می‌توان به آن‌ها اشاره کرد به صورت دستی حل می‌شوند. به طور معمول یک سامانهٔ یادگیری ماشین مبتنی بر «فرایندهای استاندارد صنعت متقابل برای داده‌کاوی» در زیر نشان داده شده است.

    به دست آوردن داده‌های خام و ساختن مُدل بر روی این داده‌ها به طور مستقیم می‌تواند به عنوان عملی بی‌مورد تلقی شود، زیر ما نتایج و کارایی مورد نظر را نمی‌گیریم و همچنین الگوریتم‌ها خود به طور خودکار ویژگی معنی دار از داده‌های خامِ ساده را به صورت خودکار نمایش نمی‌دهند. جنبهٔ تهیه داد‌ها در شکل بالا ذکر شده است، جایی که ما متودولوژی‌های مختلفی را برای استخراج ویژگی‌ها یا ویژگی‌های معنی دار از داده‌های خامِ پس از تجزیه و تحلیل مورد نیاز از پیش رونده و پیش پردازش برخورد می‌کنیم. مهندسی ویژگی یک هنر و همچنین یک عِلم است و به همین دلیل دانشمندانِ داده‌ها اغلب ۷۰٪ از زمان خود را در مرحله‌ آماده سازی داده‌ها قبل از فازِ مُدل سازی صرف می‌کنند.
    این به ما درکِ (بینشِ) این را می‌دهد که چرا ویژگی مهندسی یک فرایند تبدیل اطلاعات (داده‌ها) به یک ویژگی به عنوان ورودی برای مُدلهای یادگیری ماشین عمل می‌کند. یعنی آن ویژگی با کیفیتِ خوب در بهبود عملکرد کلی و دقت مُدل کمک می‌کند. 
    ویژگی ها نیز به سوالات اصلی و اساسی بسیار وابسته هستند. بنابراین، حتی ممکن است کار یادگیری ماشین در سناریوهای متفاوت مانند طبقه‌بندی رویدادهای IoT به رفتار‌های عادی و غیر طبیعی یا طبقه‌بندی احساسات مشتری، ویژگی‌های استخراج شده در هر سناریو بسیار متفاوت از یکدیگر عمل کند.
    ویژگی‌ها چه چیز‌هایی هستند؟
    یک ویژگی، به طور معمول، یک نمایش خاص در رأس داده‌های خام است که خصوصیات قابل اندازه‌گیری آن به صورت منحصربفرد (خصوصی) است. که معمولاً در یک ستون از یک مجموعه داده نقش بسته اند. با توجه به یک مجموعه‌ای از داده‌های دو بعدی، هر مشاهده توسط یک ردیف و هر ویژگی توسط یک ستون نشان داده می‌شود که یک مقدار خاص برای مشاهده دارد.

    بنابراین، مانند مثال در شکل بالا، هر سطر به طور خاص یک ویژگی از بُردار را نشان می‌دهد و همه آن‌ها مجموعه‌ای از ویژگی‌ها در همه مشاهدات به شمار می‌آیند، همچنین یک ماتریس ویژگی دو بُعدی است، که به عنوان یک مجموعه‌ای از ویژگی‌ها شناخته می‌شود. این شبیه به قاب داده‌ها یا صفحات گسترده‌ای است که داده های دو بعدی را نشان می‌دهند. 
    به طور معمول، الگوریتم‌های یادگیری ماشین با این ماتریس‌های عددی یا تانسورها کار می‌کنند. از این رو بیشترین تکنیک‌های ویژگی‌های مهندسی تبدیل داده‌های خام به  عنوان نماینده‌ای از داده‌هایی که می‌توانند توسط این الگوریتم ها قابل فهم و درک باشند را انجام می‌دهد. ویژگی‌ها می‌توانند از دو نوع اصلی بر اساس مجموعه داده‌ها باشند. ویژگی‌های خام (خالص) ذاتی مستقیماً از مجموعه داده‌ها و بدون دستکاری اطلاعات و یا مهندسی اضافی به دست می‌آیند. ویژگی‌های مشتق شده معمولاً از ویژگی‌های مهندسی به دست می‌آیند، جایی که ویژگی‌های داده‌های موجود را از آن استخراج می‌کنیم.
    مهندسی ویژگی‌ها
    داده‌های عددی معمولاً داده‌ها را به شکل ارزش‌های اسکالِر نشان می‌دهند که مشاهدات، ضبط داده‌ها یا اندازه گیری آن‌ها را نشان می‌دهد. منظور ما در اینجا داده‌های عددی به عنوان داده‌های مستمر است نه گُسَسته که به طور معمول به عنوان اطلاعات طبقه بندی شده ارائه می‌شوند. داده‌های عددی می‌توانند به عنوان یک بُردار از مقادیر نشان داده شود که هر مقدار یا موجودیت بُردار می‌تواند خود یک ویژگی خاص را نشان دهد. عدد صحیح (Integer) و شناور (Float) رایج ترین و به طور گسترده‌ای از انواع داده‌های عددی برای داده‌های عددی مُداوم استفاده می‌شوند. حتی داده های عددی می‌توانند به طور مستقیم به مُدل های یاد گیری ماشین انتقال یابند. شما برای هر یک از سِناریوهای مربوطه نیاز به ویژگی‌هایِ مهندسی دارید که مربوط به مشکلات و حوزهٔ مرتبط با آن‌ها برای ساخت یک مُدل‌ است. از این رو، نیاز به مهندسی ویژگی‌ها هنوز هم در جای خود باقی است.
  14. کامبیز اسدزاده
    کامپایلر Cling یک مترجم تعاملی برای سی‌پلاس‌پلاس است، این مترجم تحت بالاترین کتابخانه‌های Clang و LLVM ساخته شده است. در واقع از آن‌جایی که کامپایلر Clang از آخرین ویژگی‌ها و استاندارد‌های زبان سی‌پلاس‌پلاس پشتیبانی می‌کند، Cling اجازه می‌دهد تا توسعه‌دهندگان اسکریپت‌های خود را با استفاده از C و C++ بنویسند. اگر شما به طور مستقیم مترجم را اجرا کنید، یک محیط زنده برای آغاز برنامه نویسی با سی‌پلاس‌پلاس را خواهید داشت که به عنوان بخشی از استاندارد نحو سی و سی‌پلاس‌پلاس به شمار می‌آید. همچنین می‌توانید دیگر دستورات را با نقطهٔ "." آغاز در اختیار داشته باشید.
    وقتی از مترجم تعاملی استفاده می‌کنید، می‌توانید کد زیر را بنویسید:
    #include <stdio.h> printf("hello world\n"); همانطور که می‌بینید نیازی نیست تا در مورد حوزهٔ دامنه‌ها نگران باشید؛ کافی است شما تابع مورد نظر خود را صدا بزنید.
    اگر قصد شما این است که از Cling به عنوان یک مترجم برای ساخت اسکریپت‌ها استفاده کنید، باید همه چیز را در داخل یک تابع قرار دهید.چرا که نقطهٔ ورود به اسکریپت به طور پیش‌فرض همانند نام فایل می‌باشد. می‌توان آن را برای صدا زدن دیگر توابع سفارشی سازی کرد. بنابراین مثال قبل می‌توانید به شکل زیر تغییر کند:
    #include <stdio.h> void _01_hello_world() { printf("foo\n"); } یک نسخهٔ دیگر در قالب سی‌پلاس‌پلاس
    #include <iostream> void _02_hello_world() { std::cout << "Hello world" << std::endl; } مثال‌ها کاملاً ساده هستند، اما آن‌ها به شما نشان می‌دهند که چگونه باید شروع کنید.
    در مورد کیوت چطور؟
    #include <QtWidgets/qapplication.h> #include <QtWidgets/qpushbutton.h> void _03_basic_qt() { int argc = 0; QApplication app(argc, nullptr); QPushButton button("Hello world"); QObject::connect(&button, &QPushButton::pressed, &app, &QApplication::quit); button.show(); app.exec(); } اما توجه داشته باشید که کد قبلی کار نخواهد کرد، شما باید برخی از پارامتر‌های سفارشی را در Cling مشخص کنید.
    cling -I/usr/include/x86_64-linux-gnu/qt5 -fPIC -lQt5Widgets 03_basic_qt.cpp شما می‌توانید Cling را برای خودتان بر اساس آن چیزی که برای اسکریپت خود نیاز دارید سفارشی سازی کنید. همچنین شما می‌توانید Cling را به عنوان یک کتابخانه در اپلیکیشن‌های خود آورده و از سی‌پلاس‌پلاس به عنوان زبان برنامه‌نویسی استفاده کنید. این پُست در آینده ادامه خواهد داشت. ?
  15. کامبیز اسدزاده
    امروز نسخهٔ Canary مرورگر گوگل کروم که ویژگی‌های جدید را به‌صورت زودهنگام در دسترس توسعه‌دهندگان قرار می‌دهد، با دریافت به‌روزرسانی جدید بازطراحی شد.
    در طول ماه‌های گذشته، گوگل با انتشار به‌روزرسانی‌های منظم برای مرورگر کروم، بستر را برای بزرگترین بازطراحی تاریخِ این مرورگر آماده می‌کرد. تا پیش از این، مرورگر کروم با دریافت هر به‌روزرسانی، تغییرات اندکی را در رابط‌کاربری به خود می‌دید؛ اما امروز، گوگل به‌روزرسانیِ جدیدی را برای کروم منتشر کرده است که رابط‌ کاربری این مرورگر را به طرز قابل‌توجهی نوسازی می‌کند. 
    این نسخه از مرورگر تحت موتور v8 و همچنین به‌روز‌رسانی‌های اخیر تحت C++17 توسعه داده شده است که از بالاترین ویژگی‌های مدرن زبان برنامه نویسی بهره برده و تحت نسخه‌های Clang نیز کامپایل شده است تا به سریعترین کارآیی ممکن در بین مرورگر‌ها برسد.
    فعلاً به‌روزرسانی جدید کروم برای نسخهٔ Canary منتشر شده است، این نسخه از مرورگر کروم، تنها برای توسعه‌دهندگان در نظر گرفته شده تا پیش از عرضهٔ عمومی با ویژگی‌های جدید و آخرین دستاوردهای تکنولوژی در حوزهٔ وب، آشنا شوند؛ اما اگر قصد تجربهٔ تغییرات جدید را دارید، می‌توانید از طریق این لینک اقدام به دانلود این نسخه کنید. طبق گفتهٔ منبعی معتبر، از ویژگی‌های جدیدِ نسخهٔ جدید کروم می‌توان به تغییر در شکل زبانه‌ها، حالت تک‌زبانه (Single Tab Mode)، اضافه‌شدنِ آیکون به جعبهٔ پیشنهاد وب‌سایت‌ها در نوار آدرس، رنگ‌بندی‌ زبانه، زبانه‌های پین‌شده و شاخص‌های هشدار اشاره کرد.

    به‌روزرسانی جدید کروم اکنون به‌صورت پیش‌فرض در دسترس کاربران ویندوز، لینوکس و کروم‌او‌اس قرار دارد؛ اما اگر از رایانهٔ مک استفاده می‌کنید، برای مشاهده این تغییرات، باید دو دستور زیر را به‌ترتیب در نوار آدرس وارد کنید و سپس کلید اینتر را فشار دهید.
    chrome://flags/#top-chrome-md chrome://flags/#views-browser-windows  
  16. کامبیز اسدزاده
    یکی از دغدغه‌های کارفرمایان در حوزه منابع انسانی، علاوه بر استخدام نیروی متخصص، تصمیم‌گیری برای ادامهٔ همکاری با کارمندان فعلی و مشخص نمودن اضافه حقوق و مزایای شغلی است. کارفرمایان تمایل دارند بدانند واقعا کدام یک از کارمندان شرکت، مستحق دریافت اضافه حقوق است و کدام یک فردی ارزشمند برای شرکت محسوب می‌شود که ارزش سرمایه‌گذاری دارد و حضورش برای شرکت مثمر فایده است. کارفرمایان علاقه‌ دارند تا بدانند کدام یک از کارمندان شرکت، عملکرد بهتری در آینده از خود نشان می‌دهند. پیش‌بینی وضعیت عملکرد آیندهٔ کارمندان و مشخص نمودن دورنمای کاری آنها بسیار حائز اهمیت است.

    همیشه با بررسی وضعیت و عملکرد گذشتهٔ فرد، نمی‌توان در مورد آیندهٔ او و موفقیت‌هایی که قرار است به دست بیاورد، پیش‌بینی کرد. در شرکت IBM، نه تنها عملکرد و دستاوردها یا خطاهای گذشته پرسنل مورد بررسی قرار می‌گیرند، بلکه در مورد آیندهٔ آنها نیز پیش‌بینی‌‌هایی انجام می‌شود و مشخص می‌شود فردی که اکنون در شرکت مشغول فعالیت است در آینده چه عملکردی خواهد داشت. واقعا شرکت IBM چگونه می‌تواند آیندهٔ کارمندان خود را قضاوت کند؟ در اصل IBM چگونه می‌تواند آینده را پیش‌بینی کند؟ همهٔ آنچه آی‌بی‌ام به انجام می‌رساند در یک کلمه خلاصه شده است: واتسون.
    تجزیه و تحلیل واتسون (Watson Analytics) با استفاده از هوش مصنوعی، به تجربیات گذشتهٔ افراد و پروژه‌هایی که پیش از این انجام داده‌اند، توجه نشان داده ودر عین حال مهارت‌های بالقوه و کارهایی که در آینده می‌تواند به انجام برساند را مد نظر می‌گیرد. واتسون مشخص می‌کند هر یک از پرسنل، چه مهارت‌ها و ویژگی‌های بالقوه‌ای برای ارائه به شرکت IBM دارد که در آینده می‌تواند از آن‌ها در جهت منافع شرکت بهره‌برداری کند. همچنین واتسون، سیستم آموزش داخلی IBM را نیز بررسی می‌کند تا ببیند آیا کارمند مربوطه مهارت‌های جدیدی را کسب کرده است یا خیر. مدیران IBM‌ پس از ارزیابی امتیازهایی که واتسون به هر فردی می‌دهد، میزان پاداش یا وضعیت اضافه حقوق وی را مشخص می‌کنند. میزان افزایش حقوق فرد با توجه به امتیازهایی که واتسون برایش در نظر می‌گیرد، تعیین می‌شود.
    نیکل لاموراکس، معاون مدیرعامل شرکت IBM‌ در مورد بررسی وضعیت کارمندان از نظر اینکه حضور آنها به نفع شرکت است و منافعی را به دنبال دارد یا به ضرر شرکت تمام می‌شود، این چنین اظهار نظر کرده است:
    شرکت آی‌بی‌ام ادعا می‌کند که واتسون در مقایسه با بررسی‌ها و تجزیه‌ و تحلیل‌های کارشناسان منابع انسانی، از دقت ۹۶ درصدی برخوردار است و با چنین دقتی می‌تواند امتیاز عملکردی کارمندان را مشخص کند. در مدل‌های مدیریت سنتی، عموما کارفرمایان با توجه به محصولات و دستاوردهای گذشتهٔ پرسنل، برای آنها پاداش و اضافه حقوق مشخص می‌کنند و سابقهٔ افراد تنها معیار ارزیابی برای دریافت حقوق و پاداش است. در این سیستم جدید مبتنی بر هوش مصنوعی، گذشتهٔ افراد تنها مقدمه‌ای برای تعیین بقیه موارد است و در اصل همهٔ داستان نیست بلکه پیش بینی وضعیت آیندهٔ فرد نیز در تعیین حقوق و مزایای شغلی فعلی وی موثر هستند.
    رویکردهای مدیریت سنتی، برای زمان‌هایی که وظایف و مسئولیت‌های شغلی نسبتا ثابت هستند و هیچ‌گونه تغییری در کار و وظایف محول شده به فرد رخ نمی‌دهد، شاید کاربرد داشته باشد ولی به اعتقاد لاموراکس، با چنین رویکردی نیمه عمر مهارت‌ها، کوتاه و کوتاه‌تر می‌شود. توانمندی‌ها و کارهایی که کارمندان باید بتوانند در آینده به انجام برسانند، بیشتر از مهارت‌های گذشتهٔ آنها، اهمیت دارد. در سیستم مدیریتی جدید، کارمندان تشویق می‌شوند مهارت‌های جدیدی را بیاموزند و از آنجایی که می‌دانند سیستم امتیازدهی به یادگیری مهارت‌های جدید آنها امتیاز می‌دهد، برای یادگیری انگیزه دارند.
    بر اساس نظرسنجی انجام شده توسط شرکت مشاور Willis Towers Watson از بیش از ۲۰۰۰ سازمان و شرکت مختلف، مشخص شد که بیش از ۴۰ درصد پاسخ‌دهندگان در حال برنامه‌ریزی سیستمی هستند که مهارت‌های بالقوه و مهارت‌های آیندهٔ پرسنل شرکت را در ارزیابی کارمندان مورد توجه قرار دهد.
    تغییر سبک مدیریتی، از مدل سنتی به مدل مدیریتی بررسی عملکرد نیروی انسانی مبتنی بر مهارت‌ها، کمک می‌کند تا کارفرمایان بتوانند شکاف موجود در سیستم خود را از لحاظ مهارت آموزی پرسنل حل و فصل کنند. فدراسیون ملی کسب و کار مستقل، از ماه ژوئن بررسی‌هایی را به انجام رساند و متوجه شد که در بیش از یک سوم کسب و کارهای کوچک، دارای پست‌های شغلی هستند که کسی در آن‌ها مشغول به کار نیست و یکی از مشکلات اصلی شرکت‌ها کمبود کارگر و نیروی انسانی ثابت و ماهر است. کارفرمایان ادعا می‌کنند که نمی‌توانند افراد مناسبی را در پست‌های شغلی ثابت استخدام کنند و از آنجایی که بیشتر کارگرانی که در چنین پست‌هایی مشغول کار می‌شوند تلاش لازم را از خود نشان نمی‌دهند، کارفرمایان نمی‌توانند دستمزدشان را اضافه کنند یا پاداشی برای آنها در نظر بگیرند. در نهایت می‌بینیم که برای چنین مشاغلی نه تنها کارفرمایان با مساله استخدام نیروی کاری ثابت مواجه هستند، بلکه برای انجام کار، نیروی ماهر و متخصص هم در اختیار ندارند.
    IBM، معتقد است که برای پر کردن پست‌های شغلی شرکت، متقاضیان زیادی که دارای مهارت‌های لازم باشند و بتوانند نقش‌های مهمی را در بخش فناوری بر عهده بگیرند، ندارد. به همین دلیل، آی‌بی‌ام به کارمندان فعلی خود دورنمایی از پست‌های شغلی مورد نیازش در آینده را نشان می‌دهد و برای آنها مشخص می‌کند که اگر بخواهند در آینده در آن پست‌های شغلی مشغول فعالیت شوند، باید چه مهارت‌هایی بیاموزند. با چنین رویکردی هم کارمندان به‌خوبی می‌دانند که برای ارتقا شغلی و دستیابی به موقعیت بهتر و حقوق و مزایای بالاتر و بیشتر، باید چه مهارت‌هایی را بیاموزند و هم می‌دانند چه دورنمای شغلی در انتظار آنها است. آی‌بی‌ام ادعا می‌کند که هر یک از کارمندان شرکت، هر سال به طور متوسط، حدود ۶۰ ساعت آموزش می‌بینند. 
    همه شرکت‌ها از روش تجزیه و تحلیل برای پیش بینی وضعیت آینده‌ کارمندان خود استفاده نمی‌کنند. شرکت Intern Group که یکی از شرکت‌های ‍رورش کارآموز برای معرفی نیروی متخصص به شرکت‌های مختلف است، حدود ۸۰ نفر کارآموز دارد و معتقد است که کارآموزان باید حتما ۱۵ مهارت اصلی را برای موفقیت در کسب و کار ۱۰۰ سال آینده‌ فرا گیرند. مهارت‌هایی همچون انعطاف‌پذیری و مهارت‌های ارتباطی جزو مهارت‌های اصلی برای موفقیت در بازار کار ۱۰۰ سال آینده است. 
    دیوید لویید، مدیرعامل این شرکت با استفاده از سیستم امتیازدهی، ۱۰ درصد از بهترین نیروهای شرکت را که به اعتقاد وی، نیروهایی با استعداد هستند، شناسایی می‌کند و معتقد است که شرکت باید تمام تلاش خود را برای حفظ این ۱۰ درصد نیروی ماهر و ارتقا آنها به کار ببندد. این کارمندان از طریق سیستم خدمات داخلی شرکت، آموزش می‌بینند و فرصت‌های جدیدی برای دریافت پاداش و اضافه حقوق پیدا می‌کنند. در اصل سیستم امتیازدهی می‌تواند وضعیت آیندهٔ کارمندان را پیش‌بینی کند و با توجه به آن فرصت‌های جدیدی در اختیار آنها قرار بدهد. البته دیوید لویید، فرصت مهارت آموزی را در اختیار تمام کارمندان شرکت قرار می‌دهد. وی معتقد است:
     
  17. کامبیز اسدزاده
    دربارهٔ کامپایلر Zapcc
    کامپایلر Zapcc یک کامپایلر بر پایه Clang است که با هدف کامپایل‌های سریعتر طراحی شده است. این کامپایلر با استفاده از حافظه نهان (Cache) و استفاده از معماری سرویس‌گیرنده-سرویس‌دهنده پیاده سازی شده است که یک کامپایلر مدرن و جدیدی به شما می‌آید که برای اهداف زیر ساخته شده است:
    ساخت سریع: تسریع در جمع آوری‌های قابل توجه برای هدرهایی که دارای قالب‌های سنگین در سی پلاس پلاس می‌باشند مانند LLVM، WebKit، ScyllaDB بر پایه Clang/LLVM: این کامپایلر بر پایخ Clang و اغلب بر ساس آخرین SVN به روز رسانی شده است. پشتیبانی کامل از لینوکس: در حال حاضر این کامپایلر از لینوکس x64 و ویندوز x64 با MinGW-w64 به صورت آزمایشی پشتیبانی می‌کند. جایگزینی: جایگزینی برای Clang و GCC و پشتیبانی از تمامی سیستم‌های ساخت (Build Systems) . مجوز‌ها
    این پروژه منبع باز تحت مجوز LLVM از (University of Illinois/NCSA) می‌باشد.
    ساخت (Building)
    پیش نیازها و فرآیند ساخت همانند LLVM می‌باشد.
    git clone https://github.com/yrnkrn/zapcc.git llvm mkdir build cd build cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_WARNINGS=OFF ../llvm ninja اجرا و آزمایش
    ninja check-all استفاده
    نحو دستورات Zapcc همانند دستورات Clang می‌باشد.
    از بین بردن سرور Zapcc
    pkill zapcc این دستور جهت از بین بردن سرور Zapcc برای آزاد سازی حافظه یا جایگزینی با سیستم تازه ساخته شده Zappc استفاده شود.
    جهت اطلاعات بیشتر به این بخش مراجعه کنید.
    لینک منبع بر روی گیت‌هاب
  18. کامبیز اسدزاده
    نرم افزار Apple Xcode از قویترین ابزارها برای برنامه نویسی های حرفه ای در مکینتاش می‌باشد که نسخه ۱۰ بتا آن منتشر شده است. برنامه نویسی محصولات اپل علاقه مندان بسیاری زیادی دارد که تمامی کاربران می توانند به وسیله این نرم افزار به ساده ترین روش و با کمترین خطا، حتی راحت تر از برنامه نویسی مشابه ویندوزی، برنامه نویسی سیستم های آی او اس و مخصوصا مک را انجام دهند.

    اِکس کُد ۱۰ شامل تمامی چیزهایی است که شما برای ایجاد برنامه های شگفت انگیز در محیط مک به آن‌ها نیاز دارید. در حال حاضر اِکس کُد و ابزار‌ها همه باهم در محیط تاریک و جدید بر روی مک بسیار عالی عمل می‌کنند. همچنین محیط ویرایشگر منبع به شما این امکان را می‌دهد که سریعاً تغییرات انجام شده بر روی کد خود را مشاهده کنید تا به سرعت بتوانید تغییرات مرتبط به کد‌های خود را دریافت نمایید. همچنین امکان ساخت ابزار‌های اختصاصی جهت تجزیه تحلیل داده‌ها در این نسخه فراهم شده است. سوئیفت نرم افزارها را با سرعت بسیار زیادی کامپایل می‌کند، به شما اجازه می‌دهد با سرعت بسیار بالایی برنامه های خود را ارائه دهید و به طور کلی این بسته از محیط توسعه بسیار سریعتر، امن‌تر و راحت‌تر از قبل شده است.
     
    کد نوشته شده شما در اکس‌کد بسیار خیره کننده خواهد بود، چرا که محیط تاریک جدید در این نسخه بسیار جذاب و کدهای شما را به عنوان یک ستاره به نمایش می‌گذارد. تمامی بخش‌های محیط جدید به صورت تاریک باز طراحی شده است که شامل آیکون‌ها ، رنگ‌ها، رابط‌ها و تمامی جزئیات با دقت بسیار بالایی بهینه سازی شده اند.
     

     
    اکس کُد در این نسخه برای شما قدرت بسیار زیادی در ابزار‌ها فراهم می‌کند تا شما بتوانید بهترین برنامه‌ها با محیط تاریک را برای پلتفرم macOS طراحی کنید. ابزار Interface Builder (به عنوان سازنده رابط) به شما این امکان را فراهم می‌سازد تا به راحتی و بسیار سریع بین محیط‌های تاریک و روشن، توسعه و پیش نمایش سوئیچ کنید. حتی شما می‌توانید در زمان دیباگینگ (اشکال زدائی) بین محیط‌های تاریک و روشن همراه بار رنگ‌های مختلف سوئیچ کنید این کار هیچ نیازی برای تنظیمات سیستمی ندارد.

    چه چیز‌هایی در اِکس کُد تازه هستند؟
    به نظر می‌رسد که اکس کد ۱۰ در ترکیب حالت های تاریک در macOS Majave شگفت انگیز است و به شما اجازه می‌دهد تا به راحتی با آن سازگار شوید. نسخه بتا در Xcode ۱۰ شامل Swift 4.2 و SDK های بتا برای watchOS 5، iOS12، tvOS12 و  macOS Mojave می‌باشد. پشتیبانی از محیط تاریک برای توسعه برنامه‌های مک
    ظاهر تیره و جدید در سرتاسر محیط Xcode و ابزارها کاتالوگ‌های انواع رنگ‌های تیره و روشن برای سفارشی سازی رنگ‌ها و تصاویر رابط سازنده پیش نمایش تاریک و روشن که به شما اجازه می‌دهد بین این دو حالت در پیش نمایش سوئیچ کنید. اشکال زدائی برنامه های مک در حالت تاریک و روشن بدون تغییرات در سیستم اشکال زدائی کنترل منبع
    تغییرات در مخازن منبع و یا مخازج موجود در سرورهای آنلاین به صورت برجسته در درون ویرایشگر قابل مشاهده است. نمایش تغییرات ایجاد شده در کد شما تغییراتی که هنوز به مخازن اشتراکی مانند Github و غیره... منتقل نشده اند. تغییراتی که دیگران ایجاد کرده اند قابل مشاهده است. تعارضاتی که شما قبل از کامیت (Commit) باید آن‌ها را در نظر داشته باشید قابل مشاهده هستند. پشتیبانی از خدمات ارائه شده بر روی سرورهای گیت از طرف Atlassian Bitbucket به خوبی Gitlab و همچنین پشتیبانی از Github فراهم شده است. امکان پیشنهادی اکس کد برای تغییرات پایه مخازن شما به عنوان به روز رسانی به آخرین نسخه در صورتی که شما نیاز به کلید‌های SSH داشته باشید آن‌ها تولید و بر روی سرور ارائه دهندهٔ سرویس شما آپلود (بارگذاری) خواهند شد. بهبود‌های ویرایشگر
    چندین نشانگر را در ویرایشگر کد خود قرار دهید تا تغییرات زیادی در یک بار انجام شود. نوار کشویی کد که اکنون به شما اجازه می‌دهد تا هر بلوک کد را که توسط پرانتز محصور شده است پنهان کنید. در صورتی که بیش از حد اسکرول شده باشد باعث می‌شود که آخرین خطوط کد را در وسط صفحه تنظیم کنید. زبان‌ها
    پشتیبانی از نسخه ۴.۲ سوئیفت فراهم شده است کتابخانهٔ libstdc++ در این نسخه به طور کلی حذف شده است و این بدین معنی است پروژه‌های C++ به کتابخانهٔ استاندارد libc++ مهاجرت خواهند کرد.  
    جهت دریافت نسخهٔ بتا این لینک و همچنین دریافت نسخهٔ پایدار ۹.۴ در این بخش مراجعه کنید.
    و بسیاری از تغییرات دیگر که در این سند می‌توانید آن‌ها را مشاهده کنید.
  19. کامبیز اسدزاده
    اینتل اعلام کرده است که مادربورد‌های Z390 به زودی عرضه می‌شوند و سعی شده در آن‌ها تمامی مشکلات سری Z370 رفع شود. کمپانی اینتل اواخر هفتهٔ گذشته گزارشی منتشر کرده است که نشان می‌دهد مادربورد‌های مجهز به چیپست Z390 به زودی در دسترس همه قرار خواهند گرفت و این محصولات جدید علاوه بر اینکه در جایگاه سیستم‌های رده بالا طبقه بندی می‌شوند، دیگر برخی ایرادات و مشکلات عجیب سری ۳۰۰ چیپست‌های اینتل را به همراه نخواهند داشت.

    زمانی که اینتل در ماه اوکتبر (آبان) از پردازنده‌های نسل هشتم خود رونمایی کرد، تنها یک نمونه مادربورد هماهنگ و پشتیبان کننده از آن در دسترس وجود داشت و آن هم مادربورد‌های گران‌ قیمت سری Z370 بود. این مادربورد‌ها در کنار پردازند‌های قدرتمندی همچون Core i7-8700K می‌توانستند پیروز میدان باشند اما در صورتی که شما قصد تهیه یک پردازنده‌ Core i5 و Core i3 را داشتید، خرید این چنین مادربورد گران‌قیمی به هیچ وجه قابل قبول نبود. در ماه آپریل (فروردین) بالاخره اینتل از یک خط تولید کامل از محصولات سری ۳۰۰ رونمایی کرد اما مادربورد‌های H370، B360 و H310 دارای ویژگی‌هایی بودند که در پرچمدار این سری یعنی Z370 وجود نداشت. به عنوان مثال پشتیبانی از پورت‌های USB 3.1 Gen 2 با سرعت 10Gbps و وجود سخت‌افزار ارائه دهندهٔ ارتباط وایرلس از مواردی بودند که در Z370 به دلیل عرضهٔ زودهنگام وجود نداشت و باعث می‌شد خرید مادربورد‌های رده میانی و ارزان قیمت از هر لحاظ عاقلانه‌تر محسوب شود.
     
    حال Intel با عرضهٔ Z390 اعلام کرده است که در این محصول تمامی ویژگی‌های اساسی Z370 به همراه ویژگی‌های عرضه‌ شده در مادربورد‌های ارزان‌تر یکجا عرضه خواهد شد. طبق گفته‌های این شرکت مادربورد‌های Z390 دارای حداقل ۶ پورت USB 3.1 Gen2 خواهند بود، همچنین این مادربورد‌های می‌توانند به صورت پیش‌فرض از سوی تولید کنندگان مادربورد به سخت‌افزار ارائه دهندهٔ اتصال وایرلس 802.11ac مجهز شوند. علاوه‌ بر این موارد، مادربورد‌های Z390 همانند مادربورد‌های Z370 از اورکلاک پردازنده‌های سری K پشتیبانی می‌کنند. همچنین اعلام شده که این سری از مادربورد‌ها قادر به پشتیبانی از حافظه‌های Intel Optane نیز هستند. 
     
    نکتهٔ جالب این است که احتمالا در نمایشگاه PC-centric که اوایل ماه ژوئن (تیر) برگزار خواهد شد، اینتل جزئیات بیشتری در رابطه با چیپست‌های Z390 منتشر کند، دقیقا زمانی که طبق اعلام خبرگزاری Bluechip شرکت AMD اعلام کرده است که از مادربورد‌های X490 برای پردازنده‌های نسل دوم Ryzen رونمای خواهد کرد.
  20. کامبیز اسدزاده
    بهترین ویرایشگر کدنویسی، بهترین اسلحه مخفی یک برنامه‌نویس است. مثل یک چاقوی سوئیسی که می‌تواند بهترین دوست یک سرباز تنها، در عملیات نفوذ باشد. دوست شما کیست؟
    بهترین ویرایشگر کد، بهترین دوست برنامه‌نویس است. پیشرفت روزافزون صنعت تکنولوژی و سرعت تحولات آن در سال‌های اخیر شگفتی‌های زیادی را خلق کرده و با رشد هوش مصنوعی و عرضهٔ انواع دستگاه‌‌های هوشمند بسیاری از رؤیاهای انسان تحقق‌یافته است. برای ساختن و پرداختن به بسیاری از ایده‌ها دیگر نیاز به فعالیت‌های مشقت‌بار و پیچیده نیست. با تهیه مقداری لوازم مکانیکی و بردهای دیجیتال و کمی سررشته از مکانیک و الکترونیک هرکسی در خانه می‌تواند ابداعات جالبی در زندگی خود داشته باشد؛ اما جان‌مایه تحقق این تخیلات در زندگی روزمره ما، دانشی به نام برنامه‌نویسی است.

    حالا هرکسی می‌تواند با صرف کمی وقت و تدبیر برنامه‌هایی هرچند ساده طراحی کند. آن‌ها را با قطعات و بردهای آماده همراه کند و به این قطعات جان ببخشد. هرچند اگر بخواهد می‌تواند در نوشتن این کدها چنان تبحر پیدا کند که آن را تبدیل به یک شغل دائم و پردرآمد کند. سرعت پیشرفت تکنولوژی برای برنامه نویسان حرفه‌ای هم می‌طلبد که با سرعت و دقت بیشتری کدهای جادویی خود را خلق کنند تا در بازار پررقابت فناوری برگ برنده‌ای داشته باشند. اهمیت این موضوع باعث رونق بسیار، در بازار و صنعت طراحی زبان‌های سطح بالا شده است.
     
    نقطه مشترک این علاقه‌مندان و آن فداییان برنامه‌نویسی، ابزاری است به نام ادیتور یا ویرایشگر‌ متن. ادیتور ها هستند که باقدرت و سرعت و هوشمندی خود دستورات و ایده‌های برنامه نویسان را تبدیل به کدهای تمیز و مرتبی می‌کنند که کارآمد و باارزش هستند. آن‌ها مبتدیان را راهنمایی می‌کنند و حرفه‌ای‌ها را یاری می‌بخشند که با اطمینان و سرعت بیشتری کدهای خود را وارد کنند.
     
    ادیتور ها در همان گام اول با همه برنامه‌نویس‌ها همراه می‌شوند ولی تنها برنامه نویسان حرفه‌ای هستند که می‌دانند بودن یا نبودن یک سمبل مانند. در انتهای یک کد چقدر مسئله بزرگی است. حال گشتن و نیافتن این مسئله، در میان هزاران خط کد می‌تواند عمر کیبورد و مانیتور را زیر مشت و لگد برنامه‌نویس، کوتاه کند. ادیتور های قدرتمند همچون خدمتگزارانی مهربان در کنار این مردان خشمگین هستند تا به آن‌ها کمک کنند هرگز دچار چنین مشکلاتی نشوند، ایده‌ای ناب خود را بیرون بریزند شکوه زندگی یک برنامه‌نویس را تجربه کنند.
     
    زبان برنامه‌نویسی و زبان نشانه‌گذاری
    زبان‌های برنامه‌نویسی آن دسته از زبان‌هایی هستند که برنامه نویسان به‌وسیله آن‌ها الگوریتم‌های خود را برای ماشین قابل‌فهم می‌کنند. زبان‌های مطرح مانند جاوا یا زبان سی پلاس پلاس از این دسته هستند. زبان‌های نشانه‌گذاری Markup Language آن دسته از زبان‌های هستند که متن و نشانه‌های معنی‌دار را باهم ترکیب می‌کنند و در آن‌ها الگوریتمی دیده نمی‌شود، مانند زبان ‌HTML یا XML.
    ویرایشگر متن یا ادیتور کد نرم‌افزارهایی هستند که برای ویراستاری متون و کدهای زبان‌های برنامه‌نویسی با توجه به شیوه‌نامه یا نحو زبان (Syntax) استفاده می‌شوند؛ لیست بهترین ویرایشگر برنامه‌نویسی در ویندوز و مک در مورد آن‌ها است. از آن‌سو نرم‌افزارهای محیط یکپارچه توسعه نرم‌افزار (Integrated Development Environment) از قدرت و توانمندی بیشتری برخوردار است. از امکانات مهم IDE می‌توان به ویرایشگری کدها، کامپایل کردن و دیباگ کردن برنامه‌ها اشاره کرد. وجه دیگر این نوع نرم‌افزارها رابط کاربری گرافیکی، برای سهولت در برنامه‌نویسی است. ویژوال استودیو(Microsoft Visual Studio) و اکلیپس (Eclipse) از دسته IDE مطرح هستند.
    همیشه برای برنامه‌نویسی نیازی به استفاده‌ از IDE نیست. این کار را می‌توان با استفاده‌ از نرم‌افزارهای ساده؛ ولی قدرتمند مثل ویرایشگر کد انجام داد، همانند نوشتن برنامه‌ای برای یک برد اپن‌سورس مثل آردوینو (Arduino). همین نوع ویرایشگر کدها که در لیست بهترین ویرایشگر٬ها معرفی می‌شوند در طراحی خود این توانایی را دارند که با اضافه کردن پلاگین‌ها، مرزها را بشکنند و به برنامه‌های IDE نزدیک شوند. ویرایشگرهای کد به دلیل راحتی نرم‌افزار در نصب، اجرای روان، انعطاف‌پذیری، توانایی در ارتقاء و همچنین گستره پشتیبانی از زبان‌های مطرح در یک ادیتور متن سبک و کم‌حجم، امروزه بسیار موردتوجه هستند.
    همیشه برای برنامه‌نویسی نیازی به استفاده‌ از IDE نیست. این کار را می‌توان با استفاده‌ از نرم‌افزارهای ساده؛ ولی قدرتمند مثل ویرایشگر کد انجام داد، همانند نوشتن برنامه‌ای برای یک برد اپن‌سورس مثل آردوینو (Arduino). همین نوع ویرایشگر کدها که در لیست بهترین ویرایشگر٬ها معرفی می‌شوند در طراحی خود این توانایی را دارند که با اضافه کردن پلاگین‌ها، مرزها را بشکنند و به برنامه‌های IDE نزدیک شوند. ویرایشگرهای کد به دلیل راحتی نرم‌افزار در نصب، اجرای روان، انعطاف‌پذیری، توانایی در ارتقاء و همچنین گستره پشتیبانی از زبان‌های مطرح در یک ادیتور متن سبک و کم‌حجم، امروزه بسیار موردتوجه هستند.
     
    لیست بهترین ویرایشگر برنامه‌نویسی برای مک و ویندوز
    شناخت ادیتورها و امکانات آن‌ها، تجزیه‌ و تحلیل، سرعت، هوشمندی و انعطاف‌پذیری آن‌ها به شما کمک می‌کند، همانند یک تکاور زبده برای هر عملیات برنامه‌نویسی حتی بدون وجود IDE آماده ‌باشید. سبک بودن،‌ قابلیت نصب روی انواع سیستم‌عامل‌ها، حتی پرتابل بودن این ادیتورها از مزیت‌های تاکتیکی است که هر برنامه‌نویس حرفه‌ای به اهمیت آن اعتراف دارد و جویای حال و احوال لیست بهترین ویرایشگر برنامه‌نویسی نیز خواهد بود.
     
    ویرایشگر نوت‌پد‌ پلاس پلاس(Notepad plus plus)
    نوت پد پلاس پلاس قدرتمند و مملو از امکانات ریزودرشت برای سرعت بخشیدن به کارها با دقت بالاست. این ادیتور متن و ویرایشگر کد برنامه‌نویسی یک پسرعمو هم در ویندوز دارد. هرچند که با حضور ++Notepad در ویندوز کمتر کسی پای مجلس نوت‌پد قدیمی می‌نشیند. نوت‌پد پلاس پلاس رایگان و اپن‌سورس است. علاوه بر آن رابط کاربری خوبی هم دارد. یکی از جذاب‌ترین بخش‌های این ادیتور، خاصیت تب ویرایشی (Tabbed Editing) است. شما می‌توانید هم‌زمان و به‌راحتی با چند فایل مختلف در یک پنجره کار کنید.

    npp در ویرایش متون HTML بیشتر شهره است؛ ولی با کد نویسی در زبان‌های دیگر، هیچ‌گاه پشیمان نخواهید شد. نوت پد به‌صورت استاندارد کدهای شما در ‌ زبان‌های مختلف رنگی می‌کند تا بهتر و راحت‌تر آن‌ها را تشخیص دهید. اگر این کار شمارا راضی نمی‌کند، قابلیت سفارشی کردن هم در این ادیتور مهیا است. npp در حین کدنویسی، پا به پای شما با کدها همراه‌ است. علاوه بر اینکه به شما پیشنهادی برای تایپ سریع می‌دهد به‌محض واردکردن کدهای اشتباه براساس شیوه کدنویسی با برجسته کردن اشتباهات، چیزی کم نمی‌گذارد. نوت‌پد در هنگام نصب چند پلاگین کاربردی و مفید با خود به همراه دارد و البته می‌تواند از مخزن پلاگین در ادیتور به پلاگین‌های جدید نیز دسترسی داشته باشید. npp حقیقتا شایسته چنین جایگاهی، در لیست بهترین ویرایشگر برنامه‌نویسی سال ۲۰۱۸ است.
    ویژگی‌های برجسته:
    Notepad plus plus برای ویندوز (Windows) ساخته‌شده است؛ اما علاقه‌مندان به آن می‌توانند در مک‌اواس ۱۰ (Mac OS X) و لینوکس (Linux) و یونیکس (Unix) هم آن را تجربه کنند. نوت‌پد پلاس پلاس نرم‌افزاری سبک است و به‌آسانی نصب می‌شود. پلاگین‌های زیادی را می‌شود به آن اضافه کرد و با ماکرونویسی می‌توانید از امکانات موجود هم فراتر بروید. از قابلیت Tabbed Editing پشتیبانی می‌کند. قابلیت ساخت بوک‌مارک Bookmark برای نشانه‌گذاری دارد. با دراگ و دراپ کردن فایل‌ها به محیط نرم‌افزار می‌توانید آن‌ها را باز کنید. پشتیبانی از قابلیت فول‌اسکرین هوشمندی در تشخیص صحت شیوه کدنویسی قابلیت یکپارچه‌سازی مداوم (Compiler Integration) در پروژه که با هر تغییر کد پروژه دوباره ‌Build می‌شود تا همه کدهای قبلی و جدید باهم هماهنگ باشند. پشتیبانی از قابلیت FTP توانایی چک کردن لغات و مقایسه فایل‌ها توانایی Code folding که باعث می‌شود کدها در بلوک‌هایی به‌صورت فشرده قرار بگیرند تا سرعت و مدیریت کدها بهتر شود. تنظیم منوی برنامه به زبان فارسی رایگان و متن‌باز است نکاتی برای ارتقاء و بهبود:
    ویرایش فایل از طریق HTTP, SSH و WebDav به‌طور پیش‌فرض پشتیبانی نمی‌شود. برای نصب روی مک‌اواس ۱۰ نیاز به نرم‌افزار wine دارید که البته برای اجرای دیگر نرم‌افزراهای ویندوز روی مک و لینوکس نیز لازم است. نتیجه:
    تجربه این ویرایشگر در زبان‌های PHP،HTML،CSS و JavaScript فوق‌العاده جذاب است. کمتر ادیتور سورس کدی در لیست بهترین ویرایشگر برنامه‌نویسی، دقت نوت‌پد++ در تذکر به اشتباهات کدنویسی را دارد و در بازه‌های زمانی کوتاه و به‌سرعت در حال ارتقاء امکانات ادیتوری خود است.
     
    ویرایشگر سابلایم تکست (Sublime Text)
    سابلایم تکست ادیتور دیگری از دسته سبک وزن‌ها باقدرت ویرایش بالا در لیست بهترین ویرایشگر برنامه‌نویسی است. این ادیتور با سی++ و پایتون نوشته‌شده است. انعطاف‌پذیری بسیار خوبی در سفارشی کردن دارد و به برنامه‌نویس کمک می‌کند با سرعت و کارایی بالا کدنویسی کند. در سابلایم تکست با متدهای جالبی از ویرایش برمی‌خورید که در کمتر نرم‌افزار ویرایشی دیگر دیده می‌شود. اسنیپت‌ها (Snippets) بخش جذاب دیگری از تجربه کار در سابلایم تکست است.

    به‌عبارت‌دیگر سابلایم تکست به برنامه‌نویس این قابلیت را می‌دهد هر جا الگویی را دید حتی در ویرایش، از سابلایم بتواند برای اجرای سریع آن استفاده کند. این کار به قوی شدن فکر برنامه‌نویس کمک خوبی می‌کند و درعین‌حال باعث می‌شود مهاجرت به نرم‌افزارهای دیگر هم سخت شود. جعبه‌فرمان‌های (Command Palette) سابلایم، مثل یک خدمتکار مفید در اختیار شماست تا با کیبورد اکثر کارها را در Sublime Text مدیریت کنید. کار با کیبورد هم یکی از مهم‌ترین مهارت‌های یک برنامه‌نویس است. سابلایم تکست از نظر گرافیک صفحه کاربری و تم زمینه سیاه که محبوب برنامه نویسان است چیزی کم نمی‌گذارد و در لیست بهترین ویرایشگر برنامه‌نویسی سال ۲۰۱۸ جایگاهی کمترین از این، برای آن منصفانه نیست.
    ویژگی‌های برجسته:
    قابلیت ویرایش هوشمند هم‌زمان چند خط قابل‌استفاده در سیستم‌عامل‌های  Windows،  macOS،  Linux قابلیت چند سکویی قابلیت ارائه سریع لیست فایل موجود در یک فولدر و ورود به آن رابط کاربری محبوب انعطاف‌پذیری و سفارشی شدن بالا با نصب پلاگین توانایی پشتیبانی از فریمورک OpenFL و زبان برنامه‌نویسی  Haxe حمایت از توابع وردپرس تشخیص قدرتمند خطاهای زبان برنامه‌نویسی و برجسته کردن آن‌ها با نصب بسته مخصوص هر زبان نکاتی برای ارتقاء و بهبود:
    حمایت کم از زبان‌های راست‌نویس حمایت کم در لینوکس رایگان فقط در حالت Trial تأکید شدید برای کار با کیبورد به مذاق همه شیرین نیست نتیجه:
    این ویرایشگر اعتیادآور است. این ویرایشگر یکی از بهترین‌ها برای زبان HTML و PHP است. هرچند ویرایشگرهای دیگر هم در این زمینه خوب کار می‌کنند؛ ولی سابلایم با خلاقیت‌هایش به  برنامه‌نویس در کدنویسی سمت کلاینت و سرور طعم دیگری دارد.
     
    ویرایشگر اتم (Atom)
    اتم یک ویرایشگر متن ساده و راحت است. ازنظر ظاهری شبیه سابلایم تکست است ولی اغلب برنامه نویسان با آن بیشتر اخت می‌شوند و ارتباط بهتری برقرار می‌کنند. برای نصب قالب هم انتخاب‌های زیادی برای Atom وجود دارد. این ویرایشگر که با node.js طراحی‌شده چند سکویی و اپن‌سورس است. قابلیت ویژه اتم توانایی هک هسته آن توسط کاربران برای کارایی بیشتراست. اتم با بخش مدیریت پکیج خود به‌راحتی می‌تواند فراتر از ویرایشگر متن عمل کند. Atom توسط گیت‌هاب توسعهٔافته است.

    این ‌یک مزیت عمده است چراکه گیت‌هاب باهدف افزایش کارایی و کارآمدی توسعه‌دهندگان خلق‌شده است و رزومه موفق آن نیازی به تائید ندارد. اتم در اتصال به گیت‌هاب نیز به‌خوبی عمل می‌کند. ویرایشگر سورس کد اتم در مجموعه ابزارهای خود یک جستجوگر فازی جذاب هم دارد که شیوه کارش ترکیب دو متد جستجوگر کلمات و غلط‌گیر املایی است، از همین رو به جستجوگر فازی معروف شده است.
    ویژگی‌های برجسته:
    سادگی و جذابیت در طراحی  رابط کاربری پشتیبانی از جعبه‌فرمان همانند سابلایم‌ تکست ابزارهای ویژه برای توسعه مدیریت مجتمع برای پشتیبانی از پلاگین‌ها شیوه سفارشی‌سازی ساده و سهل در رابط کاربری جامعه فعال پشتیبانی در گیت‌هاب برای رفع مشکلات قابلیت چند سکویی تشخیص شیوه کدنویسی زبان‌های برنامه‌نویس مختلف رایگان و متن‌باز قابلیت جستجوی فازی نکاتی برای ارتقاء و بهبود:
    در مقایسه با دیگر ویرایشگرهای متن کند است مدیریت سخت فایل‌های بزرگ  نتیجه:
    اتم توسط توسعه‌دهنده‌ها برای توسعه‌دهنده‌ها ساخته‌شده است. وجود یک جامعه خوب و فعال که به پشتیبانی از این ویرایشگر مشغول هستند، یک مزیت استراتژیک بسیار خوب برای هر نرم‌افزاری است. این علاقه و تلاش به علت قابلیت اپن‌سورس عمیق و کامل این نرم‌افزار است که باعث شده در میان دیگر ویرایشگرها، درعین‌حال سادگی در لیست بهترین ویرایشگر برنامه‌نویسی گردوخاکی به پا کند. چنانکه نام اتم به٬عنوان رقیبی تازه‌نفس، برای رقابت با IDE ها مطرح است. پس با اتم هرروز می‌توانید منتظر شنیدن خبرهای خوب و جالبی در مورد Atom و ابزارهای جدیدش باشید. 
     
    ویرایشگر کدا (Coda)
    ویرایشگر Coda با بانک کد و قالب  پروپیمان خود، سرعت و بهره‌وری را برای کاربران یک‌کاسه کرده است. کار اصلی این ویرایشگر طراحی سایت است. با مجموعه امکانات پیاده‌سازی شده در کدا حتی برای مبتدیان نیز برنامه‌نویسی می‌تواند مفرح و درعین‌حال مفید و کارآمد باشد. ادیتور کدا، از سال ۲۰۰۷ به‌صورت یک ویرایشگر متن ساده وارد عرصه برنامه‌نویسی شد و امروز یکی از بهترین نرم‌افزارهای تکامل‌یافته در سیستم‌عامل مک به شمار می‌رود.

    شاید بتوان گفت نمونه قابل‌مقایسه آن در ویندوز نرم‌افزار Adobe dreamweaver است. در بخش‌های مختلف طراحی وب، از طراحی ظاهری  وب‌سایت گرفته تا پیاده‌سازی کدهای سمت سرور و حتی پشتیبانی از قابلیت FTP همگی در ویرایشگر کدا به‌خوبی کار می‌کنند که نتیجه آن محبوبیت بالای این ادیتور در لیست بهترین ویرایشگر برنامه‌نویسی سال است.
    وجود کتابخانه‌های غنی در نرم‌افزار Coda کار با آن را راحت و آسان کرده است. ویرایشگر کدا در بخش طراحی رابط کاربری سایت تا جایی پیشرفته که به‌صورت دراگ و دراپ می‌توانید اجزای سایت خود را طراحی کنید. این باعث شده که طیف گسترده‌ای از برنامه نویسان از مبتدی تا حرفه‌ای این نرم‌افزار را به‌عنوان انتخاب اول خود به همراه داشته باشند. البته کدا مخصوص سیستم‌عامل مک است و از ورژن OS X 10.7.5 به بعد قابل‌استفاده در آن است.
    ویژگی‌های برجسته:
    استفاده از رابط کاربری انقلابی مک به نام Leopard تکمیل خودکار کدها ویرایش بلوکی و رنگ‌آمیزی کدها برحسب زبان قابلیت دراگ و دراپ برای ساخت اجزا وب‌سایت مدیریت FTP قابلیت سفارشی کردن رابط کاربری کتابخانه کد برای زبان‌های مختلف پشتیبانی از MySQL نکاتی برای ارتقاء و بهبود:
    عدم پشتیبانی در دیگر سیستم‌ها به‌جز مک کرش کردن هرازگاهی در ارتباطات شبکه قیمت بالا در مقایسه نسبت به دیگر ویرایشگرها تنها هفت روز رایگان است و باید خریداری شود نتیجه:
    کدا در طراحی وب، کامل و خوب است. هر آنچه شما ابزار و کد بخواهید در آن یکجا جمع شده است. با توجه به قیمت و ویژگی‌های که دارد در مک و لیست بهترین ویرایشگر برنامه‌نویسی جزو بهترین‌ها است. با نصب آن هیچ‌وقت هم از امکانات جدید و بروزرسانی های آن بی‌خبر نخواهید بود.
     
    ویرایشگر تکست میت (TextMate)
    تکست میت یکی از دیگر ویرایشگرهای شهره در سیستم‌عامل مک است. البته بیشتر برای کار با برنامه‌نویسی در زبان روبی و فریمورک روبی آن ریلز استفاده می‌شود. در کل TextMate یک ویرایشگر عالی برای توسعه‌دهندگان زبان‌های مدرن برنامه‌نویسی است.
     

     
    ویژگی‌های برجسته:
    قابلیت جستجو و جایگزینی  جعبه تاریخچه قابلیت انتخاب و تایپ  سریع ستونی در میان متون تکمیل خودکار کد پشتیبانی از بلوک‌بندی کدها مناسب برای پروژه‌های تیمی پشتیبانی بیش از ۵۰ زبان برنامه‌نویسی قابلیت رنگ‌آمیزی کدها پشتیبانی Xcode قابلیت کار با FTP رایگان قابلیت فرورفتگی خودکار در کدها  نکاتی برای ارتقاء و بهبود:
    رابط کاربری نه‌چندان دل‌چسب پشتیبانی نکردن از قابلیت فول‌اسکرین تنها در سیستم‌عامل مک کار می‌کند نتیجه:
    جای تعجب نیست که در میان ادیتورهای ارزان در مک، این ادیتور بهترین گزینه باشد. شاید برای کسانی که در ویندوز ویرایشگرهای رایگان و قدرتمندی را می‌شناسند عجیب باشد؛ ولی معمولاً در مکینتاش هرچقدر پول بدهید، آش می‌خورید. این را هم فراموش نکنیم که تکست میت از برندگان جایزه طراحی اپل در سال ۲۰۰۶ بوده است پس شایسته حضور در لیست بهترین ویرایشگر برنامه‌نویسی نیز هست. 
     
    ویرایشگر Text Wrangler
    ویرایشگر ساده اما قدرتمند Text Wrangler که از بهترین ابزارها برای مدیریت یونیکس و سرور است. رابط کاربری هوشمند و مجموعه‌ای از ابزارهای قدرتمند برای ویرایش و جستجو متن و کدها است.

    این ویرایشگر با Xcod همکاری می‌کند و با پشتیبانی از AppleScript جایگاه خوبی برای خود در لیست بهترین ویرایشگر برنامه‌نویسی دست‌وپا کرده است. فایل خروجی این نرم‌افزار را می‌توانید در استاندارد‌ یونی‌کد برای یونیکس و داس و مک تهیه کنید.
    ویژگی‌های برجسته:
    عملکرد مطلوب در ویرایش فایل‌های بزرگ قابلیت استفاده از ماکرو و نصب پلاگین پشتیبانی از قابلیت FTP پشتیبانی از SSH برای ویرایش فایل از راه دور مقایسه هم‌زمان دو سند رنگ‌آمیزی بر اساس شیوه کدنویسی زبان‌های برنامه‌نویسی بلوک کردن  و خاصیت تا شوندگی در کدها و متن‌ها کامل کردن خودکار کدها چک املا کلمات رایگان پشتیبانی از ۴۴ زبان برنامه‌نویسی از HTML, JavaScript, Perl, Python, VBScript تا  SQL نکاتی برای ارتقاء و بهبود: 
    عدم پشتیبانی از HTTP و WebDav ناسازگار با مکینتاش G4 تنها از زبان انگلیسی پشتیبانی‌ می‌کند عدم پشتیبانی برای ویرایش گروهی نتیجه:
    ویرایشگر  Text Wrangler باوجود چند محدودیت، قدرتمند و رایگان است ولی اگر شمارا راضی نمی‌کند با صرف مبلغی می‌توانید به ادیتور که از آن الهام گرفته‌شده‌ است، یعنی BBEdit دست پیدا کنید که ادیتور بسیار خوبی در سیستم‌های مک است.

    ویرایشگر جی ادیت (jEdit)
    این محصول قدرتمند از آن جاوا نیرو گرفته است که برنامه‌نویسان حرفه‌ای با آغوش باز پذیرای آن هستند. نفوذ امنیت، ذاتی جاوا در رگ و پی این نرم‌افزار باعث شده است که فایل بایت ساخته‌شده توسط آن، عرق هکرها را برای رمزگشایی درآورد.
     
    هزاران پلاگین و ماکرو که برای این ادیتور ساخته‌شده‌اند، نشان می‌دهد که ‌در قلب برنامه نویسان جای گرفته است. همین پلاگین‌ها باعث شده که jEdit مرزهای  ویرایشگری را بشکند و به  قلمرو IDE راه پیدا کند و البته به لیست بهترین ویرایشگر برنامه‌نویسی سال ۲۰۱۸.
     
    ویژگی‌های برجسته:
    ایجاد تورفتگی خودکار در متن بلوکه بندی کد و ایجاد خاصیت تا شوندگی متن‌ها موتور قدرتمند برای اجرای عبارات باقاعده (regular expressions) قابلیت چک املا لغات پشتیبانی از قابلیت FTP پشتیبانی از یونیکد و UTF8 حجم کم در ابتدا و قابل توسعه با پلاگین‌ها قابل‌ استفاده در ویندوز، مک، یونیکس رایگان پشتیبانی بیش از 200 زبان برنامه‌نویسی نکاتی برای ارتقاء و بهبود:
    زمان بارگیری آن کمی طولانی است قابل‌استفاده به روی ویندوز، مک، یونیکس عدم پشتیبانی برای ویرایش گروهی عدم پشتیبانی از فایل‌های بزرگ عدم پشتیبانی از SSH برای مدیریت فایل از راه دور نتیجه:
    انتخاب مناسبی برای کسانی که می‌خواهند ادیتوری پیشرفته و امن داشته باشند. به‌هرحال جاوایی بودن آن ممکن است گاهی شمارا معطل کند ولی باوجود ویژگی‌های خاصی که دارد، این کندی بارگذاری به‌راحتی قابل‌چشم‌پوشی است. از آن می‌توان به‌عنوان یک ویرایشگر متن رایگان و با کدنویسی تمیز و امن که آینده خوبی دارد، نام برد.
     
    ویرایشگر Araneae
    ویرایشگر ساده و مفیدی از دنیای ویندوز که قدرت و تجربه لذت‌بخش برنامه‌نویسی را برای شما به ارمغان می‌آورد. در عین سادگی برای کاربر حرفه‌ای نیز ابزار مناسبی در خود دارد و بعد از نصب، بدون هیچ پلاگین اضافه‌ای می‌توانید به برنامه‌نویسی در زبان‌های HTML, CSS, XHTML, PHP بپردازید.

    ویژگی‌های برجسته:
    رنگ‌آمیزی کدها قابلیت جالب دراگ و دراپ برای تصاویر جستجو و ویرایش سریع پیش‌نمایش از مرورگر حتی بدون نیاز به سیو (Save) فایل حمایت از تب‌های چندگانه ویرایشی رایگان نکاتی برای ارتقاء و بهبود: عدم پشتیبانی از پلاگین و ماکرو خارجی  نتیجه:
    ویرایشگر Araneae بسیار مناسب برای فعالیت‌های طراحی وب‌سایت است که با استفاده از آخرین تکنولوژی‌های وب، شما را در کارتان موفق می‌کند. این نرم‌افزار می‌تواند یک رقیب جدی برای دیگر ادیتور‌ها در لیست بهترین ویرایشگر برنامه‌نویسی و رفیق خوبی برای برنامه نویسان PHP باشد.
     
    ویرایشگر Visual Studio Code
    از نام آن پیداست که برادر کوچک‌تر ویژوال استودیو IDE مطرح دنیای برنامه‌نویسی است. محصولی از مایکروسافت که در سیستم‌عاملی Mac OS X و لینوکس هم کار می‌کند. بزرگ‌ترین ویژگی این ادیتور، تجربه ویرایش کدنویسی باحال و هوای ویژوال استودیو ایجاد می‌کند بدون اینکه نیاز باشد نسخه کامل IDE ویژوال استودیو را با حجمی حدود 3 گیگ به روی یک سیستم معمولی پیاده کرده و مرارت‌ها بکشید. این ادیتور سبک و کارآمد است و منصفانه نیست، تمام انتظاراتی که از برادر بزرگ‌تر داریم از Visual Studio Code نیز بخواهید.

     
    ویژگی‌های برجسته:
    پشتیبانی از ۳۰ زبان برنامه‌نویسی و صدالبته ASP.NET و #C زمان نصب کم و روال ساده در اجرا قابلیت مقایسه دو فایل رنگ‌آمیزی کدها افزونه‌های فراوان وجود نسخه پرتابل قابلیت ارتباط با گیت‌هاب و استفاده از امکانات آن رایگان نکاتی برای ارتقاء و بهبود: عدم پشتیبانی خوب از افزونه‌ها نتیجه:
    این ویرایشگر عالی فضای بسیار کمی را اشغال می‌کند. هر برنامه‌نویس دلداده #C بر اهمیت وجود این ادیتور سورس کد، در لیست بهترین ویرایشگر برنامه‌نویسی واقف است. این ویرایشگر فوق‌العاده محبوب به شما فرصت عالی تجربه زبان‌های ASP.NET و #C را می‌دهد تا با لذت و آرامش بیشتری در استفاده از آن‌ها ماهر شوید و بتوانید در آینده با فراغ بال، برادر بزرگ‌تر را ملاقات کنید.
     
    ویرایشگر UltraEdit
    ویرایشگر UltraEdit محصول شرکت رایانه‌ای IDM Computer Solutions یک ویرایشگر محبوب در نزد هکرها، برنامه‌نویسان و توسعه‌دهندگان و البته لیست بهترین ویرایشگر برنامه‌نویسی است.

    ادیتور اولترا‌ ادیت در پشتیبانی از زبان‌های مطرح خوب عمل می‌کند، همچنان که تیم پشتیبانی نرم‌افزار از سال ۱۹۹۴ برای بهبود و اجرای پیشنهاد‌ها و انتقادهای کاربران این ادیتور، خوب عمل کرده است. ادیتور UltraEdit در سیستم‌عامل‌های ویندوز، مک و لینوکس نیز در دسترس است.
     
    ویژگی‌های برجسته:
    قابلیت انتخاب چندگانه و ویرایش هم‌زمان رنگ‌آمیزی کدها و هشدار اصلاح کد قابلیت Ftp قابلیت ویرایشگر HEX قابلیت املای کلمات قابلیت رمز سازی و رمزگشایی قابلیت ویرایش فایل‌های باینری پشتیبانی از فایل‌های بزرگ پشتیبانی از SSH نکاتی برای ارتقاء و بهبود:
    قیمت بالا نتیجه:
    قیمت این نرم‌افزار گران است ولی ویژگی‌های زیادی را پشتیبانی می‌کند که در برنامه‌نویسی بسیار مفید هستند. برای مقایسه عادلانه‌تر ازنظر قیمت در مقایسه با ویژگی‌های ارائه‌شده در دیگر نرم‌افزارهای هم قیمت چندان هم گران نیست ازاین‌جهت یکی از بهترین نرم‌افزارهای تجاری است که می‌شود از آن نام برد.
     
    هیچ‌وقت از داشتن ادیتور سورس کد پشیمان نمی‌شوید و هر زمان نیز به ابزاری سریع و کارآمد نیاز داشته باشید، به‌راحتی در اختیار شماست. این لیست نیز بهترین ویرایشگرهای کدنویسی را که امسال بیشترین توجه را در نزد برنامه‌نویسان جلب کرده‌اند، برای انتخاب سریع‌تر و بهتر شما، جمع کرده است. هرکدام را که به طبع شما نزدیک‌تر است انتخاب کنید و با تمرین در آن چالاکی خود را در برنامه‌نویسی، به رقبا نشان دهید.
  21. کامبیز اسدزاده
    اینتل مدتی پیش شرکت الترا فعال در زمینهٔ FPGA را خریداری و سرمایه‌گذاری فراوانی روی این شرکت و فناوری‌های آن کرد. حالا به مرور نتایج این سرمایه‌گذاری در حال نمایان شدن است.
    اینتل از تراشه‌ای جدید در بستر قابل توسعهٔ زئون رونمایی کرده که علاوه بر دارا بودن پردازنده سطح سرور اسکای‌لیک با هسته‌های AVX-512 و توپولوژی جدید مِش، میزبان یک واحد جدید نیز هست. از مدت‌ها پیش شایعاتی مبنی بر برنامه‌ریزی اینتل برای قرار دادن یک واحد FPGA الترا به صورت یکپارچه با پردازنده‌های زئون به گوش رسیده بود، و حالا غول دنیای تراشه‌ها این کار را انجام داده است. این شرکت از تراشه Xeon Gold 6138P رونمایی کرده که یک اف‌پی‌جی‌ای Aria 10 GX 1150 الترا در درون خود دارد.
     
    رونمایی اینتل از نسل جدید پردازنده زئون
    سال گذشته در نمایشگاه سوپرکامپیوتینگ ۲۰۱۶، اینتل یک تراشه زئون با پردازنده برادول معرفی کرد که در درون خود یک اف‌پی‌جی‌ای داشت، اما هیچ‌گونه جزییات بیشتری درباره آن ارائه نکرد و حتی تراشه را در معرض دید نیز قرار نداد. امسال نیز در نمایشگاه MWC بار دیگر یک پردازنده مقیاس‌پذیر را معرفی کرد که درون خود میزبان یک FPGA بود، اما باز هم تراشه را به نمایش نگذاشت و حتی به مراجعین اجازه باز کردن جعبه‌ای که تراشه را درون آن قرار داد بود را نداد. اینتل می‌گفت این تراشه برای به‌کارگیری در پردازش‌هایی مانند آن‌چه در شبکه مانند نسل پنجم ارتباطات همراه (5G) مورد نیاز است طراحی شده است اما به سوال‌هایی که از نوع هسته‌های پردازشی به کار رفته و مشخصات FPGA درون این تراشه پرسیده می‌شد، پاسخی نمی‌داد. به همین دلیل خبری از این تراشه مخابره نشد و چندان به این موضوع پرداخته نشد.
    دو ماه بعد ار آن از نمایشگاه PC-Watch خبر می‌رسد که اینتل از تراشه Xeon Gold 6138P رونمایی و تولید انبوه آن را نیز آغاز کرده است. برخی از مشتریان منتخب نیز پیش‌تر نمونه‌های اولیه این تراشه را دریافت کرده‌اند. در مراسم رونمایی اعلام شده که شرکت فوجیستو به عنوان یکی از همکاران اینتل برای ساخت سیسمتی مبتنی بر این تراشه برنامه‌ریزی کرده است.
     
    اینتل پردازندهٔ زئون را با پهنای باند 160 گیگابیت در هر سوکت (هنوز مشخص نیست این ارتباط دو جهته است یا خیر) و با استفاده از یک اتصال مجزا از حافظه پنهان (Catch) به FPGA متصل می‌کند. از آنجا که می‌دانیم اینتل از فناوری OmniPath Fabric برای اتصال پردازنده و FPGA استفاده کرده، این اتصال احتمالا پروتکلی متفاوت را روی رابط PCIe x16 که برای اجزای درون تراشه‌ای در نظر گرفته شده است، اجرا می‌کند. به این ترتیب می‌تواند از مزایای اتصال فوق العاده مسیر (UPI) اینتل نیز برای انطباق حافظه پنهان و دسترسی به داده‌ها در سراسر پلتفرم بهره گیرد. این موضوع به معنای آن است که اگر یکی از ارتباط‌های UPI از پردازنده برای FPGA استفاده کند تراشه می‌تواند تنظیمات Xeon و FPGA را به بهترین وجه به سوکت دوگانه کاهش دهد. اما اینتل برای تایید این نکات اطلاعاتی را در مورد تراشه جدید ارائه نداد. ما می‌توانیم وجود یک اسلایدر قدیمی Intel تأیید کنیم که پلتفرم باید از یک رابط سریال با سرعت بالا (HSSI) برای اتصال استفاده کند؛ این اسلاید همچنین بیان می‌کند که پردازنده‌های جدید دارای مشخصات قدرتمند مختلف به درگاه‌های استاندارد Skylake-SP هستند و به همین ترتیب Xeon Gold 6138P احتمالا بعید است که در پردازنده‌های سیستم های فعلی قرار گیرد.
     
    اینتل برای این رونمایی یک طراحی مرجع سوییچینگ مجازی ساخته است که در آن از اف‌پی‌جی‌ای برای زیرساخت سوییچنگ اطلاعات کاربر (dataplane) استفاده کرده که با ماشین مجازی روی پردازنده کار می‌کند و پردازش‌های مورد نیاز را انجام می‌دهد. اینتل مدعی‌ است این طراحی مرجع ۳/۲ برابر بازده محاسباتی بیشتر و تاخیر ۵۰ درصدی را نسبت به مدل‌های پیاده شده بر روی پردازنده (بدون وجود اف‌پی‌جی‌ای) با استفاده از پلتفرم Open Virtual Switch دارا است. نتایج مورد ادعا از طریق روش DPDK اندازه‌گیری شده است.
     
    سیستمی که مورد آزمایش قرار گرفته یک سرور 2P با دو تراشه Xeon Gold 6138P با اف‌پی‌جی‌ای یکپارچهٔ Arria 10 GX 1150 و ۱۲ حافظه رم ۱۶ گیگابایتی DDR4 و همچنین یک کارت شبکه آلاسکا 100G مارول بوده است. با این تفاوت که این سیستم همچنین دارای یک اسلات PCIe 3.0 x10 در کنار یک اسلات PCIe 3.0 x8 است. که به نظر می‌رسد اعدادی غیرعادی هستند.
     
    همچنین در این رونمایی اعلام شده که اینتل قصد دارد راه‌کاری مشابه برای استفاده از FPGAهای جداگانه (غیریکپارچه با پردازنده) و با ارتباطی سریع‌تر و یکپارچه ارائه دهد، که البته اطلاعات بیشتری درباره این ارتباط سریع ارائه نشده است. این راه‌کار قابلیت به کارگیری کدهای نوشته شده برای تراشه‌های دارای پردازنده و اف‌پی‌جی‌ای را خواهند داشت.
  22. کامبیز اسدزاده
    تحول توسط اینترنت اشیاء (IoT)، این واضح است که افزوده شدن به تعداد دستگاه های متصل به این فناوری با سرعت چشمگیری در حال افزایش است. همه جا در اطراف زندگی روزمره ما، استفاده بیشترو بیشتری را از آن ها داریم. علاوه بر این که به آن ها متصل هستیم، دستگاه های با صفحه لمسی بیشتری به رابط گرافیکی مدرن مجهز می شوند.
    در این میان در اطراف ما به راحتی دیده می شود که کاربران زیادی نرم افزار های خود را توسط کیوت برای این دستگاه ها می سازند. برای رسیدن به شماری از این اعداد و ارقام توسط گروه Gartner که تخمین زده است تا سال ۲۰۲۰ رشد دستگاه های متصل به این فناوری حدود ۲۰٬۷ میلیارد دستگاه خواهد بود. (حتی پیش بینی شده است که بالاتر از آن یعنی حدود ۳۰ میلیارد دستگاه) مجهز به فناوری مرتبط خواهد شد که تحت سی پلاس پلاس و کیوت توسعه پیدا می کنند.
    نه تنها شمار زیادی از دستگاه ها در حال رشد هستند، اما در این میان پیچیدگی و تعداد نرم افزار ها نیز در حال رشد هستند. برای مثال، امروزه خودرو ها می‌توانند بیش از ۱۰۰ میلیون خط کد را در اختیار داشته باشند، انتظار می رود این روند به سه برابر در آینده به عنوان قابلیت های نرم افزاری در خودرو ها افزایش یابد.
    خودرو ها بخش پیچیده ای از این فرآیند محسوب می شوند، اما حتی برای ساده ترین اتصال به دستگاه ها نیاز به نرم افزار های زیادی می باشد که قادر باشند الزامات را برای اتصال به طور امن با قابلیت های مفید را با رشد چشم گیری در اختیار مصرف کنندگان قرار دهند.
     
    در اینجا بر روی یک نمودار خطی چگونگی دستگاه های در حال رشد را تخمین می‌زنیم:

     
    در داخل این دستگاه ها چه چیزی وجود دارد؟
    چه نوع نرم افزاری دستگاه های متصل شده را مدیریت می کند؟ چه نوع مهارت هایی برای ساخت اینها نیاز است؟ اینگونه تخمین زده شده است که تا به امروز 95% از دستگاه های تعبیه شده (Embedded) اِمبد ها توسط زبان برنامه نویسی C و ++C  ساخته شده اند، و اینگونه پیشبینی شده است که این فرآیند در آینده به طور قابل توجهی تغییر نخواهد یافت.
    سپس، از سوی دیگر با توجه به مطالعاتی که در جهان بر روی ۴.۴ میلیون توسع دهنده C++  و ۱.۹ میلیون توسعه دهنده زبان C در سال ۲۰۱۵  صورت گرفته است. یک مطالعه بر اساس نتایج سال ۲۰۰۱ توسط IDC، نشان می دهد که تعداد توسعه دهندگان زبان ++C در آن زمان حدود ۳ میلیون نفر بوده است. معنی این نتایج اینگونه است که تعداد توسعه دهندگان ++C به طور پیوسته در حال رشد است که حدود 3% در سال بوده و انتظار می روند با همین روند به جمع توسعه دهندگان در سال های آتی افزوده شود.
     
    بنابراین، یک تجسم کلی از رشد توسعه دهندگان ++C در نمودار زیر آورده شده است:
     

     
    بر اساس برآورده های تعداد دستگاه های تخمین زده شده، که اکثر آن ها باید توسط C و ++C انجام شده باشند، و در حال حاضر با سرعت بسیار زیادی همین روند رو به رشد می باشد و انتظار می رود این روند با سرعت بسیار بیشتری ادامه یابد. با توجه به افزایش پیچیدگی در عملکرد، تعداد نرم افزار های موجود در حال رشد است. اگرچه برخی از دستگاه های جدید از عملکرد بسیار ساده ای برخوردار خواهند بود، اما دستگاه های بسیار بیشتری با پیچیدگی های بیشتری مورد نیاز مصرف کنندگان است.
    در حال حاضر، این مقایسه بین دو گرایش معمای جالبی را برای ما فراهم می کند که توجه به آن جالب است: چطور میلیون ها نفر از توسعه دهندگان سی‌پلاس‌پلاس نیازمندی ها را برای ساخت و متصل کردن میلیاردها دستگاه به یکدیگر مطابقت می دهند.

    با قرار دادن این دو نمودار در کنار هم، می توانیم به وضوح نمودار پارادوکس را تجسم کرده و به یک (راه حل) ممکن برسیم: بنابراین چگونه بر آن افزوده می شود؟ آیا ما انتظار این را خواهیم داشت که در سال ۲۰۲۰ یک توسعه دهنده سی‌پلاس‌پلاس  ۲۰ برابر بیشتر از آن چیزی را بنویسد که در ۱ دهه قبل نوشته است؟ این راه حل کارساز نخواهد بود. حتی اگر همه توسعه دهندگان ++C تمرکزشان بر روی دستگاه ها باشد! لذا هنوز توسعه دهنده ++C به اندازه کافی موجود نیست. توسعه دهندگان  C++ به راحتی می توانند آموزش های حرفه ای را ببینند و سال هایی را برای دوره های خود در نظر بگیرند تا به درجه استادی برسند. بنابراین، چیزی که باید انجام شود دو چیز است: فعال کردن توسعه دهندگان C++ در این زمینه ها و همچنین آموزش برای برنامه نویسان غیر ++C برای ساخت دستگاه ها.
    بنابراین، برای تعبیه شدن نیاز ها باید با شرایط جدیدتری سازگار شد. تنها راه برای مقابله با رشد این است که ابزار های خوبی برای دستگاه ها در اختیار قرار گیرد. پیش بینی می شود با ابزار هایی که Qt قرار است فراهم کند رویکرد قابل قبولی برای ساخت دستگاه ها فراهم آورد. زیرا شعار کیوت این است "کد کمتر،سازندگی بیشتر، تولید و استقرار در همه جا" این شعار تابه امروز پیش بینی شده بود. کیوت دارای سابقه ی دستگاه های اِمبد، دسکتاپ و موبایل و ساخت و توسعه اپلیکیشن های کاربردی با روش بهتر و ساده تر در تمامی پلتفرم ها می باشد.
    این احتمال وجود دارد که حتی استفاده از قابلیت های نرم افزاری کافی نیست. همچنین لازم است برای افزایش بهره وری از برنامه نویسان خبره  ++C جهت توسعه بهتر استفاده شود.با استفاده از Qt رابط های برنامه نویسی به طور گسترده و مشهوری مستند سازی شده اند. بنابراین توسعه دهندگان ++C سازنده تر و مفید تر از قبل هستند.
    همچنین Qt زبان اعلانی با نام QML را جهت سهولت کار در طراحی فراهم کرده است، و رشد اینکه تعداد کثیری از مردم که می خواهند فراتر از توسعه دهندگان سی پلاس پلاس در توسعه دستگاه ها قدم بگذارند ایجاب شده است. در حال حاضر میلیون ها توسعه دهنده با Qt در جهان آشنا هستند که روز به روز برای به دست گرفتن آن میکوشند.
    با وجود زبان QML، مشکل اینگونه حل شده است تا بدون داشتن مهارت های بسیار بالا از  ++C توسعه دهندگان بتوانند در زمینه رابط کاربری تیم خود را مدیریت کنند. البته برای ساخت هسته نرم افزار های دستگاه های تعبیه شده نیاز به ++C امریست ضروری. اما چیز دیگری می تواند کمک بهتری برای توسعه در اختیار قرار دهد. استفاده از Qt که اجازه می دهد هر دو نوع توسعه دهندگان غیر   ++C و متخصصین ++C عملیاتی را که می خواهند بر روی دستگاه ها توسعه دهند فراهم می کند. و این اجازه می دهد توسعه دهندگان ++C  تمرکز بهتری در تمامی زمینه ها داشته باشند.
     
     
  23. کامبیز اسدزاده
    در آخرین به‌روزرسانی‌ گوگل، پشتیبانی از ۳۹ زبان دیگر از جمله زبان فارسی به گوگل مپ اضافه شد.
    در آخرین به‌روزرسانیگوگل مپ (Google map)، بیش از ۱.۲۵ میلیارد نفر دیگر می‌توانند به‌راحتی از این اپلیکیشن استفاده کنند. گوگل با اضافه کردن ۳۹ زبان دیگر به این اپلیکیشن، استفاده از آن را برای کاربران بیشتری راحت‌تر کرد. بر اساس آخرین اطلاعات گوگل، اکنون یک میلیارد نفر برای مسیریابی به گوگل مپ متکی هستند. شاید برای شما هم عجیب باشد که گوگل مپ در سال ۲۰۰۴ تنها با زبان انگلیسی معرفی شد. گوگل مپ در سیستم‌عامل iOS تا نسخه iOS 6 به‌صورت پیش‌فرض قرار داشت و بعد از آن با Apple Maps جایگزین شد.

    زبان‌های اضافه‌شده در تمامی نسخه‌های گوگل مپ از جمله اندروید، iOS، مک، ویندوز و نسخه وب قابل‌ دسترسی است. جدای از زبان فارسی اضافه‌شده که برای ما حائز اهمیت خواهد بود، از دیگر زبان‌ها می‌توان به آذربایجانی، ارمنی، اندونزیایی، ایسلندی، رومانیایی، ترکی و ازبکی اشاره کرد.
  24. کامبیز اسدزاده
    از زبان سازندگان تیم Nymea بشنوید که چگونه در مورد دلایل استفاده خود از Qt در حوزه اینترنت اشیاء می‌گویند. در اینجا تیم Nymea که سازنده پلتفرم IoT با نام Nymea اس اینگونه می‌گویند. ما از ابتدای کار خود از Qt استفاده کرده ایم. شما ممکن است فکر کنید و اینگونه به نظر برسد که انتخاب کیوت برای دستگاه‌هایی که دارای رابط کاربری نیستند یک انتخاب غیر عادی باشد! اجازه دهید تا این مبحث را کمی برای شما روشن کنیم. اساساً، در بیانیه قبلی٬ سه تصور غلط وجود دارد.

    کیوت یک چهارچوب رابط کاربری است : بله اما بسیار بیشتر از چیزی است که تصورش را می‌کنید
    اولین و بزرگترین تصور غلط این است که Qt تنها بر روی پروژه هایی تمرکز کرده است که عمدتا در حوزه رابط کاربری UI می‌باشند. درست است که کیوت چندین سال پیش به عنوان یک ابزار قدرتمند رابط توسعه رابط کاربری فعالیتش را آغاز کرده است. اما آن زمان٬ کیوت یک مجموعه کامل از کتابخانه‌ها و ابزارهای پشتیبانی شده در هر لایه کامل نبود که امروزه این به حقیقت پیوسته است. حتی شما اگر گزینه‌های گرافیکی را نداشته باشید، کیوت بهره وری شما را به یک مرتبه افزایش خواهد داد. که در موردش بعدا بیشتر اشاره خواهم کرد.
    رابط کاربری دارای جنبه‌های بسیاری است
    در حال حاضر، اجازه دهید اینگونه بگویم که: هیچ نمایشگری برابر با هیچ رابط کاربری نیست. حتی وقتی شما در حال ساخت یک دستگاه اِمبِد بدون نمایشگر هستید تقریبا هیچ رابط کاربری برای آن وجود ندارد. در مثال ما رابط کاربری شامل یک رابط وِب در حال اجرا در جعبه IoT و برنامه مشتری است. اپلیکیشن مشتری٬ اجرا بر روی تلفن‌های هوشمند٬ کامپیوترها و یا صفحه های نمایشی دیواری که عمدتا برقراری ارتباط و صحبت با دستگاه از طریق لایه UI صورت می‌گیرد. در اینجا، فناوری کیوت کوئیک (Qt Quick) می‌تواند یک تجربه مدرن را با قابلیت  (یک بار نوشته شدن و در همه جا اجرا شدن) را ارائه دهد و جالبترین بخش از کیوت نسخه ۵.۱۰ این است که در زمانی نیاز از برنامه های مشابه می‌توان بر اساس فناوری Qt WebGL به عنوان یک ویژگی جدید استفاده کرد.
    بدون سربارگذاری اضافی : تنها مواردی را مستقر کنید که به آن ها نیاز دارید
    یک نظر دیگر که اغلب شنیده ایم این است که وارد کردن کیوت به دستگاههای اِمبد سربار بزرگی خواهد بود. در حالی که در روزهای اولیه٬ کیوت از برخی از ماژول شامل شده بود که در این سالها بسیار تغییر کرده اند آن‌ها بهتر و پیشرفته تر از قبل شده اند و در جدید ترین نسخه کیوت ۵ مدولاسیون کیوت کنترلهای بسیاری را در بخشهایی از کیوت جهت نصب یک نقطه اشتراکی و قابل ردیابی را تسهیل کرده است. در این روزهای اخیر کیوت توانسته است این امکان را فراهم سازد تا تجهیزات لازم را بر روی دستگاه‌ها به حداقل برساند و نیاز به آن را به طور کامل از بین ببرد.
    کیوت چگونه توانسته است بهره وری مارا بر روی Nymea افزایش دهد
    همانطور که در بالا ذکر شد، من مایلم به برخی از ویژگیهای کیوت که موجب افزایش بهره وری Nymea شده است را عنوان کنم تا بررسی کنید.
    تعداد زیادی از آنها به صورت لیست در اینجا وجود دارد٬ اما مهمترین آنها برای پُشته میان افزار ما عبارتند از:
    معماری پلاگین
    معماری پلاگین کیوت مناسب برای بارگیری پلاگین‌ها است، و تمام پیچیدگی و بارگذاری کتابخانه ها را از بین می‌برد٬ استفاده ازNymea بر اساس پلاگین‌ها یک مزیت قابل توجهی است. هسته این پلتفرم یک نکته از تنظیمات نرم افزار مدیریت و هوشمندانه اشیاء می‌باشد که در آن تمام سخت افزارهای واقعی و خدمات آنلاین٬ به اصطلاح اشیاء در سیستم از طریق پلاگین فعال هستند.
    پروتکل های انتقال
    تنها چند تماس با رابط های برنامه نویسی Qt همه چیز را که مورد نیاز است در اختیار شما قرار می‌دهد. میان افزار Nymea رابط ها را از طریق سوکتها (TCP/IP یا سوکت های محلی) ٬ WebSockets, Rest, Bluetooth RFCOMM ارائه می‌دهد و همه آن‌ها به سادگی در دست کیوت با استفاده از رمزنگاری SSL (گواهی معتبر) برای ارتباط امن فراهم شده اند.
    رابط های برنامه نویسی مبتنی بر JSONRPC
    کیوت پشتیبانی از JSON را پیشنهاد می‌کند و اجازه می‌دهد تا به راحتی بین ساختار های دالی به اشیاء JSON دسترسی داشته باشید. این در زمان تعامل با مشتتریان برای ما یک نکته مثبت بسیار بزرگی محسوب می‌شود.
    چهارچوب آزمایش و اشکالزدایی
    توسعه دهندگان از مزایای یک رابط برنامه نویس بسیار انتزاعی لذت می‌برند. کدهای پایه Nymea هنگام آزمایش به صورت خودکار توسط سیستم Qt Test مورد آزمایش قرار می‌گیرند و این باعث می‌شود مواردی را برای آزمایش قابلیتها و همچنین تهیه گزارش و چاپ آن‌ها همراه با آمار در انواع مختلف در قالب مشابه UnitXML در اختیار داشته باشیم. علاوه بر این٬ آن را قادر می‌سازد تا با دیگر سیستم‌های خطایابی مانند Valgrind و دیگر ابزارهای خارجی و قدیمی که برای سی++ کار‌های قدیمی و حرفه ای مهم است را فراهم می‌کند.
    مستندات رابط های برنامه نویسی با استفاده از QDoc
    کیوت یک مرجع بسیار شگفت انگیز در آدرس doc.qt.io را ارائه میدهد. سیستم QDoc امکان این را فراهم می سازد که با نصب CI دسترسی برای سفارشی سازی ظاهر و همچنین مستند سازی ویژه ای را برای پروژه خود فراهم سازید که برای Nymea به آدرس.
    یک عالمه حامی ریز و کوچک در امتداد مسیر
    کیوت مقادیر بیشماری از ویژگی ها را در اختیار توسعه دهندگان قرار می‌دهد که از پارامترهای خط فرمان و تجزیه تحلیل ورودی گرفته تا خروجی و اتصالات به اینترنت و همچنین مکانیزم های مختلف IPC در سیستم هایی مانند D-Bus که هرکدام از این ویژگی های به نوبه خود آماده استفاده هستند.
    همه (یا تقریبا همه آنها) به طور کامل چند-سکویی هستند، در حالی که Nymea برای اجرا بر روی دستگاه های مبتنی بر لینوکس متمرکز شده است٬ با این حال به کمک کیوت میتوانیم آن را برای دیگر پلتفرمها نیز بسازیم. البته برخی از ویژگی های یکپارچه مانند رابط های برنامه نویسی D-Bus بر روی تمامی سیستم عامل ها کار نخواهند کرد، اما این چنین موارد در کل بسیار نادر هستند. در حال حاضر nymea دارای مخزن مبتنی بر dpkg برای پشتیبانی تحت همه توزیعهای ابنتو و دبیان و همچنین بسته های ناگهانی متناسب با چنین توزیعهایی تعبیه شده است. برنامه مصرف کننده برای دسکتاپ و اندروید ساخته شده است. تیم ما برای توسعه آن بر روی پلتفرم iOS نیز در حال تلاش است که بر پایه WebGL برای پشتیبانی از تمامی قابلیتهای Qt Quick به عنوان یک رابط کاربری خوب در Nymea تمرکز کرده است.
    نکته مهم و کلی این است
    کیوت یک چهارچوب ایده آل برای پروژه‌های شما در حوزه UI یا غیر آن است. تعداد زیادی از رابط های برنامه نویسی آزمایش شده و با کیفیت بالا کار و زندگی هریک از توسعه دهندگان را بسیار راحتر میکند. به ویژه وقتی به راحتی API ها توجه شود. در عین حال کیوت همچنان به شما این امکان را فراهم میکند تا از مزایای ++C لذت ببرید. بنابراین کیوت برای IoT بسیار مناسب است.
    درباره Nymea
    شرکتی است که دستگاههای هوشمند را می‌سازند. سریع، قابل برنامه ریزی و بدون دردسر. تیم M2M ما یکپارچه بودن رابط های برنامه نویسی را تضمین می‌کند چرا که ما به قدرت راه حل های حاشیه ای انباشته شده (جمع شده، ترکیب شده) ایمان داریم.
  25. کامبیز اسدزاده
    برای سال های بسیار زیادی است که HTML یک زبان جهانی برای ساخت صفحات وب بوده است و تا کنون در مقابل زبان‌های دیگر به شدت مقاومت نشان داده است که در بین آنها بهترین امنیت و سرعت مورد نظر ارائه داده است. با این حال جهان فراتر از مرورگر اینترنتی رفته و وارد موبایل و دستگاههای هوشمند بسیاری شده است و برخی از توسعه دهندگان HTML5 را برای توسعه در حوزه IoT بسیار آهسته و ضعیف دانسته اند. شاید پاسخ آن را Qt بتواند ارائه دهد که خود یک چهار چوب چند سکویی بشمار می‌آید.
    چرا HTML بسیار موفق بوده است؟
    زبان HTML بسیار موفق بوده است، زیرا همراه توسعه و پیشرفت اینترنت و برنامه های توسعه یافته شده در طول رشد صنعت اینترنت همراه شده است. این یک روش سنتی و درست برای توسعه صفحات وب می‌باشد. در سال‌های اخیر ابزار های توسعه جدید٬ با ایجاد و توسعه خود شروع به حفاری HTML کرده اند و خود تاثیر بر روی آن می‌گذارند، اما برنامه های تحت دسکتاپ بدون هیچ مشکلی همچنان استفاده از HTML را ادامه می‌دهند.
    اشکالات اصلی استفاده از HTML در چیست؟
    ظهور گوشی‌های هوشمند و رسانه های اجتماعی پیشرفت صنعت وب را توسعه داده است. امروزه برنامه های کاربردی در طیف گسترده ای تغییر شکل و اندازه می‌دهند. برنامه‌های سنتی دسکتاپی٬ برنامه های کاربردی وب در هر دستگاه با مرورگر٬ برنامه های تلفن همراه٬ دستگاه های اِمبد و دستگاه های مرتبط با اینترنت اشیاء (IoT) و غیره. دستگاه های مرتبط به IoT در حال حاضر نیاز به رابط کاربری و ویژگی های اتصال دارند تا در ارتباط بهتری قرار بگیرند٬ همچنین از اپراتورها انتظار می رود که تجربه کاربری مشابه را در دستگاه‌های شخصی خود داشته باشند. در این میان HTML هرگز برای سیستم های هوشمند و امبد‌ها و دستگاه‌های این چنینی در نظر گرفته نشده است و دارای نقایصی است. در حالی که در مخالف آن جهت توسعه صنعت تحت روش‌ها و زبان‌های بومی استفاده مورد استفاده قرار می‌گیرد.
    یکی دیگر از معایب HTML5 این است که موقع انتخاب HTML5 شما می‌بایست در کنار آن یک چهارچوب جاوا اسکریپتی را نیز انتخاب کنید. در کنار آن می‌توان به مقایسه چهار چوب‌های موجود پرداخت که برخی از آنها ممکن است در آینده از بین بروند و برخی از آن ها باقی بمانند! اینکه در آینده چه اتفاقی خواهد افتاد نامعلوم است. بنابراین فشار زیادی برای انتخاب بین چهارچوب‌ها وجود دارد.
    چهارچوب توسعه چند-سکویی Qt چیست و چگونه به توسعه دهندگان کمک می‌کند؟
    کیوت یک چهارچوب چند-سکویی توسعه بر پایه ++C است و شامل هر دو گزینه کتابخانه و ابزارهای ساخت و توسعه رابط کاربری برنامه‌های کاربردی می‌باشد. یکی از روشهای طراحی در کیوت استفاده از زبان اعلانی QML می‌باشد که طراحی شده است تا به توسعه دهندگان این امکان را بدهد تا بتوانند رابط کاربری با کارآیی بالا را طراحی و پیاده سازی نمایند که قابل اجرا بر روی تمامی دستگاه ها مانند دسکتاپ٬ موبایل و ... باشد. طراحی رابط کاربری توسط QML به صورت بصری است که همراه کنترل ها آماده٬ مانند دکمه‌ها٬ سوئچ‌ها و ... را می‌توان بر روی بوم طراحی سریع آن‌ها را کشیده و طراحی کرد. همانند چهار چوب‌هایی که برای توسعه وب و موبایل طراحی شده اند٬ زبانهای برنامه نویسی مانند QML در کیوت به خاطر محدودیت‌ها و حذف HTML توسط شرکت‌های بزرگ سهم قابل توجهی را به دست آورده اند.
    مزایای استفاده از QML در برابر HTML در چیست؟
    بعد از اینکه بارها این سوال ها را مطرح کرده‌ایم٬ یک شرکت مشاوره نرم افزاری اتریشی تصمیم به تست مقایسه‌ای بین این دو زبان گرفت تا بتواند پاسخ مناسبی را برای این سوال تعیین کند. آنها برای هرکدام از زبانها ۱۶۰ ساعت در اختیار توسعه دهندگان مشابه قرار دادند برای مثال ۱۶۰ ساعت توسعه بر روی HTML5 و ۱۶۰ ساعت توسعه بر روی QML تا نمونه هایی را در قالب Demo جهت مقایسه طراحی نمایند تا بتوانند آنها را زمانی که برای ایجاد یک محصول مشابه مورد استفاده قرار می‌دهند از لحاظ عملکرد و پایداری مقایسه کنند.
    نسخه های دمو نشان می‌دهد اگر چه زمان مشابهی در هر دو نسخه صرف توسعه شده بود٬ اما پیاده سازی با Qt QML یک رابط کاربری کاربردی تر و کاملتری را نسبت به نسخه HTML5 ارائه می‌دهد. فرآیند تست و اشکال زدایی با Qt QML ساده تر است٬ زیرا HTML5 نیاز به آزمایش های بیشتری در مرورگرهای مختلف دارد. به طور کلی نسخه Qt QML زمان کمتری را جهت پاسخ دهی (در اجرا) و ویژگیهای فعال تری را مانند صفحه کلید مجازی و حرکات پیچیده ارائه می‌دهد که این موارد در HTML5 بدون افزودن آنها قابل ارائه نیست. همچنین QML قابلیت ترکیب و قدرت گرفتن از ++C را دارد که نکتهٔ بسیار مهمی است.
    کیوت چگونه برای دستگاه های هوشمند و امبد کار می‌کند و چه رویکرد متفاوتی از برنامه‌های سنتی دسکتاپی و HTML دارد؟
    برنامه هایی که بر پایه کیوت هستند٬ برای یک هدف تدوین و کامپایل می‌شوند٬ این به این معنی است که بدون در نظر گرفتن قوانین کاربردی بر روی پلتفرم همان رفتاری را انجام خواهد داد که بر روی پلتفرم قرار است اجرا شود. برنامه های تحت HTML5 برای اجرا بر روی مرورگر هستند، برای مثال مرورگر Google's Chrome این به این معنی است که برنامه در پلتفرم های دیگر مانند FireFox ممکن است یک رفتار دیگری را نشان دهد. HTML یک زبان است در حالی که Qt یک چهارچوب کامل با گزینه‌های طراحی و زبانهای مختلف است. با کیوت شما واقعا توانایی استفاده هر گزینه‌ای را نسبت به کاربرد آن خواهید داشت. شما می‌توانید ابزارهای طراحی خود را با کشیدن و رها کردن بر روی بوم خود قرار داده و به راحتی آن را با زبانی مانند ++C تنظیم کنید. کدهای اعلان شده در QML هستند و یا می‌توان آن‌ها را با ++C ترکیب کرد. همچنین شما می‌توانید در صورتی که نیاز داشته باشید کد‌های HTML را بر روی کیوت بر پایه مرورگر کروم فعال و استفاده نمایید.
    در بازار کیوت چقدر نفوز دارد؟
    با وجود اینکه کیوت حدود ۲۵ سال است عمر دارد٬ ممکن است برخی بگویند که این چهارچوب پیش از این زمان ذکر شده توسعه داده شده است. با افزایش توسعه اینترنت اشیاء که نیاز به هرجا و هر صفحه نمایشی را افزایش داده است٬ این در حالی است که توسعه دهندگان در همان مقدار باقی مانده اند. این به این معنی است که توسعه دهندگان نیاز به این دارند که بیشتر سازنده باشند و سعی نکنند که مشکلاتی را حل کنند که قبلا برای آن ها راه حلی پیدا شده است.
    کیوت توسط بیش از ۱ میلیون توسعه دهنده در بیش از ۷۰ صنایع مورد استفاده قرار گرفته است و در سال گذشته بیش از ۲۰ درصد رشد داشته است و برای تکنولوژی هایی که تا مدت طولانی وجود دارند، منحصر بفرد است. هر کجا که یک رابط کاربری خارق العاده را می‌بینید آن شانس خوبی است که با کیوت توسعه داده شده است. از وسایل هوشمند درون خودرو و ابزارهای دیجیتال گرفته تا صفحه های نمایش HUD در خودرو های مانند تسلا یا مرسدس، و یا سیستم هایی که از طریق FDA و IEC جهت تامین ایمنی بیماران از طریق سیستم های اتوماسیون برای ساختمان ها و صنایع و حتی در تلوزیون های دیجیتال و یخچال فریزر شما که در این نقطه کیوت به طور گسترده ای به تصویر رسیده است٬ اما عصر طلایی آن در حال آغاز شدن است.
    هزینه کلی و مالکیت کیوت چگونه است؟
    کیوت دارای یک مدل مجوز دوگانه است. کیوت یک مدل منبع باز و کاملا رایگان و همچنین یک مدل تجاری ارائه می‌دهد که در مدل تجاری پلتفرمی را پیشنهاد می‌کند که برای استفاده و دسترسی به R&D و پشتیبانی تجاری می‌باشد. HTML5 رایگان است (با گزینه‌ای برای پرداخت هزینه برای ابزار های غیر ضروری) اما یکپارچگی وابستگی‌ها مانند نگه داری و دستیابی به همان کارایی است که شما به طور نسبی با Qt نیاز دارید. توسعه دهندگان HTML برای اینکه نیاز به دسترسی لایه‌های زیرین داشته باشند یا روش های پیشرفته تری استفاده کنند تا بتوانند کارایی بهتر و پیشرفته تری را ارائه دهند و سیستم شما را پشتیبانی و بهینه نگه دارند نیازمند استفاده و هزینه کردن به سخت افزار‌هایی هستند.اما در کیوت شرکت کیوت کسی است که پشت این چهارچوب است و مراقب تمامی وابستگی‌ها می‌باشد٬ هزینه تعمیرات و نگه داری ها را کاهش می‌دهد٬ سیستم شما را اثبات می‌کند و خطرات کلی شما را کاهش می‌دهد.
    سناریو هایی که در استفاده Qt به جای HTML مفید تر است کدامند؟ همچنین بالعکس آن چطور است؟
    با رشد چشمگیر IoT و افزایش دستگاه های امبد که به خود کیوت می‌رسند. QML و Qt برای بیشترین استفاده از منابع محدود طراحی شده اند و بنابراین ممکن است انتخاب خوبی برای توسعه دهندگان دستگاههای هوشمند و به خصوص امبد باشد. از سوی دیگر HTML اهداف خود را بر روی وب به راحتی اجرا می‌کند که در سراسر سیستم عامل های دسکتاپ و موبایل است. همانطور که بسیاری از توسعه دهندگان HTML برای استفاده از آن با HTML آشنا هستند٬ اگر شما کسی هستید که برنامه نویسی ++C را نمی‌دانید می‌توانید از HTML استفاده کنید. با این حال Qt طیف گسترده ای از سیستم عامل ها را پشتیبانی می‌کند و از لحاظ پاسخدهی، زمان راه اندازی (زمان اجرای برنامه) و تجربه کاربری و رابط کاربری بسیار بهتر عمل می کند.
    آیا Qt فرصتی واقعی برای کنار گذاشتن HTML به عنوان زبان برنامه نویسی انتخاب کرده است؟
    در وبلاگ‌ها و انجمن‌ها بحث هایی در حال انجام است که آیا QML واقعا جایگزین HTML در وب خواهد شد یا خیر. از یک جنبه عملکرد مردم می‌گویند که می‌تواند این کار را انجام دهد٬ اما از دیدگاه علمی، برای تغییر آن نیاز خواهد بود تا غول هایی مانند گوگل جایگاه و روش‌های خود را نسبت به این موضوع تغییر دهند. به طور کلی HTML زبان بسیار محبوبی در صنعت وب محسوب می‌شود اما باتوجه به توسعه روز افزون پلتفرم‌های مختلف و مخصوصا موبایل‌ها و اینترنت اشیاء QML یک رقیب بسیار جدی طراحی و پیاده سازی UI و UX محسوب می‌شود که بسیار قدرتمند تر از HTML عمل می‌کند.
     
    نکته افزوده شده توسط (کامبیز اسدزاده)
    با توجه به اینکه صنعت وب با HTML و JavaScript ترکیب شده است باید در نظر داشته باشیم که QML از هر دو فناوری فوق پشتیبانی می‌کند. این به این معنی است که شما موقع استفاده از QML از یک زبانی اعلانی استفاده می‌کنید که بر پایه JavaScript است که علاوه بر قابلیت‌های جاوا اسکریپت می‌توانید از CSS و HTML نیز استفاده کرده و بک اند برنامه خود را تحت زبان قدرتمند ++C تعبیه کنید.
     
×
×
  • جدید...