Социальные сети Рунета
Четверг, 24 июня 2021

Запускаем тесты на GitLab Runner с werf — на примере SonarQube Если в качестве инфраструктуры, где разворачивается приложение, выступает Kubernetes, можно сказать, что существует два способа запуска тестов (и других утилит для анализа кода) в CI/CD: непосредственно в кластере K8s — с помощью отдельных Job или Helm hooks; «снаружи»...

[Перевод] Кеширование гемов Ruby в GitHub Actions с использованием ruby/setup-ruby или actions/cache Как, загружая гемы Ruby из кеша в GitHub Actions, ускорить запуск сборки проекта в этой системе непрерывной интеграции (CI)? Если суметь подготовить к работе все зависимости Ruby on Rails (RoR)-проекта в кратчайшие сроки, это позволит сократить время, необходимое на запуск т...

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

[Перевод] Canary Deployment в Kubernetes #1: Gitlab CI Мы будем использовать Gitlab CI и ручной GitOps для внедрения и использования Canary-деплоя в Kubernetes Статьи из этого цикла: (эта статья) Canary Deployment при помощи ArgoCI Canary Deployment при помощи Istio Canary Deployment при помощи Jenkins-X Istio Flagger Выполн...

Разработка приложения с использованием Python и OpenCV на Android устройстве В это статье я хочу показать пример того, как андроид устройство можно использовать для разработки на таких языках программирования как python с библиотекой opencv в среде VSCode (будет использован code-server). В конце статьи приведено небольшое сравнение производительнос...

[Перевод] DRY CSS: Как использовать каждое объявление только один раз Использование DRY в CSS — это способ максимально избегать повторения в таблицах стилей. Этот подход не панацея, но он достаточно эффективен и является одним из основных методов оптимизации. Поскольку я использовал и изучал его почти 10 лет, в этой статье хочу поделиться сво...

xUnit тестирование в TeamCity Microsoft активно развивает свои проекты с открытым кодом, например, ASP.NET Core или MSBuild. Вместе с этим набирает популярность и тестовый фреймворк xUnit, используемый в них для модульного тестирования. В этой статье мы рассмотрим несколько способов запуска xUnit-тестов ...

Запуск сложных плат с производства (и не только) Доброго времени суток, Хабр! Решил написать небольшую статью по запуску разработанного и спаянного устройства на основе процессора iMX8MQ от NXP. Идея возникла в связи с тем, что приходится запускать много различных проектов, а характер первичного тестирования и запуска о...

Ещё одна статья «Как я сдавал PMP». Online. Лайфхаки Привет! Меня зовут, Дмитрий, и я сдал экзамен PMP в 2020 г., онлайн. В своей статье я хочу поделиться субъективным мнением про методику подготовки к экзамену и тех мелочах, которые я хотел бы знать до начала подготовки. Без воды. Статья не содержит неэтичных способов подго...

Запуск ИТ-продукта и проведение маркетинговой кампании: Курс «Создание программного продукта и управление его развитием» Привет, Хабр! Очередной пост в серии публикаций о продакт-менеджменте от компании Acronis посвящен этапам запуска продукта. В этом материале я расскажу о том, какие команды должны быть задействованы в запуске релиза, какие необходимо пройти этапы, почему вам обязательно нуже...

SSL сертификат для Docker web-app В данной статье я хочу поделиться с вами способом создания SSL сертификата для вашего веб-приложения работающего на Docker, т.к. в рускоязычной части интернета — подобного решения я не нашел. Подробнее под катом. Читать дальше →

Как обучить нейронную сеть DeepPavlov на ноутбуке с использованием GPU В этой статье я хочу поделиться своим опытом использования данной open-source библиотеки на примере реализации одной задачи с парсингом файлов PDF/DOC/DOCX содержащих резюме специалистов. Здесь я также опишу этапы реализации инструмента для подготовки датасета. После чего м...

Еще один способ установки и использования Docker в Windows 10 В этой статье мы подготовим окружение для запуска контейнеров в Windows 10 и создадим простое контейнеризированное приложение .NET Читать далее

Вместо 100 запусков приложения ― один автотест, или как сэкономить QA-инженеру 20 лет жизни Всем привет, меня зовут Евгений Демиденко. Последние несколько лет я занимаюсь разработкой автоматизированной системы тестирования игр в Pixonic. Сегодня я хотел поделиться нашим опытом разработки, поддержки и использования такой системы на проекте War Robots. Для начала ра...

Можно ли сделать деревянный стеллаж без инструмента используя только отвертку и 3D-принтер? Легко!. Приветствую! Я хочу поделиться с вами очередной своей разработкой, которая позволяет сделать надежную, крепкую мебель и при этом без необходимости иметь инструмент, пылить в доме/квартире и собрать её буквально за один день. Эта статья для аудитории Хабра, которая любит DI...

Собственные метрики JFR и их анализ Недавно я описывал как осуществлять запуск и управление Java Flight Recorder (JFR). Теперь решил затронуть тему записи в JFR метрик, специфичных для приложения, а так же способов их анализа в Java Mission Control (JMC). Это позволяет расширить понимание происходящего с прило...

Автозагрузка на Mac, или как добавить (удалить) программы для автоматического запуска при загрузке macOS Хотели бы вы, чтобы некоторые приложения автоматически открывались при загрузке Mac? Это сэкономит время и избавит от надобности всякий раз повторять одни и те же действия при запуске macOS. Существует несколько способов для настройки автозагрузки приложений. Сделать это оче...

Jenkins Pipeline: заметки об оптимизации. Часть 1 Меня зовут Илья Гуляев, я занимаюсь автоматизацией тестирования в команде Post Deployment Verification в компании DINS. В DINS мы используем Jenkins во многих процессах: от сборки билдов до запуска деплоев и автотестов. В моей команде мы используем Jenkins в качестве плат...

Опыт создания продукта в России, или Как создавался “народный” беспроводной пылесос Всем привет! Андрей – предприниматель, CIO, CEO и кайтер. Несколько лет назад я пошел по пути создания и запуска собственного продукта «с нуля» на отечественном рынке (беспроводной пылесос). В этой статье хочу поделиться своим опытом с начинающими и действующими предпринимат...

Angular: еще один способ отписываться Подписок в коде компонента следует избегать, перекладывая эту задачу на AsyncPipe, однако не всегда это возможно. Есть разные способы завершать подписки, но все они сводятся к двум — ручная отписка или использование takeUntil. Со временем я все чаще стал использовать свой де...

DataMatrix или как правильно маркировать обувь С 1 июля 2019 года в России введена обязательная маркировка группы товаров. С 1 марта 2020 года под этот закон должна была попасть обувь. Не все успели подготовиться, и в результате запуск перенесли на 1 июля. Lamoda среди тех, кто успел. Поэтому мы хотим поделиться опытом ...

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

Магия 2-х строк на Lua или как донести исходные заголовки HTTP Authorization header-авторизации до web-сервиcа Статья будет полезна тем: кому необходимо задействовать несколько видов авторизации в одном запросе к серверу; кто хочет открывать сервисы мира Kubernetes/Docker в общий интернет, не задумываясь о способах защиты конкретного сервиса; думает, что всё уже кем-то сделано, ...

[Перевод] Создание небольшого API на Deno В этом посте я хотел бы рассказать и показать процесс создания небольшого API с помощью Deno. Deno — новейшая среда для запуска Javascript и Typescript, разработанная создателем Node.js — Райаном Далем. Читать дальше →

[Из песочницы] Запуск ОС Андроид с SD-карты для устройств на процессоре Amlogic S912 В статье детально, с приведением исходного кода, описывается работа, проведенная по переносу и запуску с SD-карты программной прошивки с ОС Андроид для устройств на процессоре Amlogic S912. Читать дальше →

[Из песочницы] Raspberry Pi и модем SIM7600E 4G HAT Добрый день всем. В этой статье я хотел бы рассказать о своем опыте использования 3G-модема SIM7600X, который можно подключать к Raspberry Pi. Статья может оказаться полезной тем из вас, кому необходимо использовать Raspberry автономно, в условиях отсутствия WIFI-сети. Пара...

Физическая среда или виртуализация? Продолжение тестов Intel Xeon 6242R В предыдущей статье мы рассказывали о базовой оценке производительности новых серверов в нашем облачном проекте на примере теста Гилёва для 1С и 7zip в физической «нативной» среде. Теперь же, когда мы подготовили серверы для работы в нашем виртуализованном кластере, можем п...

Тесты визуальной регрессии. Перезагрузка В своей предыдущей статье я рассказывал про опыт использования движка Gemini для разработки визуальных тестов, точнее, тестов визуальной регрессии. Такие тесты проверяют, не «съехало» ли что-нибудь в UI после очередных изменений с помощью сравнения текущих скриншотов с ранее...

Web Vulnerabilities Playground Уже 3 ноября в OTUS пройдет день открытых дверей по курсу "Безопасность веб-приложений", в рамках которого вы сможете подробно узнать о курсе и пообщаться с нашими экспертами. А прямо сейчас хотим поделиться с вами авторской статьёй эксперта OTUS, вирусного аналитика в между...

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

Внедрение Multicast VPN на Cisco IOS (часть 2 — mLDP) В прошлой статье мы познакомились с Вами с исторически первым способом организации построения multicast VPN с помощью технологий PIM и mGRE (Часть 1, Profile 0). На сегодняшний день существуют альтернативы запуску P-PIM в опорной сети. В частности, для организации многоадрес...

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

Прыжок до небес: запускаем телеграм бота на Python в serverless облаке Одним из современных архитектурных подходов в области облачных вычислений является, так называемый, Serverless. Этот способ запуска приложений в облаке освобождает разработчиков от нужды администрировать сервер и заботиться о чем-то, кроме кода.Очевидно, что для такой задачи...

[Перевод] Создание roguelike в Unity с нуля: генератор подземелий На этот раз мы погрузимся в реализацию алгоритма генератора подземелий. В прошлой статье мы создали первую комнату, а теперь сгенерируем остальной уровень подземелья. Но прежде чем мы начнём, я бы хотел исправить ошибку из предыдущего поста. На самом деле, за последние нед...

[Перевод] Подмена DLL (DLL hijacking) Всем привет. Прямо сейчас в OTUS открыт набор на апрельский запуск обновленного курса «Реверс-инжиниринг». В преддверии старта курса мы традиционно подготовили перевод интересного материала. В операционной системе Windows приложения и службы при запуске ищут DLL, необходим...

Переход с OpenVPN на WireGuard для объединения сетей в одну сеть L2 Хотел бы поделиться опытом объединения сетей в трех географически удаленных квартирах, в каждой из которых в качестве шлюза используются роутеры с OpenWRT, в одну общую сеть. При выборе способа объединения сетей между L3 с маршрутизацией подсетей и L2 с бриджингом, когда в...

[Перевод] Улучшение Spring Mock-MVC тестов Spring Mock-MVC может быть отличным способом протестировать Spring Boot REST API. Mock-MVC позволяет нам тестировать обработку запросов Spring-MVC без запуска реального сервера.Я использовал тесты Mock-MVC в различных проектах, и по моему опыту они часто бывают дов...

Опыт использования gRPC в Почте Mail.ru Привет, Хабр! Я работаю в команде Антиспама Почты Mail.ru. В этой статье я бы хотел рассказать про наш опыт запуска сервиса с пропускной способностью около 3 миллионов запросов в минуту на базе технологии gRPC. Это современная технология передачи данных по сети, которая реа...

Капля в море: Запуск Drupal в Kubernetes Я работаю в компании Initlab. Мы специализируемся на разработке и поддержке Drupal проектов. У нас есть продукт для быстрого создания Ecommerce решений, основанный на Drupal. В 2019 году мы начали решать задачу построения масштабируемой и отказоустойчивой инфраструктуры для...

[Перевод] Хорошо подумайте, прежде чем использовать Docker-in-Docker для CI или тестовой среды Docker-in-Docker представляет собой виртуализированную среду Docker-демон, запущенную в самом контейнере для сборки образов контейнера. Основной целью создания Docker-in-Docker была помощь в разработке самого Docker. Многие люди используют его для запуска Jenkins CI. Понач...

Опыт использования MobX в большом приложении Всем привет! Меня зовут Сергей, я работаю в команде разработки приложений контроля качества Tinkoff. Поделюсь опытом нашей команды в использовании библиотеки Mobx и расскажу о деталях работы с ней в связке с React. В этой статье не будет описания базовых концепций. Я расск...

[Из песочницы] Используем passwordstore.org — менеджер паролей в стиле KISS Всем привет. В этой статье я хотел бы поделиться своим опытом настройки и использования pass — менеджера паролей для Linux и не только, примечательного своей простотой, использованием уже присутствующих в системе инструментов и возможностью работать исключительно из консоли....

Я 20 лет наслаждаюсь разнообразием архитектур и хочу поделиться мыслями Сначала хотел написать комментарий к статье "Я десять лет страдал от ужасных архитектур в C#...", но понял две вещи: Слишком много мыслей, которыми хочется поделиться. Для такого объёма формат комментария неудобен ни для написания, ни для прочтения. Давно читаю...

Рабочая станция в Docker контейнере Для чего? Мне постоянно приходят всякие идеи и некоторые из них сразу хочется попробовать, но рабочая станция не всегда под рукой, поэтому я настраивал IDE на всем что попадется под руку. В итоге устройства начали захламляться, а поддерживать и обновлять их стало тяжело. Что...

На старт, внимание, взлетели: Джеймс Уэбб прошел финальные тесты перед запуском NASA Телескоп «Джеймс Уэбб», именуемый также JWST или Webb, завершил финальные функциональные тесты. На космическом аппарате проверили работу внутренней электроники и систем связи. Испытания должны приблизить запуск JWST в космос в октябре 2021 года. Полет откладывают уже ...

[Перевод] 9 полезных трюков HTML Приветствую, Хабр! Представляю вашему вниманию перевод статьи «9 Extremely Useful HTML Tricks» автора Klaus. У HTML есть много практических секретов, которые могут вам пригодиться. Но я хочу убедиться, что сайт работает в Internet Explorer и других браузерах. Я использую ...

[Перевод] «Холодный» запуск Android-приложения Всем приветъ! Давно ничего не писал. Это будет серия постов о процессе «холодного» запуска Android приложения, с момента нажатия на иконку и до создания процесса приложения. Читать дальше →

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

К полету китайского экспериментального корабля. Инфографика и коллажи Хочу поделиться своим. Мне интересна инфографика на космическую тематику. К каждому запуску (или значимому событию) делаю свою. Предлагаю оценить и «показать путь» или «отправить на...». Читать дальше →

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

WSL эксперименты. Часть 1 Привет, хабр! В октябре OTUS запускает новый поток курса «Безопасность Linux». В преддверии старта курса делимся с вами статьёй, которую написал один из наших преподавателей — Александр Колесников. В 2016 году компания Microsoft представила IT сообществу новую технологи...

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

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

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

[Перевод] Canary Deployment в Kubernetes #2: Argo Rollouts Мы будем использовать k8s-нативный контроллер развертывания Argo Rollouts и GitlabCI для запуска Canary деплоя в Kubernetes https://unsplash.com/photos/V41PulGL1z0 Статьи этого цикла Canary Deployment в Kubernetes #1: Gitlab CI (Эта статья) Canary Deployment using Istio Ca...

[Из песочницы] Запускаем браузерные тесты с Cucumber и Selenoid в Gitlab CI c Allure отчетом Cucumber – это инфраструктура тестирования, позволяющая преодолеть разрыв между разработчиками ПО и бизнес-менеджерами. Тесты пишутся на простом языке управляемой поведением разработки (BDD) в стиле Given, When, Then (условия, операция, результат), которой понятен любому пол...

[Из песочницы] Создание динамических параметров в Jenkins job, или как сделать вашу задачу user-friendly Доброго времени суток, Хабр! Сегодня я хотел бы поделиться одним из способов, как с помощью Active Choices Plugin сделать задачу в Jenkins наиболее унифицированной и понятной для пользователя. Введение Такая аббревиатура как DevOps уже давно не является чем-то новым для IT с...

[Из песочницы] Start Up: Организационные и технические аспекты запуска в крупной IT-компании Выбор методологии разработки новых программных продуктов зависит от ряда следующих факторов: новизна и новаторство концепции; понимание клиента, что он хочет; понимание поставщика программных продуктов, что хочет клиент. Парадокс заключается в том, что и тот и другой ошибают...

Успешный запуск. Групповой Rideshare. Запуски 2020 года: 67 всего, 61 успешный, 4 от Европы Вячеслав Ермолин, 3 сентября 2020 г. Текущая статистика запусков 2020 год Миссия: Rideshare SSMS PoC — групповой запуск микро- и наноспутников на солнечно-синхронную орбиту. Запуск также является возвращением в эксплуатацию ракеты-носителя Vega после прошлогодней аварии. ...

[Перевод] Пишем приложение на Flutter в связке с Redux Привет всем! В этой статье я хотел бы показать вам, как создать Flutter приложение, используя Redux. Если вы не знаете, что такое Flutter, то это — SDK с открытым исходным кодом для создания мобильных приложений от компании Google. Он используется для разработки приложений...

