Модификаторы вариантности параметров типа in и outЭто расширенная функция для решения очень конкретной проблемы, и ее следует использовать только в тех ситуациях, когда вы определили причину ее использования.Ковариантность и контравариантность — термины теории типов, описывающие взаимосвязь между двумя родовыми типами. Вот краткое описание этой концепции.Например, если у вас есть интерфейс, представляющий объект, который может иметь определенный член make:interface Producer<T> { make():…
Рассказываем, как безобидная строка JavaScript-кода привела к нарушению стабильности тестов продукта, а также о том, как можно избежать подобных ошибок.Для нашего статического анализатора мы поддерживаем довольно большое количество интеграций в различные инструменты, в том числе в IDE, чтобы разработчики могли без проблем пользоваться инструментом в процессе разработки. Одна из таких интеграций — расширение для Visual Studio Code, написанное на JavaScript и TypeScript.Примечание. О том, как пол…
Дождались! .NET 10 вот-вот выйдет, а значит, самое время запускать фейерверки и отмечать юбилей любимой платформы! Ну и, само собой, ознакомимся с улучшениями JIT, расширением стандартной библиотеки, новыми возможностями SDK и с другими нововведениями в этой статье..NET 10 сфокусирован на улучшении производительности, а также безопасности — в частности, криптография подверглась серьезной доработке. Это long-term support (LTS) релиз, а значит будет поддерживаться в течение трёх лет.Эта статья ра…
Введение: Боль и страдания от print() и стандартного loggingЕсли вы пишете на Python, скорее всего, ваша карьера разработчика начиналась с одной простой, но незаменимой команды — print(). Нужно проверить значение переменной? print(my_variable). Хотите убедиться, что функция вообще вызвалась? print("Я внутри функции!"). Этот метод прост, интуитивно понятен и кажется верным другом в мире отладки.Но дружба эта длится ровно до первого серьезного проекта. Внезапно оказывается, что ваш термин…
Привет! Меня зовут Кирилл Кузнецов, я представляю коммерческую команду SelectOS — серверной операционной системы от Selectel. Перед запуском продукта моя команда изучила мировой опыт наиболее успешных коммерческих Linux-дистрибутивов, и в этой статье я предлагаю посмотреть, как RedHat, SUSE и Canonical строили свой бизнес на основе OSS, то есть open-source-software. Мы разберемся, какие уроки можно извлечь из опыта крупнейших мировых вендоров, с поправкой на российский рынок, проанализируем биз…
Будучи творческим человеком и техногиком, я обожаю при первой возможности апгрейдить своё оборудование. Время от времени я мониторю маркетплейсы в поисках чего-то новенького и в этот раз я наткнулся на настоящий мультитул для Embedded-разработчика — контроллер I2C/SPI/UART/JTAG в одной коробочке и всё это всего за 1.000 рублей... Конечно я не смог пройти мимо этой штучки и в рамках сегодняшней статьи хочу рассказать что оно из себя представляет и как с ним работать. Жду вас под катом!❯ Что за у…
Привет, Хабр! Пришёл ноябрь, а это значит, что Хабр и ЭКОПСИ завершили очередное масштабное исследование и составили новый рейтинг IT-брендов работода��елей. Давайте вместе узнаем, как изменился рынок за 2025 год. Сперва немного наших рассуждений, а если не терпится посмотреть результаты, вот оглавление: Полный рейтингРейтинг по отраслям бизнесаРейтинг по численности айтишников в штатеПаспорт исследованияЗаключениеЕсли коротко, то IT-рынок штормит: компании перестраиваются, команды меняются, …
# Русский JavaScript — это не баг, это фича будущего. Представляю RJS Друзья, признайтесь честно: сколько раз вы матерились на `if (user.isAdmin)` потому что забыли, что `isAdmin` — это булево, а не строка из бэкенда? Сколько багов родилось из-за того, что `null == undefined` в JS, но `null === undefined` — нет? А теперь представьте: **код, который читается как документация, потому что написан на русском**. Да, я серьёзно. Встречайте **[RJS](https://github.com/nike-17/rjs)** — транслятор Ja…
Большинство ИИ-ассистентов работают в облаке. А я сделал локальный — прямо внутри мессенджера HalChat.Большинство современных ИИ-ассистентов работают в облаке, требуют подключения к серверам и не дают контроля над данными. Я решил исследовать, возможно ли встроить искусственный интеллект прямо в мессенджер, чтобы он работал локально прямо в браузере, офлайн и под управлением самого пользователя.Цель HalChatLocalAI - упростить взаимодействие человека с ИИ и встроить его в повседневную жизнь чере…