Социальные сети Рунета
Вторник, 26 октября 2021

[Перевод] Модули, монолиты и микросервисы Прим. перев.: системный архитектор Avery Pennarun, создавший VPN-решение Tailscale на базе WireGuard, размышляет об отличиях монолитов с модулями от микросервисов. Он рассказывает об эволюции подхода к модульности вообще и о том, почему изоляция до сих пор далека от совершен...

[Перевод] Антипаттерны деплоя в Kubernetes. Часть 2 Перед вами вторая часть руководства по антипаттернам деплоя в Kubernetes.В этой статье не просто перечислены известные антипаттерны деплоя в Kubernetes, но и предлагаются соответствующие решения. Вы можете проверить ваши процессы развёртывания и исправить существующие пробле...

[Перевод] Микросервисы со Spring Boot. Часть 5. Использование сервера имен Eureka В этой заключительной части нашей серии архитектур микросервисов мы научимся включать сервер имен Eureka и позволять микросервисам взаимодействовать с ним. Это статья входит в серию статей «Микросервисы со Spring Boot»: Часть 1. Начало работы с архитектурой микросервисов ...

[Перевод] Микросервисы со Spring Boot. Часть 4. Использование Ribbon для балансировки нагрузки Это часть 4 серии о микросервисных архитектурах, в которой мы сосредоточимся на использовании Ribbon для балансировки нагрузки. Это статья входит в серию статей «Микросервисы со Spring Boot»: Часть 1. Начало работы с архитектурой микросервисов Часть 2. Создание микросерви...

Микросервисы на монолите Всем привет! Скажу сразу, эта статья не про очередное переписывание монолита на микросервисы, а о применении микросервисных практик в рамках существующего проекта с использованием интересных, как мне кажется, подходов. Наверное, уже нет смысла объяснять, почему многие п...

Путь IVI от монолита к микросервисам В этой статье мы не откроем ничего нового об устройстве монолита и микросервисной архитектуры. Про это сказано немало слов, написано ещё больше. Мы расскажем о том, как через это прошла наша компания и какие преимущества и недостатки микросервисной архитектуры мы для себя об...

[Перевод] Антипаттерны деплоя в Kubernetes. Часть 3 Это третья и заключительная часть руководства по антипаттернам деплоя в Kubernetes.Здесь не просто перечислены известные антипаттерны деплоя в Kubernetes, но и предлагаются соответствующие решения. Вы можете проверить ваши процессы развёртывания и исправить существующие...

Чему можно научиться у фикуса-душителя? Паттерн Strangler При рефакторинге монолита на микросервисы часто мы уже обладаем работающей системой. У которой миллионы, тысячи активных пользователей. Возможно их 20, но они очень важные и очень активные. Как в таком случае отрефакторить все, чтобы внешне никто ничего не заметил? И как в э...

[Перевод] Антипаттерн “Репозиторий” в Android Перевод статьи подготовлен в преддверии старта курса «Android Developer. Professional». Официальное руководство по архитектуре приложений Android рекомендует использовать классы репозитории (Repository) для «предоставления чистого API, чтобы остальная часть приложения мог...

[Перевод] Почему в InVision затаскивают микросервисы обратно в монолит Прим. перев.: автор этой статьи — Ben Nadel, сооснователь и главный инженер InVision App Inc. Миссию своей команды, поддерживающей серверную инфраструктуру компании, он сам характеризует как «advocate for the users», т.к. её главная цель — гарантировать пользователям InVisio...