Отложенные ретраи силами RabbitMQ Меня зовут Алексей Казаков, я техлид команды Клиентских коммуникаций в ДомКлике. В этой статье я хочу поделиться с вами «рецептом», который позволил нам реализовать отложенные ретраи при использовании брокера сообщений RabbitMQ Читать дальше →

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

Повышаем надёжность HttpClient’а в .NET Core или как ошибиться в 3 строках кода 4 раза За несколько недель до 14 февраля системе Dodo IS немного поплохело под нагрузкой. Одной из причин стало то, что в backend’ах мобильного приложения и сайта не совсем корректно работали политики поверх HttpClient’а (Retry, Circuit Breaker, Timeout). В этой статье я хочу подел...

[Из песочницы] Повысьте производительность SPA, разбив ваши библиотеки Angular на несколько частей Привет, Хабр! Представляю Вашему вниманию перевод статьи «Improve SPA performance by splitting your Angular libraries in multiple chunks» автора Kevin Kreuzer. Angular — отличный фреймворк. Мы все его любим <3. Одна из вещей, которая делает Angular успешным и прекрасным в...

[Из песочницы] Как уменьшить количество и увеличить читаемость кода в react-redux, redux-saga В этой статье я хотел бы поделиться своим опытом использования связки react-redux и redux-saga, а точнее, какой «велосипед» я использую, для уменьшения количества однотипного кода и упрощению его восприятия. Читать дальше →

[Из песочницы] Создаем прогрессивный PWA интернет-магазин на Nuxt.js 2 пошаговое руководство Часть 1 Статья ориентированна на людей, которые уже имеют понимание работы Vue, на котором основан Nuxt, поэтому я буду заострять внимание только на специфических для Nuxt вещах. Но даже если вы не знакомы с ними, то статья даст общее представление как выглядит проект с PWA Nuxt. Вы...

Безотказный Zabbix: миграция с асинхронной на групповую репликацию Всем привет!Жил был Zabbix с MySQL асинхронной репликацией. И всё бы ничего, но иногда приходилось переключать основной хост и делалось это запуском всяческих Ansible плейбуков, да и при отказе одного из дата центров нужно было проделывать некоторые ручные действия по перекл...

Android-разработчикам: как сократить время реализации тёмной темы с пары месяцев до недели Привет, меня зовут Влад Шипугин, я Android-разработчик в Redmadrobot. В этой статье я хочу поделится опытом реализации темной темы, создания удобного UI Kit, как для разработки, так и для дизайнеров. Я расскажу про использование Material Components и работу с Vector Drawable...

Тестирование android приложений с использованием selenoid. Поиск location в мобильном приложении с помощью Appium Предисловие из поста: Selenoid — это программа, которая позволяет управлять браузерами и Android-эмуляторами с помощью специальных драйверов. Умеет запускать каждый из них изолированно в Docker-контейнере. Основная идея Selenoid состоит в том, чтобы запускать новый контейнер...

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

Война с тормозами. Оптимизация количества рендеров компонентов в React Native Привет, Хабр! Меня зовут Камо Сперцян, я занимаюсь React Native разработкой в Profi.ru. Если вы решили воспользоваться технологией React Native для быстрой доставки продуктовых фич и сосредоточились на скорости разработки, то, скорее всего, столкнётесь с проблемами производи...

Успешный запуск. Спутники Starlink SpaceX и BlackSky. Запуски 2020 года: 61 всего, 55 успешных, 22 от США Вячеслав Ермолин, 07 августа 2020 г. Текущая статистика запусков 2020 года Миссия: Основная: Запуск 57 коммуникационных спутников Starlink-9. Девятый запуск Starlink v1.0. Для будущей системы низкоорбитального коммерческого интернета StarX. Дополнительная: Rideshare. Запу...

Мини плата для разработки и отладки ПО на BLE, Zigbee Thread Приветствую читателей Habr! В этой статье хочу поделиться с сообществом своей новой разработкой, речь пойдет о небольшой Development Board на чипе nRF52840. Плата была спроектированна под недорогие модули E73-2G4M08S1C. Идея ее создания родилась в одном уютном телеграмм чати...

[Перевод] [в закладки] Работа с изображениями в веб Одно из решений, которые приходится принимать фронтенд-разработчику при создании сайта, касается выбора способа включения изображений в состав веб-страниц. Этот способ может заключаться в использовании HTML-тега <img>. Это может быть применение CSS-свойства background ...

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

Grafana+Zabbix: Визуализация работы производственной линии В этой статья я хочу поделиться опытом использования open source систем Zabbix и Grafana для визуализации работы производственных линий. Информация может быть полезна тем, кто ищет быстрый способ визуального отображения или аналитики собранных данных в проектах промышленной ...

[Перевод] Выжимаем из Gears Tactics максимальную производительность с минимальными артефактами при помощи VRS Gears Tactics — динамичная пошаговая стратегия во вселенной одной из самых известных игровых франшиз — Gears of War. Кроме того, это первая игра, поддерживающая одну из основных функций DirectX 12 Ultimate — Variable Rate Shading (VRS). VRS позволяет Gears Tactics добиться ...

Простой способ редактирования, хранения и передачи параметров между job'ами Jenkins Как и любой здоровый человек — могу назвать себя в меру ленивым. Так, например, мне лень писать длинный pipeline (вообще писать руками pipeline лень). И мне не нравится идея гонять туда — сюда файлик, в который придётся писать параметры, для чего городить огород из лишнего ...

