![](https://webcf.waybackmachine.org/web/20220924221442im_/https://habrastorage.org/getpro/habr/upload_files/d6b/94a/c31/d6b94ac313bb24111e47b24ee7ca3958.jpg)
В статье представлен код позволяющий отправлять транзакционные письма через сервис unione, делать HTTP запросы к REST апи, а так же отправлять обычные email по smtp используя общий класс отправитель различных сообщений.
Искусство создания компьютерных программ
В статье представлен код позволяющий отправлять транзакционные письма через сервис unione, делать HTTP запросы к REST апи, а так же отправлять обычные email по smtp используя общий класс отправитель различных сообщений.
Команда Rust рада сообщить о новой версии языка — 1.64.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если у вас есть предыдущая версия Rust, установленная через rustup
, то для обновления до версии 1.64.0 вам достаточно выполнить команду:
rustup update stable
Если у вас ещё нет rustup
, то можете установить его со страницы на нашем веб-сайте, а также ознакомиться с подробным описанием выпуска 1.64.0 на GitHub.
Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать beta (rustup default beta
) или nightly (rustup default nightly
) канал. Пожалуйста, сообщайте обо всех встреченных вами ошибках.
Каждый начинающий программист мечтает реализовать свой собственный проект. Не написать простенький код, по заданию преподавателя, а воплотить в жизнь свои идеи. Так и я, изучая C++ 3-4 месяца, решился попробовать разработать макет электронного журнала для преподавателей.
Различные источники утверждают, что последний Биткоин будет добыт в 2140 году и всего их будет 21.000.000, но нигде не сказано почему именно так, а не иначе? В этой статье я подробно раскрою ответ на этот вопрос.
Решил запрототипировать два представления в дополнение к стандартному Jaeger UI. Это построение карты сервисов по трейсу; просмотрщик логов без пиксельхантинга и разворачивания спанов. Для виджетов есть обертка в виде nbergont/qgv, а хочется сделать на QtQuick.
При написании HTML-страницы по методологии БЭМ («Блок, Элемент, Модификатор») БЭМ-сущности привязываются к узлам HTML-дерева. В предыдущих статьях я рассматривал, как можно выполнить в скрипте на языке PowerShell проверку правильности написания названий БЭМ-сущностей по отдельности с помощью регулярных выражений.
В этой статье рассмотрено, какие есть правила для совмещения нескольких имен БЭМ-сущностей на одном узле HTML-дерева и как соблюдение этих правил можно проверить в скрипте на языке PowerShell. Приведены иллюстрации фрагментов результатов работы скрипта в разных случаях, при обнаружении разных ошибок.
На основе полученного опыта и личных предпочтений, хотелось реализовать проект в минимально необходимой конфигурации, без излишеств и легко развертываемый на любом сервере с Debian. При этом без экзотики, на основе MQTT и прочая. Так как обычно приходится осуществлять поддержку своих разработок, хотелось понадежнее и попроще.
Эту идею реализовал в работе, связанной с "умными" очистителями воздуха для помещений.
Go-разработчики часто пишут свои собственные переменные или константы, а затем используют их в коде, который обращается к стандартной библиотеке. Поэтому наш Go-разработчик Саша Мелентьев создал линтер usestdlibvars, который определяет, можно ли повторно использовать переменные или константы из стандартной библиотеки, вместо того чтобы создавать собственные.
Штош. В этой статье я научу вас делать кроссплатформенное приложение генератор паролей с графическим интерфейсом. Мы будем использовать язык Python и библиотеку PySide6 - привязку к инструментарию фреймворка Qt.
Приложение умеет генерировать пароли, скрывать и копировать их в буфер обмена. Длина задается с помощью слайдера и счетчика. Пул допустимых символов меняется кнопками. Сила пароля рассчитывается по информационной энтропии.
В статье я постарался затронуть все моменты создания и сборки приложения. Ознакомиться с проектом можно на GitHub.
Японцы уже в 2018 году научили немецкий GraphHopper строить маршруты по дорогам хранящимся в PostgreSQL.
Как кастомизировать источник данных, и сохранять новые дороги в таблицу правильно?
Замечательный файловый менеджер Dolphin всем хорош. И две панели, и разнообразные контекстные меню ускоряющие обработку всевозможных команд и заданий. Но что делать если нужно простенько и быстро собрать несколько одностраничных pdf-файлов?
Пришел как-то на новый проект, а там Event sourcing+CQRS. Посмотре, как эта архитектура устроена тут и тут и очень вдохновился. На проекте были джава и спрингом, но архитектура настраивалась полностью вручную.
Как мы знаем, аннотации это хорошо. Давайте попробуем собрать handler’ы и applier’ы с помощью кастомных аннотаций.
Если вы хотите сделать так, чтобы ваши пользователи могли напрямую попасть в определенную часть внутри вашего приложения, например, когда вы отображаете предложение оформить подписку, выводите просьбу обновить свой профиль или переносите пользователя в корзину в приложении для покупок, диплинки (deep links или глубинные ссылки) могут помочь вам с этим.
Чтобы получить доступ к определенному контенту в вашем приложении, пользователи могут переходить по этим ссылкам как извне, так и внутри вашего приложения. Их можно использовать на веб-страницах, уведомлениях, в качестве ярлыков или навигации между модулями в вашем приложении.
В этой части нашего руководства мы более подробно рассмотрим различные типы диплинков. Мы разберемся, как их настроить, протестировать и создать с их помощью лучший юзер экспириенс. Чтобы узнать больше о том, что вы можете делать с помощью диплинков, ознакомьтесь с первой частью этой серии статей.
Пришло время начать использовать современный язык программирования
Я хочу рассказать вам о новом языке программирования под названием Kotlin и о том, почему вы должны рассмотреть его для своего следующего проекта. Раньше я предпочитал Java, но за прошедший год обнаружил, что кодирую на Kotlin при любой возможности, и сейчас я действительно не могу придумать ситуацию, в которой Java был бы лучшим выбором.
Создаём объём при помощи света и теней.
Игра двухмерная, разрабатывается на Game Maker Studio 2 и во время работы я столкнулся с множеством задач а-ля «должно быть красиво». Где-то пришлось придумать свой велосипед, где-то повезло наткнуться на описание решения похожих задач.
В свое время меня очень вдохновила статья про рендер в Graveyard Keeper - это очень классный материал для разработчика 2D игр, в сети подобного довольно мало. Поэтому надеюсь, что моя статья тоже послужит для кого-то источником вдохновения.
Продолжаем серию статей, посвященных разным прикладным концептуальным решениям, которые могут существенно "прокачать" производительность вашего Node.js-приложения.
В прошлой статье мы рассмотрели реализацию эффективной очереди на основе "эластичного" кольцевого буфера, а в этой попробуем разобраться с особенностями использования модуля Worker threads в Node.js - какие проблемы внедрения многопоточности будут нас ждать при попытках сделать код более производительным, и узнаем, как их можно обойти, применяя типовые концепты.
Начнем с достаточно типовой задачи: мы получаем некоторые сообщения, и нам их надо как-то обработать. В качестве тестового примера сгенерируем эти сообщения самостоятельно, и посмотрим, за какое минимальное время мы сможем вычислить SHA-256-хэш для каждого из них.
Бывает что мы хотим добавить новую функциональность в сервис и всегда хочется это сделать быстро. И иногда приходит мысль написать рабочий вариант, а после этого исправлять баги. Может показаться, что если мы разрабатываем новую функциональность, мы не можем затронуть существующий функционал - у нас же http или grpc фреймворк ловит все паники и обрабатывает их. Но это не всегда так и в этой статье я хочу рассказать о некоторых ошибках, за которыми нужно всегда внимательно смотреть, потому что они могут привести к падению сервиса.
Привет, Хабр! Поиграем в судоку?