О мифологии миграции монолита в облака Около десяти лет назад микросервисы получили первое признание. С тех пор масса фирм воспользовалась услугами облачных провайдеров и перенесла свои сервисы к ним. А некоторые из них даже успели разочароваться в облачных технологиях и вернулись к традиционной схеме монолита (и...

Сказ об опасном std::enable_shared_from_this, или антипаттерн «Зомби» — разбор полётов В настоящей статье приводится разбор вариантов устранения антипаттерна «Зомби», описанного в первой части: Сказ об опасном std::enable_shared_from_this, или антипаттерн «Зомби». Читать дальше →

[Из песочницы] Микросервисы или модульные системы? Как заказчику выбрать подход к IT-архитектуре продукта Микросервисная и модульная системы — это типы архитектуры IT-решений. При работе с модулями мы дорабатываем коробочную версию существующего IT-продукта. Под коробочной версией имеем в виду монолит, готовую систему с ядром, которая поставляется всем заказчикам одинаково, «ка...

Унифицируй это: как Lamoda делает единообразными свои Go сервисы Мы широко используем микросервисную архитектуру, хоть и не считаем ее панацеей, и чуть больше 2 лет назад начали переходить на язык Go. Он сравнительно прост и, на мой взгляд, очень хорошо подходит для создания простых, небольших и быстрых микросервисов. Эта простота имеет и...

Микросервисы глазами аналитика Расскажу про системы с микросервисной архитектурой (MSA). Как они устроены, как я их анализировала, какие увидела проблемы и преимущества.Статья не раскрывает лучшие практики использования микросервисов и не разоблачает их излишнюю популярность. Основная цель - описать техно...

Python микросервисы с Kafka без боли В этой статье я бы хотел поделиться способом написания асинхронных микросервисов на Python, в основе которых библиотека Faust. А в качестве брокера сообщений Kafka. Ну и немного мониторинга с Prometheus и Grafana. Читать далее

История архитектуры Dodo IS: ранний монолит Или каждая несчастная компания с монолитом несчастлива по-своему.Разработка системы Dodo IS началась сразу же, как и бизнес Додо Пиццы — в 2011 году. В основе лежала идея полной и тотальной оцифровки бизнес-процессов, причем своими силами, что еще тогда в 2011 году вызывало ...

Микросервисы — не способ масштабироваться В большом количестве статей, источников микросервисы, помимо всего прочего, представляются как способ построить масштабируемое решение. Рассмотрим на примерах, почему это не так. А так же попытаемся внести свою лепту в извечный вопрос: "Что лучше: монолит или микросервис?" Ч...

[Перевод] Антипаттерны событийно-ориентированной архитектуры И снова здравствуйте! В преддверии старта курса «Архитектор ПО» подготовили перевод еще одного интересного материала. Последние несколько лет наблюдается рост популярности микросервисной архитектуры. Есть много ресурсов, которые учат правильно ее реализовывать, однако дост...

Отказоустойчивая работа с Redis Эта статья — переработанная версия доклада Отказоустойчивая работа с Redis с прошедшего 17 октября 2020 митапа PHP-разработчиков Йошкар-Олы.Мы поговорим о подводных камнях использования Redis в системе, где важна отказоустойчивость — на примере хранения сессий в условном веб...

Микросервисы vs. Монолит В начале ноября на ютуб-канале Яндекс.Практикума прошли дебаты «Микросервисы, Монолит и Зомби». Ведущие дебатов — наставник курса «Мидл Python-разработчик» Руслан Юлдашев и техлид курса Савва Демиденко — разобрали архитектуры двух систем, прошлись по реальным задачам и ошибк...

[Перевод] Сравнение подходов к реализации распределенных транзакций для микросервисов Как архитектор-консультант в Red Hat, я имел возможность поработать над множеством проектов для наших клиентов. У каждого из них есть свои особенности, которые, однако, имеют некоторые общие черты. Большинство клиентов хотят знать, как скоординировать запись в несколько сист...

Полное визуальное руководство-шпаргалка по Flexbox и Grid + туториал Доброго времени суток, друзья! Представляю вашему вниманию полное визуальное руководство-шпаргалку по всем свойствам CSS-модулей Flexbox и Grid. Основные источники: A Complete Guide to Flexbox, A Complete Guide to Grid. В конце статьи вас ждет небольшой туториал по созд...

Шпаргалка для разработчика: создаём безопасное веб-приложение Эта статья — своего рода ‘cheat sheet’ для веб-разработчика. Она даёт представление о «программе-минимум» для создания веб-приложения, защищённого от самых распространённых угроз. Читать далее

Есть ли перспективы у монолитных web-приложений? Что лучше для web-приложений - монолит или микросервисы? Многие ответят на этот вопрос, что, мол, все инструменты хороши, если их использовать по назначению. В таком случае у меня, как у человека, в силу своего возраста, довольно консервативного и неохотно воспринимающего не...

Mikrotik и VLAN Сразу оговорюсь, что данная статья про Router OS, а не Switch OS. На мой взгляд, работа с VLAN в Mikrotik освещена хуже всего. Да, конечно есть набор статей на эту тему, но лично я когда их все читал... У меня не складывалось глубокого понимания, как именно это всё работает...

Выбор архитектурного стиля (часть 2) Привет, хабр. Сегодня я продолжаю серию публикаций, которую написал специально к старту нового потока курса «Software Architect». Введение Выбор архитектурного стиля является одним из основополагающих технических решений при построении информационной системы. В этой серии...

[Перевод] Микросервисы на Java: практическое руководство Вы можете использовать это руководство, чтобы понять что такое Java микросервисы, как вы их разрабатывать и создавать. А также получить обзор библиотек для разработки Java микросервисов. Примечание: Статья ~ 7000 слов, вероятно, не стоит читать ее на мобильном устройстве. До...

О небольших, но бесяще важных различиях текстовых редакторов Привет! Я из команды «Р7-Офис», и я немного гик текстового редактирования. Например, в MS Word, равно как и в нашем редакторе Р7, есть двойное зачёркивание, а вот в других русских офисах такой фичи «из коробки» нет. На самом деле это очень русская фишка: у нас есть госкомпан...

Как мы решали проблему трех монолитов В стратегиях большинства компаний все чаще упоминается цифровизация: одни компании пытаются внедрять современные технологии (например, Big Data, IoT, AI, blockchain), другие — повсеместно автоматизируют свои внутренние процессы. Несмотря на растущие усилия и инвестиции во вн...

Разложение монолита: Декомпозиция БД (часть 1) Эта статья является конспектом книги «От монолита к микросервисам». Материал статьи посвящен декомпозиции БД во время процесса разложения монолита на микросервисы.В предыдущей статье рассмотрели способы извлечения функциональности из монолита в микрослужбы. Однако, что делат...

Как перестать беспокоиться и начать жить без монолита Все мы любим истории. Нам нравится, сидя у костра, рассказывать о своих былых победах, сражениях или просто о своем опыте работы. Сегодня как раз такой день. И пусть вы сейчас не у костра, но зато у нас есть история для вас. История о том, как мы начали работать с хранилищ...

Обзор CMS DRUPAL 9 В этой статье я решил поговорить о создании сайтов на базе CMS Drupal. Работаю я с этой системой давно и считаю ее одной из лучших среди существующих «движков» сайтов. За исключением случаев, когда действительно необходимы какие-то узкоспециализированные решения эту CMS я р...

[Перевод] Антипаттерны деплоя в Kubernetes. Часть 1 В предыдущей статье 10 Docker anti-patterns мы рассказали о популярных ошибках при создании образов контейнеров. Однако создание образов для вашего приложения - это только половина дела. Вам нужен способ развёртывания этих контейнеров в производственной среде. Использование ...

V8 в бэкенде С++: от одного JS-скрипта до фреймворка онлайн-вычислений В этой статье я расскажу о долгом путешествии, в котором простая идея выноса в JavaScript часто меняющихся фрагментов алгоритма постепенно выросла в универсальный фреймворк, позволяющий быстро создавать микросервисы и так же быстро их развивать. Сейчас он служит основой для ...

Микросервисы: от CRUD до Native Image. Часть вторая Сегодня я продолжу рассуждать о том, как мы пишем микросервисы. В прошлый раз упор был на теорию: нужно было вспомнить, как код писался раньше, понять сущность архитектуры и связи между компонентами. Эта половина статьи сосредоточится на опыте нашей команды BellSoft. По...

Где логика?! История тестирования одного микросервиса Эта статья — расшифровка доклада Дениса Кудряшова, QA-инженера Leroy Merlin, с конференции QA Meeting Point 2020. Денис рассказал, как столкнулся со сложной логикой, реализованной в сервисе, применил подход Control Flow Testing, и что из этого вышло. Из текста вы узнаете, мо...

[Перевод] Катастрофы, с которыми я столкнулся в мире микросервисов Прим. перев.: автор этой статьи — engineering manager из Испании, работающий в цифровой торговой площадке Adevinta, представленной в 16 странах, — делится своими наблюдениями о частых проблемах, которые он встречал у создателей микросервисов. Об этих вызовах стоит знать зара...

Разбиваем монолит на микросервисы В настоящее время, задача разбивки монолита на микросервисы приобрела поистине огромную популярность в бизнес среде. Как будто все корпорации России вдруг осознали все перспективы “новой” архитектуры, получили при этом пинок от начальства и бросились брать под козырек. Ретив...

Как создать микросервис на PaaS Если вам интересно, как можно автоматизировать повседневные задачи разработчиков и построить удобную систему оркестрирования зависимостей ваших сервисов, загляните под кат. Об этом в своем докладе на конференции Golang Live 2020 рассказал разработчик продуктовой команды «Ави...

Отправка доменных событий в модульном монолите Всем привет! В этой статье хочу поделиться опытом построения системы доменных событий (domain events) в нашем модульном монолите и микросервисах, рассказать о том, как мы гарантируем их доставку, следим за консистентностью в рамках транзакций, используя transactional outbox,...

Разложение монолита Эта статья является конспектом книги «От монолита к микросервисам». Материал статьи посвящен шаблонам разложения монолита.В этой статье рассмотрим различные шаблоны миграции, а также советы для внедрения архитектуры, основанной на микрослужбах. Однако, чтобы внедрение р...

Как Контур балансирует нагрузку в микросервисах Контур — большой. У Контура очень много продуктов и большинство состоит из огромного множества микросервисов, количество которых может измеряться сотнями. К примеру запрос на главную страницу продукта может вылиться разветвленное дерево, глубина которого иногда достигает сем...

Как быть, когда все советуют растащить проект на микросервисы. А ты не готов Монолит часто обсуждают в негативном ключе. Но сразу перейти на микросервисы получится не у всех — и вот уже не первая команда и компания делятся опытом построения «переходного звена»: модульной архитектуры. Давайте в деталях посмотрим, как делаются такие проекты. Читать д...

[Перевод] Вот как Амазон измеряет свою эффективность "Я ждал такую книгу, как Working Backwards, очень и очень долго." Бизнес литературу полезно читать, чтобы не забывать про контекст, цели и человеческую составляющую сервисов. Помним, что конечные цели должны быть измеримы и контролируемы. Как раз об этом поговорим в статье С...

Маршрутизация IPv6 через WireGuard с поддержкой SLAAC Вдохновившись аргументами из статьи «IPv6 — прекрасный мир, стоящий скорого перехода на него», мне стало катастрофически не хватать IPv6. Конечная цель: обеспечить каждое из своих устройства уникальным публичным псевдостатическим IPv6.Для дома решение довольно простое: при н...

Улучшаем архитектуру: Инверсия и внедрение зависимостей, наследование и композиция Всем привет. Очень часто, работая со старым (а иногда и не очень) кодом, или пытаясь применить какую-то библиотеку, сталкиваешься с ограничениями в применении. Зачастую проблемы бы не было, будь код архитектурно грамотен. Есть множество архитектурных правил и паттернов, кото...

[Перевод] Руководство Google по стилю в C++. Часть 2 Часть 1. Вступление Часть 2. Заголовочные файлы … Все мы при написании кода пользуемся правилами оформления кода. Иногда изобретаются свои правила, в других случаях используются готовые стайлгайды. Хотя все C++ программисты читают на английском легче, чем на родном, приятн...

Как мы распилили монолит. Часть 4. И как Angular между приложениями пошарили В первой, второй и третьей частях мои коллеги рассказали, как и почему мы распиливали монолит. Если коротко, то мы создали решение, которое позволило в рамках одной открытой страницы браузера запускать несколько независимых Angular-приложений, шарить между ними данные, ...

У Вас проблемы с legacy — значит, Вам повезло! Распил монолита на PHP Меня часто просят рассказать о работе с legacy-монолитами. Про микросервисную архитектуру и переход на нее говорят много, но редко упоминают о том, что проекты приходят ней после многих лет роста с монолитным приложением. Учебники по решению проблем не пишут. Чтобы поменять ...

[Перевод] Полное визуальное руководство/шпаргалка по CSS Grid Сегодня мы с вами рассмотрим свойства CSS Grid (далее также — Грид), позволяющие создавать адаптивные или отзывчивые макеты веб-страниц. Я постараюсь кратко, но полно объяснить, как работает каждое свойство. Что такое CSS Grid? Грид — это макет для сайта (его схема, проект...

[Перевод] Пожалуйста, прекратите использовать антипаттерн UPSERT (SQL Server) Я думаю, что все уже знают мое мнение о MERGE и почему я держусь от него подальше. Но вот еще один антипаттерн, который я постоянно встречаю, когда требуется выполнить UPSERT (UPdate inSERT — обновить строку, если она существует, и вставить, если ее нет): Читать далее

Моделирование микросервисов с помощью Event storming Event storming — метод, который смещает акцент у событий с технического на организационный и бизнес уровни и помогает создать устойчивую модульную систему. Он нередко используется в контексте моделирования микросервисов. Но как применить его на практике?При создании системы ...

[Перевод] Исследование CSS-свойства flex Вам когда-нибудь было интересно узнать о том, как работает сокращённое CSS-свойство flex? Оно позволяет задавать значения свойств flex-grow, flex-shrink и flex-basis. Я обратил внимание на то, что данное свойство чаще всего используют в виде flex: 1, что позволяет flex-элеме...

Как ускорить работу микросервиса с помощью многопоточности, асинхронности и кэша: пошаговая инструкция To Destination by BisBiswas Микросервисная архитектура звучит неплохо само по себе, но еще лучше — быстрый микросервис, который эффективно использует ресурсы сервера. Я покажу, как последовательно применять к простому без затей микросервису методы ускорения его работы, поп...

Запросы в PostgreSQL: 4. Индексное сканирование Я уже рассказал об этапах выполнения запросов и о статистике и перешел к способам доступа к данным. В прошлый раз темой статьи было последовательное сканирование, а сегодня поговорим о сканировании индексном.Прежде чем погружаться в детали индексного доступа, надо было бы ра...

[Из песочницы] Микросервисы: шаг назад На дворе 2020 год, эпоха технологических стартапов и сурового энтерпрайза. На первый взгляд, ничего общего у них нет, кроме моды на построение IT систем в стиле микросервисов. Ранее для энтерпрайза считалось стандартом использовать монолитные системы. Теперь в листингах вака...

История Учи.ру: от мини-монолитов до микросервисной архитектуры Добрая четверть моего рабочего времени за последний год ушла на обновление архитектуры Учи.ру. С ростом продуктов и количества пользователей увеличился и клубок зависимостей в монолите. Выделяя из него части и набивая на этом пути шишки, я не раз задумывался о том, как мы к ...

[Из песочницы] Микросервисы — комбинаторный взрыв версий Привет, Хабр! Представляю вашему вниманию авторский перевод статьи Microservices – Combinatorial Explosion of Versions. Во времена когда мир IT постепенно переходит на микросервисы и инструменты вроде Kubernetes, все более заметной становится лишь одна проблема. Эта проблем...

Kubernetes в духе пиратства: наш путь к микросервисам и готовый шаблон для внедрения Привет, я Юрий Буйлов, занимаюсь разработкой в CarPrice, а также внедряю практики DevOps, микросервисы и Kubernetes. Хочу рассказать про Kubernetes в духе пиратства — только не про управление большим красивым кораблем на парусах, а, скорее, про флот маленьких неприглядных ...

[Перевод] Макропроблема микросервисов Всего за 20 лет разработка ПО перешла от архитектурных монолитов с единой базой данных и централизованным состоянием к микросервисам, где всё распределено по многочисленным контейнерам, серверам, ЦОДам и даже континентам. Распределённость упрощает масштабирование, но привно...

И снова капча или nginx тоже умеет вышивать Введение Зашел тут на хабр и нашел в черновиках не опубликованную статью про капчу, хотел было её оформить и опубликовать, но решил написать новую статью немного поменяв механизм и используемый инструментарий. Старую статью по моему мнению будет полезно почитать, хуже не буд...

[Перевод] Docker Compose: упрощение работы с использованием Makefile Каждые несколько лет в индустрии разработки ПО происходит смена парадигмы. Одним из таких явлений можно признать рост интереса к концепции микросервисов. Хотя микросервисы — это технология не самая новая, лишь в последнее время её популярность буквально взлетела до небес. Б...

CI/CD монолита Авито: от коммита до моржа Всем привет, меня зовут Александр Данковцев, я lead engineer команды Antimonolith. В этой статье я расскажу, как построен CI/CD монолита Авито. Речь пойдёт про нашу архитектуру стейджинга, pre-receive хуки, то, что из себя представляет сборка и деплой, как устроен прогон авт...

Динамическое хеджирование опционов В комментариях к нашему видео про опционы достаточно быстро возник вопрос "За чей счёт этот банкет?".Если мы говорим про биржевой рынок, то можно сказать что в каждой относительно удачной покупке есть второй участник сделки, который совершил относительно неудачную продажу. ...

Twitter рассматривает новые возможности монетизации Руководство соцсети Twitter рассматривает возможность снижения зависимости собственных доходов от размещения рекламы за счет перехода к платному контенту. Планируется, что пользователи, оформляющие подписку, получат доступ к уникальным материалам и расширенному функционалу.

[Перевод] Разбираемся с ChainMap из коллекций Python Работая с несколькими словарями, иногда нужно сгруппировать их и управлять ими как единым словарём. В других ситуациях у вас есть словари, представляющие различные области видимости, контексты и, чтобы получить данные в определённом порядке или с определённым приоритетом, ну...

Протокол, который невозможен: как на самом деле в ДЭГ обеспечивают тайну голосования В предыдущей публикации мы сравнивали российские системы ДЭГ (дистанционного электронного голосования) с эстонскими — и мгновенно залезли в такие технические детали, как слепая подпись, ключевые пары и так далее, то есть, по сути, в архитектуру систем ДЭГ.Впрочем, залезли мы...

[Перевод] Руководство по моему стилю тестирования на Python В этой статье я попыталась собрать несколько своих техник тестирования на Python. Не стоит воспринимать их как догму, поскольку, думаю, со временем я обновлю свои практики. Читать далее

Автоматизация работы в SAP с помощью роботов Решения SAP на сегодня являются самыми распространенными ERP-системами в мире. Они умеют интегрировать между собой разные бизнес-процессы, упрощают работу отраслевых специалистов за счет огромного количества шаблонных решений. Но освоение сотрудниками систем SAP, разворачива...

Кто есть кто в мировой микроэлектронике Типичная новость про электронику начала 2020 года: «Intel, вероятно, не будет размещать заказ на производство у TSMC, но рассматривает возможность сотрудничества с GlobalFoundries». Кто такие Intel — всем понятно, но что за GlobalFoundries и TSMC? Когда деревья были большими...

Модульный PHP монолит: рецепт приготовления Статья написана по мотивам моего доклада на митапе. В нем я рассказываю историю того, как мы взяли и не распилили монолит на микросервисы, и что сделали вместо этого.На тот момент наша команда работала над приложением, начало которому было положено еще в 2009 году не искушен...

Развитие DATA VAULT и переход к BUSINESS DATA VAULT В предыдущей статье я рассказал об основах DATA VAULT, описал основные элементы DATA VAULT и их назначение. На этом нельзя считать тему DATA VAULT исчерпанной, необходимо поговорить о следующих ступенях эволюции DATA VAULT. И в этой статье я сконцентрируюсь на развитии DATA...

Автотесты на языке разметки или как мы в Lamoda тестируем микросервисы Всем привет! Меня зовут Кирилл Поляков, я QA-инженер в компании Lamoda. Мы тестируем бекэнд большой e-commerce платформы. В этой статье я расскажу, как мы пришли к автотестам на языке разметки для тестирования микросервисов и делаем это с помощью инструмента собственной разр...

Новая работа vs Карантин Менять работу всегда волнительно, но каково выходить на новое место во время пандемии? Герои этой статьи — новички DINS, которые присоединились к команде в период самоизоляции. Они рассказывают о своих опасениях, удаленном онбординге и делятся мнением по поводу перехода на ...

Создаем ячейки в iOS В этой статье мы поговорим про систему ячеек в iOS. Обсудим, какие ячейки бывают в iOS, посмотрим на ячейки в дизайн-системе hh.ru и их реализацию в коде и попробуем собрать свою ячейку. Читать далее

Перестроились в модульный монолит, а не в микросервисы Относительно недавно мы начали строить качественно новую версию платформы "Юнидата", в которой изменилось очень многое, включая архитектуру, технологии, подход. Даже основная идея продукта приросла новыми деталями.Нам кажется, что здорово делиться опытом подобных изменений, ...

Антипаттерны ретроспективы в Agile-команде. Часть 1 Недавно я подсчитала, что за несколько лет работы в роли Скрам Мастера я провела более 100 ретроспектив в Agile-командах. О важности ретроспективы и том, как она отражает ситуацию в команде и влияет на ее развитие, хочу поговорить в этой статье. Читать дальше →

Адаптивная балансировка нагрузки или как повысить надёжность микросервиса Привет, меня зовут Геннадий, я работаю в Ozon, занимаюсь разработкой backend-сервисов. Избыточностью компонентов, кластеризацией или балансировкой уже никого не удивишь в наши дни. Это очень важные и нужные механизмы. Но так ли они хороши? На сколько они защищают нас от возм...

CucumberTalks: избегаем антипаттернов и пишем выразительные сценарии Фреймворк Cucumber используют как часть bdd-подхода к разработке, так и как отдельный инструмент для автотестов. 40+ млн скачиваний обеспечили фреймворку богатый опыт использования, но актуализировали поверхностное отношение к этому инструменту. Разбираем популярные огуреч...

[Перевод] Что нового в C# 9.0 В преддверии старта нового потока курса «C#-разработчик» представляем вашему вниманию обзор нововведений. Среди них — новый метод доступа к свойству — init, не позволяющий изменять свойства после инициализации, with-выражения для изменения свойств объекта прямо здесь и сейча...

[Из песочницы] Ещё несколько доводов в пользу того, почему водяное охлаждение не нужно вашему ПК Привет, Хабр! Представляю вашему вниманию перевод статьи из журнала APC. Перед тем как вы погрузитесь в изучение особенностей СВО, позвольте мне попытаться отговорить вас от этой затеи или, быть может, заставить ещё больше восхититься ею. Давайте поговорим об одном дисси...

[Перевод] Бессерверная архитектура или микросервисы — как выглядит будущее вычислительных технологий для бизнеса? Бессерверные вычисления (или serverless-технологии, как их иногда называют) — это перспективная технологическая модель облачных вычислений, появившаяся на горизонте прикладной разработки и архитектуры в последние годы. Именно благодаря стремлению воспользоваться огромным пот...

Микросервисы создают не микропроблемы? Тогда ждём на интенсив по service mesh Все мы знаем про микросервисы и проблемы, возникающие между этими сервисами. Укрепился за последние годы и один из подходов к решению проблем – service mesh.Слёрм проводит второй интенсив по service mesh, на котором спикеры помогут понять необходимость внедрения и подготовит...

[Перевод] Темная сторона DateTime.Now DateTime.Now — одно из наиболее часто используемых свойств в .NET Framework. Несмотря на то, что это свойство предназначено для определенных целей, из-за недостатка понимания и сноровки многие .NET-разработчики используют его при неправильных обстоятельствах, когда следует и...

Svelte: знакомимся с Действиями Недавно на Хабре появилась статья от @sanReal, где Александр рассказал о том, каким приёмам и каким возможностям Svelte он научился на собственном опыте. Я был немного удивлён не увидев в его списке упоминания одного из самых мощных инструментов фреймворка — Действий. К тому...

Внешняя алгебра, которую мы заслужили. Часть 1 — симплексы и границы В данной статье мы расскажем о том, что такое внешняя алгебра, и для чего она нужна. Удивительно, но на Хабре почти нет статей о внешней алгебре при том, что ее прикладная ценность ничуть не меньше, например, реляционной алгебры.Наше описание отличается от традиционного изло...

Вы часто используете null? А он у нас в спецификации В нынешнее время для большинства разработчиков стали очевидными минусы использования null как возвращаемых типов или передачи их как аргумента.Младшие разработчики даже если не понимают, то обычно следуют "чистому коду" (прочитав книжку Роберта Мартина). Поэтому код с возмож...

[Перевод] 6 мифов об искусственном интеллекте. Проверим  «Искусственный интеллект (ИИ) автоматизирует все вокруг и оставит людей без работы», «ИИ – это технология из области научной фантастики», «Роботы захватят мир»… Хайп вокруг ИИ породил множество мифов в ведущих СМИ, на уровне руководства компаний, в различных организаци...

Есть ли жизнь после проводов: как новый стандарт Wi-Fi меняет стандарты бизнеса Каждый раз выход нового стандарта Wi-Fi порождает вопросы, стоит ли игра свеч. Пора ли обновлять уже существующую сеть? Почему нельзя спокойно продолжать эксплуатировать роутер Wi-Fi 5 или даже предыдущих поколений? Мы же уже цифровизируемся как можем, куда торопиться? Сегод...

Сага о типизации и тайпчекинге для JavaScript Привет! Хочу поделиться своими мыслями по, казалось бы, простой теме — типизации. В частности, поговорить о тайпчекинге в JavaScript. Часто люди воспринимают типизацию как эдакую серебряную пулю, которая защищает от всех проблем. Но это не так, часто ожидания от типизации н...

Антипаттерны DevOps собеседования Приветствую вас всех, мои дорогие читатели! Сегодня я хочу поделиться своими мыслями о давно наболевшей теме, и возможно, обсудить ее в комментариях. Достаточно часто мне попадаются статьи по плохим практикам собеседования на должность программиста, которые на мой взгляд до...

[Перевод] Создание масштабируемой и отказоустойчивой архитектуры с помощью динамических микросервисов И снова здравствуйте. Как вы знаете, в марте OTUS запускает абсолютно новый курс «Архитектура и шаблоны проектирования». В преддверии старта курса перевели для вас большой материал про Создание масштабируемой и отказоустойчивой архитектуры с помощью динамических микросервисо...

[Перевод] Аутентификация REST API с помощью Spring Security и MongoDB Всем привет! Уходя на выходные делимся с вами статьей, которая была переведена в преддверии старта курса «Разработчик на Spring Framework». В прошлых статьях мы создавали RESTful веб-сервис, теперь же мы поговорим о безопасности Вступление В предыдущем посте мы рассмотр...

[Перевод] Создание собственной Headless CMS и интеграция с блогом Быть новичком — значит исследовать новые горизонты программирования, шагая в неизвестность, надеясь что где-то там будет лучше. Думаю что вы согласитесь, зачастую достаточно увлекательно начинать работу над проектом с новой технологией. Проблемы, с которыми вы сталкиваетесь...

[Перевод] Go: распространенные антипаттерны Программирование — это искусство. Мастера своего дела, создающие потрясающие работы, могут ими гордиться. То же самое относится и к программистам, которые пишут код. Чтобы достичь вершин мастерства, творцы постоянно ищут новые подходы к работе и новые инструменты. Так пост...

Ожидания vs реальность: 4 мифа о запуске маркетинга на рынке США Вот уже почти пять лет я занимаюсь маркетингом на рынке США, два из них развиваю собственный SaaS-стартап. За это время я, с одной стороны, протестировал множество инструментов продвижения на рынке США, а с другой — в рамках работы в своем агентстве пообщался с десятками осн...

RBK.money выпустила первый в мире open-source платежный процессинг — творим будущее вместе Привет! Если вы читали наши предыдущие посты (читали же?), то точно помните, что мы в RBK.money очень сильно за опенсорс. Настолько, что выложили в открытый доступ наш антифрод в виде открытых исходников под лицензией Apache 2.0. Как вы понимаете, нам понравилось. Одного а...

[Перевод] Практический взгляд на хранение в Kafka Kafka повсюду. Где есть микросервисы и распределенные вычисления, а они сейчас популярны, там почти наверняка есть и Kafka. В статье я попытаюсь объяснить, как в Kafka работает механизм хранения. Читать дальше →

[Перевод] Transformer в картинках В прошлой статье мы рассматривали механизм внимания (attention) – чрезвычайно распространенный метод в современных моделях глубокого обучения, позволяющий улучшить показатели эффективности приложений нейронного машинного перевода. В данной статье мы рассмотрим Трансформер (T...

Как снизить стоимость владения SIEM-системой и зачем нужен Central Log Management (CLM) Не так давно, Splunk добавил ещё одну модель лицензирования — лицензирование на основе инфраструктуры (теперь их три). Они считают количество ядер CPU под серверами со Splunk. Очень напоминает лицензирование Elastic Stack, там считают количество нод Elasticsearch. SIEM-систе...

Оперативная аналитика в микросервисной архитектуре: п̶о̶н̶я̶т̶ь̶ ̶и̶ ̶п̶р̶о̶с̶т̶и̶т̶ь̶ помочь и подсказать Микросервисная архитектура, как и все в этом мире, имеет свои плюсы и свои минусы. Одни процессы с ней становятся проще, другие — сложнее. И в угоду скорости изменений и лучшей масштабируемости нужно приносить свои жертвы. Одна из них — усложнение аналитики. Если в монолите ...

Zenvia Inc. объявляет о ценах на первичное публичное размещение САН-ПАУЛУ, 22 июля 2021 г. /PRNewswire/ — Zenvia Inc. («Zenvia»), коммуникационная платформа для повышения качества обслуживания клиентов, предоставляющая компаниям возможность создавать уникальные проекты для своих конечных клиентов на протяжении всего их жи...

Разложение монолита: Декомпозиция БД (часть 2) Эта статья является заключительным конспектом книги «От монолита к микросервисам». Материал статьи посвящен декомпозиции БД во время процесса разложения монолита на микросервисы.Извлечение микрослужбы не «делается» до тех пор, пока код приложения не будет работать в его...

[Перевод] Руководство Google по стилю в C++. Часть 1 Часть 1. Вступление … Часть 8. Именование Часть 9. Комментарии … Все мы при написании кода пользуемся правилами оформления кода. Иногда изобретаются свои правила, в других случаях используются готовые стайлгайды. Хотя все C++ программисты читают на английском легче, чем на...

[Перевод] Основы JavaScript: почему вы должны знать, как работает JS-движок В этой статье я хочу объяснить, что разработчик программного обеспечения, использующий JavaScript для написания приложений, должен разбираться в движках, чтобы написанный код работал правильно.Ниже вы увидите однострочную функцию, которая возвращает свойство lastName передан...

Исследование роста утилизации процессора: как мы мигрировали с CentOS 7 на Oracle Linux 7 Привет! Меня зовут Александр Петровский, я инженер в DINS. Я работаю в команде, которая участвует в разработке сервисов облачной телефонии и видеоконференций для RingCentral. Каждый из них состоит из большого количества микросервисов.Когда мы мигрировали один из наших микрос...

Миграция на IP и гибридная телефония: Gigaset AS690IP Привет, Хабр! Многие айтишники ежедневно сталкиваются с IP-телефонией: внедряют, настраивают, борются с багами. Каждый из видов VoIP-оборудования решает конкретные задачи. VoIP-шлюзы преобразуют аналоговый сигнал в цифровой и обратно, беспроводные VoIP-телефоны позволяют сот...

[Перевод] Как использовать GraphQL Federation для инкрементальной миграции с монолита (Python) на микросервисы (Go)   Или как поменять фундамент старого дома, чтобы он не обвалился Лет 10 назад мы выбрали 2-ю версию Python для разработки нашей обучающей платформы с монолитной архитектурой. Но с тех пор индустрия существенно изменилась. Python 2 был официально похоронен 1 января 2020 года...

Использовать время: зачем ВТБ новый кредитный конвейер на микросервисах «Успешные люди вырываются вперёд, используя то время, которые остальные используют впустую», — говорил (так пишут в интернете) изобретатель конвейера Генри Форд. Как микросервисы и графовая платформа помогают экономить время в новом кредитном конвейере ВТБ, читайте под катом...

Как вредонос Trisis может парализовать целый завод, и есть ли шанс от него защититься Обнаруженный в 2017 году вредонос Trisis до сих пор остается настоящим кошмаром для промышленности. Его цель – вывести из строя систему противоаварийной защиты предприятия, лишив автоматику и персонал возможности оперативно реагировать на аварию (от остановки оборудования до...

[Перевод] Python, pandas и решение трёх задач из мира Excel Excel — это чрезвычайно распространённый инструмент для анализа данных. С ним легко научиться работать, есть он практически на каждом компьютере, а тот, кто его освоил, может с его помощью решать довольно сложные задачи. Python часто считают инструментом, возможности которог...

[Перевод] Самые важные архитектурные шаблоны, которые нужно знать Рассказываем о самых распространенных шаблонах в архитектуре ПО. Разбираемся с контекстом и решаемыми задачами, обсуждаем достоинства и недостатки.- Многоуровневая архитектура - Каналы и фильтры - Клиент — сервер - Модель — представление — контроллер- Управляемая событиями а...

[Из песочницы] Не монолитом единым. Модульный подход в Unity В данной статье будет рассмотрен модульный подход при проектировании и дальнейшей реализации игры на движке Unity. Описаны основные плюсы, минусы и проблемы с которыми приходилось сталкиваться. Под термином «Модульный подход» имеется ввиду организация ПО, которая используе...

[Перевод] Ведущие фреймворки для разработки микросервисов Микросервисная архитектура — это методология разработки, в ходе применения которой монолитные проекты разделяют на маленькие приложения и сервисы, составленные из сравнительно небольших объёмов кода. Микросервисами пользуются, в основном, из-за тех возможностей, которые они ...

Тесты в iOS: хороший, плохой, … Привет! Меня зовут Андрей Михайлов, я работаю iOS-разработчиком в Циан и отвечаю за внедрение модульного тестирования в процесс разработки. Сегодня я немного расскажу о том, какими свойствами должны обладать хорошие автоматизированные тесты, чем хорошие тесты отличаются от п...

Заметки Датасатаниста: реляционные vs связанные данные Сегодня мы поговорим о простой, казалось бы, теме, как реляционные и связанные данные. Несмотря на всю ее простоту, замечаю, что иногда люди действительно путаются в них — я решил это исправить, написав краткое и неформальное объяснение, чем они являются и зачем нужны. ...

Система контроля версий для hardware или чем на самом деле должен заниматься отдел стандартизации До 2020 года я работал конструктором (разрабатывал электронику и электрику). Сейчас я сменил сферу деятельности, но считаю важным поднять вопрос, который возник в свое время пока он совсем не выветрился из головы. В статье затронута важность разработки стандартов в команде h...

Экстракция данных из SAP HCM в non-SAP хранилища данных Как известно, компания SAP предлагает полный спектр программного обеспечения, как для ведения транзакционных данных, так и для обработки этих данных в системах анализа и отчетности. В частности платформа SAP Business Warehouse (SAP BW) представляет собой инструментарий для х...

Криптофронт Второй Мировой Войны часть 1 Автор: ForbiddenЕще одна статья про взлом Энигмы?! Конечно нет, мы поговорим обо ВСЕХ шифровальных машинах, активно использовавшихся во Второй Мировой Войне, и, конечно же, поговорим о том, как их пытались взломать.Радиоперехват стал известен с Первой мировой войны, поэ...

Выступает DMN, дирижирует ZeeBe: как использовать бизнес-правила в микросервисах Меня зовут Николай Первухин, я Senior Java Developer в Райффайзенбанке. Так сложилось, что единожды попробовав бизнес-процессы на Camunda, я стал адептом этой технологии и стараюсь ее применять в проектах со сложной логикой. Действительно сама идея подкупает: рисуешь процесс...

NVMe-накопители: чем они хороши и как на них переходить. Часть первая Рассматриваем возможные решения, считаем производительность и прикидываем, как правильно настроить систему. Читать далее

[Перевод] Секреты observability. Часть 3: распределённая трассировка с Jaeger и OpenTelemetry Фото Bertrand Bouchez, Unsplash.com В прошлой статье мы с помощью Prometheus AlertManager настроили правила, чтобы отправлять уведомления через Slack при срабатывании алертов. И хотя алерты и уведомления — это удобно и полезно, сами по себе метрики не до конца объясняют про...

Регистры сведений. История одного «велосипеда» В этой статье я разбираю один конкретный класс объектов в системе 1С:Предприятие 8. Тема, конечно, узкая. Но, так как здесь мы имеем очень хороший пример очень плохой архитектуры, я думаю, многим будет интересно. В том числе и тем, кто далек от 1С. Со своей стороны я постара...

Оркестратор бесконечных задач В данной статье мы поговорим о том, как реализовать оркестратор бесконечных задач с использованием очередей. Как конечная цель: нам необходимо реализовать систему, способную управлять задачами с длительным сроком жизни, систему распределённую, где группа задач ...

[Перевод] Остановитесь!!! Вам не нужны микросервисы Идет 2020 год. Если вам нужно пояснение, что такое микросервисы — лучше потратьте свое драгоценное время на что-то другое. Но если вы впечатлены историями успеха о микросервисах и хотите нырнуть в "панацею" с головой — продолжайте читать. Прошу прощения, будет немн...

Человек-оператор тоже человек Создаем и тестируем User-friendly Interface для промышленностиНа связи Datana. Уже несколько лет мы занимаемся цифровизацией промышленности, Индустрией 4.0. Эта статья о разработке UI цифровых советчиков для металлургического комбината. Свой опыт мы облекли в формат инструкц...

Поговорим о централизованном логировании Эта статья – продолжение текста о мониторинге. Здесь предлагаю нам с вами поговорить о роли логов в оценке состояния наблюдаемой площадки, посмотреть, что они способны нам дать, а также затронуть вопрос – «можно ли отрывать логи от метрик?».По ходу дела я буду возвращаться к...

[Перевод] Как работает гистограмма Prometheus? Перевод статьи подготовлен в преддверии старта курса «Мониторинг и логирование: Zabbix, Prometheus, ELK». Ранее мы рассматривали счетчик (counter), измеритель (gauge) и сводку (summary). Теперь же давайте поговорим о том, как работает гистограмма (histogram) в Prometheus....

Пишем full stack монолит с помощью Angular Universal + NestJS + PostgreSQL Привет, Хабр! В этой статье мы создадим готовый шаблон-монолит, который можно брать за основу нового fullstack приложения как скелет для навешивания функционала. Эта статья будет полезна, если вы: Начинающий  fullstack-разработчик; Стартапер, который пишет MVP чтобы провери...

[Перевод] Доступный toggle Toggles (или их еще называют "тумблеры"/"переключатели") широко используются в современных интерфейсах. Они, как правило, относительно просты, и их можно рассматривать как простые флажки (checkbox). Тем не менее, их часто делают недоступными тем или иным способом.В этой стат...

SSE, нотификации, Node.js и при чём тут C#? Вписавшись в очередной провальный заранее стартап, мне прилетела задача: нужны уведомления на сайте. Ладно - сказал я себе. Открываю любимую IDE и начинаю писать очередной микросервис.До этого я никогда не занимался уведомлениями, но был осведомлен, что есть для этого нескол...

Как мы переходили с CocoaPods на Carthage Недавно мы перешли с CocoaPods на другой менеджер зависимостей — Carthage. Оказалось, что у этой простой на первый взгляд задачи много подводных камней. Чтобы сменить менеджер зависимостей и не страдать нужны две вещи:- заранее понимать, какая конечная цель у этой задач...

Нам нужно честно поговорить про аттестованные ЦОД Дисклеймер1.   Я не собираюсь заниматься луддизмом и призывать всех не переезжать в аттестованные облака. Облачные технологии это, несомненно, часть нашего будущего. 2.   Конечно же, не все аттестованные облака являются «аттестованными» в кавычк...

[Перевод] React Server-Side Rendering (SSR) — руководство новичка В этом уроке мы поговорим о серверном рендеринге (SSR), его преимуществах и подводных камнях. Затем мы создадим мини React проект и express сервер (Node.js), чтобы продемонстрировать, как можно достичь SSR. Читать далее

Близко к Моему идеалу. Обзор Biqu B1 от BigTreeTech Всем доброго времени суток.В этой статье расскажу про Biqu B1 и почему именно этот принтер в идеале рассматривать и как первый и как дополнительный и вообще. Без минусов конечно тут ничего не обошлось, однако из всех дрыгостолов бюджетного сегмента, что у меня были, считаю ч...

[Перевод] Конференция QCon. Овладение хаосом: руководство Netflix для микросервисов. Часть 2 Джош Эванс рассказывает о хаотичном и ярком мире микросервисов Netflix, начиная с самых основ — анатомии микросервисов, проблем, связанных с распределенными системами и их преимуществ. Опираясь на этот фундамент, он исследует культурные, архитектурные и операционные методы, ...

[Перевод] Конференция QCon. Овладение хаосом: руководство Netflix для микросервисов. Часть 3 Джош Эванс рассказывает о хаотичном и ярком мире микросервисов Netflix, начиная с самых основ — анатомии микросервисов, проблем, связанных с распределенными системами и их преимуществ. Опираясь на этот фундамент, он исследует культурные, архитектурные и операционные методы, ...

[Перевод] Конференция QCon. Овладение хаосом: руководство Netflix для микросервисов. Часть 4 Джош Эванс рассказывает о хаотичном и ярком мире микросервисов Netflix, начиная с самых основ — анатомии микросервисов, проблем, связанных с распределенными системами и их преимуществ. Опираясь на этот фундамент, он исследует культурные, архитектурные и операционные методы, ...

Готовы ли читатели AndroidInsider.ru пересесть на Harmony OS с Android Harmony OS, о которой не было ничего слышно с конца прошлого года, за последние пару недель стала одним из главных трендов мобильного рынка. Причиной возрождения интереса к операционной системе Huawei стал запуск версии для смартфонов. Несмотря на то, что сейчас на рынке не...

Хорошие новости для тех, кто всё ещё использует row-level локи в PostgreSQL Для организации совместного доступа к данным в PostgreSQL программисты часто использую row-level локи. В статье поговорим об оверхеде, который получается от такого подхода и какие есть альтернативы. Давайте посмотрим, как можно поторопить слона!Источник изображения Читать да...

Ara Partners помогает руководству в приобретении px Group Частная инвестиционная фирма, ориентированная на промышленную декарбонизацию, приобретает интегрированного оператора промышленных активов СТОКТОН (Великобритания) и ХЬЮСТОН, 29 апреля 2021 г. /PRNewswire/ — Частная инвестиционная фирма Ara Partners, специализ...

Что там в Университете ИТМО — международные студенческие конференции, клубы, онлайн-митапы и лекции На днях мы выпустили текстовую версию очередного интервью для нашего подкаста «ITMO Research_». В нем — поговорили о переключении с офисной работы в ИТ на полноценную научную деятельность. О своем опыте рассказал руководитель одной из наших международных лабораторий. Он уже ...

Автоматизация задач администрирования API VMware vSphere с использованием Ansible В предыдущей статье мы рассмотрели взаимодействие с VMware с помощью Python. В этой же обсудим взаимодействие с VMware с помощью Ansible. Ansible — система управления конфигурациями, написанная на языке программирования Python с использованием декларативного языка разметки ...

[Перевод] Что такое функциональное программирование? Эта статья является переводом материала «What is functional programming?». В этой статье Владимир Хориков попытается ответить на вопрос: что такое функциональное программирование?Итак, что такое функциональное программирование? Этот термин возникает довольно часто, и каждый ...

Микросервисы с коммуникацией через Axon В этом простом туториале мы сделаем пару микросервисов на Spring Boot и организуем между ними взаимодействие через фреймворк Axon. Читать дальше →

[Перевод] Тензоры в TensorFlow Основным объектом которым манипулируют в Tensorflow, является тензор. О том, что такое тензор, какие бывают тензоры, какие у них есть свойства и как ими манипулировать читайте в переводном руководстве с сайта tensorflow.org. Читать дальше →

[Перевод] Эксплуатация большой распределённой системы: чему я научился Читая различные каналы и рассылки, я часто встречаю статьи о конкретных «болях» и проблемах, возникающих при росте компании, когда надежность и масштабируемость выходят на первый план. Эта статья — иная. Здесь нет подробного разбора конкретных архитектурных решений или пош...

Создание и использование динамических библиотек в Rust Динамические библиотеки подключаются к программе во время выполнения. Это позволяет обновлять их реализацию и компилировать независимо от использующих программ. Такой подход открывает ряд дополнительных возможностей при разработке ПО. Например, написание разных модулей прило...

Создаём по-настоящему надёжные плагины на платформе Managed Add-In Framework Однажды мы поняли, что для качественной и быстрой реализации разносторонних требований пользователей нам срочно нужны плагины. Изучив разнообразие имеющихся платформ для их создания, мы выяснили, что наилучшим образом нам подойдет Managed Add-In Framework от Microsoft, потом...

[Перевод] GraphQL на Rust В этой статье я покажу как создать GraphQL сервер, используя Rust и его экосистему; будут приведены примеры реализации наиболее часто встречающихся задач при разработке GraphQL API. В итоге API трёх микросервисов будут объединены в единую точку доступа с помощью Apollo Serve...

Создание статического анализатора для C# на основе Roslyn API После прочтения этой статьи вы будете обладать знаниями для создания своего собственного статического анализатора для C# кода, благодаря ему вы сможете найти потенциальные ошибки и уязвимости в исходном коде своих и не только проектов. Заинтригованы? Что ж, давайте начнём. Ч...

Log-Sum-Exp Trick: как свойства функций делают работу классификаторов реальной В этой статье мы рассмотрим, что такое классификатор, поговорим о мультиклассовой классификации с помощью нейронных сетей. Затем, ознакомившись с контекстом перейдем к основному топику поста — к Log-Sum-Exp Trick. Напишем формулы и разберемся, как этот трюк помогает избежа...

[Перевод] Проектируем bounded context с помощью Bounded Context Canvas: рецепт воркшопа Среди тем предстоящей конференции TechLead Conf 2020 будет детальное обсуждение Domain-Driven Design и EventStorming. Помимо подготовки 2-слотового доклада Константина Густова о DDD, доклада Сергея Баранова об EventStorming и митапа, во время которого мы будем создавать DDD-...

MQTTv5.0: Обзор новых функций. Часть 2 Всем привет! Приведенный ниже материал является продолжением статьи о функционале, добавленном в новой версии MQTTv5.0. Если вы уже успели ее изучить, то для вас не составит труда заметить, что большинство новых функций базируется на понятии свойств, которые можно добавлят...

Ещё одна статья о том, как писать на Питоне Привет Хабр!Сегодня я сниму костюм аниматора и вместо развлечений расскажу вам немного за питон.Я довольно посредственный программист, но иногда мне удаётся усыпить что-нибудь бдительность, и меня считают сеньором. И вот как-то так получилось, что я стал делать много код рев...

Пишем telegram бота на языке R (часть 1): Создаём бота, и отправляем с его помощью сообщения в telegram Аудитория telegram ежедневно растёт с геометрической прогрессией, этому способствует удобство мессенджера, наличие каналов, чатов, и конечно возможность создавать ботов. Боты могут использоваться в совершенно разных целях, от автоматизации коммуникации с вашими клиентами до...

Анатомия юнит-теста Эта статья является конспектом книги «Принципы юнит-тестирования». Материал статьи посвящен структуре юнит-теста.В этой статье рассмотрим структуру типичного юнит-теста, которая обычно описывается паттерном AAA (arrange, act, assert — подготовка, действие и проверка). З...

Мониторинг СХД IBM Storwize при помощи Zabbix В данной статье мы немного поговорим о мониторинге СХД IBM Storwize и других СХД, поддерживающих протоколы CIM/WBEM. Необходимость такого мониторинга оставлена за скобками, будем считать это аксиомой. В качестве системы мониторинга будем использовать Zabbix. В последних ве...

[Перевод] Как создавать интерактивные линейные графики на Pandas и Altair Линейный график является неотъемлемой частью анализа данных. Он даёт нам представление о том, как величина изменяется при последовательных измерениях. В случае работы с временными рядами важность линейных графиков становится решающей. Тренд [направление], сезонность и коррел...

Один день из жизни DBA Microsoft SQL Server В арсенале Microsoft SQL Server есть одна интересная штука – service broker. По сути своей это очередь сообщений, встроенная в СУБД, способная обеспечить транзакционную целостность данных. Вещь удобная и, в грамотных руках, способная выстроить систему обмена между SQL S...

[Перевод] Calico Enterprise: обзор Translation of this article written by John Armstrong on Jan 20, 2021Вступая в новый год, самое время поразмышлять о достижениях компании Tigera и о том, насколько  Calico Enterprise изменилась за последний год и как она стала ведущим решением в сфере безопасности и мон...

Металлизация алмаза: превращение изолятора в полупроводник Преобразование одного вещества в другое, изменение свойств материала под собственные нужды, трансформация материи. Все эти действия сочли бы за колдовство и ересь буквально пару сотен лет назад. Сейчас же это вполне обыденные процессы, которые можно наблюдать в современных...

Понимаем красно-черное дерево. Часть 1. Введение Довольно долгое время я воевал с красно-черным деревом. Вся информация, которую я находил, была в духе "листья и корень дерева всегда черные, ПОТОМУ ЧТО", "топ 5 свойств красно-черного дерева" или "3 случая при балансировке и 12 случаев при удалении ноды". Такой расклад меня...

Хитрые слова в английском языке, которые переобуваются на ходу Все мы в курсе, что такое антонимы. Это слова, значения которых противоположны друг другу. Высокий-низкий, далекий-близкий. Они есть в любом языке и мы привыкли, что это разные слова. Ведь не может одно слово иметь противоположные значения, верно? Оказывается, может. К ...

Keezy для iPhone, или как создавать музыку голосом (отличный инструмент для битбоксеров) Keezy – простая бесплатная программа, которая позволяет задать восемь клавиш на воспроизведение звука с микрофона. Она дает возможность в несколько нажатий создавать различные мелодии. Программа разработана студией Elepath, которую в свое время создал Джеймс Лодвик – известн...

WhatsApp с 1-го числа у всех перестанет запускаться на Android и iOS Нет в мире ни одного более крупного, известного и распространенного мессенджера, чем WhatsApp, а обладает он очень широкими функциональными возможностями и множеством различных других преимуществ, делающих данный сервис крайне привлекательным. Используя функциональные возмо...

Navigation bar и анимация перехода Поведение UINavigationBar при переходе по стеку может показаться непредсказуемым и часто забагованным. Но, на самом деле, так и есть! Эта статья призвана освежить знания о принципах работы и показать возможности  кастомизации поведения.Немного общей теорииЕсли вы хорошо...

Сотовый оператор Tele2 запустил безлимитный мобильный интернет за 49 рублей Одним из наиболее известных, крупных и распространенных сотовых операторов в России конечно же является Tele2, который сам сумел достичь таких высот благодаря грамотным решениям руководствам и вложениям инвесторов. На радость множества людей, проживающих на российской Читат...

[Перевод] CSS и множественный фон CSS-свойство background — это одно из самых часто используемых свойств. Но сообщество веб-разработчиков пока не слишком хорошо осведомлено о возможностях, которые даёт использование множественного фона. Здесь я собираюсь серьёзно поговорить о том, что может дать применение м...

MySQL: казнить нельзя помиловать Сайт и интернет-магазин «Эльдорадо» — это около 40 тысяч покупок ежедневно. Объяснять, что это значит для бизнеса компании, наверное, не надо. Исторически магазин работает на движке Bitrix с огромным количеством кастомного кода и дополнений. В качестве хранилища выступает...

Анализ кода систем повышенной надежности Привет Хабр! В этой статье я хочу поговорить о достаточно мало рассматриваемой теме анализа кода систем повышенной надежности. На хабре много статей о том, что такое хороший статический анализ, но в этой статье я бы хотел рассказать о том, что такое формальная верификация ко...

[Из песочницы] Riak Cloud Storage. Часть 1. Настройка Riak KV Riak CS (Cloud Storage) – лёгкое в использовании программное обеспечение для организации хранилища объектов, работающее поверх Riak KV. Riak (KV) это распределённая NoSQL база данных типа «ключ-значение(key-value)». Riak CS спроектирована так, чтобы обеспечить простоту, дост...

[Перевод] Распространенные ошибки безопасности в приложениях Laravel В большинстве случаев уязвимости безопасности возникают только из-за недостаточной осведомленности, а не из-за халатности. Хотя мы обнаружили, что большинство разработчиков заботятся о безопасности, но иногда они не понимают, как конкретный шаблон кода может привести к уязви...

Google: nри технологических тренда, формирующих динамические сети Вице-президент и генеральный менеджер по работе с сетями Google Cloud Шейлеш Шукла рассматривает на порталt ComputerWeekly вопрос о том, как переход к архитектуре микросервисов ведет к революции сетевых ...

Apple вынуждена оставить своих сотрудников на удаленке до 2022 года Сотрудники победили! До этого программисты Apple несколько месяцев просили руководство компании дать им возможность продолжить работать из дома. И даже самая крупная компания в мире не смогла устоять. Читать далее

[Перевод] Руководство по цвету в UX/UI-дизайне Цвет — одна из важнейших составляющих UI-дизайна. Благодаря цвету один и тот же продукт может казаться сложным и крутым или сумасшедшим. И задача дизайнера здесь — не найти и смешать красивые цвета, а создать определенную систему. В этой статье мы начнем с основ и постепенно...

2020-ый год — каким его видел журнал OMNI 30 лет назад? В детстве я любил журнал "Омни", который появился на рубеже 90-х в Москве. И хоть мне тогда довелось прочитать только два номера, я заполнил их на всю жизнь. Журнал разительно отличался от того что можно было купить в то время еще в другой стране. Прежде всего это был америк...

Есть ли жизнь после разработки: Как расти, минуя менеджмент Сегодня мы поговорим про карьерный рост в разработке. В российских компаниях классический путь программиста заканчивается на должности тимлида или tech lead. В обеих этих позициях примешивается большая доля менеджерских задач. Инженер там остаётся, конечно, но его становится...

C++ с кроссплатформенностью и зависимостями C++ по прежнему используется не только для написания ОС, игр и драйверов, но и для неприхотливых к ресурсам утилит командной строки. Между тем конкуренты на этом поприще, например Rust, предлагают систему сборки c менеджером зависимостей по умолчанию. Для C++ де-факто тоже е...

Backup as a Service: три пути решения одной задачи Перефразируя известного киногероя, «Бэкапы — это хорошо. Бэкапы — это надежно». И чем больше опций для создания резервных копий есть у провайдера, тем лучше: клиенты получают возможность выбрать ровно то, что требуется бизнесу, ни больше, ни меньше.В облаках «ИТ-ГРАД» и #Clo...

Nuke: настраиваем сборку и публикацию .NET-проекта В настоящее время существует множество систем CI/CD. У всех есть определенные достоинства и недостатки и каждый выбирает себе наиболее подходящую под проект. Цель данной статьи - познакомить с Nuke на примере web-проекта, использующего уходящий на покой .NET-Framework с приц...

[Из песочницы] Cложный код или история одного интервью Хотелось бы поделиться своей историей неудачи, если понимать под этим негативный фидбек от компании после ревью технического задания. Конечно же, каждый подобный опыт — это всегда прекрасная возможность пересмотреть стратегию, сделать определенные выводы из своих или чужих о...

Симметричный алгоритм блочного шифрования Advanced Encryption Standart Доброго времени суток, читатель. В данной статье я бы хотел рассказать об одном из самых распространенных алгоритмов симметричного шифрования - AES. Читать далее

Электронная книга своими руками на STM32H750 от А до Э В этой статье я хочу поделиться опытом разработки электронной книги с использованием недорогого контроллера STM32H750VB, распространенных дискретных компонентов и относительно недорогого дисплея E-Ink. Статья будет большой, так как приведены будут все процессы от постановки...

[Перевод] Создаем разрушаемые объекты в Unreal Engine 4 и Blender Современные игры становятся все реалистичнее, и один из способов этого добиться — создать разрушаемое окружение. К тому же, крушить мебель, растения, стены, здания и целые города просто весело. Наиболее яркими примерами игр с хорошей разрушаемостью можно назвать Red Fract...

Что готовит нам Angular? Заметки из changelog, новый синтаксис шаблонов, Ivy В этой статье приведу заметки к релизу Angular 13. Рассмотрим предложения по шаблонам которую будут рассматривать в Angular Team в ближайшем митинге. Читать далее

Подсказки по написанию тестов в приложениях на Go В нашей компании в стеке разработки есть язык Go. И иногда, при написании unit-тестов к приложениям написанным на Go, у нас появляются сложности. В этой статье мы расскажем о некоторых моментах, которые мы учитываем при написании тестов. На примерах разберём как их можн...

Как мы реализовали систему камер для мобильной TPS игры Как ранее упоминали в наших статьях на Хабре, сейчас Social Quantum разрабатывает мобильный Survival Action RPG от третьего лица в зомби сеттинге. Мы поставили цель — подарить игрокам консольный фил, доступный на мобильных девайсах. Один из приемов, который для этого использ...

Трюки CSS, которые сделают из вас ниндзя верстки Сегодня я хочу рассказать вам о нескольких CSS-свойствах и значениях, которые редко упоминаются в специальной литературе, но, на мой вгляд, представляют определенный интерес с точки зрения скорости и качества разработки веб-интерфейсов. Многие свойства, о которых пойдет реч...

Как улучшить ваши A/B-тесты: лайфхаки аналитиков Авито. Часть 2 Это вторая часть статьи о том, как улучшить A/B-тесты. Здесь я подробно остановлюсь на методах увеличения мощности: поговорим про CUPED, бутстрап-критерии, стратификацию и парную стратификацию. Читать далее

Web в Китае умер. Почему так произошло и что пришло вместо него? На эту тему меня натолкнули слова одного знакомого, который сказал «такое ощущение, что китайский интернет застрял в 90-х». С ним многие согласятся — вырвиглазный дизайн страниц, плохо работающий(или вообще не работающий) функционал, невозможность найти нужную информацию и т...

Польза и вред деривативов Многие инвесторы начинают свой путь с относительно простых инструментов: акций и облигаций. Однако рано или поздно им приходится столкнуться с более сложными способами заработка - производными финансовыми инструментами или же деривативами. Одни считают их оружием массового п...

Разделяй и властвуй — Использование FSM в Unity Грамотная архитектура играет ключевую роль при разработке любого программного продукта. Корни большинства распространенных проблем с производительностью, расширяемостью или понятностью кода растут именно из ее отсутствия. Отсутствие строго определенной структуры проекта лиша...

Создаем установочные пакеты для macOS средствами системы Как-то так вышло, что раньше я довольно скептически относился к macOS, поскольку не имел возможности поработать с ней в более-менее устоявшейся корпоративной среде (т.е. не когда на всю компанию в 500-600 человек есть 2 мака, и те у генерального с его замом, да еще и с виндо...

Когда нужна телеметрия: интегрируем в проект библиотеку логирования uP7 Зачастую разработчику, или даже пользователю, требуется посмотреть, что происходит внутри устройства. Обычно в таких ситуациях используют либо текстовой вывод в терминал (через голый UART или самописный протокол гарантированной доставки), либо пишут свои собственные системы ...

Порараз бирацца: как мы учились писать автотесты на Python и что у нас получилось Привет, Хабр! Меня зовут Артем Иванюта, в «Магните» я занимаюсь тестированием информационных систем закупок. В статье я расскажу, как наша команда запускала автотесты web-интерфейсов силами одного сотрудника, как мы вписали их в CI/CD-процесс и с чем столкнулись, решая задач...

Насколько важен порядок свойств в объектах JavaScript? В случае JavaScript-движка V8 — очень даже. В этой статье я привожу результаты своего маленького исследования эффективности одной из внутренних оптимизаций V8. Читать дальше →

Технология песочниц для защиты от вредоносного ПО Одно из обязательных свойств современных целевых атак — их способность проникнуть в ИТ-инфраструктуру жертвы незаметно для защитных систем. Передовое вредоносное ПО использует методы маскировки, которые превращают его в невидимку. Помочь в таких случаях может динамическ...

JPA Buddy: Умный помощник — половина работы Ну что ж, Hello World... После почти года разработки наконец-то вышла первая версия JPA Buddy! Это инструмент, который должен стать вашим верным помощником по написанию кода для проектов с JPA и всем, что с этим связано: Hibernate, Spring Data, Liquibase и другим ПО из типич...

Брутфорс хэшей в Active Directory Слабые пароли пользователей — очень распространенная проблема, которая может позволить злоумышленнику повысить свои привилегии в сети компании и закрепиться в ней.Чтобы этого не допустить, необходимо регулярно анализировать стойкость паролей пользователей.У системных админис...

[Перевод] Декодируем JPEG-изображение с помощью Python Всем привет, сегодня мы будем разбираться с алгоритмом сжатия JPEG. Многие не знают, что JPEG — это не столько формат, сколько алгоритм. Большинство JPEG-изображений, которые вы видите, представлены в формате JFIF (JPEG File Interchange Format), внутри которого применяется ...

[Перевод] Мои любимые трюки в JavaScript Приветствую. Представляю вашему вниманию перевод статьи «My Favorite JavaScript Tips and Tricks», опубликованной 28 июля 2020 года автором Tapas Adhikary Большинство языков программирования являются достаточно открытыми, чтобы предоставить разработчикам возможность делать о...

Сила процессов в проектном менеджменте Всем привет. Меня зовут Даша Викторова, я Project Lead направления Outbound, которое отвечает за автоматизацию доставки в Lamoda. Сегодня поговорим про проектный менеджмент… Но не совсем :) Как правило, проект-менеджер (или просто PM) отвечает за реализацию проектов — к...

Добавляем роботу глаза Роботу иногда нужно что-то хватать. Вот и без глаз робот как без рук. В прямом смысле. Ведь не зная где лежит вкусняшка, робот не сможет дотянуться до ней своими роботизированными рукам. Или другими манипуляторами. В данной статье мы разберемся, как откалибровать робота, чт...

Агрегаты, мои агрегаты, как приятно о вас думать В Domain-Driven Design выделяют стратегические и тактические паттерны. Например, первые — это Единый язык, а вторые — Агрегаты. Я много раз слышал от коллег, что со стратегией всё понятно, но когда дело доходит до перехода на тактический уровень (до кода) — всё в тумане. Это...

[Перевод] Топ 6 библиотек Python для визуализации: какую и когда лучше использовать? Это руководство было дополнено несколькими подробными примерами. Вы также можете отслеживать актуальные версии этой статьи здесь. Читать далее

Чек-лист: как оставаться отказоустойчивым, переходя на микросервисы на PHP (и как правильно падать) Когда-то вы кодили на одном большом и могучем серваке, с кучей памяти и кучей процов. Сервер был безграничен, все ваши сервисы были здесь, все ваши Redis’ы и даже зачастую MySQL-и были тут. Все ваши приложения были здесь же: какая-то аналитика, какой-то бэкенд для админки, е...

Kotlin + Hibernate: всё сложно Невозможно представить JPA без сущностей. Однако, их определение в Котлине таит некоторое количество подводных камней. Давайте посмотрим, как избежать распространенных ошибок и использовать возможности Котлина на максимум. Внимание спойлер! Классы данных — не лучший вариант ...

Пирамида вместо сферы: нестандартная кластеризация атомов золота Мир, окружающий нас, является совместным результатом множества явлений и процессов из самых разных наук, выделить самую главную из которых фактически невозможно. Несмотря на некоторую степень соперничества, многие аспекты тех или иных наук обладают схожими чертами. Возьмем...

Разминируем почту. Простое руководство по выявлению фишинга Для подписчиковФишинг — один из самых распространенных векторов атак и одно из популярнейших направлений социальной инженерии. Что неудивительно: электронной почтой мы пользуемся каждый день. В этой статье я разберу конкретные примеры фишинговых писем и расскажу, как искать ...

[Перевод] Свойства Min и Max width/height в CSS Перевод «Min and Max Width/Height in CSS» Ахмада Шадида Порой у разработчиков возникает необходимость ограничить ширину элемента относительно родителя, и в то же время, оставить её динамичной. Задав таким образом начальный размер с возможностью расширения при наличии доступ...

С чего начинается DevOps… и куда он может привести Возможно, вы уже умеете писать отличный код. И может, у вас уже есть реальное представление, как работает платформа, виртуализация и сеть с безопасностью. Но что, если вы не хотите углубляться ни в одну из этих областей? А может, вы уже думали о переходе в DevOps, где требуе...

Как защищены финансы на бирже и как выбрать надежного брокера За 2020 год на Московскую биржу пришло около 5 млн частных инвесторов – больше, чем за все предыдущие годы вместе взятые. Тем не менее, всё еще довольно широко распространено мнение, что инвестировать на бирже – рискованное мероприятие и удел авантюристов, а потому лучше огр...

Подробно о потухшем ядерном реакторе в Окло В моем блоге на Хабре я стараюсь избегать рассмотрения «уникальных» феноменов, которые не с чем сравнить – и, соответственно, сложно или невозможно вывести какие-то закономерности, сделать выводы. Единственным исключением была, пожалуй, статья о вулкане Кудрявый – больше на ...

Oracle: разница между deterministic и result_cache От переводчика: свой путь на habr я решил начать не с попытки написать какой-то уникальный текст с нуля, а с перевода относительно свежей (от 17.08.2020) статьи классика PL/SQL-разработки Стивена Фойерштайна, в которой он достаточно подробно рассматривает разницу между двумя...

Intel Boot Guard на пальцах Предлагаю окунуться в дебри микроархитектуры компьютера и разобраться с тем, как работает одна из наиболее распространенных технологий обеспечения аппаратной целостности загрузки BIOS — Intel Boot Guard. В статье освещены предпосылки появления технологии, перечислены все реж...

Apple научит свои смартфоны считывать рисунок вен на лице пользователя Apple, по-видимому, рассматривает возможность улучшения своего Face ID и других визуальных биометрических систем безопасности. Этот шаг заключается в том, чтобы устранить все недостатки систему и возможные ошибки с идентификацией, которые связаны с внешней схожестью людей. Д...

Как стать тимлидом, или Что вас ждет по другую сторону разработки? Привет Хабр! Меня зовут Саша Шутай, я тимлид в компании AGIMA. Конечно, прежде чем стать руководителем команды, я был разработчиком и работал под руководством нескольких тимлидов, поэтому знаком с разными подходами к управлению. В этой статье я поделюсь своим опытом тим...

Недооцененная площадка для продвижения ИТ-проектов на английском: гайд по AngelList В одном из предыдущих материалов мы поговорили о том, как подступиться к публикации своего проекта на Product Hunt. На этот раз разбираемся с AngelList.Начинаем с компактного рассказа об истории площадки, обсуждаем базовые рекомендации по работе с ней и возможности для тех, ...

Windows 11 вышла на смену Windows 10 Наиболее известной, популярной и распространенной операционной системой для персональных компьютеров, ноутбуков, планшетов, моноблоков и других электронных устройств является Windows 10, а обладает она крайне широкими функциональными возможностями и множеством других преиму...

Безопасность npm-проектов, часть 1 Всем привет! В прошлом посте мы начали рассматривать важный вопрос о безопасности в npm и поговорили о том, какие меры использует сама компания для выявления и предотвращения угроз. В этот раз я хочу поговорить об инструментах и подходах, доступных лично вам, и которые я на...

DBA: прибираем «мертвые души» Иногда при выполнении длительных или плохо написанных запросов в PostgreSQL происходят разные неприятные вещи типа внезапного сбоя процесса или краша всего сервера.В таких случаях на носителе могут остаться "мертвые души" - файлы (иногда совсем немаленькие, а вполне сравнимы...

Создаём инфраструктуру для интеграционных тестов: делаем образы и подводим итоги Это вторая статья из короткого цикла про создание инфраструктуры для автотестов. Первая доступна здесь.3 года назад команда Fiji решила переизобрести инфраструктуру для интеграционных тестов. Мы перенесли тестовые БД в docker-контейнеры и научились поднимать в Kubernetes кон...

Good vs. Well, или Гайд о прилагательных и наречиях в английском языке Сегодня мы поговорим о достаточно скользкой теме в грамматике английского. На вид она простая. «Bad» — прилагательное, а «badly» — наречие. Но как сказать правильно: «I feel bad» или «I feel badly»? «I feel good» или «I feel well»? Подобные нюансы сильно сбивают студентов, к...

Топ 10 заблуждений о переносе Hadoop в облако Многие компании и корпорации хотят использовать облако для обработки данных по очевидным причинам: гибкость, масштабируемость, можно платить только за то, что используешь и так далее. На деле переносить проект с многокомпонентной системой обработки данных, масштаба Петаба...

К чему может привести ослабление уровня изоляции транзакций в базах данных Всем привет. На связи Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах, посвященных архитектуре ПО. Помимо преподавания, как вы могли заметить, я занимаюсь написанием авторского материала для б...

[Перевод] MKINITCPIO V31 и заглушки UEFI Изображение взято из статьи «Linux Kernel EFI Boot Stub или «Сам себе загрузчик»» Несколько месяцев назад я написал для скрипта mkinitcpio код, который позволяет ему создавать файлы UEFI с использованием заглушки systemd. Само внесенное мной изменение можно найти на GitHu...

[Перевод] Как микросервисы Netflix справляются с Pub-Sub данными Перевод статьи подготовлен специально для студентов курса «Архитектор высоких нагрузок». Введение В микросервисной архитектуре Netflix передача наборов данных от одного к нескольким конечным точкам может быть крайне сложной. Эти наборы данных могут содержать все, что уго...

Виртуальные машины и тест Гилева А давайте поговорим про синтетические тесты? Мы заметили, что часть клиентов использует их, оценивая «профпригодность» любого облачного решения. Иногда нас просят предоставить результаты какого-либо теста или сами проверяют систему во время бесплатного пробного периода. Прич...

[Перевод] Процесс автоматизированного тестирования за 10 шагов Во многих организациях качество является главным приоритетом. Если вы окажетесь в такой организации, но в ней все еще не будет формального процесса автоматизации тестирования, вы можете стать тем человеком, который его внедрит.С ним ваша организация сможет создавать более ка...

WhatsApp начиная с 1-го числа перестанет функционировать на устройствах Android и iOS Нет во всем мире ни одного более популярного, известного и распространенного сервиса для общения, кроме как WhatsApp. Это программное обеспечение обладает крайне широкими функциональными возможностями и, помимо этого, множеством различных других преимуществ, которыми ему по...

Low-code в системах управления: разбираемся на примере платформы ТУРБО Считается, что крутой разработчик программного обеспечения должен обладать как минимум десятилетним опытом, активно участвовать в проектах и решать задачи абсолютно любого уровня сложности. Так оно и есть, однако демократизация в сфере ИТ, в том числе в разработке, вносит св...

Заметки о дельта-роботе. Часть 1. Историческая справка и обзор научных работ Этой публикацией я начинаю цикл статей о дельта-роботе. Здесь поговорим об истории этого механизма и я расскажу немного об интересных работах по этой тематике. В следующих статьях будут материалы, посвящённые его теоретическому анализу, построению рабочей зоны, выбору привод...

[Перевод] 7 основных ошибок безопасности при переходе на облачные приложения Поскольку компании переносят рабочие файлы в облако для поддержки удаленных сотрудников, они часто создают возможности для злоумышленников. Это наиболее распространенные ошибки, которых следует избегать. Вступление В связи с пандемией многие предприятия перешли на использо...

Asciidoc для ЕСКД Введение В этой статье хочу рассмотреть возможности Asciidoc в части обеспечения требований соответствия документов требованиям единой системы конструкторской документации (ЕСКД), конкретно ГОСТ Р 2.105—9 (далее ГОСТ ЕСКД). Почему именно Asciidoc, я писал здесь. Сразу уточн...

Квантовый процессор Google осознает себя? Почему квантмех и свобода воли (не) связаны, и почему это неочевидно Недавно вышел препринт с забавным названием “Есть ли у роботов с квантовым процессором свобода ослушаться?”. Идея статьи в том, что квантовый процессор — возможно, достаточно сложная система, чтобы внутри нее возникло сознание, обладающее свободой воли (да, звучит как научна...

Токен авторизации на примере JSON WEB Token Доброго времени суток, дорогой читатель. В данной статье я постараюсь рассказать об одном из самых популярных (на сегодняшний день) способов авторизации в различных клиент-серверных приложениях - токен авторизации. А рассматривать мы его будем на примере самой популярной реа...

Изнанка войны. Средневековые (и не только) ранения Мы обычно смотрим на древние сражения сверху – правый фланг атакует левый, в центре король возглавляет строй… Красивые прямоугольники на картинке, где стрелочками показано, кто и где на кого напал. Но что творилось непосредственно в месте столкновения солдат? В рамках этой п...

Парсер командной строки на .NET5 Сегодня мы собираемся показать вам, как начать парсинг аргументов командной строки. Кстати, это один пост из серии статей о .NET 5. У нас есть еще много интересного.Приложения командной строки, также известные как консольные приложения, - это программы, созданные для использ...

Тест примечательной акустики: два экспертных материала о «полочниках» и «напольниках» от Arslab и Triangle На прошлой неделе мы представили обзоры заметной аудиотехники — поговорили о крупных полочниках Debut Reference DBR62 и Carina BS243.4 от ELAC, наушниках Yamaha HPH-MT8 и Klipsch T5 II True Wireless Sport McLaren Edition. Сегодня продолжаем рассматривать интересные колонки и...

Типовые ошибки при подготовке презентации Привет! Представляю продолжение статьи о типовых ошибках, которые допускают инженеры при подготовке публичных выступлений. Сегодня поговорим о подготовке презентаций. Читать далее

[Из песочницы] Топ 5 причин, почему мне нравятся пользовательские свойства CSS Привет, Хабр! Представляю вашему вниманию перевод статьи «My top 5 reasons why I like CSS custom properties», автора Stas Melnikov Спецификация пользовательских свойств CSS навсегда изменила мой взгляд на веб-разработку. Именно поэтому я хочу написать, почему мне нравятся п...

Звездная зола. Чем закончится диаграмма Герцшпрунга-Рассела Именно эта диаграмма, связывающая спектральный класс звезды с возрастом и массой светила, обладает примерно такой же замечательной периодичностью, как и таблица Менделеева. В ней есть эволюция и предсказуемость. Прослеживается и основная закономерность, характерная для Главн...

Vuetify  —  создаем свое простое приложение В этой небольшой статье мы с вами напишем свое простое приложение по типу "заказа еды". Само приложение если что будет статичным и здесь главный упор будет сделан на использование компонентов Vuetify и рассмотрение того как именно они работают. Также добавлю что здесь мы не ...

Когда Cron подводит Привет!У нас есть огромные ночные отчёты по продуктовым метрикам, которые с утра попадают их владельцам. Пару лет назад они собирались обычным Cron'ом, но это оказалось очень нестабильной историей. Cron требует учёта определенных нюансов и дисциплины: если отчёт не собр...

Монолит vs. Микрофронтенды Вы идёте в ногу со временем, и ваше веб-приложение использует самые передовые технологии? Тогда вы совершенно точно используете микрофронтенды! Достаточно провокационно, правда? Читать далее

Рабочий прототип 3D принтера RPMachine S500 IDEX: на пути к экономичной 3D печати инженерными и конструкционными пластиками. Всех приветствую! В данной статье мне хотелось бы затронуть некоторые важные аспекты 3D печати (FDM) промышленными пластиками.  И, в первую очередь, привлечь внимание малых производственных предприятий и небольших фирм, которые имеют потребность в изготовлении конечных издел...

Эмбеддинги пользователя в DMP. Эксперименты, оптимизация, внедрение Всем привет! Мы из команды ML проекта DMP (Data Management Platform) в AdTech Rambler Group. В этой статье поговорим про эмбеддинги.Эмбеддингом в машинном обучении принято называть вектор чисел фиксированной длины, который описывает некую сущность по ряду параметров. В нашем...

Как Kafka стала былью Привет, Хабр! Я работаю в команде Tinkoff, которая занимается разработкой собственного центра нотификаций. По большей части я разрабатываю на Java с использованием Spring boot и решаю разные технические проблемы, возникающие в проекте. Большинство наших микросервисов асинхр...

[Перевод] Укрощение Data-ориентированной сервисной сетки Микросервисы — модная и распространённая сегодня архитектура. Но когда количество микросервисов разрастается до тысяч и десятков тысяч микросервисов, что делать со «спагетти» огромного графа зависимостей, как удобно изменять сервисы? Специально к старту нового потока курса «...

Создание группы доступности AlwaysON на основе кластера Failover Группы доступности AlwaysOn — мощное решение, дающее возможность для администраторов баз данных, реализовать очень высокий уровень доступности (HA, high availability) с помощью кластерных технологий. Документация Microsoft не для всех ясная и понятная, что приводит к ошибкам...

[Из песочницы] Spring Boot и Filebeat локально без регистрации и смс В данном руководстве мы рассмотрим подключение и настройку системы логирования в Spring Boot проекте и отправку логов в ELK с помощью Filebeat. Руководство предназначено для разработчиков начального уровня. Логирование и зачем оно нужно Когда я только начинал работать програ...

Как мы обучили нейросеть генерировать тени на фотографии Привет!В этой статье поговорим о генеративно-состязательных сетях, о том, как научить нейросеть генерировать тени на изображении и какие хитрости можно применить для создания более правильных теней.Ну что, погнали? Читать далее

[Из песочницы] Windows 10 + Linux. Настройка GUI KDE Plasma для Ubuntu 20.04 в WSL2. Пошаговое руководство Введение Данная статья предназначена вниманию системных администраторов, которые подготавливают типовые рабочие места на компьютерах под управлением ОС Windows 10, в том числе для разработчиков ПО. Следует отметить, что существует определенная проблема, связанная с невозм...

[Перевод] Как превратить фотографию в 3D-объект с помощью Nvidia Kaolin и PyTorch: рендеринг DIB-R В научной работе NVIDIA 2019 года улучшенный дифференциальный рендерер — DIB-R представлен как инструмент решения одной из самых популярных сегодня задач Deep Learning: генерации 3D-объектов из одного двухмерного изображения. Статья на ArXiv содержала исходный код, но в ней ...

[Перевод] 10 современных раскладок в одну строку CSS-кода В данной статье рассматривается несколько эффективных строк CSS-кода, которые выполняют серьезную работу и помогают создавать надёжную современную разметку. Читать далее

Зачем нам понадобился еще один язык программирования Более чем год назад мы публично представили нашу открытую и бесплатную платформу lsFusion. Многие тогда задавали нам вопрос : зачем мы создавали свой собственный язык, ведь уже существует огромное множество других популярных языков.Да, мы прекрасно понимали, что собственный ...

Резьба по дереву против 3D-принтера: одно другому не мешает Резьба по дереву – древнейшее искусство с многовековой историей. И кто бы мог подумать, что через такой вид творчества я приду к сборке 3D-принтеров. Взаимосвязь, конечно же, косвенная. Но все началось со знакомства с учителем по технологии в школе, о котором я упоминал в пр...

[Перевод] ZFS таинственным образом поедает мой CPU Отдел микросервисов Netflix обратился ко мне за помощью с загадочной проблемой. Они заявили, что у них на сервере файловая система ZFS потребляет 30% CPU. Я рассказывал об этом на конференции Kernel Recipes 2017 — да, это старая история… но её стоит рассказать ещё раз. По...

Как мы создаём почтовую систему нового поколения Mailion. Архитектура кластера DOS МойОфис продолжает серию статей о корпоративной почтовой системе Mailion (1, 2), разрабатываемой при грантовой поддержке РФРИТ, и входящем в его состав объектном хранилище DOS. Мы уже рассказали об основных оптимизациях DOS, которые позволяют увеличить экономическую эффектив...

[Перевод] Это норма — 3: типы карт нормалей Часть 1: что такое карты нормалей и как они работают Часть 2: как запекаются карты нормалей Как и многие другие вещи в нашей отрасли, за многие годы карты нормалей эволюционировали, и сегодня существует несколько их типов, которые могут выглядеть по-разному. В статье я пер...

[Перевод] Понимание CSS Grid (2 часть): Grid-линии Приветствую! Представляю вашему вниманию перевод статьи «Understanding CSS Grid: Grid Lines» автора Rachel Andrew В первой статье из серии "Понимание CSS Grid" мы рассмотрели, как создавать родительский grid-контейнер и различные свойства, применяемые к данному эл...

Автоматизация из первых рук: что такое платформа ServiceNow и как мы ее используем Привет, Хабр! Продолжаем рассказывать о собственных кейсах, задачах, проблемах и способах их решения. Сегодня поговорим о платформе ServiceNow и о том, как мы с ее помощью управляем инцидентами. ServiceNow — это практически универсальный комбайн, который может пригодить...

Почему нам не нужно бессмертие На Хабре с завидной регулярностью встречаются статьи воспевающие личное бессмертие индивидуума: дескать смерть есть ошибка в программе, сбойный ген, иногда даже болезнь, которую стоит только победить и люди станут жить вечно (и, очевидно, счастливо)! Несмотря на то, что свое...

Как мы создаём почтовую систему нового поколения Mailion. Принципы проектирования масштабируемых хранилищ данных МойОфис продолжает цикл публикаций (1, 2) о разработке корпоративной почтовой системы нового поколения Mailion, которая реализуется при грантовой поддержке РФРИТ. В состав Mailion входит объектное хранилище DOS; в предыдущей статье мы рассмотрели его общую архитектуру и ключ...

[Перевод] Практическое руководство по именованию классов, функций и переменных В этой статье рассказано о методе именования классов, функций и переменных, который позволяет улучшить читаемость вашего кода. Читать далее

[Перевод] Стратегия тестирования REST API: что именно вам нужно тестировать? Слой API любого приложения - один из важнейших программных компонентов системы. Это канал, который соединяет клиента с сервером (или один микросервис с другим), управляет бизнес-процессами и представляет сервисы, которые  приносят пользу пользователям. Общедоступны...

Антимонопольное регулирование цифровых платформ в России. Почему ФАС возбудила дело против Google? Привет, Хабр!Я 8 лет занимаюсь проектами в антимонопольной сфере – одном из самых интересных направлений юриспруденции. Сейчас руковожу командой в юридической фирме ART DE LEX, которая специализируется на цифровых рынках. Мы ведем работу по возбужденному сегодня Федеральной ...

[Перевод] LDAP-«аутентификация» — это антипаттерн Сегодня в любой организации есть LDAP-каталог, наполненный пользователями этой организации. Если присмотреться, вы найдете одно или несколько приложений, которые используют этот же каталог для «аутентификации». И кавычки здесь неспроста, ведь LDAP — это протокол доступа к ...

С каких книг можно начать изучать программирование (Python, C#, C++, Java, Lua, …) Здравствуйте дорогие читатели. Этот канал посвящён программированию и робототехнике. И конечно он затрагивает образовательный аспект изучению этих дисциплин.Данная статья посвящена вопросу, который волнует большинство начинающих программистов и робототехников&...

Выявление аномалий в микросервисной архитектуре — обзор инструментов для DevOps и SRE Всем привет. Сегодня мы хотели бы поговорить про выявления аномалий в микросервисной среде. Данный пост является краткой выжимкой нашего 40 минутного доклада, который мы делали на онлайн конференции DevOps Live 2020 и, чтобы не писать лонгрид, мы решили сфокусироваться на об...

Почему программист поменял работу? По мнению абсолютного большинства жителей этой планеты, разработчики это - какие-то зажравшиеся люди, которые сидят в своих уютных креслах, занимаются какой-то фигнёй и получают за это непомерные деньги. Эталонные тепличные условия и голубая мечта, которая выродилась в прене...

От монолита к модулям: как отстроены бизнес-процессы склада Lamoda Привет! Меня зовут Евгений Рябышев, я разработчик в одной из команд направления Warehouse Management System (WMS) компании Lamoda. Я занимаюсь тем, что автоматизирую склад. В этой статье расскажу, как мы строим нашу модульную архитектуру. Наши основные бизнес-процессы для у...

Еще раз про try и Try По вопросу обработки ошибок уже множество статей написано и все равно возникают вопросы и споры. Я не стану рассматривать все способы и языки, но хотел бы остановится на исключениях в JVM и сравнить их с функциональным подходом (`Try`/`Either`) на примере Scala.Эта статья та...

Цифровой завод — интерактивный цифровой двойник Цифровые двойники – одна из популярнейших тем на сегодняшний день. Их часто рассматривают как панацею, призванную спасти производство и вывести его на качественно новый уровень. В данной статье мы расскажем о нашем опыте «быстрого старта» цифровизации производства, дающий ощ...

(Почти) бесполезный стриминг вебкамеры из браузера. Часть 2. WebRTC Как-то в одной из старинных и уже заброшенных статей я писал о том, как легко и непринужденно можно транслировать видео с canvas через websockets. В той статье поверхностно рассказывал о том, как захватить видео с камеры и звук с микрофона посредством MediaStream API, как по...

Как я искал нормальный RDP-клиент и нашел целых три Remote Desktop Protocol — один из самых распространенных протоколов для удаленного управления, потому что он используется для работы с операционными системами Windows, которые часто незаменимы в корпоративной среде. Естественно, самый распространенный способ подключения к ...

От микросервисного монолита к оркестратору бизнес-сервисов Когда компании решают разделить монолит на микросервисы, в большинстве случаев они последовательно проходят четыре этапа: монолит, микросервисный монолит, микросервисы, оркестратор бизнес-сервисов. Если вы определите, на каком из этапов находитесь сейчас, это поможет вам ...

Как посчитать ROI от UX: гайд команды UXSSR ROI – это возврат вложений, который выражается в соотношении чистой прибыли к вложениям. Это старая концепция, используя которую бизнес считает доходность своих решений. Но если раньше ROI измерялся в деньгах, то сейчас все не так однозначно, особенно в сфере UX. Посчитать R...

7 Кругов SPM или как сделать модульное приложение на Swift Package Manager Думаю, многие разработчики сталкивались с задачей, когда нужно разбить проект на модули. В этой статье нет информации о том, как решать циклические зависимости или выделять по слоям функционал, подразумевается, что это уже реализовано. Цель статьи — описать проблемы с которы...

Превращаем EditText в SearchEditText Пробовали ли Вы когда-нибудь настроить внешний вид или поведение стандартного компонента SearchView? Полагаю, да. В этом случае, я думаю что вы согласитесь, что далеко не все его настройки являются достаточно гибкими, для того, чтобы удовлетворить всем бизнес-требованиям о...

IPv6 only сети в государственных учереждениях США Административно-бюджетное управление администрации президента США запросило комментарии к новому руководству по переходу на IPv6 в государственных учереждениях США. Новый вариант руководства отмечает, что поддержка dual-stack создаёт дополнительные операционные сложности и ...

[Перевод] Распределенные блокировки с применением Redis Привет, Хабр! Сегодня мы предлагаем вашему вниманию перевод сложной статьи о реализации распределенных блокировок средствами Redis и предлагаем поговорить о перспективности Redis как темы. Анализ рассматриваемого алгоритма Redlock от Мартина Клеппмана, автора книги "Вы...

Колония на Марсе — насколько это реально? В прошлых статьях мы уже разобрались с космическими скоростями, эффектом Оберта и формулой Циолковского, а в этой статье мы сравним Лунную программу с колонизацией Марса и на сколько реально вообще отправить на Марс высших Приматов. К слову недавно Илон Марс наш Маск заяв...

Переход с Azure на GCP, с ASP.NET MVC на ASP.NET Core 3.1 Автор: Андрей Жуков, .NET Team Leader, DataArtВ статье я описал собственный успешный опыт миграции реального проекта с одной облачной платформы на другую. Конечно, это не единственный возможный путь. Но думаю, здесь можно найти подсказки, которые облегчат жизнь всем, кому та...

Китов, Глушков и протоинтернет в СССР Автор: Андрей ЛебедевМасштабные инфраструктурные, промышленные и хозяйственные проекты требуют не менее масштабных систем управления и планирования. К тому же эти системы обязаны обладать высокой точностью и высокой скоростью обработки больших объёмов информации. Поэтому в о...

Интервью с Марселем Ибраевым о распиле монолита или «Успех распила монолита – грамотный менеджмент» «Я как-то видел, когда в команду разработки закинули задачу распилить монолит. И всё. Люди должны были работать в два раза больше – это ужасно». Когда поступает похожий запрос, важно не наворотить дел и понять, как избежать новых трудностей. Об этом рассказал Марсель Ибраев,...

[Перевод] Малоизвестные CSS-свойства Существует много CSS-свойств, о которых некоторые дизайнеры просто не знают. Или — знают, но забывают использовать эти свойства там, где они способны принести большую пользу. Некоторые из этих свойств могут помочь отказаться от использования JavaScript ради достижения некоег...

Активная стереоакустика Airpulse A100: «одомашненные» студийные мониторы Музыкант и разработчик акустических систем с крайне обширным опытом работы Фил Джонс предоставил знания и навыки, компания Edifier — производственные мощности, а на выходе получилась акустика под брендом Airpulse, унаследовавшая целый ряд черт от профессиональных мониторов. ...

Пространственная осведомленность: что могут очки Hololens? Сегодня мы совершим прыжок в область Spatial Awareness с помощью очков Hololens от Microsoft и поговорим о развитии Windows Mixed Reality (WMR), а также о том, чего стоит ожидать от второго поколения. Статья рассчитана на тех, кто занимается разработкой под Hololens с испо...

Пентаалмаз: как алмаз, только тверже Порой незначительные, на первый взгляд, детали имеют невероятное влияние на общую картину. Этот принцип применим ко многим сферам нашей жизни: таинственная улыбка Моны Лизы, породившая уйму теорий и спекуляций; одна строка кода, способная напрочь изменить функционал програ...

Как построить свою систему поиска похожих изображений В интернете есть много информации о поиске похожих изображений и дубликатов. Но как построить свою систему? Какие современные подходы применять, на каких данных обучать, как валидировать качество поиска и куда смотреть при выводе в production?В этой статье я собрал все необх...

Микрофронтенды. Учимся на ошибках В этой статье я расскажу с какими проблемами удалось столкнуться при построении микрофронтендов, каким образом их можно было бы избежать, а также немного привнести полученного опыта в довольно редкоподнимаемую тему микрофронтендов. Микрофронтенды на iframe В одной компани...

Оптимизация микросервиса на Go на живом примере Всем привет. Меня зовут Нещадин Иван, и я расскажу про оптимизацию одного из микросервисов Авито на Go. История построена вокруг различных инструментов, которые доступны в языке, и пойдёт от простых примеров к более сложным. Читать да...

[Перевод] «А Crysis потянет?» Почему до сих пор обсуждают игру, выпущенную 13 лет назад Каждый год выпускаются сотни новых игр. Некоторые из них добиваются успеха и продаются миллионами копий, но само по себе это не гарантирует статуса легенды. Однако изредка появляются игры, которые становятся частью истории отрасли, и мы продолжаем обсуждать их и играть в ни...

[Перевод] Независимость микросервисов Микросервисная архитектура в настоящее время очень популярна. Много кто ее использует, хотя и не всегда на все 100%. Но для успешного применения такого подхода, каждый из микросервисов должен: Читать далее

Трассировка и мониторинг в Istio: микросервисы и принцип неопределенности Принцип неопределенности Гейзенберга гласит, что нельзя одновременно измерить положение объекта и его скорость. Если объект движется, то у него нет местоположения. А если местоположение есть – значит у него нет скорости. Что касается микросервисов на платформе Red Hat Ope...

[Перевод] О наблюдаемости микросервисов в Kubernetes Вам нужны наблюдаемые микросервисы, но вы еще не знаете, как их реализовать с помощью Kubernetes? Ну что ж… возможно это именно та статья, которую вы искали.Во-первых, давайте разберемся, что такое наблюдаемость. Этот термин возник в инженерии систем управления и был определ...

[Перевод] Продуктовые стратегии для затрат перехода Перевод статьи подготовлен в преддверии старта курса «Product Manager IT-проектов». В своей предыдущей статье мы говорили о трех категориях затрат перехода: финансовых, процедурных и реляционных. Как можно использовать затраты перехода, чтобы повысить ценность вашего прод...

CSS Grid понятно для всех Что такое Grid? Grid представляет собой пересекающийся набор горизонтальных и вертикальных линий — один набор определяет столбцы, а другой строки. Элементы могут быть помещены в сетку, соответственно строкам и столбцам. Поддержка браузерами В 2020 году поддержка браузерами...

Какие животные жертвуют жизнью ради секса В природе есть много примеров самопожертвования, один из самых распространенных - самопожертвование ради потомства (бывает, животные рискуют жизнью ради близких родственников или всей популяции или группы, но это другая история). Приводим самые экзотические: эти животные всю...

[Перевод] Напишем и поймем Decision Tree на Python с нуля! Часть 3. Библиотека для анализа данных Pandas Привет, Хабр! Представляю вашему вниманию перевод статьи "Pythonで0からディシジョンツリーを作って理解する (3. データ分析ライブラリPandas編)". Это третья статья из серии. Ссылки на предыдущие статьи: первая, вторая В данной статье я объясню, как работать с библиотекой Pandas, чтобы создавать De...

Поговорим с мышами? Или Soft USB HOST на Esp32 Esp32 весьма мощный контроллер, подходящий для эмуляции различных ретро систем, таких как Spectrum, Commodore, NES, IBM PC-XT и т.д. Есть возможность сгенегировать VGA или AV - TV композитный сигнал, подключить различные компактные LCD дисплеи. Он умеет разговаривать с SD ка...

Микросервисы VS монолит: баттл адептов Монолитная и микросервисная архитектуры — два диаметрально разных подхода. Во время круглого стола на конференции DevOps Live 2020 столкнулись адепты этих архитектур, которые в формате баттла искали ответы на самые актуальные вопросы. Избыточны ли ресурсы на каждый микросерв...

Сказ о том, как я Home Assistant настраивал Home Assistant — это популярная система умного дома, которая автоматизирует привычные бытовые процессы и работает на YAML файлах. В этой статье я расскажу, как настроить Home Assistant (далее HA), и что конкретно я использую в повседневной жизни. Это поможет вам избежать ош...

ERP для собственников. Философское. Часть 1 Привет. Меня зовут Олег и я занимаюсь внедрениями систем управления предприятиями более четверти века.Я решил написать цикл статей на основе материалов моей книжки “ERP для собственников”, которая скоро появится в книжных магазинах.В первой статье я хочу поговорить о главной...

Первый опыт с Raspberry Pi или микросервисы для дома Данная статья будет полезна тем, кто никогда прежде не экспериментировал с Raspberry, но считает, что этому самое время.Привет, Хабр! Тенденция приписывать любому техническому устройству эпитет «умный» достигла, кажется, своего апогея (по количеству употребления, разумеется)...

Типы клиентской поддержки и обзор Help Desk систем для автоматизации На российском рынке представлен большой выбор help desk систем, которые позволяют автоматизировать процессы постпродажного обслуживания. С одной стороны, это хорошо, так как у каждой компании есть возможность подобрать решение для своего бизнеса и под свои задачи. С другой с...

Apple shortcuts: генератор QR-кодов В этой статье я хочу рассказать о том, как создавать qr-коды прямо на вашем айфоне без сторонних приложений или сайтов с кучей рекламы и ограничениями. Читать далее

Компания Hikvision рассказала об особенностях работы современных СКУД. Итоги вебинара «Распознавание лиц – в каждый офис» Современный офис обладает сложной и разветвленной ИТ-инфраструктурой, которая объединяет самые разные системы, включая также системы безопасности. Поэтому возможность интеграции систем контроля доступа и их отдельных элементов в действующую ИТ-среду компании, объединения с к...

Невыдуманные истории из телекома начала 2000-х Эти невыдуманные истории... хотя ладно, давайте на всякий случай считать что они целиком и полностью выдуманные, а любые совпадения с реально существующими людьми, компаниями и явлениями совершенно случайны.Так вот, эти истории произошли в одном небольшом провинциальном горо...

Пишем блог на микросервисах – часть 3 «User» Во второй части нашего цикла статей «Пишем блог на микросервисах» мы описали «API Gateway». Здесь мы опишем реализацию микросервиса User. Читать дальше →

SaltStack — Темная лошадка систем управления конфигурациями В этой статье я постараюсь рассказать чем интересен SaltStack, и почему он может быть идеальной системой управления конфигурациями и оркестрации приложений.Это мое личное мнение основанное на десятке лет работы с различными системами конфигураций и двухлетнего периода миграц...

Как не купить свою органику — гайд по инкрементальности в маркетинге Каждый день компании теряют значимую часть бюджета на пользователей, которых получили бы и так, бесплатно. Представьте, что вы могли бы знать, какая часть маркетингового бюджета расходуется впустую, и сэкономить его. В этой статье мы научимся это делать.О чем поговорим в ста...

[Личный опыт] Еще про работу в Uber в Амстердаме: интервью, рост внутри компании, коммуникации Какие этапы интервью ждут разработчика в Uber? Как расти внутри компании? Как происходит продвижение по грейдам? На вебинаре поговорили с Алиной Коваленко, Software Engineer II в Uber. В прошлой статье она рассказывала про рабочие процессы в компании и переезде в Амстер...

Как разработчику может помочь собственный YouTube-канал? Сегодня вышел специальный выпуск моего подкаста Frontend Weekend, где я (его бессменный ведущий Андрей Смирнов) поговорил с Алексеем Картынником, который на своем мега-популярном YouTube-канале представляется как Лекс АйТиБорода.Ну а здесь частично решили расшифровать по...

[Перевод] Как использовать IndexDB для управления состоянием в JavaScript Эта статья — перевод оригинальной статьи Craig Buckler "How to Use IndexDB to Manage State in JavaScript".В этой статье объясняется, как использовать IndexedDB для хранения состояния в типичном клиентском приложении на JavaScript.Код доступен на Github. Он представляет ...

Системы класса Incident Response Platform: применение и основные функции Друзья, в предыдущей публикации мы проанализировали международные документы по управлению рисками информационной безопасности, а в более ранних статьях рассмотрели основы информационной безопасности, обсудили законодательство в области защиты персональных данных и критическо...

Фичи JavaScript. Часть 1 Доброго времени суток, друзья! В этой статье я хочу поделиться с Вами некоторыми находками, сделанными мной в процессе изучения JavaScript. Возможно, Вы найдете для себя что-то интересное. Данная часть серии будет посвящена, преимущественно, работе с DOM. Рекомендую прим...

Итоги 2020: Gartner и NGFW, Сheck Point, прогнозы для 2021 года Друзья, провожаем насыщенный на события 2020 год, подводим итоги и делимся с вами последними новостями. Сегодня мы поговорим о прогнозах развития ситуации в мире касательно ИБ, рассмотрим тот самый магический квадрат Gartner для NGFW, дадим полезные советы перед 2021 годом и...

И Oppo туда же. Компания хочет делать свои электромобили В конце марта Xiaomi провела масштабную презентацию своих новинок, которая растянулась на два дня. Но, пожалуй, главный посыл, который прозвучал — компанию ожидают значительные изменения. В частности, у нее есть задор и желание создавать электромобили. И это будет последний ...

И Oppo туда же. Компания хочет делать свои электромобили В конце марта Xiaomi провела масштабную презентацию своих новинок, которая растянулась на два дня. Но, пожалуй, главный посыл, который прозвучал — компанию ожидают значительные изменения. В частности, у нее есть задор и желание создавать электромобили. И это будет последний ...

Один день удаленного тимлида на бэкенде Привет, Хабр! Я - бэкенд разработчик на удаленке из Максилекта. Сейчас я работаю на внутреннем проекте компании, который мы реализуем совместно с партнером из Румынии. На собственных проектах с высокими нагрузками и ограниченными серверными ресурсами бывает всякое. Иногда у ...

[Перевод] Нагрузочное тестирование на Gatling — Полное руководство. Часть 1 Эта статья представляет собой полное, подробное и исчерпывающее руководство по эффективному использованию Gatling для нагрузочного тестирования. Если вам нужно провести нагрузочное тестирование вашего сервера HTTP-приложений, то Gatling - идеальный инструмент для этой задачи...

[Перевод] @Once: однократные замыкания В Swift 5.5 появилась возможность использовать обертки свойств на параметрах функций и замыканий. Это наконец позволило мне реализовать то, что я и многие другие люди всегда хотели видеть в Swift — способ каким-либо образом обеспечить, чтобы замыкание (closure) вызывалось ро...

Майнкрафт для геологов: 3D-рендеринг миллиарда ячеек на встроенной видеокарте (часть 1) В одной из прошлых статей с подозрительно похожим заголовком мы показали, как построить модель месторождения и посчитать свойства пласта глубоко под землёй, используя крохи информации о породе, полученной со скважин.В этой статье мы расскажем, как отобразить модель месторожд...

[Перевод] Заблуждения программистов о Биткоине Статья в уже ставшем классикой формате о самых распространённых заблуждениях, связанных с Биткоином. Здесь не будет вдохновенных речей об экономических революциях — лишь сугубо технические детали. Читать далее

Тревога, тревожность, стресс В этой статье я хочу поговорить с вами о трех важных составляющих нашей жизни, которые каждого из нас в те или иные периоды жизни могут захватывать и куда-то нести. Опишу, чем они различаются и как проявляются, и приведу примеры из практики.И, разумеется, постараюсь ответить...

Мониторинг бизнес-процессов Camunda Привет, Хабр. Меня зовут Антон и я техлид в компании ДомКлик. Создаю и поддерживаю микросервисы позволяющие обмениваться данными инфраструктуре ДомКлик с внутренними сервисами Сбербанка. Это продолжение цикла статей о нашем опыте использования движка для работы с диаграмм...

[Перевод] Ода Excel: 34 года волшебства Примечание: статья была написана в 2019 году, а в этом Microsoft Excel отмечает уже 35-летний юбилей. Чему инструмент, выдержавший проверку временем, может научить нас в эпоху «софта, который пожирает мир»? В статье я хочу показать вам, как фундаментальные принципы, стоящи...

Кого вы хотите принять на работу? Когда я принимаю решение о том, какую выбрать архитектуру приложения, или как спроектировать БД, или какие нужны подготовительные работы для старта, или о том, что написать в следующем блоке кода, я думаю. Думаю о том, что я хочу получить, о том, как это решает мою проблему,...

Что не так с интерфейсами SCADA-систем В этой статье хочу рассказать и поделиться своим мнением насчет пользовательских интерфейсов scada-систем и систем диспетчеризации в целом. Основная направленность нашей работы — разработка комплексных систем диспетчеризации инженерных и технических коммуникаций. Проще говор...

[Перевод] Kонференция NDС London. Предотвращение катастрофы микросервисов. Часть 1 Вы потратили месяцы, переделывая свой монолит в микросервисы, и наконец, все собрались, чтобы щелкнуть выключателем. Вы переходите на первую веб-страницу… и ничего не происходит. Перезагружаете ее — и снова ничего хорошего, сайт работает так медленно, что не отвечает в течен...

Пишем простейший GitHub Action на TypeScript Недавно я решил немного привести в порядок несколько своих .NET pet-проектов на GitHub, настроить для них нормальный CI/CD через GitHub Actions и вынести всё в отдельный репозиторий, чтобы все скрипты лежали в одном месте. Для этого пришлось как следует изучить документацию,...

Энергетика от мха до плазмы Мы часто слышим, что за последние годы использование энергии человечеством увеличилось настолько, что ископаемые ресурсы закончатся через пару десятков лет. Но то же самое говорили и в 70-х годах прошлого века. Откуда мы тогда сегодня берем энергию для существования и что на...

В поиске Земли 2.0: четверть солнцеподобных звезд пожирают свои планеты Планетные системы распространены по всей галактике, но иногда солнца пожирают свои миры

Идеальный инструмент для работы с СУБД без SQL для Node.js или Все, что вы хотели знать о Sequelize. Часть 2 Представляю вашему вниманию руководство по Sequelize. Sequelize — это ORM (Object-Relational Mapping — объектно-реляционное отображение или преобразование) для работы с такими СУБД (системами управления (реляционными) базами данных, Relational Database Management System, RD...

Тихая революция и новый дикий запад в ComputerVision Казалось бы, революция с Computer Vision уже была. В 2012 году выстрелили алгоритмы основанные на сверточных нейронных сетях. Года с 2014 они дошли до продакшна, а года с 2016 заполонили все. Но, в конце 2020 года прошел новый виток. На этот раз не за 4 года, а за один. по...

«Вертушки» до 25 тысяч рублей — три избранные модели Ранее мы поговорили о проигрывателях, цена на которые «плавает» в районе двадцати тысяч рублей, чуть спускается под эту планку, доходит до пятнадцати тысяч и становится еще более скромной для самых базовых моделей «вертушек».На этот раз постепенно переходим к аудиотехнике бо...

[Перевод] Сетки из треугольников в играх Поговорим о сетках треугольников. Сетки квадратов используются практически повсюду, от пикселей изображения до расположения домов в квартале. Сетки шестиугольников представлены тоже довольно широко, особенно в настольных играх. Однако сетки треугольников (равномерное заполн...

Docker и все, все, все TL;DR: обзорная статья-руководство по сравнению сред для запуска приложений в контейнерах. Будут рассмотрены возможности Docker и других схожих систем. Читать дальше →

5.  Континент 4 Getting Started. Обнаружение и предотвращение вторжений (IDS/IPS) Приветствую читателей в пятой статье цикла Континент Getting Started. Сегодня речь пойдет о таком механизме как обнаружение и предотвращение вторжений (IDS/IPS). Важно! Все следующие статьи будут опубликованы на нашем учебном портале и в Telegram канале.В Континент 4.1 есть ...

Обеспечение связью подвижных объектов и инструменты повышения ее надёжности Очень бы хотелось в данной статье дать много полезной справочной информации по сему вопросу, включая обзоры научно-практических исследований. Итак, предположим, что отправляем в путь военную автоколонну. Согласно регламенту, одним из неотъемлемых атрибутов данного комплекс...

[Перевод] Создаем план действий с помощью AWS Cloud Adoption Framework Перевод статьи подготовлен специально для студентов курса «Cloud Solution Architecture». Источник Скачать руководство Планы действий AWS CAF помогут вам подготовиться к переходу на облачный стек технологий. Путешествие начинается с того, что ваша команда руководителей...

WhatsApp уже с 1-го числа перестанет работать на всех версиях Android и iOS Нет на всем земном шаре ни одного более известного и распространенного мессенджера, чем WhatsApp. Это совершенно бесплатное программное обеспечение, обладающее целой массой различных возможностей и интересных особенностей. С его помощью можно обмениваться медиафайлами, отпр...

[Перевод] Семь самых распространенных ошибок при переходе на CI/CD Если ваша компания только внедряет DevOps или инструменты CI/CD, вам может быть полезно познакомиться с самыми распространенными ошибками, чтобы не повторить их и не наступать на чужие грабли.  Команда Mail.ru Cloud Solutions перевела статью Avoid These Common Pitfalls Whe...

[Перевод] Как понять свойство clip-path в CSS В те далёкие времена, когда я впервые столкнулся со свойством CSS clip-path, мне потребовалось больше времени, чем я ожидал, и я изо всех сил старался запомнить, как работает свойство. Не знаю точно, почему так получилось, но, может быть, потому, что я не пользовался им част...

Где работать в ИТ в 2021: DataArt Сегодня в новом выпуске рубрики «Где работать в ИТ» рассказываем о компании DataArt, которая стояла у истоков многих успешных сервисов и проектов, самый известный из которых, конечно же, Mail.ru.В 2020 году сотрудники на Хабр Карьере оценили компанию на 4,3 балла из пяти, да...

Расщепление монолита — пилотный опыт Без году неделя как я одним пятничным утром провел инсайд доклад для группы разработки в компании. Речь шла о довольно занимательном командном опыте ремастера проекта через применение множеств, в наше время, уже не новых практик и подходов, но ранее мне неизвестных.После при...

Руководство по модулю клавиатуры Python Python является одним из наиболее подходящих языков для автоматизации задач. Будь то повторяемый (этический) веб-скоб через некоторое время, запуск некоторых программ при запуске компьютера или автоматизацию отправки повседневных электронных писем, Python имеет много модулей...

Таблетки не сработают: что не так с мейнстримом продления жизни Я бы не хотел умирать.К сожалению, на данный момент состояние технологий таково, что моя жизнь неизбежно прекратится. Случится ли это через 5 лет или через 100 - не так важно, до 200-летнего юбилея я однозначно не доживу. Экспоненциальный рост количества поломок в организме,...

[Перевод] Однобуквенные языки программирования Список языков программирования, названных одной буквой. А Язык программирования A+ является потомком APL, как и другие языки на этой странице, потому что сообщество APL любит однобуквенные имена. Артур Уитни (создатель многих диалектов APL) создал A, затем Морган Стенли...

Проблемы и перспективы AT & T Последний год характеризуется беспрецедентным ростом всех рынков. Так, за год с декабря 2019 по декабрь 2020 акции крупнейших компании технологического сектора, так называемые FAAMG ( Facebook, Amazon, Apple, Microsoft, Google) выросли на 48%. Акции остальных 500 крупнейших ...

Правильная архитектура MMO эмулятора Предыстория/Мотивация Все началось с хобби в начале 2020 года — с очередной попытки написания эмулятора игрового сервера Lineage 2 "по новому". Перед этим шагом было несколько попыток распиливания монолита существующих решений на рынке по новым практикам разработки...

Ученым впервые удалось изучить напрямую свойства одного из наиболее таинственных элементов - Эйнштейния На нижнем краю периодической системы химических элементов скрываются самые большие атомы-гиганты, очень нестабильные, редко существующие в природе и, поэтому, очень и очень трудно поддающиеся изучению. Но не так давно один из таких атомов-гигантов позволил-таки ученым разгад...

Сборка мусора. Разбираем мифы об автоматическом управлении памятью Для подписчиковКогда читаешь дискуссии между сторонниками и противниками автоматического управления памятью, может сложиться впечатление, будто это какая-то единая технология, одинаково реализованная во всех языках программирования. В этой статье мы поговорим о сборке мусора...

Работа с асинхронностью в Dart Всем привет! Меня зовут Дмитрий Репин, я Flutter-разработчик в Surf.В этой статье я расскажу о том, как работать с асинхронностью в Dart: всё о самых важных классах библиотеки dart:async с примерами под катом. Поговорим о том, как в однопоточном языке сходить в сеть или базу...

Автоматизированное развертывание в Kubernetes с помощью Helm и дополнительной шаблонизации В этой статье я расскажу и покажу, как при помощи Helm и некоторых дополнительных инструментов построить и настроить автоматическое развертывание в Kubernetes для системы из (микро)сервисов и не потеряться во множестве шаблонов и манифестов. Мы успешно реализовали такой подх...

SNMP MIB браузер на Perl и JavaScript Что делать на работе, если не знаешь, чем бы еще заняться? Конечно же писать на Хабр!Благодаря нашим доблестным законодателям, дальнейшее развитие бизнеса самостоятельно - нерентабельно и мы уходим под более крупного оператора. Вот у меня и сложилась такая ситуация, что смыс...

Сервис «Совесть» может быть выставлен на торги Руководство Qiwi рассматривает возможность модернизации сервиса «Совесть». Одним из вариантов может стать развитие сервиса рассрочки в партнерстве со сторонними банками.

[Перевод] Разбираемся с not в Python В этой статье из серии про синтаксический сахар в Python я займусь на первый взгляд очень простым синтаксисом, но на самом деле, чтобы разобраться в механике его работы, нужно погрузиться вглубь на несколько слоев. Мы будем говорить о not.Определение звучит на...

Наиболее полное руководство по практическому использованию Web Speech API В этой статье я хочу поделиться с вами результатами изучения основных возможностей Web Speech API (далее — WSA). Введение WSA — это экспериментальная технология, состоящая из двух интерфейсов: SpeechSynthesis (интерфейс для перевода текста в речь) и SpeechRecognition (интер...

С помощью перехода на микросервис мы ускорили бизнес-процесс в 60 раз Группа М.Видео-Эльдорадо в начале 2021 года представила стратегию Hacking Retail. За 5 лет мы планируем увеличить общий товарооборот вдвое до 1 млрд рублей и в три раза расширить ассортимент, в том числе за счет развития собственного маркетплейса. Обеспечить этот рост в ко...

[Перевод] Миграция API с REST на gRPC в WePay В предыдущих постах серии о service mesh мы говорили о настройке инфраструктуры для модернизации нашей микросервисной архитектуры и архитектуры балансировки нагрузки, а также о том, как мы обеспечиваем высокую доступность для использования всех замечательных возможностей ser...

[Перевод] Как распаковать вредоносное ПО с помощью x64dbg Эта статья представляет собой руководство по x64dbg, в котором объясняется и демонстрируется методика реверс-инжиниринга вредоносных программ. Она является продолжением нашей серии публикаций, посвященных x64dbg: Читать далее

[Перевод] Локализация в ASP.NET Core Razor Pages — Культуры Привет, хабр! Прямо сейчас OTUS открывает набор на новый поток курса "C# ASP.NET Core разработчик". В связи с этим традиционно делимся с вами полезным переводом и приглашаем записаться на день открытых дверей, в рамках которого можно будет подробно узнать о курсе, а также за...

[Перевод] Как приручить событийно-ориентированные микросервисы Современные микросервисные архитектуры являются событийно-ориентированными, реактивными и придерживаются хореографического подхода (в противовес к централизованному контролю через оркестратор), что позволяет им быть слабо связанными и легко изменяемыми, не так ли?TL;DR: А в...

Water Simulation Появилась возможность рассказать о том как мы создавали жидкость для TReload. Нам всего лишь нужно было залить уровни кислотой. Кислоты должно быть много, площади затопления огромные :) Один из финальных результатов: Читать далее

Как обманывают на it-курсах и что скрывает реклама профессии программиста? В этом году мы попались на рекламу профессии программиста. Повлияла самоизоляция и появившаяся тревога за будущее. Эта история про моего супруга, который расценил рекламу профессии программиста как возможность изменить свою жизнь к лучшему и стать востребованным специалистом...

Как я сделал Discord бота для игровой гильдии с помощью .NET Core Всем привет! Недавно я написал Discord бота для World of Warcraft гильдии. Он регулярно забирает данные об игроках с серверов игры и пишет сообщения в Discord о том что к гильдии присоединился новый игрок или о том что гильдию покинул старый игрок. Между собой мы прозвали эт...

Когда стоит выбирать микросервисы Всем привет! Меня зовут Виктория, в Typeable я занимаюсь вопросами архитектуры приложений и не могла пройти мимо вечного вопроса: быть или не быть? Точнее переводить нам наши решения на микросервисы или нет. И с целью это понять я провела небольшое исследование возможных при...

Бизнес-план и Бизнес-модель: Курс Создание программного продукта и управление его развитием Привет, Хабр! Продолжая серию публикаций по продуктовому менеджменту, сегодня мы поговорим про бизнес-план и бизнес-модель. Часто бизнес-планирование считают делом бухгалтеров и финансистов, но на практике эти задачи имеют прямое отношение к деятельности менеджера по прод...

Вы делаете это неправильно: расчет глубины Приветствую вас, глубокоуважаемые! Что если я скажу, что глубина, что бы вы под ней не подразумевали, является одной из самых сложных для точного измерения величин? На какой глубине плывет подводная лодка? Какая глубина марианской впадины? На какой глубине лежит Титаник? Ес...

Как найти идеального кандидата, и что делать с неидеальными Привет, Хабр!На связи Андрей Рыжкин, CTO AGIMA. В нашей компании более 30 команд разработки, и у каждой свой тимлид (или несколько). Людей много, а значит, их нужно нанимать, развивать, мотивировать, а иногда – расставаться с ними. Работа с людьми на мой взгляд – это одна из...

[Перевод] Обрезаем строки: переход с Puppet Enterprise на Ansible Tower. Часть 1 Национальная информационная служба спутниковых данных об окружающей среде (NESDIS) на 35% снизила свои затраты на управление конфигурацией Red Hat Enterprise Linux (RHEL), перейдя с Puppet Enterprise на Ansible Tower. В этом видео категории «как мы это сделали» системный инж...

Идеальный инструмент для работы с СУБД без SQL для Node.js или Все, что вы хотели знать о Sequelize. Часть 1 Представляю вашему вниманию руководство по Sequelize. Sequelize — это ORM (Object-Relational Mapping — объектно-реляционное отображение или преобразование) для работы с такими СУБД (системами управления (реляционными) базами данных, Relational Database Management System, RD...

[Перевод] Сравниваем производительность REST и gRPC У меня есть несколько микросервисов, которые общаются друг с другом с помощью JSON через REST, и мне кажется, что скоро они достигнут предела производительности VPS, и мне нужно будет его апгрейдить, чтобы не было просадки по производительности.И я решил оценить, какой выигр...

Умный аналитик – глупый разработчик vs. глупый аналитик – умный разработчик Или как понять, когда остановитьсяКак-то раз мой коллега, лид разработки, после затяжного спора о том, что должно быть в системной спецификации, подошел ко мне и спросил:— Скажи, а зачем нам вообще нужны аналитики?— И действительно, зачем? – подумал тогда я и написал заявлен...

Как мы построили динамические отчеты на SSRS 2014 Мы уже рассказывали, как помогли одной производственной компании трансформировать процессы корпоративного обучения и развития персонала. Сотрудники заказчика, которые тонули в бумажных документах и Excel-таблицах, получили удобное iPad-приложение и веб-портал. Одна из самых ...

Си Цзиньпин: КПК выполняет обязательства по борьбе с нищетой, никого не оставляя за бортом ПЕКИН, 29 апреля 2021 г. /PRNewswire/ — Информационное сообщение канала CCTV+: В минувший вторник председатель КНР Си Цзиньпин заявил, что китайский народ, Коммунистическая партия Китая (КПК) и руководство КПК выполняли и будут выполнять свои обязательства, не оставляя...

Системы контроля управления доступом в IoT — умеем, знаем, практикуем И снова привет, мир!В прошлой статье про IoT-елочку в голосовании многие отметили, что интересна тема управления устройствами в зависимости от количества человек в помещении. Это довольно масштабная задача, и мы предлагаем разделить ее решение на несколько этапов. Сегодня по...

Анализируем причинно-следственные связи метрик ВКонтакте Всем привет, меня зовут Анвер, я работаю в команде Core ML ВКонтакте. Одна из наших задач — создавать и улучшать алгоритмы ранжирования для ленты новостей. В этой статье расскажу о том, как можно применять для этого причинно-следственный анализ — чтобы в результате сделать с...

[Перевод] Swift Property Wrappers Если вы использовали SwiftUI, то наверняка обращали внимание на такие ключевые слова, как @ObservedObject, @EnvironmentObject, @FetchRequest и так далее. Property Wrappers (далее «обёртки свойств») — новая возможность языка Swift 5.1. Эта статья поможет вам понять, откуда же...

Windows 10 получила новую функцию, которую все ждали больше пяти лет Нет на рынке ни одной другой более известной, популярной и распространенной операционной системы для персональных компьютеров, ноутбуков, планшетов, моноблоков и других электронных устройств, кроме как Windows 10, а обладает она очень большими просто громадными функциональн...

[Перевод] Никаких митингов, дедлайнов и сотрудников на полную ставку Я основал компанию Gumroad в 2011 году. В 2015 году у нас было рекордное количество людей - 23 штатных сотрудника с полной занятостью. В 2016 году, после неудачной попытки поиска финансирования, я вернулся в точку, с которой начинал. В компании снова был всего один сотрудник...

Зачем инженеру-конструктору нужны свойства материала и где их взять Хабр, привет. Меня зовут Олег Копаев, я руковожу командой компьютерного моделирования в компании «Северсталь». Моделирование производства и использования продукции помогает компаниям сократить затраты. Вместо того чтобы экспериментировать на реальном производстве, лучше снач...

Первые пять шагов для перелома ситуации с читерами в PvP-шутере Мы прошли долгий путь от появления в игре первых читеров до полного пересмотра подхода к разработке, чтобы создавать защищенные по умолчанию проекты. О том, как в игре появились читеры, я рассказал в прошлом материале. И там же привел список подзадач, которые мы выкатили одн...

Может ли Apple попросту купить Arm Holdings? SoftBank рассматривает возможность продажи этого своего актива Осенью 2016 года японский гигант SoftBank за 31 млрд долларов приобрёл компанию Arm Holdings. Недавно Apple объявила о том, что собирается отказаться от процессоров Intel и перейти на решения собственной разработки, основанные на архитектуре Arm. Как сообщает источник,...

Соревнования по программированию на платформе All Cups Привет, мир! Сегодня мы поговорим про спортивное программирование с Дмитрием Санниковым, CTO образовательных проектов Mail.ru Group и руководителем платформы All Cups. Статья написана по мотивам интервью для подкаста «Пятиминутка PHP». Читать далее

Неявный вывод в Scala Многие начинающие и не очень Scala разработчики принимают implicits как умеренно полезную возможность. Использование обычно ограничивается передачей ExecutionContext  во Future. Другие же избегают неявного и считают возможность вредной. Но я считаю этот механизм важным...

Как отличать объекты друг от друга и при чем тут хеш-функции Привет! Я возглавляю направление R&D в компании «ЛАНИТ – Би Пи Эм», которая  специализируется на автоматизации бизнес-процессов. Мы исследуем тренды, готовим образовательные программы для технических сотрудников, ведем собственную продуктовую разработку. Наши наработки у...

Free Trial, motherf***er, do you need it? — или почему бесплатные траялы и фримиум модели подходят далеко не для всех На этой неделе случилось 3 вещи: Несколько дней назад в своей статье о фреймворке формировании привычек я обещал рассказать о том, почему мы используем ПЛАТНЫЙ VS бесплатный trial-период в своих продуктах. Ребята из Getcourse написали заплюсованую статью про онлайн-школ...

[Перевод] История развития видеоконференций Скриншот CU-SeeMe — одной из первых Интернет-систем для видеоконференций, появившейся ещё в 1992 году. В бизнес-среде и «оборонке» примеры использования технологий видеоконференций возникли ещё 1980-х. Несмотря на четыре десятка лет эволюции технологий, видеоконференции на...

Как улучшить ваш API сервис на node.js. Часть 1 Сейчас доступно приличное количество материалов по написанию API на node.js. Большинство из них в виде туториалов и демо-примеров в документациях. Этого достаточно, чтобы быстро разобраться и написать что-то свое. Но в них редко найдутся детали, почему это делается именно та...

7 фразовых глаголов с take и 30 их значений. На первый взгляд все просто, но на второй — нет В одном из прошлых материалов мы рассказали вам о фразовых глаголах, в которых есть слово get. Статья была принята очень хорошо, поэтому мы решили сделать еще одну. На этот раз с глаголом take.Мы насчитали минимум 65 фразовых глаголов и их значений с take — и не исключено, ч...

Android + Redux = <3 Привет! Меня зовут Виталий Сулимов, я Android-разработчик в компании Wheely, и сегодня я бы хотел поговорить с вами об архитектуре мобильных приложений. А именно о том, как мы в компании применили Redux-архитектуру к двум нашим приложениям и что из этого вышло. Дисклеймер #1...

Проблемы правового регулирования искусственного интеллекта Введение В 21 веке перед человечеством остро встаёт вопрос о внедрении искусственного интеллекта (далее – ИИ) в повседневную жизнь. В данной статье дефиниции «искусственный интеллект» и «робот» специально не разделяются ввиду действительной конвергенции данных понятий. ИИ...

Майк Масгнаг присоединяется к глобальной команде руководства компании Discovery Life Sciences в качестве директора по прибыли ТОП-МЕНЕДЖЕР С ОГРОМНЫМ ОПЫТОМ В МЕДИКО-БИОЛОГИЧЕСКОЙ ОТРАСЛИ ПОМОЖЕТ DISCOVERY LIFE SCIENCES РАСШИРИТЬ ВОЗМОЖНОСТИ ДЛЯ ПОЛУЧЕНИЯ ПРИБЫЛИ НА ПУТИ К ЛИДЕРСТВУ ХАНТСВИЛЛ (шт. Алабама), 9 сентября 2021 г. /PRNewswire/ — Компания Discovery Life Sciences™ (далее — Di...

[Перевод] Обрезаем строки: переход с Puppet Enterprise на Ansible Tower. Часть 2 Национальная информационная служба спутниковых данных об окружающей среде (NESDIS) на 35% снизила свои затраты на управление конфигурацией Red Hat Enterprise Linux (RHEL), перейдя с Puppet Enterprise на Ansible Tower. В этом видео категории «как мы это сделали» системный инж...

[Перевод] Как написать собственное свойство CSS Благодаря Paint API из состава Houdini можно не ждать выхода новых возможностей CSS. Шаг за шагом автор этого материала показывает, как написать новое свойство CSS для анимации с фрагментацией. Делимся материалом, пока у нас начинается курс по Frontend-разработке. Читать дал...

Тестируем производительность кода с помощью Jetpack Microbenchmark В мобильной разработке периодически возникают ситуации, когда нужно оценить время выполнения кода. Помимо теоретических подходов (например, Big O), которые позволяют отсеять очевидно неудачные решения, существуют бенчмарки для тестирования кода и поиска более мелких отличий....

Как я подружил BPMN и Bitbucket Привет, Хабр! Я техлид в компании ДомКлик. В основном занимаюсь backend-разработкой. Мне периодически приходится погружаться и во front-разработку, но этого не происходило уже более двух лет. Сегодня я расскажу, как мне пришлось заняться front-разработкой для создания плагин...

[Перевод] C# 8 и null-допустимость. Как нам с этим жить Здравствуйте, коллеги! Пришло время упомянуть, что у нас в планах — выпуск фундаментальной книги Иэна Гриффитса по C#8: Тем временем, в своем блоге автор опубликовал две взаимосвязанные статьи, в которых рассматривает тонкости таких новых явлений, как «nullability», «null-...

[Из песочницы] Как выбрать оптимальный материал на ранних этапах проектирования? Казалось бы, есть наработанные годами сферы применения материалов. Есть рекомендации от производителя материалов — бери и делай. Но в современном мире потребителям доступны сотни тысяч различных материалов со своими особенностями. Как разобраться в этом хаосе? Как понять, чт...

Обзоры о железе и IT-задачи в энтерпрайзах: что ждет нас на пороге четвертой промышленной революции Туса на конференциях — хорошо это или плохо? Олег Бунин, признанный российский эксперт в области высоких интернет-нагрузок и организатор ведущих в России профессиональных конференций, считает нетворкинг важной частью мероприятия и призывает использовать его по максимуму.Мы п...

Вам не нужен end-to-end? Борьба с шифрованием в западном мире набирает обороты В прошлый раз мы поговорили о том, кто и где ведет наиболее активную борьбу со сквозным шифрованием. Одни из «лидеров» в этом процессе — структуры Великобритании. Но они не одиноки в своих начинаниях, и сегодня мы обсудим опыт их «коллег» из других стран. Читать далее

[Перевод] Дизайн-токены способны на большее: создаем единый источник информации о компонентах UI Термином «дизайн-система» в IT давно никого не удивишь. Компании систематизируют дизайн продуктов, придумывая свои или используя чужие инструменты для управления стилями, паттернами и компонентами.  Badoo не является исключением: с помощью нашей дизайн-системы Cosmos мы подд...

Паттерн «сага» как способ обеспечения консистентности данных Всем привет. Уже сейчас в OTUS открывает набор в новую группу курса «Highload Architect». В связи с этим я продолжаю серию своих публикаций, написанных специально для этого курса, а также приглашаю вас на свой бесплатный демо урок по теме: «Индексы в MySQL: best practices и ...

Как писать читаемый код Бывает, что посмотрев на старый код, мы говорим: «Его проще переписать, чем поменять». Печально, если речь идет о нашем собственном коде, с такой любовь написанном несколько лет назад. Head of Developer Relations в Evrone Григорий Петров в своем докладе на TechLead Conf 2020...

Activision Blizzard считает приоритетным игровым направлением мобильные платформы Недавний провал с Warcraft III: Reforged может иметь вполне логическое объяснение, подкрепленное финансовыми перспективами разных игровых платформ. Как заявил генеральный директор Activision Blizzard Бобби Котик (Bobby Kotick), руководство компании рассматривает игры для сма...

Наблюдательный пост пессимиста: технические и концептуальные решения в системе мониторинга Lamoda Всем привет! Меня зовут Александр Афенов, я работаю в Lamoda. Эта статья по мотивам моего доклада с HighLoad 2019, запись которого лежит тут. Раньше я был тимлидом, и в моем ведении была пара критикал-сервисов. И если в них что-то шло не так, это останавливало реальные бизн...

Скрытые функции Samsung на One UI, о которых надо знать Нам каждый раз говорят, что та или иная операционная система очень удобная и интуитивно понятная. Вот только это не так. Иначе, почему тогда каждый раз есть, о чем рассказать в статье, вроде этой? Уверен, что многие из вас скажут что-то, вроде ”Вау, вот оказывается, как мож...

Один по цене двух и ботинки на ладошке: 14 фото неудачных покупок в интернете Вот почему иногда стоит переплатить, но заказать в проверенном магазине.

Android — запрещенные приемы В данной статье проведем попытку изучения используемых конструкций языка программирования для работы вредоносного программного обеспечения. Основная задача — выяснить, содержат ли вредоносы для ОС Android какие-либо полезные и интересные недокументированные возможности ОС ил...

Менеджер-передаст В конце статьи есть краткое содержание, если лень читать весь текст. Есть на свете интересная профессия, денежная, несложная и очень распространенная профессия – передавать информацию. Люди, ею занимающиеся, принципиально делятся на две категории: секретари и менеджеры. С ...

[Перевод] Давайте будем прямыми в своих intent В Android 12 появится важное изменение, улучшающее безопасность платформы целиком и всех приложений, предназначенных для работы с этой версией ОС. Активити, сервисы и бродкаст ресиверы (broadcast receivers), в которых указаны интент-фильтры (intent-filters), должны явно обоз...

Основы Bash-скриптинга для непрограммистов. Часть 3 Во второй части статьи мы обсудили файлы скриптов, их параметры и права доступа. Также поговорили про операторы условного выполнения, выбора и циклы. В этой, заключительной части мы рассмотрим функции и планировщик заданий cron. Также приведу различные полезные команды и ссы...

Тиражирование Fedora из-под Fedora Многие руководства по установке слишком переусложнены из-за использования специфических утилит типа anaconda, livecd-tools, Fedora Media Writer и других, или создания файла сценария kickstart. В системе Fedora уже имеются необходимые средства для настраиваемой установки. Эта...

Конвертация SVG в PNG: а воз и ныне там, но есть варианты Рассказывает Александр Топорков, веб-разработчик Email Soldiers Графический формат SVG (Scalable Vector Graphics) — самый распространённый сегодня формат векторной графики, которая выгодно отличается от растровой, в первую очередь, возможностью масштабирования и преобразован...

Эволюция методов mesh denoising: от простых фильтров до 3D глубокого обучения В этой обзорной статье вы узнаете, что такое mesh denoising, какие методы использовались и используются для устранения шума на полигональных сетках (от классических фильтров до передовых графовых нейронных сетей), и получите общее представление о развитии направления. С пом...

Поточный шифр SNOW Зима. Время валяться в сугробах и играть в снежки. Или почитать статью о поточных шифрах. Кому что больше нравится.Данная статья является обзорной. Мы поговорим об устройстве 1 версии SNOW 1.0, вкратце об различных совершенных на шифр атаках и об применении его модификаций. ...

На 3D-принтере научились печатать графеновыми чернилами Получить двумерные материалы не так сложно, как создать на их основе многослойные структуры. Новая технология позволяет печатать графеном на 3D-принтере Двумерные материалы, такие как графен, обычно создают, отделяя слои материала толщиной в один атом от объемного материала,...

Может ли Apple попросту купить Arm Holdings? SoftBank рассматривает возможность продажи этого своего актива Осенью 2016 года японский гигант SoftBank за 31 млрд долларов приобрёл компанию Arm Holdings. Недавно Apple объявила о том, что собирается отказаться от процессоров Intel и перейти на решения собственной разработки, основанные на архитектуре Arm. Как сообщает ис...

Дикая природа Gradle Task: руководство по выживанию Приветствую, Gradle-адепт! В статье тебя ждёт авторский тур по Gradle Task. В маршрут включено хождение по граблям, изучение секретных практик buildscript-тасок, проведение раскопок по deprecated API, а ближе к концу зарядимся силой Custom Gradle Task, попрактикуемся в строи...

Опыт разработки системы управления для железнодорожной техники на отечественных микроконтроллерах В статье я расскажу историю одной разработки, выполненной небольшим коллективом Читать далее

Что такое микросервисы и как их использовать Архитектура микросервисов или просто микросервисы - это SDLC-подход, на основе которого большие приложения создаются как набор небольших функциональных модулей

MIDI браслет для управления синтезаторами (в основном — для органично звучащего вибрато) Одной из распространенных привычек среди мультиинструменталистов, когда дело доходит до игры на стандартной фортепианной клавиатуре, является попытка применить выразительность других классов инструментов к простым вкл/выкл переключателем синтезатора, как правило, без какого-...

Как быстро создать Bootstrap-сайт для бизнеса: 6 полезных инструментов Bootstrap уже много лет позволяет бизнесам по всему миру создавать адаптивные сайты с качественным UX без лишних затрат. В сегодняшней статье мы еще раз поговорим о плюсах этого фреймворка и рассмотрим некоторые полезные инструменты, которые позволят повысить его эффективн...

О полезности contextvars В Python есть множество возможностей и языковых конструкций. Какие-то мы используем каждый день, а о некоторых даже опытные программисты узнают с удивлением после нескольких лет работы с языком (привет, Ellipsis!). Совсем недавно вышел Python 3.9, но в этой статье я расскаж...

«Microsoft Coffee»: первоапрельский ответ на Java На днях в интернете появился любопытный пост. Там утверждается, что в 1996 году несколько сотрудников Microsoft втайне от руководства устроили первоапрельский розыгрыш. Они распространили по магазинам Сиэтла коробки с несуществующим продуктом «Microsoft Coffee», намекающим н...

Powershell настоящий язык программирования. Скрипт оптимизации рутины в техподдержке Работая в компании IT-аутсорса в качестве руководителя 3 линии поддержки, задумался, как автоматизировать подключение сотрудников по RDP, через VPN к серверам десятков клиентов.Таблички с адресами, паролями и прочими настройками серверов, конечно, хорошо, но поиск клиента и ...

[Перевод] Структурные шаблоны проектирования в ES6+ на примере Игры престолов Доброго времени суток, друзья! Структурные шаблоны проектирования используются для построения больших систем отношений между объектами с целью сохранения гибкости и эффективности. Давайте рассмотрим некоторые из них с отсылками на Игру престолов. В разработке программног...

cGit-UI — web-интерфейс для Git-репозиториев cGit-ui — это web-интерфейс для Git-репозиториев, основу которого предстваляет CGI-скрипт написанный на языке С. cGit-ui поддерживает Markdown-файлы, которые обрабатываются на стороне сервера с помощью библиотеки md4c, зарекомендовавшей себя в проекте KDE Plasma. cGit-ui пр...

Менеджмент будущего. Без начальников, переработок и KPI Нанимай людей сильнее себя, сам решай, над чем работать, отдыхай за счёт компании, работай без начальника — и другие удивительные принципы компания Valve опубликовала в своем руководстве для новых сотрудников. Читать далее

[Перевод] Район наркоманов, внезапные имейлы и «время для сказок». Как Twitter первым перешел на вечную удалёнку Переход на удаленную работу, который раньше все считали временным явлением, превратился в массовый эксперимент, который закончится в лучшем случае ещё через год. Пока многие компании делают первые неуверенные шажки в условиях новой реальности, есть и лидеры, которые полность...

ANYKS Spell-checker Здравствуйте, это моя третья статья на хабре, ранее я писал статью о языковой модели ALM. Сейчас, я хочу познакомить вас с системой исправления опечаток ASC (реализованной на основе ALM). Да, систем исправления опечаток существует огромное количество, у всех есть свои сил...

Apple может использовать аккумулятор в качестве вибромотора в своих будущих смарт-часах Компания Apple подала новый патент в Управление по патентам и товарным знакам США, который касается их смарт-часов Apple Watch.В соответствии с новым патентом, Apple рассматривает возможность сделать свои будущие Apple Watch тоньше, полностью удалив механизм тактильной обрат...

[Перевод] Имитация акварельного рисунка при помощи процедурной генерации В этой статье я объясню технику, используемую для создания «акварельных» генеративных изображений. Моё решение схоже с техниками, которые я описывал в статье Generating Soft Textures. Алгоритм не особо сложен. Концептуально он прост, но при этом хитро настроен. Источник вд...

SQL HowTo: курсорный пейджинг с неподходящей сортировкой Этот пост родился как расширенный ответ на умозрительную задачу, обозначенную в статье «Хроники пэйджинга». Пусть у нас есть реестр документов, с которым работают операторы или бухгалтеры в СБИС, вроде такого: Традиционно, при подобном отображении используется или прямая...

Почему следует избегать использования JPA/Hibernate в продакшене JPA безусловно самая распространённая технология работы с базами данных на платформе Java. Но она же и наименее пригодна для разработки быстрых и поддерживаемых систем. В этой статье я расскажу почему JPA лучше не использовать в продакшене и что можно использовать вместо неё...

[Перевод] Создание PDF-документа на Python с помощью pText Один из самых гибких и привычных способов сгенерировать pdf — написать код на LaTeX и воспользоваться соответствующей программой. Но есть и другие способы, которые могут оказаться проще и понятнее, чем LaTeX. Специально к старту курса Fullstack-разработчик на Python представ...

Как восстановить NSX Edge и перенести его настройки через API В этой статье расскажу, как работать через API с NSX Edge. Это решение от VMware выполняет для виртуального дата-центра функции маршрутизации, Firewall, NAT, DHCP, VPN и другие. Благодаря возможностям работы через API отправка запросов к Edge становится удобнее и нагляднее, ...

Еврокомиссия может обязать Apple изменить фирменный разъем в iPhone Еврокомиссия рассматривает возможность перехода в пределах Евросоюза на использование универсальных разъемов для зарядных устройств. В случае, если подобное требование будет принято, компании Apple придется вносить изменения в конструкцию своего iPhone, отказываясь от фирмен...

Микросервисы. Не всё то золото, что хайп Привет, меня зовут Владимир Кустиков, я — архитектор решений в e-Legion. И сегодня я хотел бы рассказать вам про микросервисы.Наверное, я где-то неправ. А возможно, что у меня просто подгорело. Но в какой-то момент после запроса рассказать о том, в каких проектах я успе...

[Перевод] Инструменты для проверки доступности веб-страниц. Полное руководство Новичкам может быть сложно создать сайт, доступный лицам с ограниченными возможностями. Мы решили собрать в один материал обширный ассортимент инструментов, проверяющих доступность страниц — от одноразовых букмарклетов до полноценных приложений. Надеемся, он поможет вам погр...

Использование сервисов и обработка их результатов в Xamarin Продолжим обсуждать различные задачи для Xamarin с которыми приходится регулярно сталкиваться, так как статьи по данной тематике появляются не очень часто. Данная статья больше будет полезна начинающим разработчикам, но и более опытным тоже может быть интересно.Итак, почему ...

Шейдер для волос туториального персонажа из Vikings: War of Clans Не так давно мы опубликовали материал о тестировании Unity Cloth на мобильных устройствах. В другой статье на render.ru рассказали о том, как арт-отделу Plarium Krasnodar удалось сделать модель персонажа с высокой детализацией и при этом не перегрузить проект. Теперь давайте...

Архитектура «Р7-Офис»: почему сам редактор и интерфейсы надо обязательно разносить? Поскольку мы писали офис уже в тот момент, когда Интернет был не только в каждом доме, но и в чайниках, и в холодильниках, у нас была возможность сесть и продумать архитектуру редактора. С одной стороны, мы, конечно же, оказались в сравнении с MS в ситуации сильно догоня...

Nodens: создание лавкрафтианского робота для мультиплеерного шутера от идеи до релиза Привет! В этой статье я разберу частный кейс создания контента для мобильной игры — как мы делаем это в Pixonic. От поиска идей до появления персонажа в игре — обо всех этих этапах и сложностях, возникших на них, мы поговорим подробно. Если ты — начинающий гейм-дизайнер...

Универсальный менеджер приложений (игр) Любителям Linux-like систем наверняка приходилось устанавливать приложения по найденным руководствам в сети. В итоге описание оказывалось устаревшим/нерабочим, и для получения конечного результата приходилось собирать по крупицам и сводить воедино сведения из различных источ...

Как администратору Microsoft Teams обезопасить себя и того парня Всем привет! В этой статье поговорим о том, почему важно следить за корректностью настроек Teams и как сделать его максимально безопасным. В конце статьи расскажем о решениях для аудита и управления настройками MS Teams, которые помогут реализовать концепции, описанные ниже....

Написали 100 микросервисов и не сошли с ума: как мы в Lamoda шарим знания и технологии Привет, Хабр! Меня зовут Даниил Зиненко, руководитель направления разработки Online Shop в Lamoda. Online Shop – это одно из IT-подразделений в Lamoda, которое отвечает за сайт и за мобильное приложение. Всего у нас 121 сервис, 67 из которых мы написали на Go за последние 4...

[Перевод] Малоизвестные подводные камни JavaScript JavaScript уже который год дополняется новыми возможностями и синтаксическим сахаром. Но в погоне за прогрессом легко не заметить яму под ногами. В этой статье мы поговорим о малоизвестных, но периодически встречаемых на практике ловушках языка. Читать дальше →

[Перевод] Как дейтинг-приложения делают нас одинокими Аналогично Request For Startups (запрос на стартапы, которые призваны решить проблемы и задачи, которые Y Combinator считает актуальными для общества и бизнеса), я решил вести рубрику Request for Co-founder. В ней я рассматриваю продукты (или сразу несколько похожих продукто...

[Перевод] Настройка распределенной трассировки в Kubernetes с OpenTracing, Jaeger и Ingress-NGINX В эпоху, когда крупные компании используют более 500 микросервисов одновременно, важно иметь возможность быстро выяснить, из-за чего произошел сбой или снизилась производительность. Без специализированных инструментов это может быть похоже на поиск соломинки в стоге сена.Рас...

Создаем калькулятор на Swift 5 В преддверии старта базового курса «iOS-разработчик» публикуем статью, которую написал наш внештатный автор. Всем привет! Прошло уже больше года с того момента, как появился релиз Swift 5, который принес разработчикам много нового. В этой статье я хочу поговорить о мобиль...

WhatsApp позволяет читать чужую переписку. Как это делать Нет в мире ни одного более популярного, известного и распространенного сервиса для общения, кроме как WhatsApp. Это программное обеспечение обладает невероятно большой популярностью и известностью по всему земному шару, а пользуются им более чем 2 Читать полную версию публи...

Неудачный опыт миграции Electron приложения на ECMAScript модули Работая над своим стартовым шаблоном для Electron приложений я решил полностью отказаться от CommonJS модулей и использовать исключительно ECMAScript модули.Спойлер: ничего хорошего из этого не вышло. Читать далее

Проект arataga: реальный пример использования SObjectizer и RESTinio для работы с большим количеством HTTP-соединений В последние 4.5 года я много рассказывал на Хабре про такие OpenSource проекты, как SObjectizer и RESTinio. Но вот об использовании SObjectizer и/или RESTinio в реальных проектах пока еще ни разу не удавалось поговорить (была лишь одна статья от стороннего автора).Причина пр...

Легковесный роутинг на микросервисах Мобильные приложения в последнее время стали по-настоящему большими — не только в смысле своей значимости для нас с вами, но и в прямом смысле. По своей функциональности они бывают просто огромными. Некоторые приложения состоят из десятков, сотен экранов и переходов между н...

Уходим в кэш в высоконагруженных системах Одна из вечных тем — правильная работа с кэшем. Звучит это просто, но на деле в ней очень много подводных камней и особенностей. Ну а когда приходит нагрузка, все становится еще интересней. В кэшировании нет «серебряной пули», а есть набор отработанных техник. И остается лиш...

Топ-7 хард скиллз дизайнера Привет, Хабр! Меня зовут Костя, я отвечаю за дизайн в AGIMA. В предыдущей статье я рассказывал про свой опыт развития софт скиллов. В этой я хочу затронуть хард скиллы, потому что без них не стать мощным дизайнером. Напомню, откуда ноги растут: мы с «Нетологией» провели...

Дыра в безопасности яндекс инвестиций Сервисы яндекса уже есть наверное в каждом утюге. Этот отечественный ИТ-гигант сделал и продолжает делать многое для того, чтобы сложные ИТ технологии стали доступны любой домохозяйке. Однако в погоне за доступностью, программисты яндекса кажется иногда жертвуют безопасност...

Разработчики встраиваемых систем не умеют программировать Заслуженно распространена точка зрения, что типичный разработчик высокоуровневого прикладного ПО настолько свыкся с доступностью системных ресурсов и мягкостью требований реального времени, что ожидать от него оптимизации кода в угоду снижения ресурсоёмкости приложения можно...

[Перевод] Android Bluetooth Low Energy (BLE) – готовим правильно, часть #3 (read/write) Часть #1 (scanning)Часть #2 (connecting/disconnecting)Часть #3 (read/write), вы здесьВ предыдущей статье мы подробно поговорили о подключении/отключении BLE устройств. Эта статья о чтении и записи характеристик, а также о включении-выключен...

World of React Native. Уже можно играть! Геймплей, обзор Привет! Я Илья, фронтенд-разработчик. Я приоткрою мир разработки на React Native, а тем, кто с ним знаком, расскажу о встреченных болях. Статья поможет вам, если вы смотрите на этот фреймворк и если вы уже начали с ним работать.В начале 2020 года в ЮMoney мы решили создать п...

Зависает компьютер на Windows? Горячие клавиши, которые помогут решить проблему Иногда компьютер под управлением Windows может внезапно «зависнуть» во время работы. Такое поведение системы откровенно разочаровывает. Причин тому немало, чаще всего пользователи просто перегружают компьютер, мирясь с потерей данных. Однако есть пара малоизвестных комбинаци...

Обход брандмауэра (firewall) в Dr.Web Security Space 12 Данная статья написана в рамках ответственного разглашения информации о уязвимости. Хочу выразить благодарность сотрудникам Dr.Web за оперативное реагирование и исправление обхода брандмауэра (firewall).В этой статье я продемонстрирую обнаруженную мной возможность обхода бра...

Кватернионы. Решение одной навигационной задачи Некоторое время назад я занимался одной интересной задачей, относящейся к спутниковой навигации. Требовалось вычислить координаты объекта при известных координатах спутников в глобальной системе и известных координатах этих же спутников в локальной системе координат навигаци...

[Перевод] Продвинутое компьютерное зрение. Введение в Прямое визуальное отслеживание Задача отслеживания объектов на изображении - одна из самых горячих и востребованных областей ML. Однако уже сейчас мы имеем огромное разнообразие различных техник и инструментов. Данная статья поможет начать Ваш путь в мир компьютерного зрения!Сперва, мы представим некоторы...

Илон Маск не поддерживает идею о государственном регулировании криптовалют Генеральный Tesla Илон Маск (Elon Musk) на мероприятии Code Conference поделился своими взглядами на тенденции развития криптовалютной отрасли. Ослабление роли государства через децентрализованную систему криптовалют он назвал одной из причин недовольства китайских властей, ...

[Перевод] «Kubernetes увеличил задержку в 10 раз»: кто же в этом виноват? Прим. перев.: Эта статья, написанная Galo Navarro, что занимает должность Principal Software Engineer в европейской компании Adevinta, — увлекательное и поучительное «расследование» в области эксплуатации инфраструктуры. Её оригинальное название было немного дополнено в пере...

Распространение консольных приложений macOS до конечных пользователей Начиная с macOS 10.15 Catalina разработчикам требуется заверять свои приложения и утилиты командной строки. Если с приложениями, распространяемыми через App Store все прозрачно, то распространение консольных утилит может вызвать сложности. В данной статье я покажу, как можно...

Сверстать всех наверх: онбординг новых сотрудников Как адаптировать нового сотрудника компании с момента его выхода на работу и до осознания того, что он стал полноценным членом коллектива, понимающим местные культурные и профессиональные ценности? Об этом рассказал direction lead в Lamoda Александр Афенов в своем докладе на...

Как UI победил UX в Things 3 (iOS) Всем привет. Эта статья о, в общем-то, хорошем приложении, которое своим примером иллюстрирует распространённую проблему в дизайне интерфейсов — "красиво и неудобно". Ниже мы разберём самые заметные ошибки в дизайне мобильного Things, о которые я как пользователь спотыкаюсь ...

Митигация уязвимостей: операционная система в помощь? Каждый, кто начинает изучать уязвимости программного обеспечения и их эксплуатацию, рано или поздно начинает задаваться вопросами: откуда берутся методики написания эксплойтов? Почему современное ПО содержит уязвимости? Насколько операционные системы с точки зрения проведени...

Всемогущий FFmpeg: скриншаринг в WebRTC Когда мы пишем статьи о своем сервере в комментариях очень часто находится читатель, который говорит:"И зачем такой огород городить? Все это одной FFmpeg командой делается!" Читать далее

Без окон, без дверей:  как мы распилили монолит на сервисы Преподаватели Skyeng не сразу попадают «на передовую» — для начала они проходят отбор и обучение. Направление найма и онбординга преподавателей появилось в 2015 году — тогда же был сделан первый коммит в наш (уже бывший) легаси-монолит. Прежняя команда активно его поддержива...

Укрощая зверя: legacy-код, тесты и вы Legacy-код — это «старый» код, возраст которого может быть как 2 месяца, так и 10 лет. Часто его писали разработчики, о которых в компании смутно помнят. Возможно, их вообще не было, а legacy-код родился вместе со Вселенной во время Большого Взрыва. С тех пор требования к не...

Одну из крупнейших в Украине IT-компаний SoftServe атаковали хакеры с помощью вируса-шифровальщика Одна из крупнейших IT-компаний Украины SoftServe (номер 2 в последнем рейтинге DOU.UA) подверглась хакерской атаке. Ряд сервисов компании перестал работать, сообщает издание AIN.UA. Злоумышленники запустили в систему вирус-шифровальщик. В итоге ряд сервисов SoftServe переста...

Kotlin Native. Работаем с новой моделью памяти Всем доброго дня! С вами Анна Жаркова, ведущий мобильный разработчик компании Usetech. Продолжаем рассматривать способы многопоточный работы в Kotlin Native. В предыдущих статьях мы уже рассмотрели существующие способы работы с многопоточностью с корутинами и&...

Продуктивность разработки Тот, кто научится правильно измерять продуктивность разработчиков, точно станет миллионером. Особенно на текущем рынке труда, где кандидаты просто называют случайные пятизначные числа желаемой зарплаты. Есть несколько вендорских платных решений, но они не получили распростра...

TSMC рассматривает возможность перехода от использования кремния к другим материалам После того, как будет освоен 3-нм техпроцесс.

Компромисс скорости и качества разработки в agile. Как найти баланс Привет!Меня зовут Тимофей, и я продуктовый разработчик. О продуктовой разработке подробнее можно почитать тут. В моей работе многое строится на трейдоффах и компромиссах. В этой статье речь пойдёт о балансе между сроками и качеством разработки.Представители бизнеса орие...

[Перевод] Производитель/потребитель на Kafka и Kotlin Перевод статьи подготовлен в преддверии старта курса «Backend-разработка на Kotlin» В этой статье мы поговорим о том, как создать простое приложение на Spring Boot с Kafka и Kotlin. Читать дальше →

Руководство Intel рассматривает возможность отказа от производства чипов В ходе презентации квартальной отчетности руководитель Intel Р. Свон заявил о возможном отказе компании от производства чипов.

Подборка органайзеров для кабелей и наушников. С ними кабеля перестанут запутываться Несмотря на постоянный рост популярности беспроводных наушников и зарядок, многие пользователи предпочитают пользоваться проводными решениями. Последние обладают рядом преимуществ. Однако у них есть и один большой недостаток – провода имеют свойство запутываться. Читать даль...

[Перевод] 7 лучших библиотек для создания молниеносно быстрых приложений ReactJS ReactJS по умолчанию обладает высокой производительностью. Но время от времени у вас появляется шанс сделать его еще лучше. И замечательное сообщество React придумало для этого несколько фантастических библиотек.Сегодня мы поговорим о семи таких библиотеках, которые могут ул...

Нам нужно поговорить… Иногда инженеры теряют интерес к проектам, задачам и к компании — мотивация падает, а с ней и производительность. В итоге сотрудники выгорают и/или увольняются. Для этого много причин, но самая распространенная — отсутствие внимания к успехам и проблемам инженеров. В ЦФТ ...

Мышь для людей с ограниченными возможностями Речь в данной статье пойдет про проектирование оборудования, которое упрощает работу за компьютером. Предыстория моего небольшого проекта связана, совершенно неожиданно, со спектрумами, apple 2 и прочей ретрокомпьютерной техникой. Есть увлечение такое — ковыряться во всяком ...

Мобильная разработка — это просто и скучно? Доклад Яндекса Существует миф, что создавать приложения для iOS или Android проще, чем быть, скажем, бэкенд-разработчиком. Разумеется, это не так: в работе с любой платформой есть свои сложности, всюду возникают неочевидные проблемы, требующие навыков в предметной области и за её пределам...

Процессный подход, или В чем проблема выгорания на самом деле? Кто лучше всех знает, как справляться с проблемами? От кого ждут, что он закроет своим хрупким тельцем все бреши в продукте? Тимлиды иногда напоминают собой зонтик, под которым прячется команда. Команда видит — можно особо и не стараться, потому что если что, Вася вытянет. В...

Apple может купить медиакомпанию Hello Sunshine, принадлежащую Риз Уизерспун В руководстве компании Hello Sunshine, основанной голливудской актрисой Риз Уизерспун, начали рассматривать возможность продажи. Эксперты оценивают актив в миллиард долларов, а в число потенциальных покупателей входит Apple.Читать дальше... ProstoMAC.com.| Постоянная ссылка...

Отрезок качества Есть принцип «выбирай любые два понятия из "быстро, качественно и дёшево"». Да, он верен для проектных историй, но не верен для разработки. В разработке, как процессе, нет никакого треугольника качества. Ты можешь делать либо быстро и качественно, либо медленно и плохо. И не...

Microsoft подаёт жалобу по закону DMCA против опубликовавшего образ DMCA сайта Достоверность утечки Windows 11 подтверждена, поскольку Microsoft ищет выставившие её сборки сайты В начале недели в интернете оказалась предварительная сборка следующей версии операционной системы Microsoft Данная сборка подтвердила название Windows 11, которое можно увидет...

[Перевод] Актуальность принципов SOLID Впервые принципы SOLID были представлены в 2000 году в статье Design Principles and Design Patterns Роберта Мартина, также известного как Дядюшка Боб. С тех пор прошло два десятилетия. Возникает вопрос - релевантны ли эти принципы до сих пор?Перед вами перевод статьи Дя...

Spring @Transactional — ошибки, которые совершали все Вероятно, одной из наиболее часто используемых аннотаций Spring является @Transactional. Несмотря на ее популярность, иногда она используется неправильно, в результате чего получается не совсем то, что задумал инженер-программист.В этой статье я собрал проблемы, с которыми л...

Предвзятый и субъективный взгляд на резюме разработчика Привет! Недавно мои коллеги из hh.ru провели вебинар, где разбирали резюме разработчика. Я решил поделиться своей точкой зрения на этот счет. В этой статье мы поговорим о том, как разработчики создают резюме. Я расскажу о том, что меня, как интервьюера, мотивировало и вооду...

Microsoft бесплатно выпустила Lite OS на замену Windows 10 Как все наверняка знают, в настоящее время наиболее популярной, распространенной и известной операционной системой компании Microsoft является Windows 10, а обладает она очень широкими функциональными возможностями, однако даже не смотря на наличие всех таких ей Читать полн...