[Перевод] Корутинная эволюция в Kotlin. Чем отличаются Channels, Broadcast channels, Shared flows, State flows Эта публикация — перевод поста Романа Елизарова «Shared flows, broadcast channels». Опубликовано с одобрения автора оригинала. Примечания переводчика выделены курсивом. Давным-давно в Kotlin были представлены корутины, одной из особенностей которых является легковесность (с...

[Перевод] Вражеский ИИ: преследование игрока без Navigation2D и поиска пути A* Создаёте игру, в которой враги должны преследовать игрока? Всё начинается с простого — заставим врага бежать к игроку. Но что произойдёт, если он находится за деревом, или за углом стены? Ну, теперь враг будет выглядеть довольно глупо — упрётся в объект, перебирая ногами на ...

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

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

Успешный запуск. 3 спутника на Arian 5. Запуски 2020 года: 62-й общий, 56-й успешный, 3-й от Европы Вячеслав Ермолин, 15 августа 2020 г. Текущая статистика запусков 2020 год Миссия: — Запуск 2-х геостационарных спутников связи. Коммерческие спутники для компаний Intelsat (международная) и BSAT (Япония). — Запуск сервисного спутника MEV-2 для «продления жизни» геостацион...

Собеседуем кандидата на должность Senior Software Developer Я провел не одну сотню собеседований как с одной стороны, так и с другой. В этой статье я хотел бы поделиться своими опытом, наблюдениями и интересными моментами. Возможно, кого-то это убережет от ошибок, неверных выводов и потерянного времени. Читать дальше →

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

[Из песочницы] Mikrotik RouterOS в Docker Всем доброго времени суток! В данной статье я хочу рассказать об одном OpenSource проекте под названием Docker RouterOS, изначально он был создан в качестве полигона для прогонки интеграционных тестов и ничего более, но со временем, по просьбе пользователей, был добавлен ряд...

Обрабатываем данные на стороне клиента с помощью WebAssembly WebAssembly (сокр. WASM) — технология запуска предварительно скомпилированного бинарного кода в браузере на стороне клиента. Впервые была представлена в 2015 году и на текущий момент поддерживается большинством современных браузеров. Один из распространенный сценариев исп...

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

Успешный запуск. Спутник ДЗЗ высокого разрешения. Запуски 2020 года: 64-й общий, 58-й успешный, 23-й от Китая Вячеслав Ермолин, 23 августа 2020 г. Текущая статистика запусков Миссия: Запуск гражданского спутника дистанционного зондирования Земли Gaofen-9-05 для государственной программы China High-resolution Earth Observation System (CHEOS). Разрешение менее метра на пиксель. Пят...

Запуск MMO-проекта Phantasy Star Online 2: New Genesis состоится в июне Более года назад SEGA анонсировала MMO-проект под названием Phantasy Star Online 2: New Genesis и только теперь стала доступна информация о запуске игры. Разработчики запускают закрытый бета-тест с 14 по 17 мая, игроки которые хотят принят участие в тесте должны подать зая...

[Из песочницы] stm32. Смотрим в корень Вместо вступления Статья содержит пример ручной оптимизации критического участка прикладной программы применительно к бюджетным микроконтроллерам stm32, повышающий производительность в 5 и более раз по сравнению с библиотечной функцией. Читать дальше →

[Перевод] Разрушаем мифы о производительности Android За прошедшие годы возникло немало мифов о производительности Android. Хотя некоторые мифы могут показаться занятными или забавными, пойти по ложному следу при создании эффективных приложений для Android — полная противоположность веселья.В этой статье мы собираемся проверить...

Имитация целенаправленных кибератак, Read Team, Pentest, сканирование уязвимостей. Плюсы и минусы различных методов В данной статье мы попытаемся сделать небольшое сравнение различных способов тестирования безопасности вашей сети и понять, есть ли какие-то преимущества у относительно новых BAS (Breach & Attack Simulations) систем, которые имитируют взлом и кибератаки. Для примера, в...

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

[Перевод] Linux-контейнеры в паре строчек кода В продолжение прошлой статьи о KVM публикуем новый перевод и разбираемся, как работают контейнеры на примере запуска Docker-образа busybox. Эта статья о контейнерах является продолжением предыдущей статьи о KVM. Я бы хотел показать, как именно работают контейнеры, запустив D...

[Перевод] Что такое Waypoint и какие возможности дает его использование Пару недель назад я посмотрела демонстрацию Waypoint— нового инструмента, который представила 15 октября 2020 года компания Hashicorp. Инструмента, который предназначен для создания легкого, интуитивного и настраиваемого под пользователя рабочего процесса сборки, развертыва...

[Перевод] Как собрать счетчики производительности процессора в Windows? Периодически мои подписчики задают мне вопросы о том, как проводить микроархитектурный анализ в Windows? Если честно, это никогда не представляло для меня какой-то особой проблемы. Угадайте почему? Потому что я работаю в Intel и, конечно же, у меня есть лицензия для использо...

[Перевод] SRE: Анализ производительности. Способ настройки с использованием простого вебсервера на Go Анализ производительности и настройка — мощный инструмент проверки соответствия производительности для клиентов. Анализ производительности можно применять для проверки узких мест в программе, применяя научный подход при проверке экспериментов по настройке. Эта статья опреде...

[Перевод] Использование современных графических форматов в веб-проектах Эдди Османи, в статье «Цена JavaScript в 2018 году», озвучил одну ценную мысль: время, необходимое на обработку скрипта размером 200 Кб, и на обработку изображения, имеющего такой же размер, серьёзно различается. Дело в том, что при обработке кода браузеру нужно проделать бо...

Атрибут cleanup Цитата из документации GCC [1]: Атрибут cleanup предназначен для запуска функции, когда переменная выходит из области видимости. Этот атрибут может быть применён только к auto-переменным, и не может быть использован с параметрами или с static-переменными. Функция должна прин...

[Перевод] Что JavaScript-разработчику следует знать о Curl Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи «What JavaScript Developers Should Know About Curl» автора Valery Karpov. Curl — это популярный инструмент командной строки, часто используемый для отправки HTTP-запросов. Curl поддерживает большое...

Полнотекстовый поиск FTS3, FTS4 и FTS5 в Android Полнотекстовый поиск необходим в приложениях для того, чтобы быстро находить совпадения в большом объеме данных. Такая возможность удобна, например, для поиска товаров, фильмов, рецептов, научных статей, а также фрагментов текста в электронных книгах. Хотя зачастую поиск реа...

Логи в Kubernetes (и не только) сегодня: ожидания и реальность Шёл 2019 год, а у нас всё ещё нет стандартного решения для агрегации логов в Kubernetes. В этой статье мы хотели бы, используя примеры из реальной практики, поделиться своими поисками, встречаемыми проблемами и их решениями. Однако для начала оговорюсь, что разные заказчи...

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

[Из песочницы] Если бы я учил Frontend сегодня. Советы начинающим Мой путь в веб-разработке начался 5 лет назад. За это время я успел испробовать множество технологий, а в последние 3 года развиваюсь в направлении frontend. В этой статье я бы хотел ясно изложить, какие технологии необходимо изучить новичку, а также поделиться методами их ...

TensorRT 6.x.x.x — высокопроизводительный инференс для моделей глубокого обучения (Object Detection и Segmentation) Больно только в первый раз! Всем привет! Дорогие друзья, в этой статье я хочу поделиться своим опытом использования TensorRT, RetinaNet на базе репозитория github.com/aidonchuk/retinanet-examples (это форк официальной репы от nvidia, который позволит начать использовать в ...

Архитектура и дизайн Android приложения (мой опыт) Хабр, привет! Сегодня я хочу рассказать об архитектуре, которой я следую в своих Android приложениях. За основу я беру Clean Architecture, а в качестве инструментов использую Android Architecture Components (ViewModel, LiveData, LiveEvent) + Kotlin Coroutines. К статье прил...

[Из песочницы] Бот для сборов. Собираемся на футбол с новыми технологиями Введение Всем привет. В этой статье я опишу своего чат-бота для сервиса обмена сообщениями telegram и социальной сети VK с использованием NodeJS. На этом месте у многих читателей должно вырваться что-то вроде: "Доколе!" или "Что, опять ?!". Да, похожие публикации уже были и ...

Стартовал открытый бета-тест Cascadeur Со времени первого анонса Cascadeur в начале 2019 года уже более 18 000 пользователей приняли участие в закрытом бета-тестировании программы. У аниматоров, занимающихся разработкой игр и созданием фильмов, было более 12 месяцев, чтобы испытать в работе наш инструментарий. ...

[Перевод] Подсчет запросов: Базовое тестирование производительности на Django Всем привет. Мы подготовили перевод еще одного полезного материала для студентов курса «Web-разработчик на Python», который стартовал вчера. Очень часто можно услышать о методах тестирования, таких как TDD, и о том, как тестировать бизнес-логику приложения. Однако тестиро...

Как мы использовали айтрекер для количественного эксперимента Привет, Хабр. На связи UX-лаборатория Авито. Сегодня хотим рассказать об опыте использования айтрекера для проведения количественного эксперимента. Серьёзных инсайтов и уроков не обещаем, просто поделимся своими мыслями. Расскажем, что вышло из идеи эксп...

Использование TLS fingerprinting для выявления угроз В статье хотим рассказать про технологию TLS fingerprinting, про которую недостаточно материалов в русскоязычном сегменте. Попробуем это исправить. Статья частично переводит тематические материалы авторов описываемых методов (тут и тут), а также содержит описание практическо...

Обзор возможностей PVS-Studio версии 7.07 Цель этой статьи – обзорная демонстрация возможностей статического анализатора PVS-Studio. Самый простой и наглядный способ это сделать – показать работу инструмента на примерах. Будет показана проверка проекта при помощи плагина для Visual Studio, запуск анализатора в опер...

UL Benchmarks объявил о создании теста 3DMark Wild Life Extreme UL Benchmarks объявил о создании теста 3DMark Wild Life Extreme. Он позволяет оценить качество и производительность графической системы для разных платформ. Подробнее об этом читайте на THG.ru.

Создание дизайн-системы для игры: детальный разбор подхода Меня зовут Максим Полстяной, я UI/UX Designer в Plarium Kharkiv. В этой статье я поделюсь опытом создания дизайн-системы для нашей браузерной стратегии «Войны Престолов», расскажу с чего все начиналось и какие этапы мы проходили. Читать дальше →

[Из песочницы] Вступление в работу с возвратом пользователя: советы для Hooked-модели Всем привет! Я — Сергей, R&D officer в Genesis. В этом тексте хочу поделиться своими знаниями и опытом по созданию привычки использования продукта, рассказать о том, как это влияет на прибыльность бизнеса и почему предпринимателей встречают по возврату. Читать дальше &...

Выбор хорошего инструмента для хранения тест документации и сравнительный анализ 3 выбранных инструментов Ведение документации для тестирования в Google-доках и Google-таблицах — не лучший способ работы с тестовой документацией. Такой подход имеет свои недостатки. В этой статье я расскажу, как мы перешли от хранения тестовой документации с Google docs к специализированным SaaS-р...

Распознавание объектов на android с помощью TensorFlow: от подготовки данных до запуска на устройстве Обучение нейросети распознаванию образов — долгий и ресурсоемкий процесс. Особенно когда под рукой есть только недорогой ноут, а не компьютер с мощной видеокартой. В этом случае на помощь придёт Google Colaboratory, которая предлагает совершенно бесплатно воспользоваться GPU...

Мониторинг NetApp Volumes через HTTP Всем привет. В продолжение прошлой статьи, связанной с костылями и SSH для мониторинга места и метрик производительности доступных нам томов на NetApp, хочу поделиться и описать более правильный способ мониторинга через ONTAP REST API с помощью Zabbix HTTP-agent. Так как мы ...

PIndastrial shield — модуль питания и интерфейса RS-485 для Raspberry PI Существует множество проектов, где в качестве основы системы используется Raspberry PI, но имеется ряд сложностей с обеспечением питания и взаимодействия с внешними устройствами. Я хотел бы поделиться опытом создания небольшого шилда для миникомпьютера, упрощающего его прим...

1000 и 1 способ сесть на мель в Spring WebFlux при написании высоконагруженного сервиса Источник изображения: Shutterstock.com/photowind Добрый день, меня зовут Тараканов Анатолий, я senior java разработчик SberDevices. 2.5 года программирую на Java, до этого 6 лет писал на C# и 1 год на Scala. Хочу поделиться опытом создания сервиса-оркестратора Voice Proces...

[Из песочницы] Apache Kafka и тестирование с Kafka Server Введение Существуют различные способы для написания тестов с использованием Apache Kafka. К примеру, можно использовать TestContainers и EmbeddedKafka. Об этом можно почитать, к примеру, вот здесь: Подводные камни тестирования Kafka Streams. Но существует и вариант для напис...

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

Бессерверные вычисления на основе OpenWhisk, часть 4 Эта статья заканчивает цикл переводных заметок об OpenWhisk от автора Priti Desai. Сегодня рассмотрим процесс развертывания OpenWhisk поверх Kubernetes с исправленными командами для работоспособности с актуальными версиями приложений. Также будет описан процесс запуска функ...

Онлайн-соревнование для авторов: лучшие «корпоративные» статьи 2020 Привет, Хабр! Хочу поделиться информацией об онлайн-конкурсе для авторов и редакторов, которые занимаются созданием контента для компаний. Главная цель соревнований – показать, что брендированный контент может быть ненавязчивым, интересным и полезным. Читать дальше →

Собираем логи с Loki Мы в Badoo постоянно мониторим свежие технологии и оцениваем, стоит ли использовать их в нашей системе. Одним из таких исследований и хотим поделиться с сообществом. Оно посвящено Loki — системе агрегирования логов. Loki — это решение для хранения и просмотра логов, также э...

[Перевод] Создание современных процессов CI/CD для бессерверных приложений с Red Hat OpenShift Pipelines и Argo CD. Часть 1 В недавней статье выдвинуто предложение использовать Tekton в качестве фреймворка для облачных пайплайнов CI/CD и Argo CD в качестве идеальной пары для GitOps. Методики GitOps поддерживают непрерывное развертывание в гибридных и мультикластерных средах Kubernetes. В настоящ...

[Перевод] Создаём линзы для SnapChat с использованием pix2pix Почти такой же заголовок носит и моя предыдущая статья, с той лишь разницей, что тогда я создавал линзы для SnapChat алгоритмически, используя dlib и openCV, а сегодня хочу показать, как можно добиться результата, используя машинное обучение. Этот подход позволит не занимать...

EasyUI: действительно easy? В этой статье я хочу поделиться опытом избавления от жуткой головной боли, возникшей при разработке веб-приложения для одного маленького, но весьма могучего устройства. Но сначала несколько слов об источнике этой боли — о дизайне.Дизайн сегодня один из необходимых компоненто...

Самодельный стратостат Допустим, вы интересуетесь космосом, но космос для вас недоступен. Выше 10км не подняться, а посмотреть "что там?" очень хочется. По классификации NASA — нижняя граница космоса начинается на 100км от поверхности Земли. Эта статья будет не совсем про космос, но про...

[Перевод] Использование VueJS вместе с Django Перевод статьи подготовлен в преддверии старта курса «Web-разработчик на Python». Введение Сейчас я работаю над очень интересным проектом. И в нем все сложно, потому что сам проект очень масштабный, а я занимаюсь им один в свободное время, при этом работая полный рабочий ...

Создаем свою CRUD API на Express и MySQL: часть первая Всем привет. В преддверии старта курса «Fullstack разработчик JavaScript», хотим поделиться небольшим материалом, который был написан нашим внештатным автором. Express один из самых популярных веб-фреймворков, который поддерживает роутинг, миддлвейрс и систему шаблонов. Д...

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

[Перевод] Автоматические скриншоты iOS с помощью XCTestplan и XCode 11 В Райффайзенбанке несколько мобильных приложений, которые должны работать на самых разных девайсах и операционных системах, поэтому мы стараемся автоматизировать рутинные процессы в тестировании. Эта статья показалась нам полезной, и мы решили ее перевести. foto source: u...

Qualcomm отреагировала на заявление MediaTek о ... Не так давно мастера AnandTech поймали за руку MediaTek в попытках ввести в заблуждение пользователей в части производительности чипов. Как оказалось, процессоры MediaTek способны распознавать запуск программ для тестирования железа и включать «турборежим», ...

Запуск печати прямо из Fusion 360 - Часть 1 Несмотря на то, что многие скептически относятся к функционалу слайсинга во Fusion 360, я пользуюсь только им с самого релиза (кажется, март 2020). В следующих нескольких статьях я хочу рассказать, что конкретно нужно сделать, чтобы получить G-код своей модельки прямо из фюж...

Есть ли жизнь без Nvidia? Запускаем TensorFlow на Radeon RX 580 На новом рабочем месте меня посадили за ПК, оборудованный процессором Ryzen 2600 и видеокартой Radeon RX 580. Попробовав обучать нейронные сети на процессоре, я понял, что это не дело: уж слишком медленным был процесс. После недолгих поисков я узнал, что существует как миним...

Telegram Open Network: теория и практика от валидатора сети В последние несколько месяцев всё внимание мирового блокчейн-сообщества было приковано к запуску одного из самых масштабных криптовалютных проектов — Telegram Open Network (TON). Что на самом деле представляет из себя блокчейн TON? Является ли сеть TON действительно децен...

Переносим Angular проект на ESLint, с Prettier, Husky и lint-staged Привет, Хабр! Меня зовут Богдан, я работаю в ПИК Digital Front-End тимлидом. Большую часть проектов мы разрабатываем на Angular и недавно я решил пересмотреть наши стайл гайды, а также добавить новые инструменты для более удобной работы. В качестве линтера я решил использов...

[Перевод] Эндрю Ын «Страсть к машинному обучению». Перевод глав 47-58 Это вторая статья с переводом отдельных глав книги Эндрю Ына «Страсть к машинному обучению». Перевод предыдущих глав вы можете почитать по ссылке. В этой статье речь пойдёт о сквозном (end-to-end) глубоком обучении, а так же автор книги поделится некоторыми способами анал...

Эксперименты с нейронными сетями на данных сейсморазведки Сложность интерпретации данных сейсмической разведки связана с тем, что к каждой задаче необходимо искать индивидуальный подход, поскольку каждый набор таких данных уникален. Ручная обработка требует значительных трудозатрат, а результат часто содержит ошибки, связанные с че...

[Перевод] Apple M1 предвещает взлет RISC-V Сейчас стало очевидным, что создание чипа Apple M1 — это примечательное событие. Постепенно становятся ясными последствия для всей отрасли. В этой статье я хочу поговорить о связи с микропроцессорами RISC-V.Для начала небольшая предыстория: почему чип Apple M1 такой быстрый?...

[Перевод] Валидация параметров конфигурации Spring Boot при запуске Одним из важных шагов для обеспечения возможности настройки программных приложений является эффективное управление конфигурацией. Современные платформы предоставляют готовые функции для вывода параметров конфигурации. Для некоторых параметров конфигурации имеет смысл не зап...

Материальный дизайн. Создание анимаций в Kivy Приветствую всех любителей и знатоков языка программирования Python! В этой статье я покажу, как работать с анимациями в кроссплатформенном фреймворке Kivy в связке с библиотекой компонентов Google Material Design — KivyMD. Мы рассмотрим структуру Kivy проекта, использован...

VMware ESXi на Raspberry Pi Ранее мы рассказывали, что VMware ESXi стала доступна для Raspberry Pi. В данной статье мы рассмотрим установку гипервизора и запуск гостевой ОС на Raspberry PI 4 Model B. Читать дальше →

Инкапсулятор Etherblade.net и импортозамещение сетевых компонентов (часть вторая) В первой статье я хотел показать, что FPGA девелопмент — интереснейшее занятие, а реализация потокового инкапсулятора является достаточно несложным проектом, который вполне мог бы выступить в качестве академического проекта для студентов старших курсов или аспирантуры. Да...

Полный набор gRPC, RESTful JSON API и Swagger из одного .proto файла. От введения до нюансов и тонкостей grpc-gateway В этой статье я опишу процесс создания сервера с gRPC и RESTful JSON API одновременно и Swagger документацию к нему. Эта статья — продолжение разбора различных способов реализаций API-сервера на Golang с автогенерацией кода и документации. Там я обещал более подробно остано...

[Перевод] Способы использования Math.random() в JavaScript Math.random() — это один из API JavaScript. Это — функция, которая возвращает случайные числа. Диапазон возвращаемых чисел представлен значениями от 0 (включая 0, то есть, она может вернуть 0) до 1 (не включая 1, то есть — единицу она вернуть не может). Math.random(); // во...

Молодежный родстер «Крым» — новые горизонты. Часть вторая Предыдущая статья о родстере «Крым», созданным студентами Бауманки, вызвала большой интерес среди наших читателей. В новом материале мы хотим поделиться с вами еще большим объемом информации и наглядными результатами краш-тестов и экспериментов, проведенными над автомобилем....

[Из песочницы] Различные способы передачи данных в компоненты Angular Привет, Хабр! Представляю вашему вниманию перевод статьи «Different Ways to Pass Inputs to a Component in Angular» автора Netanel Basal. В этой статье, мы разберём три разных способа передачи данных в компонент. В следующем примере мы будем использовать select как главный...

[Из песочницы] Большое тестирование процессоров различных архитектур Предисловие Попытка сравнить производительность процессоров на разнородных архитектурах x86-64, e2k (Эльбрус), mips и arm. Все тесты написаны на языке C (взяты из исходных кодов, которые я не модифицировал и не оптимизировал) и компилируются под конкретную архитектуру с испо...

[Перевод] Лучшие практики Kubernetes. Настройка запросов и лимитов ресурсов Лучшие практики Kubernetes. Создание небольших контейнеров Лучшие практики Kubernetes. Организация Kubernetes с пространством имен Лучшие практики Kubernetes. Проверка жизнеспособности Kubernetes с помощью тестов Readiness и Liveness Для каждого ресурса Kubernetes имеется в...

Готовый шаблон для тестирования с использованием Spring Представляю вам — готовый шаблон для тестирования с использованием Spring. Введение Цель этой статьи показать, что писать автотесты со Spring проще нежели на чистой Java. Так же хочу продемонстрировать, насколько Java + Spring упрощает жизнь тестировщикам. Для кого эта ...

Final Fantasy VII Remake полностью готов к запуску Представители Square Enix сообщили, что игровой Final Fantasy VII Remake полностью готов к официальному запуску. Напомним, что выход игры запланирован на 10 апреля на платформе PlayStation 4. Задержек запуска не планируется. Разработчики проделали огромную работу над прод...

Облачные игры: стресс-тест 5 облачных игровых сервисов плохим интернетом Около года назад я публиковала статью «Облачные игры: оценка возможностей сервисов для игры на слабых ПК из первых рук». В ней анализировались плюсы и минусы разных сервисов для облачных игр на слабых ПК. Я в ходе игры тестировала каждый сервис и поделилась в итоге общим впе...

Swift.assert — жизнь после релиза Как часто вы используете Swift.assert() в вашем коде? Я, честно, использую довольно часто (Если это плохая практика, то, пожалуйста, напишите в комментариях — почему это плохо?). В моем коде часто можно встретить, например, такой вызов: Swift.assert(Thread.isMainThread) Не ...

[Перевод] Серфинг интернета геймпадом (Javascript) Сидя за столом, вы используете мышку и клавиатуру, сидя на диване — скорей всего тачпад ноутбука или тачскрин планшета. Возможно, вы даже используете Leap Motion и управляете компьютером с помощью жестов. Как вы уже поняли, существует множество способов серфить интернет и у...

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

TDD для микроконтроллеров. Часть 3: Запуск на железе TDD для микроконтроллеров. Часть 1: Первый полет TDD для микроконтроллеров. Часть 2: Как шпионы избавляют от зависимостей TDD для микроконтроллеров. Часть 3: Запуск на железе В первой части нашего цикла статей мы начали освещать тему эффективности применения методологии TDD...

[Перевод] Тестирование производительности аналитических запросов в PostgreSQL, ClickHouse и clickhousedb_fdw (PostgreSQL) В этом исследовании я хотел посмотреть, какие улучшения производительности можно получить, используя источник данных ClickHouse, а не PostgreSQL. Я знаю, какие преимущества производительности при использовании ClickHouse я получаю. Будут ли эти преимущества сохранены, если я...

[Из песочницы] Discord как корпоративный мессенджер и не только Хочу рассказать про использование мессенджера Discord как основного средства коммуникации в команде. Опыт может быть полезен другим командам, использующим бесплатные мессенджеры, а также всем, кто ищет пути повышения эффективности использования мессенджеров. Discord – прогр...

Blazor Client Side Интернет Магазин: Часть 6 — Создание заказа и работа с компенсирующими действиями Привет, Хабр! Продолжаю делать интернет магазин и изучать Blazor. В этой части расскажу о том как добавил в него возможность создания заказа, просмотра заказов и работу с последовательностью действий одно из которых может завершиться ошибкой. За подробностями добро пожалов...

ELK, SIEM, Open Distro: Составление отчетов Чтобы защитить вашу корпоративную сеть от угроз и атак, вы всегда должны выполнять тест на уязвимости в своей системе. Для того, чтобы их исправить. Итак, как вы понимаете, работа с отчетами очень важна для любого SOC, потому что она дает обзор уязвимостей, которые могут быт...

Blazor: Server и WebAssembly одновременно в одном приложении ASP.NET Core Blazor — это разработанная Microsoft веб-платформа, предназначенная для запуска на стороне клиента в браузере на основе WebAssembly (Blazor WebAssembly) или на стороне сервера в ASP.NET Core (Blazor Server), но две эти модели нельзя использовать одновременно. П...

Как «готовить» nullable reference types с добавлением appsettings.json В данной статье хочу поделиться своими размышлениями о том, можно ли на современном C# писать код, безопасный от NullReferenceException. Этот зловредный тип исключения не говорит разработчику, в каком конкретно месте у него null. Конечно, от отчаяния можно?.начать?.писать?.о...

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

[Подборка] 6 no-code инструментов для быстрого запуска продуктов и автоматизации процессов Изображение: Designmodo Еще несколько лет назад запуск любого онлайн-бизнеса был связан с целым рядом сложностей. Нужно было найти разработчиков для запуска сайта – если требовался хоть шаг в сторону от функциональности обычных конструкторов. В том случае, когда требовало...

Traefik, docker и docker registry Под катом вы увидите:• Использования Traefik в качестве обратного прокси для маршрутизации трафика внутрь docker контейнеров.• Использование Traefik для автоматического получения Let’s Encrypt сертификатов• Использование Traefik для разграничения доступа к docker registry пр...

[Перевод] Создание пайплайнов CI с помощью Tekton (внутри Kubernetes). Часть 1/2 В этой статье мы собираемся создать пайплайн непрерывной интеграции (CI) с Tekton, фреймворком с открытым исходным кодом для создания конвейеров CI / CD в Kubernetes. Мы собираемся подготовить локальный кластер Kubernetes через kind и установить на нем Tekton. После этого мы...

Консольные утилиты Linux, которые смогут облегчить вам жизнь (Часть 2) Так как предыдущая статья зашла довольно хорошо, было бы неправильно не поделиться дополнительными утилитами, которые я использую и по сей день. Сразу хочу оговориться, что статья адаптирована и для новичков, а старым линуксоидам придётся немного сточить зубы потерпеть разж...

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

Postgresso 24 Жизнь продолжается. А мы продолжаем знакомить вас с самыми интересными новостями PostgreSQL. На этот раз мы решили немного изменить формат Постгрессо: теперь никакого информационного равноправия. Об одних релизах и статьях будем рассказывать подробней, о других — в паре стр...

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

Улучшаем производительность сайта с помощью PageSpeed от Google Всех приветствую! Присаживайтесь поудобнее, налейте вкусного чаю и давайте обсудим довольно популярную и животрепещущую тему: оптимизацию производительности сайта. Одним из инструментов для анализа качества и usability страницы с составлением отчёта является PageSpeed Ins...

Закладки и «Избранное» в браузере Safari на Мас: Полное руководство Закладки и «Избранное» в Safari на Мас предлагают легкий способ хранить ссылки на ваши любимые сайты или ресурсы, которые вы хотели бы посетить позднее. В данной статье мы расскажем, как эффективно организовать и управлять закладками и «Избранным» в «яблочном» браузере. ♥ ПО...

Давайте напишем командную оболочку Linux Всем привет! Хочу поделиться своим опытом написания собственной командной оболочки Linux используя Posix API. Усаживайтесь поудобнее.Что должен уметь наша командная оболочка?1. Запуск процессов в foreground и background режиме2. Завершение background процессов3. Поддержка пе...

КОМПАС-3D v18 Home. Мини-курс проектирования под 3D-печать. От основ моделирования к 3D-проектированию сверху вниз Во многих статьях про 3D-печать подробно разбирается работа 3D-принтера и процесс печати, а создание 3D-модели описывается одной фразой, как будто это элементарное действие (что, конечно, совсем не так). Мы сделали мини-курс по 3D-моделированию, который учитывает особенности...

Состоялся релиз новой версии Proton 5.13 для запуска Windows-игр в Linux Компания Valve выпустила новую версию проекта Proton 5.13-1, который основан на Wine и предназначен для запуска в Linux-системах игр, созданных для платформы Windows и распространяемых через Steam. Новая версия Proton переведена на Wine 5.13. Разработчики перенесли 256 патче...

[Перевод] Именование в CSS Grid Когда вы впервые изучаете, как использовать Grid-разметку, можно начать с размещения элементов на сетке по номерам линий. В этом случае необходимо следить за тем, где на сетке проходят определённые линии, и помнить о том, что последовательность их номеров меняется на противо...

PGHero — дашборд для мониторинга БД PostgeSQL Всем привет. Сегодня я бы хотел поделиться рецептом установки утилиты PGHero с подключением нескольких баз данных. PGHero — это простенькая утилита, написанная на Ruby, с минималистичным дашбордом для мониторинга производительности БД PostgreSQL.Что может показать нам PGHero...

[Перевод] Delta: Платформа синхронизации данных и обогащения В преддверии запуска нового потока по курсу «Data Engineer» подготовили перевод интересного материала. Обзор Мы поговорим о достаточно популярном паттерне, с помощью которого приложения используют несколько хранилищ данных, где каждое хранилище используется под свои цели,...

2020. Орбитальные запуски. Итоги Вячеслав Ермолин, 31 декабря 2020 года.2020. Орбитальные запуски.Вопреки известным глобальным проблемам пусковая программа 2020 года является одной из лучших за последние 20 лет: 114 попыток орбитального запуска от восьми стран. Впереди двое: США (44 запуска при 4-х авариях)...

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

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

[Из песочницы] Установка и настройка RTKRCV (RTKLIB) на Windows 10 с использованием WSL Здравствуйте, в данной статье разбирается процесс установки и запуска приложения RTKRCV из открытой библиотеки RTKLIB, разрабатываемой командой Томоджи Такасу (Япония). RTKLIB — это программный пакет с открытым исходным кодом для стандартного и точного позиционирования с и...

Как строить диаграмму Гантта по Jira-тикетам Статья для менеджеров, которым необходимо вести управление проектами в изменчивом мире Agile. Поделюсь опытом использования двух приложений Jira Roadmap и Structure Gantt. Читать далее

Автоматизация тестирования: Java или Python? Всем привет! В марте OTUS запускает сразу два курса по автоматизации тестирования: «Python QA Engineer» и «Java QA Engineer». У нас часто спрашивают, какой из этих курсов выбрать, ответить на данный вопрос мы решили переводом статьи от компании SafeBear. Один из самых попу...

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

[Из песочницы] Разбор UI/UX на примере прототипа в Figma и основные принципы Кому адресована статья В данной публикации я хочу помочь начинающим и «не очень» бизнес-аналитикам, менеджерам проектов, владельцам продуктов, желающим сделать свой первый сайт и всем-всем, кому надо сделать макет сайта или приложения, а он не знает с какой стороны подступит...

DINS QA EVENING (online): кейс по тестированию WebRTC-based сервиса и способы избежать запуска flaky-тестов Приглашаем на онлайн-митап DINS QA EVENING, который состоится 21.05 в 19:00. Этим вечером Антон Коршунов из DINS расскажет об опыте тестирования медиа-сервера WebRTC, а Иван Варивода из Wrike покажет, как избежать запуска flaky-тестов с помощью тестового карантина и систем...

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

Flutter BloC паттерн + Provider + тесты + запоминаем состояние Эта статья выросла из публикации “BLoC паттерн на простом примере” где мы разобрались, что это за паттерн и как его применить в классическом простом примере счетчика. По комментам и для своего лучшего понимания я решил попробовать написать приложение в котором будут получены...

[Перевод] Распределенное обучение с Apache MXNet и Horovod Перевод статьи подготовлен в преддверии старта курса «Промышленный ML на больших данных» Распределенное обучение на нескольких высокопроизводительных вычислительных экземплярах может сократить время обучения современных глубоких нейронных сетей на большом объеме данных с не...

Camunda external tasks — мощный инструмент для создания приложений с отказоустойчивой и масштабируемой архитектурой В Тинькофф для разработки систем автоматизации бизнес-процессов мы используем фреймворк Camunda + Spring. Сами бизнес-процессы описываем с помощью BPMN (Business Process Management Notation) в виде блок-схем. Наиболее часто используемый элемент на наших схемах — service ta...

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

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

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

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

PHP и регулярные выражения: азы для новичков В преддверии старта нового потока по курсу «Backend-разработчик на PHP», а также смежного с ним курса «Framework Laravel», хотим поделиться статьей, которую подготовил наш внештатный автор. Внимание! данная статья не имеет отношения к программе курса и будет полезна только ...

Как сделать базовый тест-класс для Selenium тестов и выполнить инициализацию через JUnit RuleChain Этой статьей мы продолжаем серию публикаций о том, как мы автоматизировали в одном из крупных проектов ЛАНИТ процесс ручного тестирования (далее – автотесты) большой информационной системы (далее – Системы) и что у нас из этого вышло. Как эффективно организовать иерархию кл...

[Из песочницы] Создание Discord-бота, используя библиотеку discord.js | Часть №1 Введение В этой статье я подробно расскажу о том, как работать с библиотекой discord.js, создать своего Discord-бота, а также покажу несколько интересных и полезных команд. Сразу хочу отметить, что я планирую сделать ряд подобных статей, начиная с простых команд, заканчивая...

Установка простого приложения (например Superset) в microk8s используя metallb и helm Snaps являются кросс-дистрибутивными, независимыми и простыми в установке приложениями, упакованными со всеми их зависимостями для запуска во всех основных дистрибутивах Linux. Snaps безопасны — они ограничены и не ставят под угрозу всю систему. Они работают под разными уров...

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

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

[Из песочницы] Долгий DNS resolve в Kubernetes Эта статья посвящена проблемам работы DNS в Kubernetes, с которыми столкнулась наша команда. Как оказалось, иногда проблема лежит гораздо глубже, чем кажется изначально. Вступление Всегда наступает момент, когда в уже отлаженную работу вмешиваются обстоятельства, заставляя н...

343 Industries поделилась подробностями об игровом мире Halo Infinite Студия 343 Industries опубликовала февральскую статью в рамках рубрики Inside Infinite, где поделилась новыми подробностями о разработке Halo Infinite. На этот раз речь зашла об окружающем мире и дизайне локаций. По словам разработчиков, в основе дизайна локаций Ореола Зета...

Физика для мобильного PvP шутера, или как мы из двумерной игру в трёхмерную переделывали В предыдущей статье мой коллега рассказал о том, как мы использовали двумерный физический движок в нашем мобильном мультиплеерном шутере. А теперь я хочу поделиться тем, как мы выкинули всё, что делали до этого, и начали с нуля ― иными словами, как мы перевели нашу игру из...

Как защитить свой публичный сайт с ESNI Привет Хабр, меня зовут Илья, я работаю в платформенной команде компании Exness. Мы разрабатываем и внедряем базовые инфраструктурные компоненты, которые используют наши продуктовые команды разработки. В этой статье я бы хотел поделиться опытом внедрения технологии encrypt...

[Перевод] Аварии космических ракет, связанные с топливом: заправлять до полного? Запуск ракеты «Протон» в 2010 не удался не потому, что ей не хватило топлива, а потому, что его было слишком много Автор статьи – Уэйн Элиазер, проработал в ВВС США 25 лет, был менеджером программы «Тор», директором испытаний ракет семейства «Атлас», главой отдела космичес...

Настройка CI/CD в Plesk+Github Actions для проекта на Flask+Angular В этой статье я поделюсь своим опытом настройки CI/CD с использованием панели управления Plesk и Github Actions. Сегодня будем учиться деплоить простенький проект с незамысловатым названием «Helloworld». Он написан на Python-фреймворке Flask, с воркерами на Celery и фронтен...

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

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

Microsoft прекращает поддержку PHP в Windows, предлагая переходить на Linux Microsoft прекращает поддержку PHP в Windows и объявила дорожную карту этого процесса. В дальнейшем для запуска последней версии PHP в Windows придется использовать WSL или сразу переходить на Linux и производить там запуск PHP. Подробнее об этом читайте на THG.ru.

Создание Microsoft Teams чат-бота без программирования с поддержкой Azure Active Directory Добрый день всем, друзья. В одной из прошлых статей я рассказывал о том, как создать чат-бота на базе сервиса Microsoft Power Virtual Agents, полностью без программирования, с поддержкой ветвления и нескольких типов диалогов. В сегодняшней статье я покажу, как быстро создать...

Запуск сложных C++ приложений на микроконтроллерах Сегодня никого не удивить возможностью разрабатывать на C++ под микроконтроллеры. Проект mbed полностью ориентирован на этот язык. Ряд других RTOS предоставляют возможности разработки на С++. Это удобно, ведь программисту доступны средства объектно-ориентированного програм...

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

Асинхронный код в Startup ASP.NET Core: 4 способа обхода GetAwaiter().GetResult() С тех пор, как в C# 5.0 завезли механизм async/await, нас постоянно во всех статьях и доках учат, что использовать асинхронный код в синхронном очень плохо. И призывают бояться как огня конструкции GetAwaiter().GetResult(). Однако есть один случай, когда сами программисты Mi...

Хабр Q&A 2019: итоги года Подводим итоги на Хабр Q&A: за год вы успели задать более 100 000 вопросов и дать почти 200 000 ответов! В статье вспоминаем самые большие запуски и делимся статистикой. Читать дальше →

Запуск «ЭкзоМарса» отложен до следующего пускового окна в 2022 году Запуск был перенесён на август-октябрь 2022 года по ряду причин. Новые сроки прибытия российской посадочной платформы и европейского марсохода на Марс: апрель-июль 2023 года. Читать дальше →

Принцип SRP на примере Laravel Принцип SRP (Принцип Единой Ответственности) — один из основополагающих принципов написания поддерживаемого кода. В этой статье я покажу как применить данный принцип на примере языка PHP и фреймворка Laravel. Часто, описывая модель разработки MVC (MVP, MVVM или другие M**),...

Xiaomi поделилась тизерами обновлённой модели ноутбука Mi Notebook Pro В конце февраля на мероприятии по запуску смартфонов Redmi K40 компания Xaiomi анонсировала ноутбуки RedmiBook Pro 14 и RedmiBook Pro 15. Теперь китайский техногигант поделился в Сети изображениями, намекающими на скорый запуск обновлённого ноутбука Mi Notebook Pro и дающими...

Используем бесплатные возможности Github Actions для CI/CD на Flutter-проекте GitHub Actions — инструмент для автоматизации рутинных действий с репозиторием и подспорье при создании CI/CD для вашего проекта. Пользователи GitHub’а ежемесячно получают по 2000 минут, чтобы выполнять GitHub Actions на инфраструктуре сервиса. Применим это бесплатное время...

Новогодний контакт-центр 2020: No-Code Edition Примерно 5 лет назад мы написали статью о том, как можно быстро создать простой новогодний кол-центр с Дедами Морозами и Снегурочками в качестве операторов, используя Voximplant. Несмотря на широкий доступный инструментарий, предлагаемый платформой (Web SDK, Server...

Играем в DOOM на тесте на беременность. Что? Да А также на микроволновке, валидаторе билетов и многом другом. Ко флэшмобу по переносу DOOM на любые устройства, у которых только есть дисплей, теперь добавился еще и тест на беременность. Программист-энтузиаст и адепт реверс-инжиниринга Foone сумел запустить полнофункцио...

Разработка приложения для обработки видео: на что обратить внимание и при чем тут зумеры Привет, Хабр!Меня зовут Алексей Жуков. Более 10 лет вместе с командой разработчиков я занимаюсь созданием и дизайном приложений и интернет-платформ. В статье хочу поделиться своим видением трендов на рынке видеоконтента. Разберемся в том, что будет после пандемии и что учест...

Как запустить MVP и не превратить его в технический долг Последние пять лет я работаю в аутсорсинге, поэтому часто занимаюсь запуском новых продуктов. Чаще всего первый шаг - создание так называемого MVP (minimum viable product).При запуске MVP большинство компаний стремятся зафиксировать сроки и бюджет: еще нет уверенности, что б...

Сверхдлинное преобразование Фурье на FPGA Всем привет! В этой статье я хочу рассказать про реализацию алгоритма сверхдлинного быстрого преобразования Фурье на ПЛИС. Написать эту статью меня побудило желание поделиться личным практическим опытом, который не хотелось бы потерять, оставив информацию только у себя в го...

Автоматизация тестирования при создании игр Введение: Автоматизированное тестирование во всю свою мощь используется многими компаниями. Юнит-тесты, Интеграционные тесты, UI тесты, ручное тестирование и прочие методы. Но почему-то в такой большой области, как GameDev автоматизация тестов сводится к тому, что билды пер...

[recovery mode] «День Илона Маска». Первый полет астронавтов NASA на корабле Crew Dragon от SpaceX День который давно ждали — пришел! Сегодня должен состояться один из важнейших запусков года — «первый, за почти десять лет, полет американских астронавтов на американском корабле с американской земли». Частный пилотируемый космический корабль Crew Dragon от компании SpaceX ...

Запускаем Apache Spark на Kubernetes Дорогие читатели, доброго дня. Сегодня поговорим немного про Apache Spark и его перспективы развития. В современном мире Big Data Apache Spark является де факто стандартом при разработке задач пакетной обработки данных. Помимо этого, он также используется для создания стр...

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

[Из песочницы] Использование Quartus и ModelSim Меня всегда интересовала цифровая схемотехника, а в частности языки описания аппаратуры -HDL. У меня давно лежала в списке будущего чтения книга Дэвида М. Хэррис и Сары Л. Хэррис «Цифровая схемотехника и архитектура компьютера», воспользовавшись свободным временем на самоизо...

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

[Перевод] Apple Silicon: конец эры Wintel Прим. перев.: автор статьи — Жан-Луи Гассе, предприниматель, менеджер. В конце 1960-х – начале 1970-х руководил в Hewlett-Packard запуском проекта первого настольного научного компьютера. В 1981 году стал директором по европейским операциям в компании Apple Computer. В 198...

Украинские специалисты будут готовить к запуску ракету в США Украинские специалисты из ГП «Конструкторское бюро «Южное» имени М.К. Янгеля» и НПП «Хартрон-Аркос» ЛТД полетели в США, где примут участие в работах по подготовке к запуску ракеты-носителя корпорации Northrop Grumman «Антарес». Цель запуска – доставить грузы на Междуна...

Администрирование Informatica PowerCenter в деталях, часть первая Посвящается моему коллеге и наставнику по Informatica Максиму Генцелю, который умер от COVID-19 21.01.2021 Привет! Меня зовут Баранов Владимир, и я уже несколько лет администрирую Informatica в «Альфа-Банк». В статье я поделюсь опытом работы с Informatica PowerCenter. IPC ...

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

[Перевод] 5 визуализаций, который помогут улучшить Data Story Статья переведена в преддверии запуска курса «Разработчик Python». Сторителлинг – один из важнейших навыков для специалистов, которые занимаются анализом данных. Чтобы доносить идеи и делать это убедительно, нужно простраивать эффективную коммуникацию. В этой статье мы поз...

Я автоматизировал тестирование Dr. Web. А сможете ли вы? Я никогда не пользовался Dr. Web. Я понятия не имею, как он устроен. Но это не помешало мне написать для него ряд автотестов (и лишь лень не позволила мне написать ещё сотню других): Тест на установку Dr. Web; Тест на ограничение доступа к съемным устройствам (флешкам); Те...

Запуск космических летательных аппаратов и… погода в регионах 30 лет назад статья с таким заголовком была опубликована в журнале «Изобретатель и рационализатор» №5 за 1990 год в разделе «гипотезы». Предположительно, автор статьи – Рыбников Сергей Игоревич, профессор Московского Авиационного Института, автор более 100 научных работ, в...

Опыт Embox как менторской организации в программе GSoC2020 Всем привет! В этом году Embox участвовал в качестве менторской организации в программе GSoC. В статье я бы хотел рассказать об этом, на наш взгляд, очень интересном опыте. Читать дальше →

[Перевод] Вставка реальных объектов в Unity с помощью Meshroom Из этой статьи вы узнаете, как использовать фотограмметрию для фотосканирования и вставки объектов реального мира в проекты Unity при помощи Meshroom. В контексте 3d-моделей фотограмметрия — это процесс создания 3D-моделей из отсканированных объектов. Вам нужны реалистичн...

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

Сериализация в JSON и иммутабельный объект. О пакете built_value для Flutter Иногда JSON от API необходимо конвертировать в объект и желательно в иммутабельное значение. На Dart это возможно, но для этого необходимо много кодить для каждого из объектов. К счастью, существует пакет, который поможет Вам все это выполнить, и в этой статье я Вам расска...

[Перевод] Пишем макет 16-битного ядра на C/C++ В первой и второй статьях я лишь коротко представил процесс написания загрузчика на ассемблере и C. Для меня это было хоть и непросто, но в то же время интересно, так что я остался доволен. Однако создания загрузчика мне показалось мало, и я увлекся идеей его расширения до...

[Перевод] Упрощаем фоновые рисунки c помощью конических градиентов Один из известных способов создания повторяющихся фоновых узоров — это применение линейных градиентов. Но если использовать с этой же целью conic-gradient(), требуется значительно меньшее количество CSS-кода. Данное преимущество конических градиентов проиллюстри...

[Перевод] Разбираемся с launchMode Android Activity: standard, singleTop, singleTask и singleInstance Перевод статьи подготовлен специально для студентов продвинутого курса по Android разработке. Activity — это одна из самых ярких концепций в Android (самой популярной мобильной операционной системе с хорошо продуманной архитектурой управления памятью, которая отлично реал...

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

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

Как Computer Science Center перевёл обучение в онлайн Когда понадобилось в один день перевести весь CS центр на домашнее обучение, кураторы проделали большую работу по замене живых лекций на равноценные альтернативы, зато всё остальное уже работало. Центр давно использует онлайн-платформы в очном обучении, в том числе свою собс...

Open Source синтез речи SOVA Всем привет! Ранее мы выкладывали статью про наше распознавание речи, сегодня мы хотим рассказать вам о нашем опыте по созданию синтеза речи на русском языке, а также поделиться ссылками на репозитории и датасеты для свободного использования в любых целях. Если вам интересн...

[Из песочницы] Конспект по методам классификации данных При изучении Data Science, я решил составить для себя конспект по основным приемам, используемым в анализе данных. В нем отражены названия методов, кратко описана суть и приведен код на Python для быстрого применения. Готовил конспект для себя, но подумал, что кому-то это та...

Шифрование TLS-трафика по алгоритмам ГОСТ-2012 c Stunnel В этой статье я хочу показать, как настроить Stunnel на использование российских криптографических алгоритмов в протоколе TLS. В качестве бонуса покажу, как шифровать TLS-канал, используя алгоритмы ГОСТ, реализованные в криптоядре Рутокен ЭЦП 2.0. Но для начала давайте вооб...

Поиск родственников через тест ДНК. Часть 3 – Сдача теста и отправка по почте Ранее я рассказал о ДНК-тестировании для генеалогии и о том, как выбрать тест. Теперь немного расскажу о том, как сделать тест и как его отправить обратно. Уже потом будут получение результата и его анализ, но сначала надо купить сам тест, сделать забор материала и отправить...

Тестирование «переплетением» – в 100 раз быстрее АБ теста А/Б тестирование – один из основных инструментов продакт менеджмента, пока еще не придумали более надежного и дешевого способа достоверно оценить влияние одного конкретного изменения на бизнес-метрики продукта, изолировав его от всех остальных факторов. В этой статье я хочу...

[Перевод] REST API в Symfony (без FosRestBundle) с использованием JWT аутентификации. Часть 1 Перевод статьи подготовлен в преддверии старта курса «Symfony Framework». В первой части статьи мы рассмотрим самый простой способ реализации REST API в проекте Symfony без использования FosRestBundle. Во второй части, которую я опубликую следом, мы рассмотрим JWT аутентиф...

Устройство расширений для браузера Firefox (WebExtensions) Для людей, работа которых связана с использованием сети Интернет, расширения браузера могут быть очень полезными инструментами. С помощью них можно избавить пользователя от повторения одних и тех же действий и лучше организовать рабочий процесс. Можно составить набор инструм...

Как мы работаем над качеством и скоростью подбора рекомендаций в Яндекс.Дзене Меня зовут Павел Пархоменко, я ML-разработчик в Яндекс.Дзене. В этой статье я хотел бы рассказать об устройстве нашего сервиса и поделиться техническими улучшениями, внедрение которых позволило увеличить качество рекомендаций. Из поста вы узнаете, как всего за несколько милл...

Интересная форма Хабр, привет. Эта статья не претендует на большую серьезность, я просто хочу поделиться новой формой, которую я открыл. Это такой круг, цвет точек которого равен сумме квадратов координат заданной точки. Другими словами pixel_color=(pixel_x^2+pixel_y^2).toString(16). Читать ...

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

Запуск PlayStation 5 был назван лучшим в истории Sony Sony поделилась результатами запуска нового поколения консоли. Так, по словам представителей японской компании, именно запуск PlayStation 5 стал самым лучшим в истории Sony.

[Из песочницы] Golang + Phaser3 = MMORPG — Делаем базу для бесконечной генерации мира На русскоязычных ресурсах трудно найти подходящую информацию, возможно этот материал позволит вам понять некоторые основы для создания многопользовательских игр и не только. Я планирую сделать серию статей по созданию 2.5D MMORPG, то бишь в изометрии, наш мир будет разделе...

Сравнивали Haskell и C++, а сравнили jump и cmov В статье [ссылка] было заявлено, что производительность Haskell кода превзошла код на С++. Что сразу вызвало интерес, т.к. и то и другое может генерироваться LLVM компилятором, значит либо Наskell может давать больше хинтов компилятору, либо что-то не так с С++ реализацией....

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

Успешный запуск. Спутники Starlink L10. Запуски 2020 года: 63-й общий, 57-й успешный, 23-й от США Вячеслав Ермолин, 18 августа 2020 г. Миссия: Основная: Запуск 58 коммуникационных спутников Starlink-10. Десятый запуск Starlink v1.0. Для будущей системы низкоорбитального коммерческого интернета StarX. Дополнительная: Rideshare. Запуск трех спутников ДЗЗ SkySat от комп...

[Из песочницы] Еще один способ измерить производительность методов .NET приложений Зачастую необходимо собирать статистику по производительности методов приложения в режиме реального времени (когда приложение уже запущено), чтобы выявлять его узкие места, и видеть, какая часть приложения тормозит. При этом было бы неплохо помимо самих данных по производит...

Самодельный антисептик из того, что есть в аптеке. Делаем спирт из водки без самогонного аппарата дедовским способом В этой статье я расскажу про приготовление антисептика для рук с использованием увлажняющего геля на основе алоэ, а также антисептика по рецепту ВОЗ из компонентов, которые можно купить в обычной аптеке (да, и спирт тоже, хотя в РФ он там и не продается). Во второй части ст...

Работа с базами данных глазами разработчика Когда вы разрабатываете новый функционал с использованием базы данных, цикл разработки обычно включает следующие этапы (но не ограничивается ими): Написание SQL миграции → написание кода → тестирование → релиз → мониторинг. В этой статье я хочу поделиться некоторыми практ...

Дорожная карта миграции почты IBM Notes/Domino в Exchange и Office 365 Переход с IBM Notes на Microsoft Exchange или Office 365 дает весомое количество преимуществ для организации, но сам проект миграции выглядит пугающе и не совсем понятно с чего нужно начинать миграцию. Сам Exchange не включает собственные инструменты для полной миграции ил...

TDD в микроконтроллерах. Часть 2: Как шпионы избавляют от зависимостей В предыдущей статье мы начали освещать тему эффективности применения методологии TDD для микроконтроллеров (далее – МК) на примере разработки прошивки для STM32. Мы выполнили следующее: Определили цель и инструменты разработки. Настроили IDE и фреймворк для написания тесто...

Интерактивные финансовые данные в 20 строках кода Статьи на финансовые темы появляются на Хабре регулярно. Во многих из них в качестве источника первичных данных используется неофициально открытое API Yahoo finance. В этой статье я покажу три способа добыть данные (включая Yahoo) а также как напилить из них простое вэб-прил...

Kubernetes: мониторинг c помощью Prometheus Привет, Хабр! Меня зовут Радик, Head of DevOps of AGIMA! В этой статье я постарался показать, как можно использовать Prometheus в качестве системы мониторинга для микросервисной архитектуры. Подробно рассмотрел архитектуру Prometheus и взаимодействие его компонентов. О...

[Из песочницы] NextCloud в качестве сервиса по созданию защищенных ссылок Привет, Хабр! Хочу поделиться немного нетривиальным кейсом по настройке NextCloud в качестве сервиса по созданию защищенных ссылок, для прямого скачивания данных с подключенного сетевого smb\cifs-диска. Опишу решения нюансов, с которыми столкнулся во время настройки. Зачем...

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

Создание Discord – бота на .NET Core с деплоем на VPS-сервер Привет, Хабровчане! Сегодня вы ознакомитесь со статьей, в которой будет рассказано, как создать бота, используя C# на .NET Core, и о том, как его завести на удаленном сервере. Статья будет состоять из предыстории, подготовительного этапа, написания логики и переноса бот...

Создание зашифрованного диска с «двойным» дном с помощью Veracrypt VeraCrypt — свободный форк TrueCrypt используемый для сквозного шифрования в Windows, Mac OSX и Linux, и позволяет шифровать системный диск, отдельный внутренний или внешний диск или создавать виртуальные диски с использованием файлов-контейнеров. В этой статье мы рассмот...

В DxOMark разошлись не на шутку. Теперь лаборатория тестирует и колонки Представители лаборатории DxOMark сегодня подтвердили, что теперь они также будут проверять качество работы беспроводных колонок. Новый тест получил название DxOMark Speaker. Изначально DxOMark тестировали качество фотокамер, затем подключили обзоры камер смартфонов, сн...

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

Пилим веб-опросник как у Meduza: пошаговый гайд для начинающих Меня зовут Егор, я Full-stack разработчик в Leader-ID. В этой статье я хочу поделиться простым рецептом по созданию красивого и удобного веб-опросника наподобие тех, что делает Meduza. Он умеет показывать статистику после ответа на отдельные вопросы, подсчитывать общий балл,...

Знакомство с Node-RED и потоковое программирование в Yandex IoT Core В этой статье я хочу разобрать один из самых популярных опенсорс-инструментов, Node-RED, с точки зрения создания простых прототипов приложений с минимумом программирования. Проверим гипотезу о простоте и удобстве таких средств, а также рассмотрим взаимодействие Node-RED с о...

Первый парсер на деревне Сегодня мы померяемся парсерами. Точнее, померяем эффективность разных вариантов JavaScript-парсеров на примере одной простой задачи преобразования строки конкретного формата в объект. Вопросы сложностей организации многопоточности в JavaScript оставим за рамками этой стат...

Google начал запуск обновлённых агентов пользователя для Googlebot В октябре Google сообщил, что обновит агентов пользователя Googlebot, чтобы они отображали актуальную версию браузера Chrome, в декабре. На днях поисковик приступил к запуску этого обновления, но пока в качестве эксперимента – т.е. в ограниченном масштабе. Об этом заявил сот...

Успешный запуск. Марсоход на Марс. Запуски 2020 года: 58-й, 52-й успешный, 21-й от США Вячеслав Ермолин, 30 июля 2020 г. Миссия: Запуск марсохода Mars 2020 Perseverance. Поиск «следов жизни» на Марсе. Первый дрон для полетов в атмосфере. Сбор образцов грунта для возвращения на Землю (в следующих миссиях). Научные и технологические эксперименты. Читать дал...

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

[Перевод] О структуре параллельных вычислений или доводы против оператора «Go» Каждый язык, поддерживающий параллельные (конкурентные, асинхронные) вычисления, нуждается в способе запуска кода параллельно. Вот примеры из разных API: go myfunc(); // Golang pthread_create(&thread_id, NULL, &myfunc); /* C with POS...

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

Мониторинг ошибок и событий в журнале PostgreSQL (grok_exporter) Доброго дня, коллеги и хаброчитатели! Сегодня, хотел бы поделиться с Вами небольшой заметкой о том, как можно организовать оперативный мониторинг ошибок и событий появляющихся в журнале PostgreSQL используя Prometheus и экспортер метрик grok_exporter. Сразу оговорюсь, что э...

Оконные функции с «форточкой» или как пользоваться фреймом Всем привет. 26 февраля в OTUS стартовали занятия в новой группе по курсу «MS SQL Server разработчик». В связи с этим я хочу поделиться с вами своей публикацией про оконные функции. Кстати, в ближайшую неделю еще можно записаться в группу ;-). Оконные функции прочно вошл...

Извлечь максимум из новостей в интернете, часть 1 Навеяно статьей Почему я по-прежнему пользуюсь RSSЯ сам очень активно использую формат новостей, чем и хотел бы поделиться с сообществом. Читать далее

[Перевод] С чего начать изучение Flutter в 2021 году Как и многие мобильные разработчики, мы с нетерпением ждали презентации Flutter и теперь хотим поделиться с читателями Хабра переводом статьи Tadas Petra о том, как можно выстроить свое обучение, если вы хотите познакомиться с Flutter и кроссплатформенными приложениями в 202...

Успешный запуск. Два спутника связи. Запуски 2020 года: 59-й, 53-й успешный, 9-й от России Вячеслав Ермолин, 31 июля 2020 г. Текущая статистика запусков Миссия: Запуск двух телекоммуникационных спутников «Экспресс-80» и «Экспресс-103», производства «ИСС» для ФГУП «Космическая связь». Спутники для работы на геостационарной орбите. Читать дальше →

Что такое MagicString и настолько ли эти строки волшебные? MagicString — это малоизвестная библиотека. Не смотря на это она решает одну из насущных проблем — изменение исходного кода с использованием его структуры (AST — abstract syntax tree). В этой статье мы узнаем, что такое MagicString и такие ли уж эти строки «магические». Это...

Освободи свой Android — алаверды О чём это? Данная статья написана в качестве продолжения статьи Освободи свой Android. Зачем? Очень просто — та статья очень подробно и хорошо описывает, как перешить смартфон на LineageOS. Но она просто требует продолжения о том, как потом с этим перешитым смартфоном жить. ...

Как распознавание паспортов замедлило пользователей, покупающих билеты: история провала фичи Когда-то мы договорились внутри компании, что будем запускать фичи в приложении под A/B-тестами. Но всё равно были вещи из серии «да это же очевидно, что так нужно сделать». Вот история одного из самых долгих и крупных «да это же очевидно», помешавшего в итоге пользователям....

[Перевод] Про SSH Agent Введение SSH-agent является частью OpenSSH. В этом посте я объясню, что такое агент, как его использовать и как он работает, чтобы сохранить ваши ключи в безопасности. Я также опишу переадресацию агента и то, как она работает. Я помогу вам снизить риск при использовании пере...

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

Встроенный GPU DG1 процессора Intel Core i7-1185G7 обходит по производительности GeForce GTX 1050 Ti Новый тест флагманского процессора Intel Core i7-1185G7 семейства Tiger Lake позволил сравнить производительность интегрированного в CPU графического ядра с дискретными видеокартами. Получилось, что используемый в Core i7-1185G7 GPU DG1 обходит по производительности GeF...

Есть ли жизнь за МКАДом? Как мы ищем и готовим разработчиков В этой статье мы хотим поделиться опытом команды разработчиков Codeinside из Пензы о том, как в регионе найти и быстро ввести в строй нового сотрудника. Приглашаем в комментариях описать свой опыт. Вероятно, кто-то из читателей, не связанный с IT, недоумевает: разве найти р...

SamsPcbLab, часть 1: Запуск сообщества разработчиков печатных плат С прошлой самопиар-публикации прошло почти 2 года, была проделана большая работа, о которой снова хочется рассказать. Руководство по проектированию с того момента пережило 4 релиза, появилось несколько напечатанных экземпляров, и сейчас оно мне уже очень нравится по содержан...

VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04 Некоторые пользователи арендуют относительно недорогие VPS с Windows для запуска сервиса удаленных рабочих столов. То же самое можно сделать и на Linux без размещения в датацентре собственного железа или аренды выделенного сервера. Кому-то нужна привычная графическая среда ...

[Из песочницы] Географические развлечения Приветствую, Хабр! Мне очень нравятся настолки, и поэтому я не мог пройти мимо статьи о том, как подобные игры пару столетий назад помогали людям узнавать мир. Хочу поделиться с вами переводомистории о географических развлечениях за авторством Валентина Колтона. Уверен, что...

[Из песочницы] Игра с открытым API: Swagger Play В данной статье я хочу рассказать, как использовать Swagger модуль для Play Framework, с примерами из реальной жизни. Я расскажу: Как прикрутить последнюю версию Swagger-Play (модуль Play, позволяющий использовать аннотации swagger-api и генерировать на их основе документ...

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

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

[Перевод] Scala 3: избавление от implicit. Тайпклассы Моя предыдущая статья была про неявные преобразования и extension-методы. В этой статье обсудим новый способ объявления тайпклассов в Scala 3. Научившись добавлять внешние методы к произвольным классам, мы хотим пойти еще глубже, а именно научиться приводить произвольные кл...

[Перевод] Иерархический буфер глубин Краткий обзор Иерархический буфер глубин — это многоуровневый буфер глуби (Z-буфер), используемый как ускоряющая структура (acceleration structure) для запросов глубин. Как и в случае mip-цепочек текстур, размеры каждого уровня обычно являются результатами деления на степен...

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

В Швейцарии создан новый тест на коронавирус, работающий в 10 раз быстрее существующих Управление по санитарному надзору за качеством пищевых продуктов и медикаментов (FDA) США одобрило новый тест на коронавирус, который в десять раз ускорит тестирование пациентов по сравнению с тестированием с использованием систем MagNA Pure 24 и LightCycler 480. ...

Создание 3D-модели сборки Продолжаем цикл материалов, посвященных возможностям программного решения nanoCAD Механика с модулем «3D и зависимости». В предыдущей статье мы говорили о создании 3D-модели детали на основе чертежа в формате PDF. Рассмотрим теперь создание 3D-модели сборки с использованием...

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

[Перевод] Импорт react с древнейших времен до наших дней Прежде чем мы начнём разговор о способах импорта в веб-проекты библиотеки React, покажу современные способы выполнения этой операции и использования хука useState: // Глобальный подход window.React.useState() // Использование импорта в стиле CommonJS const React = require...

Маркетинг на рынке США: как SaaS-стартапу заработать десятки тысяч долларов с помощью AppSumo.com В русскоязычном интернете нет недостатка в статьях по выводу продукта на Product Hunt и другие похожие сервисы, но не так много материалов по использованию ресурса AppSumo. Я решил поделиться своим опытом продвижения продукта на американском рынке с помощью этого сервиса. ...

[Из песочницы] 1С-Битрикс и попытка его внедрения Привет, друзья! Меня зовут Петр, я представитель малого белорусского бизнеса со штатом чуть более 20 сотрудников. В данной статье хочу поделиться негативным опытом покупки 1С-Битрикс. Читать дальше →

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

Вызов принят: хочу работать в Spotify В октябре мы рассказали о том, как Александр Любоженко (back-end и data-инженер в Spotify) мечтая о Калифорнии, переехал сначала в Новую Зеландию, а затем в Швецию. Читателям статья понравилась, но многие хотели узнать подроб...

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

[Из песочницы] Ты еще не используешь tmux на полную! (Наверное) Привет, Хабр! Представляю вашему вниманию перевод статьи "(たぶん)君はまだtmuxの真の力を引き出せていない". Содержание Что такое tmux Запуск и начало новой сессии Открытие нового окна Переходы между окнами Разделение окон и создание панелей Передвижение между панелями Передвижение ме...

[Из песочницы] Контролируем и сохраняем сессии, используя Spring Привет, Хабр. При разработке многопользовательского web-приложение, понадобилось ограничить количество активных сессий для одного пользователя. В этой статье хочу поделиться с Вами свои решением. Контроль сессий актуален для большого количества проектов. В нашем приложение...

[Из песочницы] Использование GitHub Actions с C++ и CMake Привет, Хабр! Предлагаю вашему вниманию перевод статьи "Using GitHub Actions with C++ and CMake" о сборке проекта на C++ с использованием GitHub Actions и CMake автора Кристиана Адама. Использование GitHub Actions с C++ и CMake В этом посте я хочу показать файл ко...

Результаты тестов процессоров AMD Ryzen 7 5800X и Ryzen 9 5950X в CPU-Z показывают, что AMD опережает Intel в однопоточном режиме Накануне запуска новых процессоров AMD, в интернете обнаружилась очередная утечка, раскрывающая сведения об уровне производительности грядущих новинок. На двух независимых форумах были опубликованы результаты тестирования процессоров AMD Ryzen 9 и Ryzen 7 в CPU-Z. Флагмански...

[Перевод] Решение проблемы N+1 запроса без увеличения потребления памяти в Laravel Одна из основных проблем разработчиков, когда они создают приложение с ORM — это N+1 запрос в их приложениях. Проблема N+1 запроса — это не эффективный способ обращения к базе данных, когда приложение генерирует запрос на каждый вызов объекта. Эта проблема обычно возникает, ...

Эксперимент в распознавании рукописных текстов на кириллице. Часть 2 Всем привет! В этой части хочу рассказать как мы использовали модель NomeroffNet предназначенного для распознавания автомобильных номеров, распознать рукописные записи. В предедущей статье я поделился опытом в использовании моделей SimpleHTR и LineHTR для распознавания рукоп...

Windows Tokens Предыдущая статья рассказывала о том, как эксплойты используют технику копирования токена для повышения привилегий. В этой статье мы попытаемся рассмотреть еще одну технику модификации токенов, а также постараемся узнать, как задаются привилегии, которые помещаются в Pr...

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

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

Запуск первой в Восточной Африке сети 5G SA реализовали ZTE и MTN Компания ZTE Corporation (0763.HK/000063.SZ), крупный международный поставщик телекоммуникационных решений, а также корпоративных и потребительских технологий для мобильного Интернета, и MTN Uganda сообщили о совместном запуске первой в Восточной Африке сети 5G SA. Демонстра...

Что такое Windows PowerShell и с чем его едят? Часть 3: передача параметров в скрипты и функции, создание командлетов Во второй части цикла рассматривались основы языка программирования PowerShell, а сейчас стоит разобраться с использованием написанного на нем кода для задач администрирования. Самый очевидный способ это сделать — запустить сценарий. Кроме него существует возможность созда...

Разрабы. Новая точка отсчета В мире что-то не так — или это у меня в голове? Невидимые пятна на солнце, какая-то пыль на траве Счастье не греет; оно где-то за стеклянной стеной Иногда мне кажется — тяжелый рок висит надо мной БГ Привет Хабр! Хочется обсудить с вами сериал «Разрабы», так как считаю е...

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

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

Найти порядок в хаосе ИТ: полезные ресурсы В предыдущей статье я поделился своим видением процесса построения базовой системы для организации собственного развития (применимой к сфере ИТ). В ней в общих чертах и весьма условно были представлены шаги, которые необходимо пройти, чтобы построить эту систему. Однако, хо...

Three.js и геометрия При использовании для отображения в браузере библиотеки ThreeJS в качестве первого примера обычно выступает куб или какой-либо другой простейший объект, и он создается при помощи предустановленных специальных классов BoxGeometry или SphereGeometry. Затем обычно рассматривает...

Встраиваем геолокацию от Huawei в Android приложение В предыдущих статьях мы создавали аккаунт разработчика для использования Huawei Mobile Services и подготавливали проект к их использованию. И использовали аналитику от Huawei вместо аналога от Google. В этой статье мы будем встраивать определение геолокации от Huawei. Вот п...

[Перевод] Эксплуатационный чек-лист для Redis в Kubernetes Команда Kubernetes as a Service в Mail.ru Cloud Solutions перевела контрольный список для запуска Redis внутри кластера Kubernetes. С ним стоит ознакомиться до того, как перейти к использованию Redis под рабочей нагрузкой. Redis — популярное in-memory хранилище данных и кэ...

Используем Gradle и Github Actions для публикации Java проекта в Sonatype Maven Central Repository В данной статье я хочу подробно рассмотреть процесс публикации с нуля Java артефакта через Github Actions в Sonatype Maven Central Repository используя сборщик Gradle. Данную статью решил написать ввиду отсутствия нормального туториала в одном месте. Всю информацию приходил...

Ставим и тестим RTX Voice на видеокартах Nvidia GTX серии Привет, Хабр, давненько не виделись! Сегодня я бы хотел поделиться с Вами небольшим, да и чего уж там, простым способом установки RTX Voice на Nvidia GTX 10XX и 16XX видеокарты. А заодно и проверить, действительно ли RTX Voice так хорош? Справедливости ради стоит добавить...

[Из песочницы] 3 года программирования вслепую. Часть 1 Всем доброго времени суток! Хочу поделиться своим опытом из разряда «Войти в IT». Тем более, что он происходил в полностью невизуальном режиме. О незрячих людях в нашем обществе знают мало, а о незрячих программистах еще меньше. И эта статья предлагает проследить за тем, как...

VxLAN фабрика. Часть 3 Привет, Хабр. Заканчиваю цикл статей, посвященных запуску курса "Сетевой инженер" от OTUS, по технологии VxLAN EVPN по маршрутизации внутри фабрики и использовании Firewall для ограничения доступа между внутренними сервисами Читать дальше →

[Перевод] Дружим ORDER BY с индексами Привет, Хабр! Я потихоньку перевожу статьи Маркуса Винанда из блога use the index luke. Первой статьей в цикле был манифест Маркуса о важности использования безофсетной пагинации на ключах. Мы рассмотрели всего один пример, как этот подход работает на практике. В этой и сле...

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

[Перевод] Создание шейдерной анимации в Unity Недавно я работал над анимацией респауна и спецэффектом главного героя моей игры “King, Witch and Dragon”. Для этого спецэффекта мне нужна была пара сотен анимированных крыс. Создание двухсот мешей со скиннингом с анимацией ключевыми кадрами всего для одного спецэффекта — ...

Фронтенд-2021: тенденции, как мы их видим В статье поделимся нашим взглядом на 15 технологий в области фронтенда на 2021 год. К части технологий мы активно присматриваемся, некоторые начинаем применять, другие давно используем и рекомендуем вам, а есть и такие, от которых отказались, и расскажем вам, по какой причин...

[Перевод] ELK, SIEM из OpenSource, Open Distro: Case management В сегодняшней статье мы поставим последний кусочек пазла на его место. Мы собираемся представить вам часть нашего SOC, касающуюся управления делами. Мы использовали две технологии с открытым исходным кодом — TheHive и Cortex. TheHive будет использоваться в качестве платформы...

[Из песочницы] Пишем автотест с использованием Selenium Webdriver, Java 8 и паттерна Page Object В этой статье рассматривается создание достаточного простого автотеста. Статья будет полезна начинающим автоматизаторам. Материал изложен максимально доступно, однако, будет значительно проще понять о чем здесь идет речь, если Вы будете иметь хотя бы минимальные представлени...

Самые частые причины ручных санкций Google за ссылки — исследование Команда SEMrush поделилась результатами исследования, призванного выяснить, какие факторы чаще всего приводят к ручным санкциям Google за ссылки. Специалисты компании проанализировали 830 ссылочных профилей тех сайтов, которые попали под ручные санкции за неестественные ссыл...

Названы даты анонса и начала продаж процессоров Intel Core 11-го поколения (Rocket Lake-S) Источник утверждает, что ему стали известны даты анонса и начала продаж процессоров Intel Core 11-го поколения (Rocket Lake-S). Если верить его словам, процессоры будут представлены 16 марта. В этом день истекает срок действия первого соглашения о неразглашении, и будут...

[Перевод] Сделайте свое приложение масштабируемым, оптимизировав производительность ORM Перевод статьи подготовлен в преддверии старта курса «Backend-разработчик на PHP». Привет! Я Валерио, разработчик из Италии и технический директор платформы Inspector.dev. В этой статье я поделюсь набором стратегий оптимизации ORM, которые я использую, разрабатывая серв...

Локализация своих скриптов на BASH Создание меню на BASH — задача сама по себе не сложная: "case тебе в руки и echo в спину". Решая её в очередной раз, мне захотелось добавить возможность отображать текст на других языках. Осталось решить, как сделать сам процесс локализации меню более удобным. Если...

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

Ускоряем кеш проекта в NoVerify (линтер для PHP) в 10 раз Одним вечером, обсуждая с Искандером @quasilyte сложности в разработке линтера для PHP на Go, Искандер упомянул, что тесты как-то долго идут при локальном прогоне (около минуты, и, как мне кажется, для Go это довольно долго). Стали копать, и быстро выяснилось, что в основном...

Унифицируем арсенал Gatling Тестирование производительности — это непрерывный процесс оптимизации, контроля быстродействия систем и подтверждения их отказоустойчивости как на стадии моделирования и проектирования, так и на каждой итерации внесения изменений. Сейчас в Тинькофф мы активно занимаемся разв...

Jenkins Pipeline. Что это и как использовать в тестировании Меня зовут Александр Михайлов, я работаю в команде интеграционного тестирования компании ЮMoney.Наша команда занимается приемочным тестированием. Оно включает в себя прогон и разбор автотестов на критичные бизнес-процессы в тестовой среде, приближенной по конфигурации к прод...

Момент истины: прототип Starship успешно прошел огневые испытания с тремя двигателями Новый прототип сверхтяжелой ракеты Starship от SpaceX (SN8) успешно прошел огневые испытания сразу с тремя работающими двигателями Raptor. Тесты провели на территории частного космодрома компании в Южном Техасе в Бока-Чика (Boca Chica). Во время предыдущих испытаний на прот...

Перевернутая пирамида как конец вашего проекта В этой статье я хочу поделится небольшим опытом касательно построения команд в ИТ-проектах. Поговорить я хочу о такой не всегда очевидной вещи как «Пирамида зрелости команды». Читать дальше →

Учет денег Хотел осветить тему, которая мне достаточно интересна и, возможно, кому-то тоже будет полезной – это тема учета денег. Пару слов об актуальности. Раньше я никогда бы не подумал, что бухгалтерия будет мне интересна и тем более, что чем-то подобным буду заниматься я сам. Я п...

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

Возможности Vue, о которых не следует забывать Мы в команде Ptah мы решили пойти чуть дальше привычных SPA и попробовали использовать Vue для конструктора лендингов. И теперь хотим поделиться частью нашего опыта. Эта статья, прежде всего, для тех, кто только начал работать с Vue и хочет узнать лучше его особенности и во...

Подготовка SDL2-проекта для запуска на android Всем привет. Сегодня мы посмотрим как подготовить проект с использованием библиотеки sdl2 для запуска игры на android. Читать дальше →

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

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

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

Самоподписные сертификаты кровавого энтерпрайза против вашего лампового CI/CD Многие компании используют сертификаты, подписанные внутренними удостоверяющими центрами (Certificate Authority) для ресурсов в приватных сетях. Поскольку такие сертификаты по умолчанию не могут быть доверенными, почти на каждом этапе вокруг пайплайна могут возникать ошибки...

Финансовый план и ценообразование для ИТ-продукта: Курс «Создание программного продукта и управление его развитием» Привет, Хабр! Мы продолжаем серию постов о продакт-менеджменте от компании Acronis, и сегодня речь пойдет о финансовом плане и ценообразовании. Мы поговорим о том, почему «план по продажам», как часть финансового плана — это “самая большая ложь”, рассмотрим примеры удачного ...

Забудьте про RGB и HEX В CSS существует несколько способов представления цветов. Один из них — система HSL. В этой статье я покажу вам, какие возможности она открывает для верстальщика. Читать дальше →

Microsoft говорит, что большинство приложений Win32 будут работать на Windows 10X 11 февраля Microsoft поделилась подробностями о Windows 10X для двухэкранных и различных сторонних складных устройств. По слухам, Windows 10X не будет ограничиваться только приложениями из магазина, а операционная система сможет запускать UWP, PWA, веб-приложения и даже прил...

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

[Перевод] Создание микросервиса на Quarkus, Kotlin и Gradle Введение В предыдущей статье было приведено краткое описание процесса создания микросервиса на современных JVM фреймворках, а также их сравнение. В этой статье будет более детально рассмотрен недавно вышедший Quarkus на примере создания микросервиса с использованием упомяну...

[Перевод] Шпаргалка по сортировке для Data Science Сортировка данных является основной задачей для ученых и инженеров по обработке данных. Пользователи Python могут выбирать наиболее удобную из ряда библиотек со встроенными, оптимизированными опциями сортировки. Некоторые даже работают параллельно с GPU. На удивление, неко...

[Перевод] Полное руководство по созданию Docker-образа для обслуживания системы машинного обучения в продакшене Команда Mail.ru Cloud Solutions перевела полное пошаговое руководство для создания образа Docker (GPU или CPU) вместе с объяснением всех передовых методов, которые следует использовать для обслуживания любого программного обеспечения на основе машинного обучения. Далее текс...

[Перевод] Мифы о useEffect Доброго времени суток, друзья! Представляю вашему вниманию перевод небольшой заметки Kent C. Dodds, в которой он делится своими соображениями относительно правильного использования хука «useEffect». Я обучил React тысячи разработчиков. Как до, так и после релиза хуков. О...

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

Запись видео UI автотестов, работающих в headless Chrome Всем привет! В данной статье хочется рассказать о том, как была решена задача записи видео автотестов, работающих в headless Chrome (с записью в не headless режиме проблем быть не должно). Будет рассмотрено несколько разных подходов, рассказано про трудности и пути их реше...

Новый механизм JSX трансформации в React 17 Release Candidate В React 17 Release Candidate появляется новый способ трансформации JSX. С ним, в бандле, не понадобится сам Реакт, хотя для использования хуков он всё ещё нужен. Это и есть основной бенефит нового механизма. Под катом краткий перевод статьи в блоге ReactJS. Читать дальше &ra...

Работа с файлами в C++ с использованием Boost Привет! Я время от времени рассказываю на Хабре о решениях распространённых задач на C++, и вообще люблю делиться опытом. Поэтому даже написал целую книгу, которая называется «Разработка приложений на С++ с использованием Boost». Она может быть интересна разработчикам, кото...

Py4J – мост между Python и Java Название Py4J можно встретить разве что в списке библиотек, используемых PySpark, но не стоит недооценивать данный инструмент, который обеспечивает совместную работу Python и Java. В этой статье будет кратко описана работа Py4J, рассмотрен пример использования и перечислен...

Business Intelligence на больших данных — наш опыт интеграции В вопросах производительности BI обычно приходится искать компромисс между скоростью работы аналитики и объемами данных, над которыми она реализована. Впрочем, существуют способы “убить двух зайцев” сразу, и сегодня я хочу поделиться нашим опытом интеграции Visiology с платф...

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

Код в одну строку или проверка Nethermind с помощью PVS-Studio C# для Linux Данная статья приурочена к старту бета-теста PVS-Studio C# для Linux, а также плагина для Rider. По такому прекрасному поводу с помощью данных инструментов была проведена проверка исходного кода продукта Nethermind и в данной статье мы посмотрим на интересные, а иногда и за...

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

Опыт создания аналитической консалтинг-компании в Северной Америке (не очень успешный) Всем привет, последние 2-3 года у меня было интересное хобби, интересное для меня - предоставление аналитических услуг компаниям в Канаде и США. В этой статья я хочу поделиться опытом по созданию консалтинг-компании в области аналитики. Могу сразу сказать, что идея провалила...

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

PHP Дайджест № 197 (11 – 25 января 2021) Свежая подборка со ссылками на новости и материалы. В выпуске: объекты в качестве ключей массивов и другие RFC предложения для PHP 8.1, запуск WebAssembly в PHP, о коллизиях в массивах, порция полезных инструментов, статьи, видео, PHP Дайджест Live. Приятного чтения! Читат...

Автоматизация HotFix в Maven проектах с использованием TeamCity В этом посте будет описана настройка автоматизации HotFix в Maven проектах с использованием Teamcity. Чтобы сделать HotFix обычно делается много ручных действий: 1) Создать бранч для релиза, на который вы хотите выкатывать HotFix 2) Исправить ошибку в релизе 3) Измененить bu...

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

[Перевод] Развеиваем мифы об управлении памятью в JVM В серии статей я хочу опровергнуть заблуждения, связанные с управлением памятью, и глубже рассмотреть её устройство в некоторых современных языках программирования — Java, Kotlin, Scala, Groovy и Clojure. Надеюсь, эта статья поможет вам разобраться, что происходит под капот...

Как вписать «свободную» PostgreSQL в суровое enterprise окружение Многие знакомы с СУБД PostgreSQL, и она отлично зарекомендовала себя на небольших инсталляциях. Однако тенденция к переходу на Open Source стала все более явной, даже когда речь идет о крупных компаниях и enterprise требованиях. В этой статье мы расскажем, как встроить Postg...

Автоматизация тестирования веб-приложений под ключ, без регистрации и смс Часто бывает так, что веб-приложение состоит из большого количества динамически перестраивающихся форм с разным текстом и элементами управления. Тестирование такого приложения превращается в кошмар. Нужно прокликать 100500 страниц и проверить весь функционал… И перед следую...

[Перевод] Лучшие open source альтернативы MS Project с диаграммами Ганта Если вы управляете большими и сложными проектами, попробуйте сначала решения на базе open source. Если не понравится — вернётесь к Microsoft Project. Проектирование и конструирование спутников, создание роботов, запуск любого серьёзного продукта — всё это сложные большие ...

Почему я сделал личный проект учёта трат на Git+JS Здравствуйте, господа, в этой статье я поделюсь опытом создания приложения учёта трат, в частности отвечу на следующие вопросы: Зачем мне приложение учёта трат? Почему это личный проект? Почему проект на Git+JS? 1. Зачем мне приложение учёта трат? Как и многие другие люди...

Математика в космонавтике: ротационный детонационный двигатель Отправка кого-то или чего-то за пределы нашей планеты и по сей день является крайне сложным и дорогостоящим удовольствием. В то время как космические путешественники из различных научно-фантастических произведений массовой культуры используют ретрансляторы («Mass Effect»),...

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

Подводные камни в бассейне строк, или ещё один повод подумать перед интернированием экземпляров класса String в C# Будучи разработчиками программного обеспечения, мы всегда хотим, чтобы написанное нами ПО работало быстро. Использование оптимального алгоритма, распараллеливание, применение различных техник оптимизации – мы будем прибегать ко всем известным нам средствам, дабы улучшить про...

Непрерывная интеграция в Unity: как сократить время сборок и сэкономить ресурсы + пайплайн в подарок Всем привет, на связи Александр Панов, техлид из Pixonic. В компании я отвечаю за межпроектные решения и околопроектную периферию и сегодня хочу поделиться своим опытом и наработками. Платформы непрерывной разработки и интеграции, или CI/CD, сейчас используются повсеместн...

«Новые Былины». Для dev, ops и любознательных людей В этой статье я буду настраивать рабочее окружение для разработки игры "Былины", а также выполню разбиение самой игры на части, пригодные для использования в OpenFaaS. Все манипуляции буду делать на Linux, Kubernetes буду разворачивать в minikube с использованием VirtualBox...

Фоторамка на Flutter своими руками Привет! Меня зовут Игорь, я работаю Frontend-директором в компании Wrike. В этой статье хочу поделиться историей создания моего пет-проекта и рассказать, как я сделал электронную фоторамку и написал для нее софт на Flutter, столкнувшись по пути со всеми возможными сложностям...

Создайте ваш первый тест на Cypress Всем привет! Меня зовут Роман Мостафин. Я тестировщик-автоматизатор в компании Clover, и обычно пишу автотесты на pytest + selenium. Недавно для написания тестов на UI на проекте «Умный Локомотив» для автоматизации регрессионного тестирования наша команда фронтенд-разработчи...

[Перевод] Всё, что нужно знать о Progressive Web App (PWA) PWA — прогрессивные веб-приложения. Предупреждение. Эта статья не проспонсирована PWA. Все взгляды и мнения в статье принадлежат только её автору. Progressive Web App или PWA — лучший способ для разработчиков заставить свои веб-приложения загружаться быстрее и быть более...

Управление высокодоступными PostgreSQL кластерами с помощью Patroni. А.Клюкин, А.Кукушкин Расшифровка доклада/tutorial "Управление высокодоступными PostgreSQL кластерами с помощью Patroni". А.Клюкин, А.Кукушкин Patroni — это Python-приложение для создания высокодоступных PostgreSQL кластеров на основе потоковой репликации. Оно используется такими компан...

Простой UDP hole punching на примере IPIP-туннеля Доброе время суток! В этой статье хочу рассказать как я реализовал (еще один) скрипт на Bash для соединения двух компьютеров, находящимися за NAT, с использованием технологии UDP hole punching на примере ОС Ubuntu/Debian. Читать дальше →

Все, что вы хотели узнать про области видимости в Python, но стеснялись спросить В преддверии старта нового потока по курсу «Разработчик Python», решили поговорить про области видимости в Python. Что из этого вышло? — Читайте в материале ниже. Сегодня мы будем говорить о важных теоретических основах, которые необходимо понимать и помнить, чтобы писат...

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

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

Деплоим проект на Kubernetes в Mail.ru Cloud Solutions. Часть 2: настройка и запуск приложения для транскрибации видео Это продолжение практикума по развертыванию Kubernetes-кластера на базе облака Mail.ru Cloud Solutions и созданию MVP для реального приложения, выполняющего транскрибацию видеофайлов из YouTube. Я Василий Озеров, основатель агентства Fevlake и действующий DevOps-инженер...

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

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

Анимация схем в SCADA При создании HMI довольно часто встречается задача построить отображение сложной схемы связанных элементов. Это могут быть разветвленные трубопроводные схемы, электроснабжение и т.п. Можно, конечно, ограничиться только отображением ключевых элементов (задвижек, автоматическ...

Телепортация тонн данных в PostgreSQL Сегодня я поделюсь некоторыми полезными архитектурными решениями, которые возникли в процессе развития нашего инструмента массового анализа производительности серверов PostgeSQL, и которые помогают нам сейчас «умещать» полноценный мониторинг и анализ более тысячи хостов в то...

Включаем сбор событий о запуске подозрительных процессов в Windows и выявляем угрозы при помощи Quest InTrust Одна из часто встречающихся типов атак — порождение злонамеренного процесса в дереве под вполне себе добропорядочными процессами. Подозрение может вызвать путь к исполняемому файлу: частенько вредоносное ПО использует папки AppData или Temp, а это нехарактерно для легитимн...

[Перевод] Понимаем пробы Kubernetes: типы, настройка и лучшие практики Источник В этой статье — о настройке проб готовности, работоспособности и запуска для обнаружения и работы с нездоровыми модулями в переводе команды Kubernetes aaS. Читать дальше →

[Перевод] Автоматизация тестирования. Да или нет? Перевод статьи подготовлен в преддверии старта курса «Python QA Engineer». Прежде чем спрашивать: «Что автоматизировать?», нужно ответить на такой вопрос: «Рационально ли вообще автоматизировать что-либо в рамках текущего проекта?». Если ответ положительный (что означает...

[Из песочницы] Angular: понятное введение в NGRX Цель этой статьи — дать чистое и ясное представление о ngrx. Для этого я объясню, что нужно знать и понимать о ngrx, а затем мы увидим это в действии с простыми и понятными примерами кода. Вот список тем, которые мы будем обсуждать в этой статье: Что такое ngrx Преимущес...

Google завершает запуск новых агентов пользователя Googlebot Сотрудник Google Мартин Сплитт ответил в Twitter на вопросы, связанные с обновлением агентов пользователя Googlebot. Так, в декабре Google планировал запустить новые user-agents, которые должны отображать актуальную версию Chrome (в старой версии указан Chrome 41). Как извес...

WebStorm 2020.1: улучшения в интерфейсе, поддержка Vuex и запуск Prettier при сохранении файлов Всем привет! Мы рады представить вам первое крупное обновление WebStorm в этом году. В новой версии вы найдете много новых возможностей и долгожданных улучшений, включая поддержку Vuex и новую опцию для запуска Prettier при сохранении файлов. Скачать 30-дневную пробную ве...

Минус 20%. Платформа Apple M1, работая через эмулятор Rosetta 2, теряет пятую часть своей производительности Много тестов однокристальной платформы Apple M1 появилось на прошлой неделе – и в них она выступила очень хорошо, превзойдя и сами компьютеры Mac на базе процессоров Intel, и даже флагманские процессоры Intel и AMD для настольных ПК. Но сейчас в Сети появился, пож...

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

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

«Крупнейший запуск Xbox в истории»: Microsoft поделилась статистикой запуска Series X и S за первые 24 часа Корпорация Microsoft объявила о том, что единовременный старт продаж Xbox Series X и Xbox Series S в 40 странах оказался самым успешным дебютом консолей в истории Xbox. Вместе с тем производитель предоставил интересные данные за первые 24 часа с запуска.

[Перевод] Оптимизируем производительность: JavaScript (V8) vs AssemblyScript (WebAssembly) Чтобы повысить производительность web-приложений, используйте WebAssembly в связке с AssemblyScript, чтобы переписать критически важные для производительности компоненты web-приложения, написанные на JavaScript. «И это действительно поможет?», — спросите вы. К сожалению, ...

[Из песочницы] Автономизация Unit-тестов в PHPUnit Всем привет! Меня зовут Антон и сейчас (не так долго, около года) я разрабатываю на PHP в одном большом и старом проекте. Для обеспечения качества проекта мы применяем автотесты на фреймворке PHPUnit. Но, к сожалению, так получилось, что большая часть наших автотестов функц...

[Из песочницы] Как использовать консоль JavaScript: выход за пределы console.log () Привет, Хабр! Представляю вашему вниманию перевод статьи «How to use the JavaScript console: going beyond console.log()» автора Yash Agrawal. Один из самых простых способов отладки чего-либо в JavaScript — вывод материала с помощью console.log. Но есть много других методов,...

[Из песочницы] База данных на ScriptableObject c системой сейва/загрузки Введение В каждой игре есть данные, с которыми работают гейм-дизайнеры. В рпг — это база данных айтемов, в матч-3 — стоимость в кристаллах инструментов из магазина, в экшенах — количество хп, на которое лечит аптечка. Для хранения таких данных существует много способов — кт...

Sony выпустила PlayStation 5 и PlayStation 5 Pro, и вот чем они отличаются Каждая компания, которая занимается созданием игровых приставок, вынуждена выпускать свои консоли приблизительно за один год до их запуска в продажу, чтобы такие не только в полной мере протестировать, ведь иначе все может закончиться провалом, но Сообщение Sony выпустила P...

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

Появились официальные тесты видеокарты GeForce RTX 3060 Ti — она обходит GeForce RTX 2080 Super Веб-ресурс VideoCardz опубликовал результаты тестов производительности видеокарты GeForce RTX 3060 Ti, чей выход ожидается 2 декабря. Сообщается, что сама NVIDIA поделилась слайдом из грядущей презентации с прессой. Как можно видеть на слайде ниже, производительность новинки...

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

9 советов по повышению производительности Vue В этой статье собрано девять советов о том как повысить производительность вашего приложения на Vue, увеличить скорость отображения и уменьшить размер бандла. Читать дальше →

[Перевод] Использование asyncio для создания асинхронных драйверов устройств на MicroPython v.1.12 Изученая возможности MicroPython для своих целей натолкнулся на одну из реализаций библиотеки asyncio и, после недолгой переписки с Piter Hinch — автором библиотеки, понял, что мне необходимо глубже разобраться с принципами, базовыми понятиями и типичными ошибками использова...

Успешный запуск. Гражданский спутник ДЗЗ высокого разрешения. Запуски 2020 года: 60, 54 успешных, 22 от Китая Вячеслав Ермолин, 06 августа 2020 г. Текущая статистика запусков Миссия: Запуск гражданского спутника дистанционного зондирования Земли Gaofen-9-04 для государственной программы China High-resolution Earth Observation System (CHEOS). Разрешение менее метра на пиксель. Чет...

Таймер чистки зубов Доброго времени суток, Хабр! Эта статья для тех, у кого не все щетки в ванной имеют таймер, и кто не хочет использовать песочные часы. Читать дальше →

[Перевод] Как QA-команда GitLab использует GitLab Performance Tool Перевод статьи подготовлен в преддверии старта курса «DevOps практики и инструменты». Мы запустили ряд инициатив по улучшению производительности GitLab и нам нужен был новый инструмент для бенчмарков. Тестирование производительности — это сложный процесс, отличающийся от...

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

Реализация автодополнения кода в Ace Editor Ace (Ajax.org Cloud9 Editor) — популярный редактор кода для веб-приложений. У него есть как плюсы, так и минусы. Одно из больших преимуществ библиотеки — возможность использования пользовательских сниппетов и подсказок. Однако, это не самая тривиальная задача, к тому же не ...

Гибкая печатная плата своими руками Туторов по созданию обыкновенных печатных плат на просторах интернета более чем достаточно, а вездесущие китайцы упростили этот процесс до заводского качества. Однако, когда речь заходит о создании гибких плат, тут приходиться изгаляться в меру своей смекалки. Хотя, справедл...

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

Насколько современные Линуксы отличаются друг от друга Более 15 лет я работаю в компании Fast Reports и по роду своей деятельности мне часто приходится иметь дело с Linux, ведя поддержку одного из продуктов. С Linux я знаком несколько дольше — впервые установил Slackware в 1997 году. Соответственно, обладая некоторым опытом, хоч...

[Из песочницы] Получение видео из Tik Tok без водяного знака Добрый день, всем любителям habr. В этой статье я хочу поделиться с Вами как можно получить видео с Tik Tok без водяного знака, с помощью такого языка как PHP. В настоящее время Tik Tok набирает популярность и было бы не прилично не написать про него маленькую статейку, и ...

Что общего между LVM и матрешкой? Доброго времени суток. Хочу поделиться с сообществом практическим опытом построения системы хранения данных для KVM с использованием md RAID + LVM. В программе будет: Сборка md RAID 1 из NVMe SSD. Сборка md RAID 6 из SATA SSD и обычных дисков. Особенности работы TRIM/DI...

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

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

[Из песочницы] Быстрое ознакомление с SwiftUI SwiftUI — это новый удобный способ для создания пользовательских интерфейсов на Xcode. Если хотите быстрое ознакомление с SwiftUI, тогда этот блог пост для вас. Для начала давайте создадим проект с поддержкой SwiftUI. Минимально необходимые для этого требования системы — эт...

Интернет вещей в Яндекс.Облаке: как устроены сервисы Yandex IoT Core и Yandex Cloud Functions В октябре прошлого года состоялась первая облачная конференция Яндекса Yandex Scale. На ней было объявлено о запуске множества новых сервисов, в том числе Yandex IoT Core, который позволяет обмениваться данными с миллионами устройств Интернета вещей. В этой статье я расск...

[Перевод] Машинное обучение столкнулось с нерешенной математической проблемой Салют, хабровчане! В преддверии запуска новых потоков по продвинутому и базовому курсам «Математика для Data Science» хотим поделиться с вами достаточно интересным переводом. В этой статье не будет практики, но материал интересен для общего развития и обсуждения. Группа ис...

Объединяем закрытый WhatsApp и открытый SIP – Часть 1 Предыдущая статья «Как избежать блокировки в WhatsApp», хотя и получила много минусов, но тем не менее в течении 2 суток была самой читаемой статьей на Хабре – набрала более 20 тыс просмотров. Поэтому я решил что нужно продолжать с хакингом монстров рассказывать о различны...

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

[Из песочницы] Оракул, скажи, кем я быть хочу Здравствуйте, читатели. Я хочу вам представить небольшое исследование, которые провели мы с моим другом полтора года назад, но в виду некоторых обстоятельств оформление затянулось до сего момента. Вопрос, который мы хотели рассмотреть, это можно ли построить такой классифика...

Бесплатный вебинар «Настраиваем рекламу в Google Ads за 30 минут» 6 мая с 13:00 до 15:00 пройдет вебинар eLama «Настраиваем рекламу в Google Ads за 30 минут». На вебинаре поделимся пошаговым планом по настройке кампаний: разберем, как собирать семантику, создавать объявления и какие инструменты для этого использовать. Вебинар проведет Ники...

Хакатоны. Как выжать максимум и выжить Доброго всем времени суток! Меня зовут Александр Михалин — я .NET разработчик в компании “Рексофт”. За моей спиной 7 хакатонов, причем один в качестве члена жюри. Я не спал 8 ночей, выпил 52 чашки кофе, 15 банок редбулла, со мной в команде побывали 24 человека. Сегодня я х...

Apache Kafka: основы технологии У Kafka есть множество способов применения, и у каждого способа есть свои особенности. В этой статье разберём, чем Kafka отличается от популярных систем обмена сообщениями; рассмотрим, как Kafka хранит данные и обеспечивает гарантию сохранности; поймём, как записываются и ч...

[Из песочницы] Геокодирование. Как привязать 250 тысяч адресов к координатам за 10 минут? Привет, Хабр! В этой статье я хотел бы поделиться опытом решения маленькой проблемы с большим количеством адресов. Если вы когда-либо работали с API геокодирования или пользовались онлайн инструментами, то думаю вы разделяете мою боль ожидания результата в течение несколь...

[Перевод] Как избавиться от if-else при помощи команд и обработчиков В этой статье я расскажу, как использую команды и обработчики, чтобы код был удобным и аккуратным. Я стремился не избавиться от if-elseif-else, а найти более подходящее решение. Помните, что один-единственный подход не позволит полностью избавиться от традиционного програ...

Подготовка к старту SpaceX DM-2 вышла на финишную прямую Несмотря на пандемию, подготовка к старту первой пилотируемой миссии Crew Dragon идет полным ходом, необходимые испытания и подготовительные операции проводятся успешно, и вполне вероятно, что запуск состоится по плану, 27 мая. Под катом рассказ об испытаниях, краткая информ...

Тесты производительности и автономности ASUS ZenFone 8 После официального дебюта ASUS ZenFone 8 в сети появились результаты тестирования самого маленького флагманского Android-смартфона. Так, в Wildlife Extreme Stress Test бенчмарке 3DMark устройство набирает максимум 1369 баллов, но с При повторных запусках это значение падает…

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

Еще один DSL для валидаций Недавно я написал небольшой гем для валидаций и хотел бы поделиться с вами его реализацией. Идеи, которые преследовались при создании библиотеки: Простота Отсутствие магии Легкость в освоении Возможность кастомизации и минимум ограничений. Почти все эти пункты завязаны на ...

ruleguard: динамические проверки для Go В этой статье я расскажу о новой библиотеке (и утилите) статического анализа go-ruleguard, которая адаптирует gogrep для использования внутри линтеров. Отличительная особенность: правила статического анализа вы описываете на особом Go-подобном DSL, который на старте rulegua...

[Перевод] Как использовать grok exporter для создания метрик prometheus из неструктурированных журналов Здесь будет перевод 2 постов про grok exporter. Первый перевод: Как использовать grok exporter для создания метрик prometheus из неструктурированных журналов Поговорим о grok exporter. В этой статье я объясню, как можно использовать grok exporter для создания метрик promethe...

Как начать использовать USB Type-C в своих разработках В современных embedded-устройствах используется огромное количество различных разъемов, таких как USB Type-B, miniUSB, microUSB и так далее. Все они отличаются форм-фактором, максимальной пропускной способностью и другими различными характеристиками. Самым верным решением ...

В Швейцарии создан новый тест на коронавирус, работающий в 10 раз быстрее существующих Управление по санитарному надзору за качеством пищевых продуктов и медикаментов (FDA) США одобрило новый тест на коронавирус, который в десять раз ускорит тестирование пациентов по сравнению с тестированием с использованием систем MagNA Pure 24 и LightCycler 480. Тест ...

Зачем (не)нужны геттеры? Прошлая статья про сеттеры/геттеры как способ работы с сущностью (на примере Symfony в PHP) получила бурное обсуждение. В данной статье попробую выразить свои мысли отдельно по поводу геттеров: зачем и когда что-то получать, какую ответственность они решают и когда их уместн...

Как мы отказались от использования Styled-System для создания компонентов и изобрели собственный велосипед Всем привет! Меня зовут Саша, я сооснователь и по совместительству главный разработчик в Quarkly. В этой заметке я хочу рассказать о том, как концепция атомарного CSS, которой мы придерживаемся, вкупе с недостатками функционала Styled-System (и Rebass, как частного случая ис...

[recovery mode] Успешный запуск. 44-й в 2020 году. 15-й от Китая. Навигационный спутник BeiDou Вячеслав Ермолин, 23 июня 2020 г. Миссия Запуск навигационного спутника третьего поколения BeiDou-3 для китайской навигационной системы. Запуск завершает формирование штатной численности навигационной системы BeiDou (BDS). Спутник выведен на геопереходную орбиту ракетой-н...

Fozzy Group повышает производительность складов на 20% с помощью Zebra Technologies Комплекс решений для мобильной работы на базе Android обеспечивает максимальную окупаемость инвестиций и качество обслуживания клиентов Zebra Technologies Corporation (NASDAQ: ZBRA) объявила, что одна из крупнейших розничных компаний Украины Fozzy Group воспользовалась решен...

Xiaomi Gateway (eu version) Hacked Xiaomi Zigbee Gateway Hack В этой статье я хочу поделится с Вами своими наработками и достигнутыми успехами в разборе Xiaomi шлюза (Версия с евровилкой с беру.ру). Расскажу как установить на него альтернативное ПО, как восстанавливать шлюз с затертым софтом и даже оживлять ш...

Проверено 3DMark. Производительность дискретной графики Intel Iris XE Max — на уровне Nvidia GeForce MX450 Первые тесты дискретной графики Intel Iris XE Max появились в Сети еще вчера — практически сразу после ее официального анонса. Сейчас — еще один тест. Но сначала — скриншот GPU-Z. Как видно, утилита правильно распознала GPU, но кое-какие параметры опр...

ASUS запустила открытый бета-тест утилиты GPU Tweak III Компания ASUS объявила о запуске открытого бета-теста утилиты GPU Tweak III. Данная утилита версии v. 1.2.1.1 предлагает возможность мониторинга, разгона и настройки видеокарты. ASUS GPU Tweak III получила новые функции и дизайн пользовательского интерфейса. Размер обновлени...

[Перевод] Портируем DOOM на serverless-платформу Благодаря своей открытой кодовой базе и чистым абстракциям DOOM компании id Software стал одной из самых портируемых в истории игр. Мне показалось, что это идеальный проект для портирования на платформу Compute@Edge, созданную в нашей вычислительной serverless-среде, для эк...

[Из песочницы] Создание тайлов из растровых карт Как-то я озадачился вопросом создания карт, пригодных для использования в OsmAnd и OpenLayers. О ГИС я тогда вообще не имел ни малейшего понятия, поэтому разбирался со всем с нуля. В статье расскажу о результатах своих «исследований», составим алгоритм преобразования произв...

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

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

Система под контролем: как автоматизировать интеграционные тесты Привет! Меня зовут Ксения Якиль. Я пишу core-сервисы на C и Go в бэкенд-отделе Badoo и Bumble. Наш бэкенд — это высоконагруженная распределённая система, обслуживающая пользователей по всему миру. Она оперирует большими массивами данных и делает всю ту магию, благодаря котор...

Полное руководство по сезонной депрессии (SAD). 7 видов светотерапии Я проделал большую работу по исследованию англоязычной литературы на тему «рекуррентное депрессивное расстройство (F33) с сезонным паттерном». В этой статье я системно изложу всю найденную информацию. Почему эта статья важна: Лучшая книга по сезонной депрессии (Winter ...

DANYCOM сможет заменить симку в любой точке России Виртуальный оператор DANYCOM.Mobile объявил о запуске бесплатной услуги, которая позволит заменить SIM-карту на территории РФ без привязки к региональной локации абонента. Для создания новой симки, если старая была утрачена, необходимо зайти в личный кабинет на сайте опер...

Занятие на вечер: пишем подсветку синтаксиса Недавно заинтересовался, как устроена подсветка кода изнутри. Сначала казалось, что там все дико сложно — синтаксическое дерево, рекурсия и вот это все. Однако при более близком рассмотрении оказалось, что ничего трудного здесь нет. Всю работу можно проделать в одном цикле с...

Пишем шеллкод под Windows на ассемблере В этой статье я хочу показать и подробно объяснить пример создания шеллкода на ассемблере в ОС Windows 7 x86. Не смотря на солидный возраст данной темы, она остаётся актуальной и по сей день: это стартовая точка в написании своих шеллкодов, эксплуатации переполнений буферо...

[Перевод] Цена JavaScript-фреймворков Нет более быстрого способа замедлить сайт (такой вот каламбур), чем использовать на нём кучу JavaScript-кода. При использовании JavaScript приходится расплачиваться за это производительностью проектов не менее чем четыре раза. Вот чем JavaScript-код сайта нагружает системы п...

[Из песочницы] Визуализируя нейронный машинный перевод (seq2seq модели с механизмом внимания) Привет, Хабр! Представляю вашему вниманию перевод статьи "Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention)" автора Jay Alammar. Sequence-to-sequence модели (seq2seq) – это модели глубокого обучения, достигшие больших успех...

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

[Перевод] Использование API Gateway в качестве единой точки входа для веб-приложений и API Перевод статьи подготовлен специально для студентов курса «Архитектор высоких нагрузок». Введение Преимущества AWS, такие как высокая доступность, масштабируемость и эластичность, уже доказали свою эффективность для SaaS-провайдеров (Software-as-a-Service). При модернизац...

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

Управление уязвимостями (Vulnerability Management) — чего больше: управления или уязвимостей? В этой статье мы хотим поделиться с вами случаями, которые происходили у наших заказчиков, и рассказать/показать/ответить на вопрос, почему управление уязвимостями – это почти всегда не про уязвимости, и простого — «мы за вас отфильтруем из 1 000 000 уязвимостей до реально...

Ленивая реализация обхода дерева дочерних элементов класса QObject Введение В статье описана ленивая реализация обхода дерева на языке C++ с использованием сопрограмм и диапазонов на примере улучшения интерфейса работы с дочерними элементами класса QObject из фреймворка Qt. Подробно рассмотрено создание пользовательского представления для р...

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

Application performance management (APM) от Broadcom для мониторинга производительности приложений (включая мобильные) Всем привет! В этой статье расскажем о возможностях мониторинга производительности приложений одного из лидеров квадранта Gartner c APM-решениями — Broadcom. Appdynamics, Dynatrace и New Relic достаточно известны на российском рынке. Broadcom чуть менее знаком, этакая се...

[Перевод] Метрики, которые отслеживают великие Product-менеджеры Перевод статьи подготовлен в преддверии старта курса «Product Manager IT-проектов» Важность Product-менеджеров, которые руководствуются данными Если у вас нет опыта в Data Science, управление данными в качестве Product-менеджера может показаться непростой задачей. Однак...

Исследование: какие способы обхода антивирусов используют хакеры Создание уникального вредоносного ПО требует больших ресурсов, поэтому многие хакерские группировки используют в своих атаках массовое, часто публично доступное ВПО. Широкое использование неизбежно приводит к тому, что такой инструмент попадает на радары антивирусных компани...

[Из песочницы] Создание микросервисной архитектуры с использованием single-spa (миграция существующего проекта) Это первая статья по в данной теме, всего их планируется 3: * Создание root application из вашего существующего проекта, добавление в него 3 микро-приложения (vue, react, angular) Общение между микро-приложениями Работа с git (deploy, обновления) Оглавление Общая час...

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

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

[Перевод] Как запустить стартап с минимальными потерями: 23 правила За 5 лет бутстрэппинга я попробовал много всего и обнаружил, что существует много способов создать себе сложности, которые отнимают время и энергию. В результате ты вынужден разбираться с ними вместо того, чтобы заниматься делом и наращивать ценность своего продукта. Для с...

[Перевод] Алгоритм MADDPG OpenAI Начинаем неделю с продолжения серии статей, подготовленных специально для базового и продвинутого курсов «Математика для Data Science». В конце статьи поделимся с вами списком самых интересных материалов по этой теме. Новый подход Мультиагентное обучение с подкреплени...

Полезные команды WSL для PowerShell Подсистема Windows для Linux имеет определённую степень кроссплатформенной совместимости с PowerShell и управляется из оболочки Windows. Давайте рассмотрим важные команды, которые могут вам пригодиться. Подсистема Windows для Linux (WSL) представляет собой мощный инструмент....

[Из песочницы] Круглосуточная трансляции своих видео на YouTube Последнее время в качестве хобби снимаю на видео лекции знакомого психолога. Отснятый материал монтирую и публикую на своём сайте. Месяц назад я загорелся идеей организовать круглосуточную трансляцию этих лекций на YouTube в режиме 24/7. Этакий тематический «телеканал», посв...

Запускаем DOOM на калькуляторе HP Prime G2 Установить DOOM на какое либо устройство, это как водрузить знамя победителя на павшей крепости. Мне задали вопрос “ну что, doom запустил?” не менее 35 раз, когда узнали что я вожусь с данным калькулятором. Решил не разочаровывать публику и добиться запуска DOOM. Попутно, э...

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

[Из песочницы] Очереди сообщений в PostgreSQL с использованием PgQ Очереди сообщений используются для выполнения: отложенных операций, взаимодействия сервисов между собой, «batch processing» и т.д. Для организации подобных очередей существуют специализированные решения, такие как: RabbitMQ, ActiveMQ, ZeroMQ и тд, но часто бывает, что в ни...

[Из песочницы] A* pathfinding на C#: двоичные кучи и борьба с аллокациями Сегодня мы разбираем один из популярнейших алгоритмов поиска пути. Работать будем с двумерным массивом целочисленных координат. Сначала кратко ознакомимся с методами обхода графов, напишем собственно поиск пути, а затем перейдём к самому вкусному: оптимизации быстродействия...

gRPC в качестве протокола межсервисного взаимодействия. Доклад Яндекса gRPC — опенсорсный фреймворк для удаленного вызова процедур. В Яндекс.Маркете gRPC используется как более удобная альтернатива REST. Сергей Федосеенков, который руководит службой разработки инструментов для партнеров Маркета, поделился опытом использования gRPC в качестве пр...

Как вырастить веб-разработчика от стажера до архитектора. Матрица компетенций Вместо эпиграфа Когда в 2004 году я окончил университет, в нашем городе почти не было команд разработчиков. Где работать, у кого набираться практического опыта? Выбор был прост: “админом” или “в Москву”. Или уйти из профессии. Сейчас я преподаю веб-разработку в местных ВУЗ...

Рефакторинг пет проекта: докеризация, метрики, тесты Всем привет, я php разработчик. Я хочу поделиться историей, как я рефакторил один из своих телеграм ботов, который из поделки на коленке стал сервисом с более чем 1000 пользователей в очень узкой и специфической аудитории. Читать далее

[Перевод] Мягкие частицы в WebGL и OpenGL ES Системы частиц это одни из самых простых способов сделать 3D сцену визуально богаче. В одном из наших Android приложений 3D Buddha Live Wallpaper достаточно простая сцена, которой было бы неплохо добавить чуть больше деталей. И когда мы думали как добавить разнообразия изобр...