[Перевод] 6 Python декораторов, которые значительно упростят ваш код "Простое лучше сложного".Лучшая функция Python, которая применяет эту философию из "дзен Python", - это декоратор.Декораторы могут помочь вам писать меньше кода для реализации сложной логики и повторно использовать его повсюду.Более того, существует множество замечательных в...
[Перевод] Декораторы Python: пошаговое руководство Понимание декораторов является важной вехой для любого программиста Python. Эта статья представляет собой пошаговое руководство о том, как декораторы могут помочь вам стать более эффективным и продуктивным разработчиком на Python. Читать далее
Чем самообучение лучше курсов В этой статье мне хотелось бы рассказать, почему не стоит покупать курсы по программированию в тот момент, когда у вас появилось желание стать программистом. Читать далее
Основы OkHttp в Android-разработке OkHttp — библиотека и по совместительству HTTP-клиент с открытым исходным кодом для Java и Kotlin, разработанная Square, которая также создала Retrofit.Порой стоит использовать не вездесущий Retrofit, а OkHttp из-за его производительности и большего функционала.В статье подр...
Чат в терминале на Rust Всем привет! Эта статья — туториал по написанию небольшого чат сервиса (серверное и клиентское приложения) на Rust, используя функционал TCP сокетов из стандартной библиотеки Rust. Сам чат для пользователя будет выглядеть, как приложение в терминале. Полный код приложений е...
Пишем обобщённую хеш-таблицу с открытой адресацией на чистом C В программировании достаточно распространена задача хранения данных в ассоциативных контейнерах. В этом случае мы ставим в соответствие некоторым ключам некоторые значения. При этом мы бы хотели иметь возможность более-менее быстро запрашивать значение по ключу.К решению это...
Хочется лучше жить? Просто начни просить Когда я был юн и наивен, то с большим презрением относился к блату и связям, а просьбы презирал. Мне казалось, что люди, которые используют помощь других людей, чтобы достигать своих целей, играют нечестно. Как же я ошибался, и почему вы упускаете огромные возможности, если ...
Балансировка в Finagle: как работает и как сделать свой балансировщик Finagle — библиотека от разработчиков Twitter. Ее используют для организации межсервисного RPC и построения mesh-микросервисной архитектуры. У библиотеки богатая функциональность по тонкой настройке и интроспекции, но сегодня мы рассмотрим клиентскую балансировку. Читать дал...
Tutorial по стандартному и нестандартному обмену сайта с 1С. Часть первая: стандартный обмен и его хитрости В жизни наши желания часто расходятся с нашими возможностями. Приходится искать компромисс. Так происходит и при интеграции интернет-магазинов с 1С. Хочется реалтайма, интеграции с программой лояльности, полного отсутствия коллизий и омниканальности (простите).Мы решили...
Telegram клиент. TDLib и Spring Boot Всем привет! В данной статье я хотел бы рассмотреть процесс создания Telegram клиента с помощью кроссплатформенной библиотеки TDLib, Java и Spring Boot. Читать далее
Circuit-фреймворк для Jetpack Compose и тестирование с Robolectric Тестирование приложений Jetpack Compose обычно основано на использовании библиотеки Compose UI Test и создании юнит-тестов поверх библиотек мокирования или DI. Однако этот подход требует наличия эмулятора и не всегда применим для использования в конвейере CI/CD, где обычно и...
Магия размерностей и магия Котлина. Часть вторая: Продвинутые возможности KotUniL Это вторая статья из серии статей про магии размерностий и Котлина на примере библиотеки KotUniL.В первой статье мы рассмотрели, как с помощью этой библиотеки не разбивать космические аппараты :-). В этой статье мы рассмотрим менее очевидные, но не менее интересные фичи...
Почему Banditypes — самая маленькая TS-библиотека для валидации схем Я выпустил библиотеку banditypes — самый маленький валидатор схем для TS / JS. Удивительно, но базовый функционал валидации с приятным API можно упихнуть в 400 байт, если сконцентрироваться на размере и добавить пару грязных хаков. В этой статье расскажу, как добился такого ...
Библиотека функций для расчета свойств воды и водяного пара В 2014 году захотел и реализовал библиотеку функций для Excel на VBA.При составлении библиотеки использованы документы Международной ассоциации по свойствам воды и водяного пара (МАСПВ, анг.IASPW):1. Revised Release on the IAPWS Industrial Formulation 1997 For the Thermodyna...
Что такое состояние Привет! Меня зовут Артём Арутюнян, много где меня можно встретить под ником artalar. 10 лет я разрабатываю крупные веб-сервисы, и вот уже четыре года менеджер состояния, исследуя тему реактивности, консистентности данных и состояния. А началось всё с простого вопроса: поче...
Пишем FastAPI с нуля на python FastAPI — это современная, быстрая (высокопроизводительная) веб-инфраструктура для создания API-интерфейсов с Python 3.7+ на основе стандартных подсказок типов Python. В этой статье мы рассмотрим как написать его с нуля. Читать далее
Разработка игр на Kotlin Native. Часть 1 Возможность компиляции Kotlin в нативный код, который может использовать С-библиотеки позволяет разрабатывать мультимедийные приложения и игры на основе библиотек SDL, GTK/OpenGL, GDX и специализированных библиотек для Kotlin (например, KorGE). В этой статье мы последователь...
Пишем простого бота-администратора для Telegram на Python. Тестируем на жене Создание своего собственного телеграм-бота является одним из увлекательных и полезных способов практического применения программирования. Я решил создать своего бота как вариант добавления нового увлекательного проекта в свой портфолио, а также для создания комфорта и удобст...
Все еще работаете с access token на клиенте? Тогда мы идем к вам Организация работы с токенами в клиентской части веб-приложений - тема, которая на слуху давно и многократно обсуждалась, однако далеко не для всех современных веб-приложений все еще оцениваются риски в этой части, что приводит к уязвимым реализациям.В статье рассмотрим прич...
[Перевод] Декораторы, о которых вам не расскажут Как вы знаете, декораторы - это одна из особенносте ython , но есть много людей, которые либо не знакомы с ними, либо, что еще хуже, знакомы с ними (на практике, или изучали), но так и не "поняли" их.Если вы относитесь к последней категории, вам почти обязательно будут ободр...
Тестирование мобильных приложений на Flutter с использованием Python + Appium Тестирование нативных мобильных приложений для Android и iOS обычно обеспечивается библиотеками UiAutomator2 и XCUITest, но сейчас, в связи с появлением мобильных приложений, разработанных с использованием Flutter Framework, использовать их для тестирования становится затруд...
Open-source библиотеки от команд ИТМО: оптимизация графовых структур, генеративный дизайн, оптимизация гиперпараметров Сфера искусственного интеллекта показательна тем, что здесь успешно развиваются множество проектов с открытым исходным кодом. Это отличная тенденция, поскольку позволяет сторонним исследователям лучше понять особенности работы моделей, использовать их в собственных разработк...
Autobinary: библиотека для простого обучения «деревяшек» – часть третья Привет! Я Василий Сизов, тим-лид команды «Модели управления Жизненным Циклом Клиента», и мы продолжаем нашу серию материалов о библиотеке autobinary. Ранее мы рассказали вам о кросс-валидации в autobinary, которую можно использовать не только для расчета усредненной оценки м...
Компонентный подход. Реализуем экраны с помощью библиотеки Decompose Это вторая часть из серии статей про компонентный подход. Если вы не читали первую часть Компонентный подход. Боремся со сложностью в Android-приложениях, то рекомендую начать с нее.Ранее мы обсудили, что компонентный подход — это способ организации приложения в виде иерархи...
Адаптация языковой модели vosk Приветствую, Хабр. В данной статье хочу рассмотреть процесс добавления слов в языковую модель vosk'а (vosk - библиотека для распознавания речи, в основе которой kaldi). Читать далее
Локальное окружение для изучения Web3.js и Ethereum В данной статье я расскажу как настроить окружение для изучения библиотеки web3.js Статья рассчитана на тех, кто интересуется blockchain и хочет научиться взаимодействовать с сетью Ethereum, она же EVM (Ethereum Virtual Machine), через библиотеку web3.jsПосле настройки окруж...
Магия размерностей и магия Котлина. Часть третья: Смешение магий Это третья, заключительная статья серии, посвящённой библиотеке по манипулировали физическими величинами системы СИ, а также другими величинами, в Котлин. В ней мы рассмотрим, как фундаментальные математические структуры, которые природа “заложила” в систему СИ, предопределя...
[Перевод] Объект многоточие в Python В этой статье мы подробнее рассмотрим объект многоточия, где можно использовать его в повседневной практике программиста, и какие известные пакеты Python используют его. Читать далее
Ещё раз про триумф ATi Radeon или ответ товарищу Dimkahon Дополнение к предыдущей статье о тестировании видеокарт. ATi Radeon 9600 против nVidia GeForce 5700 в DirectX 9.0 играх. Почему иногда лучше читать прежде чем говорить... и чем отличается мнение от знания...
[Перевод] Зачем нужен контейнер pause в Kubernetes Вы когда-нибудь задумывались, почему появляются контейнеры pause? Когда мы создаем поды, мы не помним, что когда-либо создавали эти контейнеры pause, так откуда же они берутся? Вы можете подумать, что, так как мы не создавали эти контейнеры самостоятельно, возможно, кластер ...
Эксперименты со Schedulers в Stable Diffusion В этой статье разберём, что есть scheduler в диффузионных моделях и как можно подменять их, пользуясь возможностями библиотеки diffusers. Читать далее
Обеспечение безопасности в Apache Kafka В предыдущих статьях мы рассмотрели архитектуру решения Apache Kafka, развернули продукт и разобрались с отправкой и получением сообщений. Можно было бы, конечно, дальше погрузиться в тему использования данного решения, но в Интернете есть множество различных публикаций с пр...
Экстремально уменьшаем размер NPM пакета Однажды я захотел создать небольшую NPM библиотеку по всем “best practices” - с покрытием тестами, написанием документации, ведением нормального версионирования и changelog'а и т.п. Даже написал пару статей, которые в деталях описали, какие вопросы решает библ...
[Перевод] Как работает service mesh и API-шлюзы в микросервисной архитектуре Вы наверняка много раз слышали о service mesh и API-шлюзе применительно к микросервисам. Их часто путают. В этой статье мы подробно поговорим о двух этих инструментах, а также разберемся, когда их лучше использовать и что будет, если их объединить. Читать далее
Реализация контроллера SDRAM В статье про VGA интерфейс я написал, что использовал внешнюю память SDRAM в качестве фрем буфера. Хочу поделиться его реализацией, хотя бы потому что, когда я занимался разработкой этого модуля потратил много времени, ведь стандартные IP-ядра не поддерживают эту микро...
[Перевод] Сравнительный анализ производительности популярных JS-фреймворков — Express.js, Koa.js и Fastify Допустим, у вас есть идея нового проекта, который обязательно завирусится, как только он увидит свет. Однако вы не можете решить, какой же бэкенд-фреймворк вам стоит использовать. Не нужно отчаиваться. В этой статье мы рассмотрим три популярных Node.js фреймворка (Express.js...
[Перевод] 5 неочевидных возможностей FastAPI: упрощаем работу с бэкендом на Python Почти все, с чем мы сталкиваемся в интернете, имеет отношение к API, а точнее к версиям этого программного интерфейса, использующим для работы HTTP-запросы. Когда мы хотим узнать прогноз погоды, интерфейс браузера или мобильного приложения вызывает API Яндекс.Погоды или API ...
Dry-rb — экосистема, которая упростит архитектуру вашего проекта Привет! Меня зовут Вероника Молчанова. Я - Ruby-разработчик в компании Joy Dev. В этой статье мы рассмотрим набор Ruby-библиотек dry-rb и расскажем, как они помогли упростить архитектуру проектов. В частности хотим показать, как на наших проектах используются такие гемы из d...
Автоматизация go get — больше не нужно запоминать названия библиотек Каждый раз, когда вы начинаете новый репозиторий программы на Go, первое, что необходимо сделать - добавить библиотеки, которые вы будете использовать. Для этого используется go get. Обычно нужные библиотеки копируются из go.mod соседнего проекта. Но копипаст - не наш метод!...
Предварительная обработка данных с помощью библиотеки Pandas (Задача) В современном мире большинство бизнес-процессов связаны с обработкой больших объемов данных, получаемых от различных источников. Часто эти данные содержат ошибки, дубликаты и пропуски, что может привести к неверным выводам и решениям. Одним из инструментов, которые позволяют...
Библиотека конца света В современном мире информация мгновенно устаревает. К тому моменту как мы прочитаем самую первую новостную заметку, выйдет фитчер, подробно объясняющий почему заметка наврала буквально в каждом слове. Ну, а когда дочитаете фитчер появится новость, опровергающая предыдущую. В...
Разработка и тестирование микроконтроллеров на Python Рынок интернета вещей растет значительными темпами и разработка кода для микроконтроллеров важна для любых проектов, где подразумевается наличие какого-либо вспомогательного оборудования или носимого устройства. Для разработки программного обеспечения под встраиваемые микрок...
Разворачиваем Apache Kafka В предыдущей статье мы достаточно подробно рассмотрели архитектуру Apache Kafka, из каких компонентов состоит данное решение, что для чего предназначено. И в этой статье мы рассмотрим процесс развертывания данного решения.Для запуска Kafka можно использовать решения для упра...
[Перевод] Почему работать с OAuth сложно даже сегодня? OAuth — это стандартный протокол. Ведь так? И для OAuth 2.0 есть клиентские библиотеки практически на всех языках программирования, которые можно представить. Вероятно, вы подумаете, что имея клиентскую библиотеку, можно реализовать OAuth для любого API буквально за десять...
Расширяем возможности Ansible: развертывание Docker В предыдущих статьях мы уже рассмотрели установку Ansible и подготовку шаблонов для автоматизации работы с управляемыми узлами. В этой статье мы продолжим обсуждать те возможности, которые есть у Ansible, и рассмотрим развертывание Docker.Управление установкой Docker с помощ...
[Перевод] Использовать unwrap() в Rust — это нормально Сравнительно недавно на Хабре была опубликована статья "Rust: ни в коем случае не используйте unwrap() в продакшене". Мягко говоря, тезисы, высказываемые в данной статье, спорны и содержат мало обоснования. Предлагаю читателям взглянуть на альтернативную точку зрения: почему...
React: революция использования фигурных скобочек Хорошо, react. Как много мы используем всего, потому что так исторически сложилось: пишем функции задом наперед (сначала объяви, потом вызывай). Оборачиваем все в стрелочные функции и константы с ними, когда достаточно именованной функции. Этот список можно хорошенько продол...
Как Factorio умудряется работать без лагов с таким числом элементов на экране Немного магии, бережная работа с объектами/компонентами. В посте также рассмотрена ECS и то, почему в Factorio не так просто использовать такой подход. Читать далее
C#. Электронная подпись и библиотека BouncyCastle Приветствую всех. В этой статье я бы хотел рассказать о работе с электронной подписью средствами библиотеки BouncyCastle на C#.Весь код указанный здесь находится в репозитории github и доступен в виде nuget пакета. Читать далее
Как мы ищем документы в Naumen Disk или еще один вариант организации FTS В процессе работы над проектом мы рассмотрели различные способы организации Full Text Search (FTS) по файлам. И… отказались от них в пользу своего решения, которое базируется на стандартных методах. В статье я опишу путь построения полнотекстового поиска по файлам для веб пр...
Облачный умный дом: что нужно знать, чтобы избежать проблем В обычной жизни я не только тестирую оборудование умного дома, но и очень много путешествую. Любимое хобби в поездках – трекинг, особенно в холмистой местности. Ходил я и по лестницам Непала, и по левадам Мадейры, и по козьим тропам Азорских островов. К чему это я? Многим об...
Принт-сервер из хлама В этой статье я расскажу, как создать принт-сервер из старого неттопа. Зачем нужен принт-сервер? Предположим, у вас есть принтер, который находится в кабинете или квартире, и вам необходимо обеспечить доступ к нему всем пользователям в этом помещении (офисе, квартире). Если ...
Pyspark. Анализ больших данных, когда Pandas не достаточно Pandas - одна из наиболее используемых библиотек Python с открытым исходным кодом для работы со структурированными табличными данными для анализа. Однако он не поддерживает распределенную обработку, поэтому вам всегда придется увеличивать ресурсы, когда вам понадобится допол...
[Перевод] Тестирование автоматизации Ansible с помощью Molecule Часть 2 Больше работайте с Molecule, чтобы убедиться, что ваша инфраструктура работает. Используйте компоновку, идемпотентность, несколько контейнеров и внутренние зависимости, чтобы при развертывании веб-сайта ваши роли Ansible вели себя должным образом. В первой части статьи мы р...
System.String не то, чем кажется. Представление строк в памяти .NET Тип System.String - один из самых используемых при разработке. В этой статье я хотел бы поговорить о нюансах его реализации. Вы узнаете о том, как строки хранятся в памяти и почему в каждой строке есть 4 пустых байта. Читать далее
Интеграция с ЕСИА v2 на Debian 11 + php 7 Передо мной была поставлена задача "чтобы посетители могли войти на сайт через Госуслуги". Задачка не новая, давно решена. На PHP для этого используют библиотеки github.com/fr05t1k/esia и github.com/ekapusta/oauth2-esia, но есть пара оговорок. Читать далее
Создание DSL на Python с библиотекой textx Для описания объектов и процессов в терминах бизнес-логики, конфигурирования и определения структуры и логики в сложных системах популярным подходом является использование предметно-специфических языков (Domain Specific Language - DSL), которые реализуются либо через синтакс...
Введение в библиотеку Transformers и платформу Hugging Face Библиотека Transformers предоставляет доступ к огромному кол-ву современных предобученных моделей глубокого обучения. В основном основаных на архитектуре трансформеров. Модели решают весьма разнообразный спектр задач: NLP, CV, Audio, Multimodal, Reinforcement Learning, Time ...
Основы библиотеки cURL PHP cURL — библиотека, используемая для отправки HTTP-запросов с различных языков программирования, включая C, PHP и другие.В статье проведено знакомство с библиотекой, описаны основные функции и предопределённые константы. Представлены способы настройки сеанса, совершения GET- ...
Используем модель нейросети на C++ Большинство туториалов по созданию и использованию моделей нейросетей написаны на Python. Однако для какого-нибудь проекта рано или поздно может понадобится использовать более быстрый и надежный язык для этих задач, например, C++. Эта статья о том, как на C++ можно использов...
Открытая библиотека для работы с документами Microsoft Word формата .docx в мире .Net в 2023 году: Wordroller Свою предыдущую статью на Хабре я написал в 2016 году, и она была посвящена подборку команды стартапа. Примерно в это время я погрузился в историю создания собственного продукта и стало не до создания контента. Так получилось, что в 2020 году мне пришлось сделать свою реализ...
[Перевод] Playwright и Puppeteer в 2023 году: что выбрать Дебаты по поводу выбора между Playwright и Puppeteer — это большая дискуссия, поскольку они обе являются фантастическими библиотеками Node.js для автоматизации браузера. Хотя эти библиотеки делают практически одно и то же, между Puppeteer и Playwright ест...
[Перевод] Попрощайтесь с проверками на null и исключениями: использование монады Maybe в Symfony Функциональное программирование появилось не вчера. Но оно так и не приобрело какой-либо дикой популярности, и, вероятно, не просто так. Иногда оно может быть довольно сложным с точки зрения понимания и использования. Но у него есть много преимуществ. Одним из них является в...
[Перевод] Пока-пока, MongoDB: почему компании переходят на PostgreSQL За последние несколько лет многие компании перешли с MongoDB на PostgreSQL, в том числе известное онлайн-издание The Guardian. В статье говорим о причинах перехода и разбираемся, действительно ли PostgreSQL лучше MongoDB. Читать далее
Превратности диспетчеризации в Swift Всем привет, меня зовут Сергей, я работаю в компании Joy Dev в должности iOS TeamLead. Эта статья - моя “проба пера” на Хабре. В ней, вместе с обзором видов диспетчеризации в Swift, мы рассмотрим несколько примеров, когда реализация методов в extension может вести себя неожи...
Компактный make для STM32 с USB Дата появления микроконтроллеров STM32, судя по datasheet, 2007 год, и с тех пор они признаны очень успешным и популярным чипом. Поэтому для них уже написано множество готовых примеров с поддержкой почти всех технологий как самим вендором так и комьюнити. Это и всевозможные ...
Go, Allure и HTTP, или Как мило тестировать HTTP-сервисы на Go (часть 2) Всем привет! Меня всё так же зовут Сергей, я разработчик в Ozon. Прошло полгода с тех пор, как я не могу найти носки выхода моей первой статьи про тестирование HTTP-сервисов на Go, уже почти год библиотеке CUTE, поэтому я горю желанием рассказать вам, как нынче можно те...
Микрофронтенды на React и ExtJS Хочу представить решение по внедрению микрофронтендов в компании РТ МИС с помощью Custom Elements, чтобы связать приложения написанные на библиотеке ExtJS и React.В данной статье расскажу, для решения каких проблем выбрали микрофронтенды, с какими проблемами столкнулись при ...
VueEnt — сложные формы на Vue и не только Примерно полтора года назад вышла моя статья про библиотеку валидации v9s. Благодаря конструктивной критике в комментариях, удалось серьезно переработать библиотеку, уже год как вышла вторая более дружелюбная версия. В тексте публикации было сказано о том, что появилась необ...
5 библиотек Python для красивого вывода на консоль Независимо от того, создаете ли вы простой скрипт Python или приложение корпоративного уровня, элегантное взаимодействие с консолью избавит вас от надоедливой головной боли при устранении неполадок в будущем.В этой статье мы рассмотрим некоторые библиотеки, которые позволят ...
Как создать консольное приложение на языке dart, используя пакет weather_pack? В данной статье мы рассмотрим, каким образом можно создать консольное приложение, позволяющее получить погодные данные для выбранной локации и отобразить их в консоли, используя язык программирования dart и библиотеку weather_pack. Также научимся использовать сервис геокоди...
TAPE: первый бенчмарк для few-shot оценки языковых моделей на русском языке Мы в SberDevices обучаем и оцениваем языковые модели для русского языка уже давно — так, например, за два года существования бенчмарка Russian SuperGLUE через его систему оценки прошли более 1500 сабмитов. Мы продолжаем разрабатывать инструменты для русского языка и в этой с...
Неочевидная причина, почему 90% ваших начинаний проваливаются, толком не начавшись В прошлой статье я говорил о том, что поиск себя и попытки найти дело своей жизни часто проваливаются. А сейчас поговорим о том, почему даже если вам очень нравится, то чем вы занимаетесь (да еще и получается к тому же), шансов на успех меньше, чем хотелось бы. Читать далее
Язык программирования Rust: безопасность, производительность и преимущества Язык программирования Rust был разработан компанией Mozilla и впервые представлен в 2010 году. Он считается одним из самых безопасных и производительных языков программирования на сегодняшний день. В данной статье мы рассмотрим основные преимущества Rust, и почему он станови...
[Перевод] Телематическая система автомобиля Мы в команде Third Man по долгу службы изучаем довольно много англоязычных материалов. Часто интересными статьями хочется поделиться с коллегами и обсудить поподробнее. Но не всегда есть время всей командой читать 20+ страниц англоязычного текста, так что сокращённый и “подс...
Редко используемые свойства CSS Всем привет, меня зовут Кирилл, я frontend разработчик компании Usetech. CSS постоянно развивается, и некоторые полезные свойства остаются незамеченными. Возможно о них говорят не так много, как о других, но в этой статье на примерах я разберу новые и полезные свойства CSS. ...
C# и обработка медиафайлов средствами FFmpeg, Pandoc и ImageMagick Приветствую читатели, в этой статье я бы хотел рассказать о написанной мной OpenSource библиотеке MediaFileProcessor под платформу .NET (.netstandart 2.0). Читать далее
[Перевод] Мультиарендность в Kubernetes Могут ли несколько команд использовать один и тот же кластер Kubernetes?Можно ли безопасно запускать ненадежные рабочие нагрузки от ненадежных пользователей?Поддерживает ли Kubernetes мультиарендность?В этой статье рассмотрим проблемы запуска кластера с несколькими арендатор...
Обмен данными по SPI между Raspberry Pi и Arduino Для задач робототехники, когда хочется применять вычисления на Python, использовать компьютерное зрение, ROS возникает необходимость быстрого и надежного обмена данными с микроконтроллером, который уже рулит всевозможными моторами, сервоприводами и датчиками. Читать далее
Как настроить библиотеку SFML в Visual Studio Следующая тема Инструкция подключения мультимедийной библиотеки SFML к Visual Studio С++. Читать далее
Интеграция и кастомизация OpenAPI в Django/Django Rest Framework Рассмотрим способы интеграции OpenAPI схемы в экосистему Django/DRF с помощью библиотеки drf-spectacular, а также некоторые проблемы, возникающие при кастомизации API и, соответственно, их решения. Читать далее
Как мы приложение Додо Пиццы на арабский переводили Что вы знаете о том, как добавить поддержку языков, которые пишутся справа налево (Right to Left, RTL), в iOS-приложение? Нужно использовать leading и trailing вместо left и right, а ещё… Вот и мы больше ничего не знали, но пришлось разобраться.Мы готовим приложение Додо Пиц...
Почему сотрудники делают не то, что нужно В статье Почему подчиненные делают не то, что нужно я писал о четырех типах заданий, которые может поставить руководитель: алгоритм, задача, проблема, возможность и, соответственно, о четырех типах вопросов, один из которых встанет перед исполнителем, когда он будет выполнят...
Иронии автоматизации Вероятно, один из главных в мире текстов об автоматизации — статья «Ironies of Automation» когнитивного психолога Лизанны Бейнбридж, опубликованная в 1983 году в журнале Automatica. На неё ссылаются более 1800 других академических работ, про неё есть страница в Википедии, её...
Программирование EEPROM 93C76. Пишем программатор. Часть 1 Всем привет! Я - Kekovsky, инженер-любитель, до этого публиковался на некоторых других платформах. Решил попробовать себя здесь, если статья понравится, будет продолжение. В этой статье мы изучим работу с микросхемой EEPROM 93C76, рассмотрим обращение к ней по шине SPI, напи...
Кодогенерация Dart Доброго дня, в данной статье подробно рассмотрим как работает кодогенерация во Flutter. Главная цель, которая стояла перед мной при написании статьи - это разбор каждого этапа настройки кодогенерации, чтобы у разработчика, прочитавшего этого материал, сложилась полноценная к...
ТОП-10 экспортеров для Prometheus 2023 Статья Основы мониторинга (обзор Prometheus и Grafana) оборвалась на самом интересном месте. Автор предложил искать и использовать актуальные экспортеры, а читатель такой – окей, где референс? Что ж, давайте рассмотрим топ-10 наиболее полезных экспортеров на начало 2023 года...
Теория вероятностей в машинном обучении. Часть 1: модель регрессии В данной статье мы подробно рассмотрим вероятностную постановку задачи машинного обучения: что такое распределение данных, дискриминативная модель, i.i.d.-гипотеза и метод максимизации правдоподобия, что такое регрессия Пуассона и регрессия с оценкой уверенности, и как норма...
Методы расширения в C# В этой статье мы рассмотрим такой механизм, как методы расширения, который позволяет добавлять методы в уже созданные типы. Читать далее
Инструменты анализа эффективности работы приложения. PerfView Иногда приходится разбираться, почему .NET приложение работает "плохо". Не так, как мы ожидали. Тупит, медленно работает, зависает, запросы «не исполняются», утекает память или потребляется слишком много CPU.Есть множество способов, как разбираться в таких ситуациях. Сегодня...
Приложения и сервисы в Docker Docker получил широкое распространение благодаря своим возможностям по работе с контейнерами и прежде всего, благодаря тому функционалу, который он предоставляет для работы с приложениями в контейнерах. В этой статье мы рассмотрим работу с приложениями и сервисами в контейне...
Как упростить импорт JavaScript модулей с помощью Node.js Subpath Imports Существует множество библиотек для настройки алиасов в Node.js, таких как alias-hq и tsconfig-paths. Однако однажды, изучая документацию Node.js, я обнаружил возможность настройки алиасов без использования сторонних библиотек. Более того, данный подход позволяет использовать...
[Перевод] Давно забытый ExecuteExcel4Macro Привет, Хабр!В этой статье мы описываем макрофункцию ExecuteExcel4Macro, давно забытую и фактически устаревшую функцию, которая, тем не менее, помогла нам автоматизировать процесс подбора, используя только файлы Excel, список кандидатов и библиотеку документов на SharePoint....
Что такое психология цвета и как ее использовать в маркетинге Почему на логотипы брендов фастфуда практически всегда добавляют красный цвет, а на лого элитных автомобилей – черные? Исследование «Влияние цвета на маркетинг» доказало, что от 62% до 90% впечатлений о предмете или другом человеке люди составляют на основании восприятия цве...
Что такое Self-Service BI и зачем он нужен? Habr, привет! Меня зовут Женя, и в настоящий момент я лидер направления Self-Service BI в крупном FMCG. Очень хочется начать делиться с вами своими знаниями и наработками, поэтому в рамках первой небольшой статьи решил рассказать вам максимально просто о том, а что же т...
Почему между Xiaomi 13 и Xiaomi 12 лучше выбрать старую модель Ведущий YouTube-канала Quke.ru рассказал, чем новый Xiaomi 13 отличается от предшественника и есть ли смысл обновляться.
Обновление Hibernate через боль Меня зовут Андрей Аркаев. Я занимаюсь разработкой на Java с 2002 года. Сейчас развиваю бизнес-систему для контактных центров в Naumen. Как и многие другие бизнес-системы мы используем ORM. В статье поговорим о Hibernate, так как эта библиотека распространена для Java.Наш про...
Amazon IVS: как быстро добавить видеотрансляции в приложение или на сайт Video live streaming - это технология потоковой трансляции видео тысячам и миллионам зрителей в режиме близком к реальному времени. Видеостриминг находит своё применение в разных областях: образование, фитнес, онлайн события, электронная коммерция, игры и киберспорт.В этой с...
Электричество без регистрации и sms: быстрое введение в pandapower Даже если вы раньше ни разу не имели дела с расчетом электрических сетей, с этой библиотекой вы можете быстро войти-в-айти-начала-прошлого-века... (спойлер: в электричество).Итак, продолжаем цикл изучения электрических python-библиотек с разбора pandapower - открытой библиот...
Ищем по-соседски: методы приближённого поиска ближайших соседей для A/B-тестирования гипотез Привет, Хабр! В этой статье мы рассмотрим один из подходов к офлайновому A/B-тестированию, поговорим о сложностях, которые возникают при оценке результатов пилотного проекта (далее — пилота) и разберём реализацию в коде. Читать далее
Реверс-инжиниринг китайского ПЛК FX3U-14MR. Часть 2. Софт В первой части мы познакомились с аппаратным обеспечением китайского клона ПЛК FX3U-14MR (одного из его вариантов). В это части мы научимся подключаться к его MCU по доступным коммуникационным интерфейсам, останавливать, запускать программу, заливать прошивку. И в конце расс...
Создание Kubernetes-кластера на пальцах или почему это не сложно Привет, меня зовут Руслан, я энтузиаст одного отдела искусственного интеллекта, занимаюсь автоматизацией процесса разработки и контролем за инфраструктурой внутри Kubernetes. Хочу детально рассмотреть развёртку Kubernetes-кластера, показать решения на возможные ошибки, ответ...
Введение в Материалы Материалы — это один из основных элементов в создании игровых объектов в игровых движках. Материалы позволяют управлять внешним видом объектов, включая текстуры, цвета и прозрачность.В Unreal Engine 5 материалы состоят из множества узлов, также называемых нодами, которые свя...
[Перевод] Мощь декораторов TypeScript на живых примерах. Декорирование методов класса Декораторы — инструмент декларативного программирования. С их помощью можно легко и элегантно добавить к классам и членам класса метаданные. На основе этих метаданных можно расширять или изменять поведения классов и членов класса, не изменяя при этом кодовую базу, к которой ...
Что такое трейдинг, и как начать торговать в плюс в 2023? Да, опять про трейдинг. Но… Очередная статья про трейдинг. Все по-честному. И максимально простым языком. С мемами. С объяснением почему твой брокер «кухня». С домашним заданием и описанием всего, что нужно на старт.А ещё здесь ссылки… Много ссылок. На книги. На те, книги, которые в отличие от твоего з...
Дельта компрессия и квантизация объектов в C# Cтатья затрагивает тему сериализации данных, которые передаются по unreliable каналам.В первую очередь это касается реалтайм игр, которые критичны к сетевым задержкам, имеют активное общение клиента и сервера, например, 10 - 60 раз в секунду и используют UDP протокол. В стат...
Безопасная разработка в Python. 2 часть В первой части статьи мы начали разбирать тему безопасной разработки на языке Python, поговорили о том, что нельзя допускать бесконтрольное выполнение команд, вводимых пользователем, также нельзя позволять вводить ключи к некоторым командам. Также, вспомнили про SQL инъекции...
Точечные фильтры: алгоритмы и их реализация Фильтры играют важную роль в обработке изображений и сигналов, позволяя улучшить качество изображения, удалить шум, выделить интересующие области и многое другое. Существует несколько типов фильтров, используемых в цифровой обработке сигналов и компьютерном зрении. В этой ст...
[Перевод] Инструменты управления тестированием В статье рассмотрим 7 инструментов, которые помогают управлять процессом тестирования, их ключевые особенности и ситуации применения. Читать далее
Стало известно, есть ли в редакторе таблиц «Р7-Офис» библиотека функций Как выяснилось, такая функция у решения действительно есть. Для того, чтобы попасть в табличном редакторе в библиотеку функций, нужно в панели инструментов войти во вкладку «Формула» и выбрать пункт «Функция». После этого откроется новое окно с библиотекой функций. В окошке ...
История о том, как прочитать 120 тысяч анекдотов и не рассмеяться раньше времени Небольшой рассказ с картинками о проведении тематического моделирования для массива документов, на примере датасета анекдотов на русском языке. В работе применены библиотеки Gensim, Sklearn. Рассмотрены разные способы векторизации токенов bag of words, tf-idf. Получены резул...
Что делать, если в начале спринта у тестировщика нет задач? Часто в начале спринта у тестировщика нет задач. Ну а что, тестировать еще нечего, приходится ждать готового функционала. Давайте рассмотрим стандартные этапы разработки новой фичи: создание дизайна, верстка, разработка, тестирование. И всё здесь так, но где-то между ними з...
Что есть функция в Python? В начале же статьи предупрежу:Эта статья предназначена только для тех людей, которым хочется узнать,чем на самом деле является функция в python....НО! Предупреждаю, я не буду лезть в сурсы питона. Эта статья была создана только для обычных вроде меня программистов.Статья бу...
Корни RxJava — о чем мы не подозревали В этой статье описано то, как под капотом работает RxJava и почему она работает именно так, а не иначе. Статья рекомендуется к прочтению разработчикам уровня junior - middle, так же очень желательно перед прочтением статьи ознакомиться/вспомнить паттерн Observer, потому что ...
Контекст, награда, много рук. Многорукие бандиты как метод принятия решений Всем привет! В предыдущих двух статьях мы подробно рассмотрели технические и методологические аспекты A/B-тестирования в Ozon. А сейчас время перейти к не менее интересным темам. Так как наша команда занимается не только A/B-тестами, но и в целом развитием методов...
[Перевод] StackLLaMA: практическое руководство по обучению LLaMA с помощью RLHF ChatGPT, GPT-4 и Claude — это мощные языковые модели, которые дообучают, используя метод, который называется «обучение с подкреплением на основе отзывов людей» (Reinforcement Learning from Human Feedback, RLHF). Благодаря этому такие модели лучше отражают...
Обзор библиотек на питоне для моделирования в сфере электроэнергетики Если мы хотим без больших затрат средств и времени создать модель в области электроэнергетики, то питон (python) будет для нас поистине незаменимым языком. Больше всего доступных открытых и бесплатных power-библиотек с хорошей документацией написано именно на питоне, и эта с...
[recovery mode] Тестирование gRPC. Часть 2 В предыдущей статье мы с вами рассмотрели тестирование фреймворка gRPC. Но демо проект созданный моим коллегой Михаилом Петровым, был улучшен моим в другим коллегой Читать далее
Стратегии прогнозирования временных рядов в ETNA Меня зовут Дима, я разработчик библиотеки ETNA в Тинькофф. Расскажу о том, как в задаче прогнозирования временных рядов появляются стратегии, какими они бывают и как воспользоваться стратегией в библиотеке ETNA. Читать далее
3D-графика в Go В большинстве случаев, когда речь заходит об использовании Go, вспоминается backend или DevOps и в самую последнюю очередь можно подумать об использовании Go для создания мобильных или десктопных приложений. Но в действительности, благодаря возможностям интеграции с нативным...
Создаем простую игру с Jetpack Compose для часов на Google WearOS Библиотека Jetpack Compose значительно изменила подход к разработке нативных приложений и позволила декларативно описывать в коде интерфейсы, которые зависят от состояния и автоматически отслеживают его изменение. Но долгое время ее применимость ограничивалась платформой And...
Патч от Intel для ускорения алгоритмов библиотеки scikit-learn Уведомление о возможности ускорить работу появляется при установке scikit-learn, поэтому пишу для тех, кто давно не переустанавливал эту библиотеку.Подробное описание ускорителя – по ссылке https://intel.github.io/scikit-learn-intelex/Ниже перечислил важные моменты и результ...
Kandinsky создаёт игры Мы предлагаем Вам познакомиться с Kandinsky 2.1 на практике, углубившись в реальный кейс использования генеративной нейросети.В рамках этой статьи мы сосредоточимся на процессе создания игры, а именно визуальном оформлении карточной игры, используя Kandinsky 2.1. Мы рассмотр...
Как за неделю превратить Open redirect в RCE В этой статье я расскажу вам о том, как ровно год назад я связал в цепочку несколько проблем безопасности для достижения Удаленного выполнения кода (RCE) на нескольких серверах компании VK. Я постарался описать свои шаги в подробностях, так как мне самому, как постоянному чи...
Советы по архитектуре кода для начинающих Для кого статьяВы уже написали свои первые 1000 строк кода и сейчас хотите сделать их понятнее, потому что внесение изменений занимает столько-же времени, сколько написать заново, но советы из ООП, SOLID, clean architecture и т.д. непонятны вам.О чем статьяЭта статья - не об...
Jenkins Dynamic Agents в K8s Привет Хабр! На связи Рустем, IBM Senior DevOps Engineer & Integration Architect. В этой статье я хотел бы поделиться своим недавним подходом к динамической подготовке агента Jenkins с помощью простых строк кода в пайплайне Jenkins с использованием метода общей библиотек...
Создаем свой собственный язык программирования с использованием LLVM. Часть 3: Генерация кода В предыдущих статьях мы рассмотрели и реализовали лексический и синтаксический анализаторы, а так же реализовали семантический анализ для нашего учебного языка, что дало нам основу. В данной статье мы продолжим начатое и реализуем генерацию кода для LLVM IR. Читать далее
Немного о безопасности Kubernetes Сегодняшняя статья будет посвящена обеспечению безопасности Kubernetes. Мы рассмотрим специфику защиты Kubernetes, и начнем мы с рассмотрения вопросов безопасности контейнеров. Читать далее
Пишем умный поиск по коду с Open AI В этой статье мы кратко рассмотрим технологию, которая лежит в основе ChatGPT — эмбеддинги, и напишем простой интеллектуальный поиск по кодовой базе проекта. Читать далее
Повторная передача сообщений в Spring Kafka В статье рассмотрена тема обработки ошибок в Spring Kafka, а так же основные параметры и настройки, которые необходимо учесть при настройке конфигурации. Читать далее
[Перевод] Использование Postgres в качестве очереди сообщений Базы данных не являются очередями сообщений — это устоявшееся утверждение, которое обсуждалось во многих статьях в блогах и презентациях на конференциях. Но с развитием реляционных баз данных выдерживает ли это утверждение проверку? Если посмотреть на сов...
Библиотека компонентов для дизайнеров приложений Разбираемся с тем, как принести максимальную пользу команде дизайнеров с помощью подключаемой библиотеки компонентов в Figma, на примере нашей команды по нативной разработке мобильных приложений. Читать далее
Мы же всё протестировали, или откуда берутся баги на проде (часть 1) “Критичный баг на проде!”Это сообщение в рабочем мессенджере, пожалуй, самый страшный сон тестировщика/QA-специалиста.Я в тестировании уже больше 10 лет, попробовала себя в разных ролях на 40+ проектах. И в этой статье рассмотрю ТОП-5 наиболее распространенных причин появл...
Почему 1С запрещает использовать файлы, которые вы создаете? Каждый день разрабатываются новые программы, которые совершенствуют работу существующих сервисов, делают их удобнее для людей. Но некоторые компании стремятся ограничить их развитие и сузить круг возможностей клиентов на пользование независимыми разработками . Наша команда п...
AliveColors: Есть ли замена фотошопу на земле русской? Привет, Хабр! Сегодня мы поговорим о графическом редакторе AliveColors и попробуем разобраться, что за задачи он может решать. В этом посте мы коснемся вопроса, в каких ситуациях AliveColors может заменить безвременно покинувший наш рынок Adobe Photoshop, и почему его стоит ...
[Перевод] Дополнить Rust-библиотеку примерами? Легко Когда вы пишете библиотеку, которая в дальнейшем будет задействована во множестве других проектов, крайне важно продумать, как именно разработчики будут работать с ней своем коде.Один из лучших способов позаботиться о том, чтобы работа с вашей библиотекой не обернулась для п...
Наблюдение за температурой: введение в холодные и горячие Observable в rxjs По мере изучения RxJS разработчик рано или поздно сталкивается с такими понятиями, как cold и hot observable. А на технических собеседованиях в команды, которые используют RxJS, можно услышать вопросы по этой теме.Например, чем горячий поток отличается от холодного? Можно ли...
“Чтоб не зазнавались”, или Ошибки руководителя при работе с хорошими сотрудниками В прошлой статье мы рассмотрели 3 ключевые ошибки, которые совершает руководитель при работе с нелояльными сотрудниками. Сейчас же хочу рассмотреть ошибки, которые руководитель допускает по отношению к лучшим сотрудникам. 1. Руководитель недостаточно времени уделяет хорош...
PyCharm Docker Django Debug Эта статья посвящена настройке IDE для возможности запуска и отладки Django сервера. Статья нацелена на людей которые столкнулись с подобной проблемой и хотелось бы поделиться опытом, так как сам прошёл эти этапы. Читать далее
Количество партиций в Spark DataFrame, DataSet на основе Relational Data Base table В прошлой статье мы рассмотрели количество партиций, которое по умолчанию создается Apache Spark при инициализации DataFrame, DataSet. В текущей статье продолжим рассматривать количество партиций у Spark DataFrame и DataSet, созданных на основе таблицы в Relational Database....
«Карманный синоптик за час». Пишем Telegram-бота для мониторинга погоды на Python Хабровчане, всем привет! Меня зовут Максим Плачковский, я автор канала PythonToday. Из этой статьи вы узнаете, как написать своего Telegram-бота для получения данных о погоде в любом городе нашей планеты. Мы детально рассмотрим работу с API, парсинг JSON и напишем бота на а...
Модель нелинейной аппроксимации ретеншена Эта статья - вторая в серии, после статьи Ретеншен — основная метрика F2P игры, вероятностный подходЗдесь я рассматриваю ретеншен не как скалярную случайную величину, а как случайный временной ряд. Далее создаю модель нелинейной аппроксимации метрики, учитывающую сезонность ...
Безопасность контейнеризированных приложений в рамках DevSecOps: какие практики использовать и с чего начать Привет! Меня зовут Михаил Черешнев, я работаю в компании Swordfish Security, где плотно занимаюсь вопросами внедрения DevSecOps. В этой статье мы рассмотрим процесс безопасной разработки контейнеризированных приложений от IaC манифестов до Runtime. А также попробуем определи...
Unity «уменьшение размера файла на устройстве» Часть 1 Когда игра подходит к релизу, ее объем занимаемой памяти сильно превышает желаемый. Если говорить с точки зрения пользователя, то они тоже не любят, когда приложение весит очень много. Это может отпугнуть как при первом скачивании, так и при очистке телефона, когда нужно буд...
Vaadin или как стать full-stack разработчиком Привет, Хабр! В данной статье хотелось бы поделиться мнением о плюсах и минусах использования фреймворка Vaadin версии 14. До знакомства с Vaadin фронт приходилось делать с помощью различных JS фреймворков или библиотек, в связки с html и css. Поэтому особо никогда не задумы...
Технологии, изменившие музыку. Часть 1: запись Эта статья — первая из цикла, в котором мы рассмотрим технологии, изменившие музыкальный мир второй половины 20-го века. В первой части мы поговорим про запись музыки. Если разобраться, отсутствие этих технологий столетия назад — подлинная трагедия человечества. Ведь мы нико...
Магия размерностей и магия Котлина. Часть первая: Введение в KotUniL Амперы нельзя складывать с вольтами. Сантиметры можно складывать с дюймами, но очень внимательно. Иначе получится как с космическим аппаратом стоимостью 125 миллионов долларов Mars Climate Orbiter, который успешно долетел до Марса, но бездарно разбился о его поверхност...
С чего айтишнику можно начать 2023 год? Отдохните после 2022 года! На этом можно завершить статью.Но если вы из тех людей, кому хочется заняться чем-то и в праздники, то эта статья для вас. В статье я написал, чем бы сам хотел заняться до выхода к рабочей рутине.Пишите в комментариях, что вы уже успел поделать без...
Расширяем PostgreSQL с помощью Rust Свободная система управления базами данных PostgreSQL не только предоставляет высокопроизводительный движок для выполнения запросов, но и может быть расширена с помощью расширений, которые могут добавлять новые типы данных (например, для ГИС‑рас...
Использование методов А/Б тестирования. Решение практического кейса в Python Привет, Хабр! В данной статье будет рассмотрено применение логистической регрессии, причинного случайного леса (Causal Random Forest), метода CUPED для оценки изменения целевой переменной в Python при проведении А/Б тестов. Основное внимание будет уделено практике, теоретиче...
[Перевод] Визуализация архитектуры модели PyTorch PyTorch — это библиотека для глубокого обучения. Вы можете создавать очень сложные модели глубокого обучения с помощью PyTorch. Однако бывают случаи, когда вам нужно иметь графическое представление архитектуры вашей модели. В этом посте вы узнаете:Как сохранит...
Добавление файлов контента в nuget-пакетах Привет! Меня зовут Александр, я старший разработчик в команде, которая занимается оцифровкой документов. Когда мы разрабатываем пакеты библиотек компонентов, иногда возникает необходимость дополнить исполняемый код определенным контентом. Нередко этот контент нужен именно в ...
Вопросы на собеседовании: Senior DevOps Engineer Вы когда-нибудь задумывались о том, какие вопросы задают DevOps инженеру на собеседовании? Да, есть вполне обоснованное мнение, что таких инженеров в принципе быть не может (или все инженеры команды являются проводниками методологии DevOps), но все же на рынке хватает ваканс...
Почему мы влюбились в IXcellerate Здесь должна была быть статья про дата-центр, но у нас почему-то получилось про любовь. Знаете, как это бывает в Тиндере? Вроде, много красивых девушек в совпадениях, пиши любой. Но среди всех выделяется одна, особенно милая и симпатичная. Этакая рокерша с ирокезом и пирсинг...
[recovery mode] Интеграция Primefaces в приложение на Spring Boot. Часть 1 — настройка зависимостей и базовый проект В данной статье описывается пример интеграции библиотеки компонентов пользовательского интерфейса Primefaces, построенной на основе фреймворка JavaServer Faces (JSF), в MVC приложение на Spring Boot. Читать далее
React и Typescript: Создание динамического компонента на примере кнопки React и Typescript являются очень мощными инструментами для создания динамичных пользовательских интерфейсов. Создание универсального компонента, который может использоваться в различных ситуациях, является одной из ключевых задач при разработке веб-приложений. В этой статье...
LGT8F328P: импортозамещение по-китайски (начало) Китайская фирма Logic Green еще примерно в 2015 году взялась за выпуск усовершенствованных аналогов линейки ATmega88-328. В настоящее время выпущены контроллеры LGT8F88P/168P/328P, старший позиционируется для производства Arduino-аналогов. В народе их называют «клонами Ardui...
Работа с контейнерами в Minikube Про Kubernetes написано огромное количество статей. Установка, настройка, мониторинг и безопасность все эти аспекты рассматриваются достаточно подробно. При этом, отдельным пунктом идет создание и настройка контейнеров. И если для решения глобальных задач администриров...
[Перевод] Темная сторона исследований пользователей: как когнитивные искажения портят результаты ИнтроВ статье разбираются когнитивные искажения в разрезе влияния на исследователя, она будет полезна как исследователям (особенно джунам и мидлам), так и заказчикам исследований, чтобы понимать какие опасности подстерегают нас всех в увлекательном путешествии под названием ...
Оптимизация бэкенда приложения с примерами на Symfony. Часть 2 Всех приветствую! Это продолжение серии статей, где мы рассмотрим еще несколько методов, которые помогут улучшить производительность приложения. Мы поговорим о том, как использовать entity manager, unit of work, bulk inserts и batching processing для более эффективной работы...
Обзор уязвимостей DACL В этой статье рассмотрим последние уявзимости, которые были найдены за последние несколько лет. Основной критерий отбора уязвимостей — работа с DACL, что можно делать с системой, если подобные уязвимости попадаются в операционной систе...
Джефф Безос: предприниматель или изобретатель? Когда Джефф Безос решил основать Amazon (изначально книжный интернет-магазин), он открыто оценивал вероятность провала в 70%. Сейчас Amazon среди самых известных транснациональных корпораций в мире. Одна из ключевых её особенностей — поощрение изобретений и инноваций среди с...
Conc: новая библиотека для управления конкурентностью в Go Одной из главных фишек языка Go является удобная работа с конкурентностью. Однако, в больших проектах всё равно возникают такие проблемы как утечка горутин, некорректная обработка паник в горутинах, плохая читаемость кода. Как указывает автор библиотеки в своей статье, он ча...
[Перевод] Ansible для начинающих В этой статье мы рассмотрим базовые и более сложные концепции Ansible с примерами. Статья предназначена для тех, кто только начинает работу с Ansible. Ansible — это инструмент infrastructure as a code для автоматизации задач по подготовке и конфигурированию инфраст...
Всё своё ношу с собой. Личная библиотека знаний Когда Интернет был маленьким, модемы медленными, а провайдеры жадными, мы сохраняли всё полезное у себя на винчестерах, героически пытаясь вместить всё нужное в скромный объём дискового пространства. В те времена это был единственный способ обеспечить себе быстрый и эффектив...
Разворачиваем MySQL: репликации и секционирование В этой статье сначала настроим репликацию данных на второй сервер, а затем рассмотрим различные варианты секционирования. Читать далее
[Перевод] No-code для бизнес-аналитиков No-code платформы меняют мир бизнес-аналитики, делая ее более эффективной и доступной. В этой статье рассмотрим преимущества, которые дает подход no-code; необходимые навыки для максимального использования этих преимуществ; а также инструменты, в которые стоит инвестировать....
Интеграция Primefaces в приложение на Spring Boot. Часть 2 — Готовим контекстное меню для главной страницы В этой статье описывается пример интеграции библиотеки компонентов пользовательского интерфейса Primefaces, построенной на основе фреймворка JavaServer Faces (JSF), в MVC приложение на Spring Boot.Первая часть Читать далее
Все смартфоны Realme в 2023 году: отличия и какие лучше Из какого-нибудь обзора смартфона можете узнать только об одном смартфоне-герое текста. Если обзорщик не продажный, то в статье будут упомянуты и пара конкурентов. А вот о том, чем отличаются смартфоны Realme между собой, и не лучше ли вместо нового бюджетного Realme вз...
[Перевод] Состояние WebAssembly в 2022-23 годах Автор статьи Жерар Галлан известен как автор книги “WebAssembly in Action”, выпущенной Manning в 2018 году. Существует перевод его книги на русский — “WebAssembly в действии” (Питер, 2022). Предыдущий обзор The State of WebAssembly – 2021 and 2022 опубликован автором в январ...
Спустя 28 лет: Windows 11 добавляет поддержку WinRAR. Почему именно сейчас и что будет дальше? На днях корпорация Microsoft заявила о том, что в скором времени в Windows 11 будет добавлена нативная поддержка архивов RAR, 7-Zip и ряда других популярных форматов. По словам представителей компании, это нововведение позволит пользователям ОС не использовать «сторонние ...
Работаем с PostgreSQL в Go. Опыт Авито Привет! Меня зовут Дима Вагин, я бэкенд-инженер в Авито. Сегодня расскажу, как мы работаем с БД PostgreSQL из Go. Покажу, какие библиотеки и пулеры соединений мы используем для доставки в код параметров подключения и как мы их настраиваем. А ещё расскажу про проблемы, к кото...
«Чтение — всему голова!» Переводим электронные книги формата .EPUB с помощью Python Разберёмся что “под капотом” формата EPUB и как перевести текст, но не переводить код в книге. Познакомимся с библиотекой Ebook Lib, а также узнаем для чего нам понадобиться библиотека Beautiful Soup. Читать далее
[recovery mode] РЖД — это мираж: как они отстают и теряют рынок Вы когда-нибудь видели мираж? Это явление, когда вместо реального объекта вы видите его искаженное отражение. Представьте что вы в пустыне, когда на горизонте мерещится оазис. Но на самом деле там нет ни воды, ни деревьев, ни жизни. Только песок и жара. Так вот, РЖД - это то...
[recovery mode] Jenkins pipelines с Groovy Добрый день, коллеги. Jenkins является одной из самых популярных систем CI/CD, которая применяется для построения пайплайнов сборки и доставки.Jenkins поддерживает построение пайплайнов на основе Groovy скриптов. Использование Groovy дает возможность очень гибко настраивать ...
ChatGPT и кодинг для НЕпрограммиста Дальше чем Hello World! на Python у меня так продвинуться и не получилось... Хочется творить, создавать что-то полезное, но все, более продвинутые коллеги вокруг утверждают, что раньше чем через год активных проб и ошибок ничего путного из-под моей клавиатуры не выйдет. Эта ...
Парсим сайты с защитой от ботов В этой статье мы разберемся, как работает типичная защита от роботов, рассмотрим подходы к автоматическому парсингу сайтов с такой защитой, и разработаем свое решение для её обхода. В конце статьи будет ссылка на гитхаб.Речь не идет о каком-либо виде "взлома" или о создании ...
Ускорение инференса модели BERT с помощью ONNX и ONNX Runtime на примере решения задачи классификации текста В статье на примере определения интента по фразе клиента, полученной в текстовом виде показаны подходы для решения поставленной задачи, выбор метрик и моделей.Сделан обзор на актуальные подходы для ускорения работы нейронных сетей, представлены библиотеки ONNX и ONNX Runtime...
[Перевод] Чистый код: как писать код, который легко читать Для начала мы обсудим, зачем вам вообще может понадобиться писать более читаемый, а не краткий код. Затем мы рассмотрим стратегии, как это делать в случае: Именования переменных, классов и функций Вспомогательных функций Комментариев к коду Перечислений/словарей/запечатанн...
Как подсветить временные отрезки на графиках Как отобразить временные интервалы вместе с графиком временного ряда, с разными цветами для разных групп? Иногда хочется увидеть как события влияют на метрику. Рассмотрим на примере изменений температуры и извержений российских вулканов. Читать далее
6 причин почему пользователи Windows не хотят переходить на macOS Некоторые из этих причин основаны на устаревших мифах, не выдерживающих критики в 2022 году и 2023 на носу. В этой статье мы рассмотрим распространенные мифы пользователей о macOS и причины, по которым им все же следует перекроить свою твердую позицию. Читать полную стат...
Динамические методы в .NET На сегодняшний день в.NET существует несколько видов кодогенерации: новомодные Source Generators, компилируемые Expression Trees, динамические сборки и динамические методы. Каждый способ имеет свои области применения, плюсы и минусы.В этой статье я хочу рассказать ...
Темная тема = шрифтовой ад / Решение В предыдущей статье я подробно разобрал проблемы связанные со шрифтами для темной темы и причины их актуальности. В данном материале смотрим на то, какие есть решения и что предлагает индустрия. + figma файл с адаптированным мной под темную тему стандартным текстовым набором...
Дополняем реальность в мобильных приложениях через ARCore Технологии дополненной реальности (Augmented Reality, AR) развиваются с первых экспериментов с шлемами в 1968 году и прогнозируются как один из быстрорастущих сегментов развития интерфейсов (особенно при появлении специализированных устройств, таких как Hololens, Xiaomi Smar...
[Перевод] Мир приключений по API-серверу Kubernetes. Часть 2. Наблюдение и кэширование В нашей предыдущей статье про приключения сервера Kubernetes API мы рассмотрели интерфейс хранилища и исследовали единственную реализацию в дереве: etcd3. Однако внимательное прочтение сносок в этом посте показало, что мы были не совсем честными, говоря, что etcd3 — единстве...
Делай нейминг как сеньор Это объект Pizza, там хранится инфа о латте, а заказали его в Restaurant или в Pizzeria? Неудобно? Максимально. Мы читаем код существенно больше, чем пишем. И хочется сразу понимать, что происходит, не играя в квесты «что имел в виду автор», «да как это работает» и «я снова ...
Как сделать анимацию с помощью MotionLayout Привет, Хабр! Меня зовут Павел Беловол, я Android-разработчик на проекте онлайн-кинотеатра KION в МТС Digital. Это новая часть сериала о внедрении фичи Autoplay в KION, в которой я расскажу про свой личный опыт работы с MotionLayout на примере продакшн-задачи в KION. Из этой...
Короче, Proxyman: краткий обзор самого яблочного сниффера Всем привет, я Света, тимлид команды тестирования мобильных приложений в Emerging Travel Group :) В своей предыдущей статье я рассказала про любимый и родной Charles, а в этой я решила немного выйти из зоны комфорта и рассказать про один из главных его конкурентов — Proxyman...
[Перевод] Ваши первые 30 дней в новой роли DevRel Ваши первые 30 дней в новой должности DevRel будут проходить в каждой компании по-разному, но есть несколько стандартных шагов, которые вы можете предпринять, чтобы заложить основу для успеха. Используйте это еженедельное руководство по освоению DevRel, чтобы сформировать фу...
Swift async/await. Чем он лучше GCD? Прошло уже больше года с момента выпуска async/await. Многие крупные и не очень проекты уже успели поднять минимальную версию до iOS 13, следовательно открылась возможность полноценно использовать новые языковые возможности по работе с многопоточным кодом. Но перед тем как н...
[Перевод] Оптимизируем изображения в HTML Вместе со Стивом Сьюэллом, CEO Builder.io, разбираемся, почему с точки зрения оптимизации производительности изображения лучше загружать через HTML, а не через CSS. Читать далее
Как делаются симуляторы В статье расскажем о том, чем профессиональные симуляторы отличаются от игр и как они устроены, зачем нужна иммерсивность, как используется распределенный рендер, а так же частные случаи из практики разработчиков. Читать далее
Информационная безопасность. Специализация Материал будет полезен новичкам, которые хотят выбрать специализацию в области ИБ. Статья расскажет о специальностях, которые так или иначе относятся сегодня к информационной безопасности. Основной акцент будет сделан на многообразии специализаций, которые формально могут не...
[Перевод] The Best Golang framework: no framework? Вольный перевод статьи на ресурсе threedots.tech от Robert Laszczak - главного инженера в SlashID, сооснователя Three Dots Labs и создателя популярной Golang-библиотеки Watermill.На протяжении некоторого времени я занимался руководством группы Go-разработчиков и одним из са...
Критерий Манна-Уитни — самый главный враг A/B-тестов Всем привет! Меня зовут Дима Лунин, я аналитик в компании Авито. В этой статье я расскажу про критерий Манна-Уитни и проблемы при его использовании. Если вы анализировали A/B-тест, где вас интересовал прирост или падение какой-то метрики, то наверняка использовали критерий М...
Создаем eval через байт-код JVM В интерпретируемых языках программирования (или в языках, которые включают возможность компиляции в runtime) есть возможность вычисления значения выражения, полученного из внешнего источника (например, для построения графика функции, введенной пользователем) с подстановкой а...
[Перевод] Агрегат WITH ROLLUP В этой статье мы обсудим, как устроен агрегат WITH ROLLUP. Использование предложения WITH ROLLUP позволяет выполнить несколько «уровней» агрегации в одном операторе. Например, предположим, что у нас есть некие данные о продажах (это те же данные, которые я исп...
[Перевод] Самая маленькая хеш-таблица в мире 1 декабря я в очередной раз поучаствовал в Advent of Code, написав программу на Rust. Если интересно — код можно найти на GitHub. Тут мне хотелось бы рассказать о моём решении задачи, предлагавшейся во 2 день мероприятия, так как это решение, с одной стороны, сверх всякой ме...
Как устроены интернет-платежи в Dodо Одно из направлений разработки в Dodo — интернет-платежи. Для компании это скорее утилити-функция, чем основной бизнес, но всё же нам приходится делать кучу всего, чтобы дать клиентам лучший UX и у нас накопился опыт, которым хочется поделиться.Меня зовут Дмитрий Кочнев, я р...
Record structs в C#: эффективные и безопасные типы данных C# 9 представил новую функцию, называемую Запись (record), которая обеспечивает неизменяемость и семантику сравнения на основе значений для классов. Записи упрощают создание типов данных и обеспечивают лучшую безопасность при работе с ними. Однако до C# 10 они были доступны ...
5G — разделяй и управляй. Сам. Часть 1 — вводная Всем привет! Это серия статей про то, чем 5G сети отличаются от мобильных сетей предыдущих поколений с точки зрения возможностей для пользователя управлять своими устройствами и трафиком. Про то, что такое control and user plane separation (CUPS), что такое user plane functi...
Шесть открытых библиотек от Mad Brains, которые упростят жизнь Flutter-разработчика Работая над разнообразными бизнес-задачами с помощью Flutter, мы часто сталкиваемся с отсутствием готовых решений. Поэтому команда Mad Brains создает собственные и делится ими с ИТ-сообществом. В этом материале мы рассказываем, как наши библиотеки помогают Flutter-разработчи...
Аномалии под нагрузкой в PostgreSQL: о чём стоит помнить и с чем надо бороться В этой статье мы разберём несколько аномальных случаев высокой нагрузки в СУБД PostgreSQL. Что это такое? Обычно PostgreSQL хорошо показывает себя под нагрузкой и оправдывает ожидания в отношении производительности — она остаётся высокой. Но при определённых профилях нагрузк...
Приручение WinAPI Позапрошлую заметку я начинал словами «вот уже 10 лет прошло…», а эту можно было бы начать «вот уже 20 лет прошло…». Хотя там речь шла лишь о выравнивании стека, а здесь – о целой организации взаимодействия программы с WinAPI. Помнится, здесь недавно в комментариях кто-то на...
Развертывание ASP.NET Core приложения в Kubernetes Данная статья является краткой инструкцией по развертыванию ASP.NET Core приложения в Kubernetes с написанием Dockerfile для формирования образа (Docker image) и минимального манифеста для создания деплоймента и объекта, предоставляющего доступ к нему, – в статье будет испол...
«Процедурное рисование» в ComfyUI Кто интересуется темой рисующих нейросетей знают, что сейчас самый продвинутый и часто используемый интерфейс для Stable Diffusion (далее SD) это Automatic1111. Он позволяет использовать, вероятно, все существующие возможности SD на сегодня. Множество расширений, регулярные ...
Почему так удобно использовать паттерн MVI в KMM Привет!Меня зовут Стефан Серхир. Я мобильный разработчик в KTS. Пишу под Android, iOS и КММ (Kotlin Multiplatform Mobile) и веду курсы в школе Metaclass.Недавно мы провели вебинар, в котором разобрали Model-View-Intent (MVI) в KMM на практике и посмотрели, как это выглядит в...
«Давайте перепишем всё с нуля». Почему такой подход интереснее программистам, а не бизнесу Привет! Меня зовут Дмитрий Панькин, я основатель компании, которая создает сложные ИТ-продукты для клиентов: сайты маркетплейсов, B2B-порталы, личные кабинеты, приложения, кастомные CRM- и ERP-системы.Очень частый запрос от наших заказчиков — переписать существующую в и...
Работаем с Git: трудовые будни Прошлая статья «Работаем с Git: первые шаги в GitHub» была посвящена установке, настройке Git и классическим операциям из набора для новичков GitHub. А теперь перейдём к практике и рассмотрим «горячие» сценарии, которые делают трудовые будни куда веселее. Или не очень. Чит...
Измеряем команду с JIRA и Grafana: sprint reports, грейдирование и не только Всем привет! Меня зовут Дмитрий Шкилёв, я тимлид команды Teachers Platform. Мы занимаемся личным кабинетом преподавателя и внутренними ресурсами, которые необходимы для обеспечения работы преподавателей. Сегодня хотелось бы поговорить про такую не очень популярную истор...
Мониторинг аномальной активности в операционной системе «Нейтрино» Активности в операционной системе могут быть самыми разнообразными. Это может быть и запуск нового процесса или потока, и обращение к файловой системе, и выделение памяти, и многое другое. Могут возникнуть ситуации, когда (вследствие действий злоумышленника и\или программной...
Объединение макросов в confluence Перед каждым аналитиком возникает выбор представления и формирования информации. Конечно, хочется выбрать более легкий способ, но не всегда этот способ соответствует ожиданиям читающего. В данной статье я поделюсь проблемами, которые были решены в рамках формирования и сопро...
Javarush, так ли полезно спустя 9.5 лет? Про Javarush, писали уже многие, в этой статье хотелось бы выразить свое мнение буквами и символами. Как вы уже наверняка знаете, Javarush - это весьма интересный проект, который предлагает обучение языку программирования Java, здесь вы изучите основы, решая простые (и не оч...
Фильтрация и пагинация в FastAPI Недавно столкнулся с задачей написать фильтрацию на FastAPI, пошёл гуглить и нашёл замечательную библиотеку fastapi-filter, которая сильно упрощает задачу. О ней в этой статье и пойдёт речь, а также заодно покажу простой способ пагинации без библиотек. Читать далее
eBPF в руках атакующего: обнаружение вредоносных модулей Привет, Хабр!Технология eBPF становится все более популярной и используются во многих приложениях для Linux. В нашей статье Анализ и обнаружение Dirty Pipe мы коснулись темы eBPF и как он может помочь при обнаружении эксплуатации уязвимостей ядра. Но инструмент с такими воз...
Разбираем bluetooth протокол RGB лампы В данной статье рассмотрим опыт реверс-инжиниринга bluetooth протокола, при помощи которого android приложение управляет цветами и эффектами работы закатной лампы. В результате будет написан небольшой генератор шфированных AES'ом сообщений на C#. Читать далее
Строим культуру офбординга в команде Часто, став руководителем, человек воодушевляется: сложные задачи и новые цели кажутся по плечу, хочется всех заонбордить, пробовать лучшие практики и создать классную атмосферу в своей команде. В реальности всё иначе, и большинство негативных моментов связано с темой увольн...
О чем говорят сертификаты дата-центров Далеко не все дата-центры проходят сертификацию Tier, поэтому в этой статье будут разобраны и другие стандарты и сертификаты, показывающие надежность ЦОД. Почему мед организациям нужно обращать внимание на HIPAA, какие требования PCI DSS должны соблюдать дата-центры, что п...
[Перевод] Помимо Правил Трех, Пяти и Ноля В предыдущей статье мы разобрали Правила Трех, Пяти и Ноля — что они из себя представляют, и когда и какое из них следует использовать (спойлер: львиная доля кода должна быть написана в соответствии с Правилом Ноля).Но очень часто у правил бывают исключения, и иногда эти иск...
О разнице между лямбдами и обычными функциями и о имплементации лямбд в некторых языках программирования Цель настоящей статьи - изучить лямбда функции: чем они отличаются от обычных функций и изучить, как они реализованы в С++, Python 3 и Java.На протяжении этой статьи я буду использовать godbolt.org, чтобы компилировать код и изучать машинный код или байт код. Я думаю, что пр...
[Перевод] Улучшение реактивности с помощью VueUse VueUse — это библиотека из более чем 200 служебных функций, которые можно использовать для взаимодействия с целым рядом API, включая интерфейсы для браузера, состояния, сети, анимации и времени. Эти функции позволяют разработчикам легко добавлять реактивные возможности в сво...
Использование скриптов на языке Python в Платформе nanoCAD 23 Рассмотрим действия, необходимые для включения поддержки скриптов на языке Python в Платформе nanoCAD. В статье описана процедура настройки расширения Python.AXScript.2, а также приведены примеры использования команд PY и ‑PY. Пример скрипта использу...
Модель обнаружения смс-спама: создаем и тестируем Привет Хабр! В прошлой статье мы векторизировали данные, теперь нам осталось написать модель и протестировать еёМы построим модель для обнаружения спам-сообщений с использованием алгоритма случайного леса. Случайный лес — это очень мощный алгоритм, который очень широко испол...
SQL миграции в Postgres. Часть 2 В первой части мы рассмотрели базовые операции, такие как добавление новых атрибутов, создание индексов и ограничений и т.д.Эта статья посвящена двум более сложным миграциям:- обновление большой таблицы- разделение таблицы на двеРассмотрим подходы, которые позволяют провести...
Сравниваем инструменты мониторинга IT-инфраструктуры Zabbix, Icinga, Prometheus Инструменты мониторинга IT-инфраструктуры позволяют полностью отслеживать ее состояние: собирать данные, анализировать и визуализировать их, оповещать о сбоях и т.д. В этой статье рассмотрим платформы Zabbix, Icinga и Prometheus. Разберем их UI, архитектуру, принципы сбора м...
[Перевод] Scrum не нужен. Нужно лишь правильно использовать Kanban Почему вы выбрали фреймворк Scrum, а не метод управления проектами Kanban? Не можете ответить? Значит — лично вы Scrum и не выбирали. Кто-то сделал это за вас.Даже в тех редких случаях, когда люди способны ответить на вышеприведённый вопрос, их мотивы раскрывают глубокие заб...
Интеграция с 1С: то, о чем не рассказывают в книгах Привет всем гуру всемогущих языков программирования! Меня зовут Иван, я возглавляю backend-направление в компании SimbirSoft. Для своей первой статьи на Хабр решил поднять вопрос, как правильно сделать интеграцию с любой платформой 1С, используя Java, С# и другие языки прогр...
Восемь неочевидных вещей в шаблонах С++ Привет, я backend-разработчик IT-компании SimbirSoft Леонид. В этой статье расскажу про 8 нюансов, которые я обнаружил при изучении шаблонов С++. Честно признаюсь, что наткнувшись на некоторые из них, я был удивлен: «Хм, SFINAE есть, а слова нет?» или «А что, есть разница ме...
Polars: библиотека для работы с данными, написанная на RUST Настоящий хреновый программист всегда находится на гребне волны новых технологий. Зачем ему это? Чтобы при случае можно было повыделоваться багажом своих знаний, и заработать немного очков уважения в окружении своих менее осведомлённых коллег. Stay toxic, brothers. Я с вами....
У вас нет причин использовать alpine для python-проектов По мотивам моего доклада на PyCon "Контейнеризация Python без боли". На своей практике я постоянно сталкиваюсь со спорами какой базовый образ лучше использовать для проектов: alpine или debian. Аргументы есть и у той, и у другой стороны, но мне это настолько надоело, что я р...
7 ошибок глобального рефакторинга и как их избежать «Все снести и переписать нормально» — нередко именно такое желание возникает у разработчиков, когда дело касается legacy кода. Но стоит помнить, что далеко не всегда это верное решение. Очень часто попытки переписать код заново заканчиваются провалом — мне довелось видеть не...
[Перевод] Графы в Python: введение и знакомство с лучшими библиотеками Граф – это математическая структура данных, представляющая собой множество связанных элементов. Поскольку графы, по своей сути, являются очень гибкими и позволяют сохранять информацию в знакомой и удобной для восприятия форме, они всегда активно использовались в компьютерно...
Возможно вам не нужен AutoMapper Вы знали, что AutoMapper и MediatR создал один и тот же человек?Джимми Богард создал две крайне обсуждаемые и спорные темы в .NET разработке. Если с MediatR уже разобрались, то c AutoMapper также хотелось бы расставить все точки над "ё".В этой статье хочу поговорить об истор...
Создаём систему радиоуправления для самодельного самолёта Картинка Viarprodesign, Freepik У каждого человека есть определённая тема, к которой он испытывает некое иррациональное влечение. У автора этой статьи такой темой является авиамоделирование: на тот момент, когда ещё существовали авиамодельные кружки, автор пришёл в него зап...
[Перевод] Как собирать данные в DevSecOps Для успеха компании уже недостаточно, чтобы выпущенный продукт был «достаточно хорошим». Сегодня бизнесы должны предоставлять высококачественные цифровые сервисы, которые обладают не только высокой производительностью и степенью доступности, но и являются конфиденциальными ...
[Перевод] Комбинируем Prometheus, ChatGPT и Slack — получается Robusta Что получится, если объединить Prometheus, работающий на Kubernetes, умный движок, взаимодействующий с ChatGPT, и мессенджер типа Slack? Вы получите платформу с открытым исходным кодом для поиска и устранения ошибок в Kubernetes под названием Robusta.В этом посте мы рассмотр...
Практические советы по устранению утечек памяти в Go В этой статье я расскажу, что делать при обнаружении утечки в Go-приложении: чем могут быть вызваны утечки и с чего начать поиск источника проблемы.Причины утечекДля начала перечислим возможные причины утечки памяти:1) Утечка горутин При утечки горутины утекают также перемен...
Разворачиваем Kubernetes-платформу Deckhouse в Yandex Cloud Платформу Deckhouse можно устанавливать на виртуальные машины облачных провайдеров, на bare metal-серверы, в закрытый контур и не только. В статье рассмотрим вариант установки Deckhouse в Yandex Cloud. А чтобы убедиться, что все внутренние ресурсы и компоненты работают ...
Визуализация весов в машинном обучении на примере алгоритма Random Forest и Decision Tree Привет, Хабр!Меня зовут Александр Серов, я Data Scientist и являюсь участником профессионального сообщества NTA. Сегодня загляну «под капот» алгоритмов, использующих в своей основе деревья решений. Один из самых мощных алгоритмов контролируемого машинного обучения...
Адаптивная антенна на беспилотном летательном аппарате или как одновременно увеличить дальность связи и подавлять помехи Можно ли одновременно увеличить дальность связи с беспилотным летательным аппаратом (БЛА) и подавлять помехи без увеличения габаритов, массы и энергопотребления бортового модема? В настоящей статье мы рассмотрим как это можно сделать с помощью адаптивной антенной системы. Ст...
[Перевод] Понять TypeScript c помощью теории множеств Я пишу на TS уже довольно давно. Но некоторые вопросы все еще сбивают меня с толку: что такое never, и почему он так странно себя ведет? Чем отличаются any и unknown? Почему const x: {} = true — не ошибка? Оказывается, если перевести TS на язык теории множеств, всё встанет н...
Почему не стоит использовать черное SEO Пётр Гришечкин, SEO-специалист в команде проекта “Своё Родное” от Россельхозбанка. Продолжим серию статей про SEO и поговорим о причинах разделения на SEO-специалистов и на СЕОшников. Я говорю о темной стороне SEO, или, как ее обычно называют, о черном SEO.В этой статье...
[Перевод] Проверенные решения пяти проблем автоматизации тестирования В этой статье рассмотрим пять типичных проблем, которые часто мешают командам автоматизировать процесс тестирования. Эти проблемы можно решить с помощью имитирования API и сервисов. Читать далее
Как я оптимизировал стандартную русскую раскладку Почему буквы на клавиатуре расположены в определённом порядке и какой порядок букв позволяет печатать быстрее всего Читать далее
Дизайн сетей ЦОД. Часть 3. Управление трафиком В этой статье мы продолжим тему дизайна сетей ЦОД. Мы уже поговорили про надежность, рассмотрели организацию кабельной инфраструктуры в ЦОД и теперь самое время перейти к рассмотрению вопросов управления и оптимизации трафика. Немаловажную роль в оптимизации трафика на логич...
Частотный vs байесовский подходы: оцениваем True Positive Rate при неполной разметке данных Привет, Хабр! Меня зовут Алан Савушкин (@naive_bayes), я — дата-сайентист в команде Data Science & Big Data «Лаборатории Касперского», и мы отвечаем в том числе за фильтрацию нерелевантных алертов при телеметрии киберугроз в проекте Kaspersky Managed Detection and Respon...
Большое сравнение нейросетей Привет, меня зовут Юля, 85GB и я веду свой канал по нейронкамВ этой статье я рассмотрю по различным параметрам графические нейронки: DALL-E 2, Midjourney, Stable Diffusion, Кандинский и Шедеврум. Постараюсь разложить всё максимально чётко и ёмко, дать оценку по каждому блоку...
[Перевод] Отправка уведомлений из Symfony API с помощью Mercure В статье я создал атрибут, чтобы помечать операции API для выполнения в фоновом режиме. Когда аннотированная операция вызывалась как фоновая, ее выполнение задерживалось с помощью symfony messenger, клиент получал в ответ код состояния HTTP 202 Accepted. В этой статье я внес...
[Перевод] Разбираем Теорию Игр с python-библиотеками nashpy и axelrod Пожалуй, самый простой и понятный разбор основ Теории игр, из всех, которые я встречал, с демонстрацией результатов нескольких наиболее популярных игр на питоновских библиотеках nashpy и axelrod.Это перевод сразу двух статей Mythili Krishnan , аналитика с medium.comДочитавши...
Теория вероятностей в машинном обучении. Часть 2: модель классификации В предыдущей части мы рассматривали вероятностную постановку задачи машинного обучения, статистические модели, модель регрессии как частный случай и ее обучение методом максимизации правдоподобия.В данной части рассмотрим метод максимизации правдоподобия в классификации: в ч...
Цвет сезона – слива. Что мы сделали с GreenPlum в 2022-м и что планируем в 2023-м Привет, Хабр! Меня зовут Марк Лебедев, работаю архитектором в GlowByte. В июне 2022 года на митапе DataPeople мы с командой рассказывали о наших планах в части GreenPlum (запись выступления). Если коротко, тогда мы сфокусировались на развитии open-source и собирались выложит...
Дайджест событий для эйчаров и рекрутеров в IT в феврале 2023 Новый месяц — новые события для эйчаров и рекрутеров в IT. В феврале организаторы подготовили несколько программ, среди которых как курсы, так и интенсивы, тренинги и конференции. Например, если хочется нетворкинга, то можно пойти на встречу для эйчаров, а если научиться эфф...
В редакторе таблиц «Р7-Офис» предусмотрена библиотека функций Как выяснилось, такая функция у решения действительно есть. Для того, чтобы попасть в табличном редакторе в библиотеку функций, нужно в панели инструментов войти во вкладку «Формула» и выбрать пункт «Функция». После этого откроется новое окно с библиотекой функций. В окошке ...
Какую видеокарту лучше брать в 2023 году? В этой статья будет подборка лучших видеокарт по моему мнению, с учётом разных ценовых диапазонов и советы, какую же видеокарту выбрать на сегодняшний день. Читать далее
[Перевод] Управление производительностью с Python 3.12 В Python 3.12 появилась поддержка perf profiling. В этой статье рассмотрим, как это помогает сократить время выполнения Python-скрипта с 36 секунд до 0,8. Мы рассмотрим Linux-инструмент perf, а также графики Flame Graph (добавить пояснение: способ визуализации процессорного ...
Kotlin. Ключевые слова in и out. А так же что такое ковариантность и контрвариантность Здравствуйте!В этой статье речь пойдет про вариантность параметризованных типов в Котлин.Цель данной статьи дать первичное понимание работы ковариантности и контрвариантности в Котлин. Здесь будет рассмотрено использование ключевых слов in и out в па...
[Перевод] Istio, eBPF и RSocket Broker: подробный обзор service mesh Все мы знаем, как трудно управлять современными приложениями, которые состоят из микросервисов со сложным взаимодействием между ними. Причём управлять одними только микросервисами будет недостаточно, нужен комплексный подход.В этой статье мы под разными углами рассмотрим упр...
Полезные методы работы с данными в Pandas. Часть 1 Сегодня анализ данных стал неотъемлемой частью многих сфер деятельности, от науки до бизнеса. Python является одним из самых популярных инструментов для работы с данными, благодаря своей гибкости и обширному спектру доступных библиотек. Одной из таких библиотек является Pand...
6 простых принципов написания приложения на Vue, которое легко поддерживать (часть 2) Привет! Я Наталья Калачева, Frontend-разработчик в AGIMA. Эта статья посвящена правилам, которые помогают упростить поддержку и расширение приложений на Vue. Тут я рассказываю, как организовать хранение компонентов, стилей и плагинов, когда использовать стор и полезные функц...
Как выбрать библиотеку стайлинга и заменить несколько дизайн-систем на одну. Часть 1 Привет! Меня зовут Вадим Казаченко, я лид фронта дизайн-системы ВТБ. Год назад устроился в банк и получил командную задачу — построить единую библиотеку компонентов, настолько универсальную, чтобы ее можно было использовать в любом продукте дизайн-системы банка, и при этом о...
Многопоточность и Thread Pool в C++ Привет, Хабр! Я неожиданно созрел для написания первой статьи тут. За время работы в сфере IT у меня появилась своя собственная библиотека на языке C++, которая медленно, но верно обрастает различными полезными модулями. Не все включаемые в нее модули написаны мною с нуля, н...
Мониторинг межсервисного взаимодействия Kubernetes с помощью протокола NetFlow Часто возникает ситуация, когда в кластере работает много взаимодействующих между собой сервисов, но из-за спонтанности разработки эти взаимодействия могут быть нигде не документированы. То есть ни команды разработки, ни команды эксплуатации доподлинно не знают, какие прилож...
Автоматическая документация API Django Rest Framework с помощью DRF Spectacular Целью этой статьи является демонстрация возможностей drf-spectacular для документирования API и основного набора техник, которые покроют большую часть сценариев использования. Мы настроим генерацию документации и рассмотрим все основные способы гибкой настройки отображения. ...
Основы мониторинга (обзор Prometheus и Grafana) Мониторинг сегодня – фактически обязательная «часть программы» для компаний любых размеров. В данной статье мы попробуем разобраться в многообразии программного обеспечения для мониторинга и рассмотрим подробнее одно из популярных решений – систему на основе Prometheus...
Быстрый поиск изоморфных подграфов Привет, Хабр!В этой статье представлен алгоритм быстрого поиска подграфов, изоморфных заданному, рассматриваются только направленные графы.Сначала будет приведён алгоритм поиска паттернов рекуррентным перебором, потом его быстрая модификация.Примеры кода написаны на C++...
Создание и тестирование процессора аннотаций и кодогенератора на KSP В первой части статьи мы рассмотрели подход к обработке аннотаций (и возможной генерации дополнительных исходных текстов), который используется в мире Java и долгое время применялся также для Kotlin (при этом Kotlin-код предварительно преобразовывался в Java-классы, что зани...
История одного соседа Приветствую всяк смотрящий на моем первом посте на хабре. Очень долго я шел к тому чтоб решиться написать свой неинтересный рассказ и разместить его тут. И да. это очередной пост о том как кто-то написал скучного бота. Но я получил опыт, который возможно пригодится мне когда...
Создаем свой собственный язык программирования с использованием LLVM. Часть 2: Семантический анализ В предыдущей статье мы закончили на том, что мы написали лексический и синтаксический анализаторы для нашего учебного языка. В данной статье мы продолжим начатое и рассмотрим следующую стадию анализа исходного кода программы — семантический анализ. Читать далее
[Перевод] Spring для GraphQL GraphQL — это язык запросов с открытым исходным кодом, созданный Facebook в качестве альтернативы распространенной архитектуре REST. Он позволяет пользователям запрашивать конкретные данные и таким образом избежать классической проблемы избыточности данных в ответах, связанн...
ТОП бесплатных OSINT-инструментов по версии компании T.Hunter в 2023-м году Год назад я уже поднимал тему лучших бесплатных инструментов для OSINT, которые используются в нашем департаменте расследований. Прошлый год был тяжелый, но интересный. Некоторые разработки перестали работать в России. Многие, напротив, были созданы в нашей стране. В этой ст...
И конфеты за меня есть будете? AutoML в помощь Citizen Data Scientist’у В прошлых статьях мы много рассказывали о том, как Data Science помогает металлургу, что такое Self-Service Analytics и как простой технолог может командовать моделями машинного обучения. В этом посте хочется раскрыть больше технических деталей по последнему пункту.Хардкорны...
Рэй Курцвейл и его предсказания: что сбылось и чему только предстоит стать реальностью Мы уже рассказывали на Хабре про биографию Рэя Курцвейла, американского изобретателя и футуриста. В этой статье рассмотрим его смелые и часто точные прогнозы о технологиях и их влиянии на общество. Они были основаны на глубоком понимании тенденций в информационных технология...
[Перевод] База данных в контейнере Docker — как ее запустить, и зачем она нужна В этом посте я хотел бы показать, как легко можно использовать базу данных (здесь для примера взята PostgreSQL) в контейнере Docker. В данном посте рассмотрены достоинства и недостатки такого решения. В конце статьи будет рассказано, что такое том Docker (Docker Volume). Ч...
Эффектно и эффективно. 6 инструментов для анимации в React Native Всем привет! Меня зовут Евгений Прокопьев, я мобильный разработчик в СберМаркете. Более пяти лет я работаю с React Native и моя любовь — это красивые анимации. В этой статье я хочу рассказать, с помощью каких инструментов можно добиваться качественных анимаций на React ...
Механическая клавиатура AKKO 5075S + моддинг Рассмотрим замечательную механическую клавиатуру Akko 5075S и внутренний мир аналогичных девайсов, выполним модернизацию клавиатуры, смажем переключатели, поставим керамические «колпачки» и разберёмся почему некоторые клавиатуры «токают». В конце обзора добавил саундтест.Под...
[Перевод] Неявные параметры. Когда их следует использовать? Часть 1 Имплиситы (implicits) – одна из наиболее вызывающих опасения фич языка программирования Scala, и на то есть веские причины!Во-первых, понятие имплиcитов довольно специфично для Scala. Ни один другой основной язык программирования не имеет подобной концепции. Это означает, чт...
Обучение C++, UTF-8 с первой программы Мне понадобилось провести несколько вводных уроков по языку программирования C++. В интернете есть много разнообразных учебных пособий для начинающих. Но почти во всех из них символьные и строковые литералы в примерах и упражнениях даются на английском языке, начиная со знам...
Генерируем пифагоровы тройки на RxJS В пятницу можно смешивать всё и со всем!Мы смешаем пифагоровы тройки и библиотеку RxJS.Пифагоровой тройкой называют три натуральных числа, из которых можно составить прямоугольный треугольник.Такие числа известны людям с очень древних времён. Например, их использовали ещё в ...
Миграция приложения из OpenShift в «ванильный» Kubernetes OpenShift, Rancher и другие зарубежные Kubernetes-платформы официально больше не поддерживаются в России. Многим компаниям приходится искать альтернативные решения для управления контейнеризированными приложениями — например, «ванильный» Kubernetes или российские платформы.Х...
Реактивность в Vue Уверен, вы когда-нибудь задавались вопросом «Что за зверь эта реактивность и как она работает?». Думаю, что настало время закрыть этот вопрос и рассмотреть работу реактивности на примере Vue.Дизайн превью: Марина Четвертакова Читать далее
Старый лазерный «друг» лучше новых двух или сокращение срока службы новых картриджей и принтеров В этой статье поделюсь своими мыслями, почему «вечные» принтеры не делают. А так же опытом использования двух моделей принтеров, которые верой и правдой служат мне долгие годы. Читать дальше →
Машинное обучение с помощью Streamlit с использованием набора данных от Титаника В этой статье я рассказываю об использовании машинного обучения в Streamlit и о том, как оно может помочь бизнес-пользователям лучше понять, как работает наука о данных. Мы собираемся посмотреть, сможем ли мы использовать модель на практике, чтобы пользователи могли протести...
Кэш в JavaScript: не все Map'ы одинаково полезны При разработке приложений регулярно возникает задача кэширования каких-то данных, которые из хранилища должны читаться много чаще, чем писаться. Давайте рассмотрим на примере простого теста, когда и на каком механизме эффективнее организовать его для JavaScript-приложения - ...
[Перевод] Разнообразие enum в Kotlin Kotlin, являясь мощным современным языком программирования, дает возможность разработчикам создавать эффективный и читаемый код. Одна из таких фич это перечисления - Enum classes - тип данных, который позволяет определить множество именованных констант. В этой статье рассмот...
[Перевод] Flatbuffers в Unity — ускорили сериализацию в 40 раз Недавно мы отказались от загрузки и парсинга JSON в нашем Unity-клиенте в пользу двоичного формата, на основе Flatbuffers. В этой статье вы узнаете: - Почему мы это сделали? - Что такое Flatbuffers? - Как вам сделать это самим? - Какую выгоду вы можете из этого извлечь...
Обесценивание: манипулятивная угнетающая поддержка В какой-то степени, данная статья является дополнением идей, описанных в цикле "Что в голове у программиста?", а также раскрывает инструмент "выбивания почвы из-под ног", который использовали сотрудник ТяньШи из статьи про секты . Но сегодня хочется поговорить про поддержку ...
Распознавание респираторных заболеваний по звуку дыхания Всем привет! Сегодня рассмотрим задачу диагностирования респираторных заболеваний, то есть заболеваний дыхательной системы, но решать её будем не ушами, а алгоритмами. И решать её будем два раза, сначала методами классического машинного обучения, а затем методами глубокого о...
Сравнение SQL- и NoSQL-баз данных SQL и NoSQL — две популярные модели баз данных, которые используют для решения различных задач. Чтобы понять, какая из них подойдёт в вашем случае, необходимо разобраться в их различиях, преимуществах и недостатках. В этой статье я рассмотрю основные характеристики SQL- и ...
Sitonica SR403W: “Москвич” в мире серверов Привет, Хабр! Сегодня мы делимся своими тестами сервера от компании “Ситоника”. Этот 4U-сервер, который может выступать как хранилище данных, так и одним из узлов виртуализации, поставляет российская компания. Практика показала, что его хватает для решения большинства типовы...
[Перевод] Linux в космосе Почему астронавты используют Linux? Потому что в космосе нельзя открывать Windows. Но если без шуток, то вообще-то компьютеров, работающих на Linux, в космосе не так уж и много. Однако всё может измениться.В этой статье мы расскажем о том, как Linux помогает исследовать косм...
Исследование нагрузки на ELK stack и тюнинг Logstash Всем привет! Меня зовут Александр, и в этой статье я расскажу про то, как столкнувшись с многократно увеличившейся нагрузкой на ELK stack сначала было диагностировано узкое место, а после произведён его тюнинг. Хоть и в заголовке статьи уже есть спойлер что произведен только...
[Перевод] Алгоритмы диапазонов C++20 — 7 немодифицирующих операций Библиотека Ranges для C++20 предлагает альтернативы для большинства алгоритмов. На этот раз я хочу показать вам десять немодифицирующих операций. Мы сравним их со «старой» стандартной версией и увидим их преимущества и ограничения. Подробности — к старту нашего курса по раз...
В очередь, ...! Как управлять состоянием системы через события Существует множество разных подходов к построению архитектуры серверных приложений. В данной статье рассмотрим Event-driven архитектуру (она же событийно-ориентированная). Рассмотрим основные принципы, как перейти от связей Компонент А <-> Компонент В, к связям через с...
Почему повышение точности прогноза не гарантирует повышение прибыли. Часть 2 В 1 части статьи Почему повышение точности прогноза не гарантирует повышение прибыли мы начали говорить о переоценке точности прогноза и его прямом влиянии на конечную прибыль компании. Если вы еще не успели ознакомиться с предыдущим материалом, то советуем это сделать прямо...
Проецирование вершин графа в векторное пространство. Часть 2. Марковская цепь и Word2Vec И снова здравствуйте! Меня зовут Илья Котов, я Data Scientist в Сбере, участник профессионального сообщества NTA. Эта статья — вторая часть небольшого цикла, посвящённого алгоритмам вложений вершин графа в векторное пространство. Сегодня рассмотрим главную идею алгоритмов, о...
Fitter — сшиватель API/Website's, часть личного проекта которую хотел опенсорснуть Добрый вечер всем!Возможно выбрал не лучшее время для охвата аудитории, но тем не менее главное чтоб продукт был хороший, а не статья о нем. Последние несколько недель я пишу приложение в рамках которого надо собирать огромное количество информации из сети(запросы к API/пар...
4 острые бритвы познания — как использовать в IT и в жизни Про бритву Оккама хоть раз слышал каждый: во многих статьях и книгах встречается призыв не множить сущности без необходимости. Но не все знают, что в науке есть и другие «бритвы», которые помогают избавиться от лишнего. Термин «бритва» используется для обозначения метода, ко...
Третья жизнь пет-проекта по распознаванию рукописных цифр В этом блогпосте я поделюсь историей о том, как я обновлял свой старенький пет-проект по распознаванию цифр, как делал разметку для него, и почему модель предсказывает 12 классов, хотя цифр всего 10.Вот ссылка на само приложение, если хочется интерактива сразу. Чит...
Что вам нужно сделать при ДТП Пользователь iXBT.com рассказал, что лучше всего делать участникам ДТП, если они не уехали с места аварии и находятся в трезвом состоянии. Рассмотрел он две ситуации: когда человек считает, что он не виновен, и когда ДТП - это его вина.
Хранилище данных пугает бизнес: проблемы DWH для бизнеса За созданием хранилища данных и особенно его поддержкой кроются жуткие монстры, пугающие в первую очередь бизнес, а уже потом IT-отдел.В этой статье рассмотрим наиболее частые проблемы, касающиеся хранилищ данных, с которыми сталкивается менеджмент компании, а также способы ...
UI Art. Как попадать в стиль при отрисовке декоративных элементов игрового интерфейса Всем привет! Я Михаил Кравченко, дизайнер игровых интерфейсов. В этой статье рассмотрим процесс попадания в референс на примере декоративного элемента из Hearthstone и приёмы, которые упрощают жизнь UI художника. Ниже лежит картинка с результатом, который у меня п...
[Перевод] Овладейте всем потенциалом анимирования с Vue Vue позволяет разработчикам писать более гибкий и переиспользуемый код за счёт наличия дополнительных возможностей для организации компонентов. И одной из областей применения этих возможностей являются анимации. В текущей статье мы разберём использование Composition API для...
Первая статья на Хабр: полный чек-лист Первая статья на Хабре, будь она от компании или пользователя, — фактически визитная карточка, которая либо даст хороший старт и мотивирует писать больше и интереснее, либо отобьёт руки. Опыт показывает, что авторы в своих первых публикациях совершают одни и те же ошибки, ко...
Автоматизация управления с помощью Ansible В предыдущей статье мы достаточно подробно рассмотрели вопросы связанные с автоматизацией управлением и настройкой ПО в средних и крупных сетях. Рассмотрели Vagrant и основные методы работы с виртуальной инфраструктурой. В этой статье мы подробно поговорим об использовании т...
Большой обзор Service Mesh: часть первая Service Mesh входит в перечень стандартных для бэкенда технологий, а недавно и вовсе был на вершине хайпа. Вы решаете идти в ногу со временем и добавить в свой кластер Kubernetes первый Service Mesh. От друзей слышите, что Istio требует много памяти, а прокси в Linkerd очень...
Бекенд на AWS Lambda за 60 минут В этой статьей пойдет речь о особенностях разработки бекенда под AWS лямбды, о canary деплойменте, версионирование, логгах, трейсинге, мониторинге, маршрутизации и расширениях.Привет, я, Петер Ибрагимов, и в Whoosh я занимаюсь бекенд разработкой на Python. В этой статье расс...
Унификация Немного разглагольствований о "почему в мире так мало унифицированного", буду утрировать - для простоты.Начну с понятного всем автомобилистам - запчасти. К примеру тормозные колодки - их тысячи, разных, они могут отличаться на 0.5 мм по размеру - и уже на другую машину не по...
Motorola представила Moto G Play (2023): когда старое лучше нового Motorola Moto G Play (2023) практически ничем не отличается от предшественника, но стал менее производительным
Солитоны. Модель Френкеля-Конторовой В физике часто оперируют волновыми функциями с ярко выраженными свойствами частиц. Давно стали обыденными понятия частиц с положительным и отрицательным зарядами и с соответствующим взаимодействием. Широко используют Лоренц-преобразования, когда при увеличении скорости волна...
Влияние слонов на сходимость проектов В статье я хочу рассмотреть влияние разных факторов на сходимость проектов. Под сходимостью в данном случае я понимаю способность команды сдать проект в срок, уложившись в бюджет. По понятным причинам тема эта достаточно популярная и часто обсуждаемая. Как правило те обсужде...
Artix Linux. Установка с полным/частичным шифрованием Artix Linux - это systemd-free дистрибутив линукс на основе Arch Linux. Он использует свои репозитории, но присутствует частичная совместимость с репозиториями Arch и AUR. Artix Linux предоставляет выбор систем инициализации (OpenRC, Runitб, s6, dinit). В этом гайде будет ра...
Год без Miro: обзор российского рынка онлайн-досок Уже год прошёл с того момента, как популярный сервис Miro закрыл офис в России и прекратил новые продажи российским пользователям. Сервис полностью не ушёл из России, вы можете зайти на их сайт и даже в прежнем режиме поработать на доске, но возникают сложности, если вам нуж...
Решительность в IT: решает тот, кто делает Вам приходилось ходить на встречи, на которых 10 или более человек никак не могли договориться? Такое может быть и с архитектурными, и дизайн-решениями, и процессами. Нам в Dodo приходилось. Это может быть мучительно больно и выматывающе, поэтому хочу поднять тему реши...
ReactOS и «новогодняя банка» Обычно, под новый год есть традиция: вспоминать, чем запомнился уходящий год. И в этой статье я хочу вспомнить, чем запомнился данный год для проекта ReactOS. Читать далее
[Перевод] Как использовать PostgreSQL с Django в Ubuntu 22.04 Django — гибкий фреймворк для быстрого создания приложений на Python. По умолчанию в качестве базы данных он использует SQLite. Это хорошо работает при небольших нагрузках, однако традиционная система управления базами данных может повысить производительность в рабочей среде...
Гугл таблица как бд для телеграм бота В этом посте рассмотрим в деталях, как непосредственно использовать гугл таблицы в качестве базы данных. Попробуем написать бота, который забирает вопросы квиза с вариантами ответов из гугл таблицы и записывает ответы назад. Читать далее
Почему IT такое, какое оно есть Навеяно мыслями после прочтение замечательной статьи "Гори это ИТ синим пламенем" - https://habr.com/ru/post/707230/ Вспомните себя в школьные или студенческие годы, когда всё свободное время вы посвящали своему любимому делу - программированию. Садясь утром за компьютер, то...
Как программный код привел к потерям большого количества денег и даже трагедиям В настоящее время программирование играет огромную роль в нашей жизни и экономике. Все больше компаний, организаций и государств испытывают большую потребность в создании различных программных продуктов. Но не все проходят гладко и безопасно.Зачастую сложности возникают из-з...
Как создать эвристический алгоритм онлайн-мастеринга и получить предупреждение от RIAA Добрый день, меня зовут Сергей. В своей статье я бы хотел осветить тему аудио мастеринга, а именно: автоматизированного онлайн-мастеринга музыки.Я расскажу о своём пути от продюсера психоделического транса до мейнтейнера самой популярной open source библиотеки автоматизирова...
[Перевод] Немного о Fastify Почти 15 лет назад Райан Томайко (Ryan Tomayko) написал книгу "The Thing About Git" (Про Git). Это было время, когда SVN (Subversion - система управления версиями) все еще активно использовался. Мало кто понимал, почему Git такой особенный, и тогда я тоже не принадлежал к их...
[Перевод] Введение в GraphQL для .NET-разработчиков: мутация GraphQL представляет из себя язык запросов и манипулирования данными для API, а также среду для выполнения этих запросов с существующими данными. Он позволяет различным клиентам использовать API и запрашивать только те данные, которые им нужны, а также он помогает решить про...
Куда приложить машинное обучение? Всем привет! В прошлой статье я рассказывал про жизненный цикл машинного обучения, когда его внедрение происходит стихийно. Теперь поговорим про более осознанный подход, к которому я пришел через хаотичное внедрение и боль. Ниже будет инструкция по поиску проекта для ML...
"Лучше не рисковать": почему опасно использовать смартфон во время зарядки Часто бывают обстоятельства, когда аккумулятор гаджета "садится" и требует зарядки. В интервью агентству "Прайм" Денис Кусков, генеральный директор агентства Telecom Daily, рассказал, можно ли в такой ситуации делать телефонный звонок, или вообще пользоваться устройством
Введение в GitHub Actions. Делаем пайплайн для деплоя Spring Boot проекта на VPS с помощью Docker В этой статье я расскажу как построить простой пайплайн для деплоя Spring Boot проекта на сервере используя GitHub Actions и Docker. Читать далее
Как успешно прижиться в отделе автотестирования ПО медицинских устройств В данной статье хочу поделиться опытом вхождения в работу в медицинский проект, не имея никакого опыта ни работы на медицинских проектах и так же без опыта работы в автотестировании.Вот представьте себе – работаешь ты себе спокойненько обычным ручным тестировщиком стандартны...
Изучаем Python за 6 месяцев. Подробный план обучения Простой и красивый синтаксис, множество библиотек под самые разные задачи и большое комьюнити делают Python одним из самых популярных языков программирования на сегодняшний день, который активно используется в data science и машинном обучении, веб-разработке и прочих областя...
Диод в качестве дросселя для управляющего сигнала спутникового конвертера(LNB) Статья посвящена деталям разработки узлов обеспечения функционирования и управления приёмными устройствами спутниковой связи. Не смотря на узкоспециализированное применение данных схемотехнических решений, представленных в данной статье – они так же могут найти применен...
[Перевод] Как настроить OpenVPN на Debian 11. Часть 1 Когда вы настраиваете удалённый доступ, важно не только предоставить всем сотрудникам подключение к нужным сервисам, но и позаботиться о безопасности. В этом помогает VPN — виртуальная частная сеть. VPN-сервер действует как единая точка входа: он аутентифицирует пользователе...
Крепкое печатное слово: об онлайн-библиотеках и авторском праве. Дайджест ко Дню книг 23 апреля — Всемирный день книг и авторского права. А значит, и ещё одна памятная дата, важная для Хабра, потому что он сам — и большая книга, и книгохранилище, и собрание знаний и опыта сотен тысяч людей. Поэтому очередной кураторский дайджест я решила посвятить Интерн...
Как создать стартап в соло и не сойти с ума Пожалуй, каждый разработчик мечтает создать свой стартап, который превратится в Гугл, Амазон или в другого гиганта ИТ-индустрии. Однако это не всем дано, далеко не всем. В этой статье попробуем разобраться почему и как происходит процесс создания продукта если вы делаете его...
Курсы для ИТ-специалистов от компаний: как они устроены и кому будут полезны Есть много способов получить ИТ-специальность и найти работу: от поступления в вуз до самообучения. Один из таких способов — корпоративные курсы. Меня зовут Юлия Купряшова, и я уже четыре года курирую курсы Тинькофф Финтеха. Расскажу, как устроены такие курсы, чем они о...
Тактики для тестирования на проникновение При обучении тестированию на проникновения возникает ситуация, когда необходимо от разрозненных статей и материалов переходить к полноценной процедуре исследования инфраструктуры и поиска уязвимостей. В этой статье попробуем собрать данные, которые позволят сделать набор пре...
Эксперт по продуктивности делает с ChatGPT всякое. Ошибки и возможности использования нейросети Спустя пару недель после тестирования хайпового бота ChatGPT я встроил его почти во все свои регулярные процессы : поиск литературы, изучение языка, развитие навыков, самообразование, и т. д. Некоторые из них ускорились более чем в десять раз. На мой взгляд те кто решают сх...
Простейшая нейросеть: еще раз и подробнее Машинное обучение это незаменимый инструмент для решения задач, которые легко решаются людьми, но не классическими программами. Ребенок легко поймет, что перед ним буква А, а не Д, однако программы без помощи машинного обучения справляются с этим весьма средне. И едва ли воо...
Про Vim " JDT LS Говоря о профессиональном программировании на Java нельзя не отметить, что усредненные сценарии применения несколько отличаются от ранее рассмотренных баз данных и PHP. Разработка будь то бекэнда или мобильных приложений на Java или под JVM всё-таки связана с промышленными и...
[Перевод] Исчерпывающее руководство по различным типам API API (Application Programming Interface, программный интерфейс приложения), является жизненно важным компонентом в современном ландшафте разработки программного обеспечения, обеспечивая строительные блоки для взаимодействия приложений друг с другом. В этой статье рассмотрим п...
Методы обеспечения безопасности контейнеров Docker Сегодня Docker является одним из самых популярных инструментов в области контейнеризации. В основе Docker заложена концепция использования контейнеров. С технической точки зрения контейнер — это процесс, наподобие тех, которые запускаются в операционных системах. Как и любой...
Так с агентом или без? Привет, Хабр! Сегодня я хочу рассказать о том, как решаются вопросы резервного копирования в случаях работы с агентами или без них. В этом посте мы обсудим, какие преимущества даёт безагентная СРК (на примере Кибер Бэкап), поговорим о том, как она работает, а также рассмотри...
[recovery mode] Kotlin/Golang работа в двух языках Так уж получилось, что у нас в компании используются разные стеки и языки. И в частности у нас есть большое подразделение, основным стеком которого является JVM с Kotlin в качестве языка разработки (вместо ванильной Java, на бэкенде). Но при этом этому же отделу регулярно пр...
Postgres под капотом. Часть 5. Простой SELECT запрос Приветствую!В этой статье рассмотрим какой путь проходит простой SELECT запрос. От стадии сырой строки до отправки ответа клиенту.А еще:• Работу со статистикой приложения через API Linux.• Реализацию динамического списка.• «Наследование» в C.• Как&nb...
Не верьте CharGPT и используйте KotUniL В последние недели медиа и социальные сети захлеснул поток сообщений о диалогах с ChatGPT. Только на Хабре поиск по этому термину показывает сегодня полтора десятка статей. Попробовал пообщаться с ChatGPT и я. Результат общения вынесен в заголовок. Хотите узнать, п...
Размышление об Active Object в контексте Qt6. Часть 2.5 Статья выпущена как дополнение к предыдущей и показывает, как можно сделать Active object, работающий асинхронно в среде Qt, но при этом не использующий события. Читать далее
Сохраняем диапазон в виде box типа В прошлой статье "Пример использования диапазонного типа данных" я на реальном примере рассмотрел, чем может быть полезен специальный тип для хранения диапазонов которые существует в PostgreSQL. В комментариях поступило предложение пойти дальше и воспользоваться типом box. Т...
Optuna. Подбор гиперпараметров для вашей модели Optuna — это фреймворк для для автоматизированного поиска оптимальных гиперпараметров для моделей машинного обучения. Она подбирает оптимальные гиперпараметры методом проб и ошибок.В данной статье представлен обзор фреймворка Optuna, рассмотрены ее основные возможности, базо...
Как объяснить детям, что такое DNS, Kafka, Kubernetes, облака Мы в #CloudMTS разделяем мнение, что важно объяснять своим детям устройство различных цифровых технологий. Но пытались ли вы когда-нибудь рассказать ребенку о, например, Apache Kafka as a Service? Ответ на вопрос, «чем занимается папа/мама?» может оказаться гораздо сложнее, ...
@Transactional в Spring и исключения Привет! В этой статье я бы хотел рассказать, как Spring'овая аннотация @Transactional ведет себя при возникновении исключений. Про это немало написано, в том числе на Хабре. Например, тут или тут. Поэтому, чтобы не повторяться, я не буду подробно расписывать как и почему иск...
Как избежать проблем при запуске MVP Всем привет! Меня зовут Алексей Половинкин, и я отвечаю за Python в AGIMA. За последние 2 года мне повезло запускать сразу 2 крупных MVP-проекта: классифайд автомобилей для Казахстана и проект в сфере телемедицины. За это время у меня и моей команды накопилось много опыта по...
Tutorial по обмену с 1С. Часть третья: Выжимаем максимум из стандарта. Что мы хотели бы знать 1000 проектов назад Всем привет! Я Дина, ведущий разработчик личных кабинетов и ecom-систем в ИНТЕРВОЛГЕ. Мы не делаем тривиальных проектов. Все что я буду описывать ниже – уникальные задачи. Однако очень часто мы решаем их стандартными средствами за счет хитрых трюков и опыта.Disclaimer: «Сайт...
Что происходит с вашим отчётом внутри Bug Bounty от Ozon: статусы, метрики и почему всё так Если вдруг вам негде провести код-ревью вашего проекта, присылайте код в программу Bug Bounty – там ваши наработки как минимум кто-нибудь посмотрит
Как пользоваться CSI Provider: доставляем секреты из Vault в Kubernetes Добрый день, Хабр! Мы — Михаил Панов и Евгений Прудченко, DevOps‑инженеры из команды МТС Digital, работаем на проекте External WebSSO. Мы занимаемся внедрением DevOps практик и инструментов в рамках нашего проекта. В этой статье расскажем о инте...
[Перевод] Компонентное тестирование в Cypress Первая альфа-версия функции тестирования компонентов стала доступна в версии Cypress 4.5.0. Это стало событием для многих, но я тогда не обратил внимание на этот шум. Что вполне нормально, поскольку компонентное тестирование всегда было больше уделом разработчиков, чем...
Цена ошибки: как экономия приводит к повышенным тратам Когда мы обсуждаем вопрос создания программного обеспечения, то говорим не только про архитектуру, технологии, навыки, но и про экономику. Абсолютно все проекты требуют бюджета, и он не может быть бесконечным. Необходимость рационального использования средств очевидна всем, ...
Ультимативный гайд по HTTP. Часть 1. Структура запроса и ответа Привет! Меня зовут Ивасюта Алексей, я техлид команды Bricks в Авито в кластере Architecture. Я решил написать цикл статей об истории и развитии HTTP, рассмотреть каждую из его версий и проблемы, которые они решали и решают сейчас. Весь современный веб построен на проток...
А может споём? Karaoke Eternal + Samba + K3s + MetallB Приветствую всех! Давеча сидел и думал о том что часто хочется что-то попеть, покричать в микрофон и было бы круто иметь какое-то решение у себя дома, скажем домашнее караоке.В интернете смотрел разного рода решения и все казались или странные, или неудобные, так уже и не вс...
Законно ли хранить код на GitHub? Меня зовут Михаил, я юрист в сфере IT/IP и это моя первая статья на Хабре на юридическую тематику. Обычно я их публикую на своём сайте, но в этот раз она сильно затрагивает сообщество программистов, поэтому я решил поделиться ею и на Хабре тоже.В заголовок своей очередной ст...
Продакт, не копайся в метриках — апгрейдь технологии, метрики сами вырастут Привет, я Паша Розов, CPO платформенных решений. Это моя первая статья на Хабре, жду с нетерпением порцию замечаний и критики в свой адрес, но лучше больше накидайте в сторону платформы, о которой пойдёт речь. Комментарии, которых так ждёт и боится каждый новый автор, помогу...
[Перевод] Что нового в SQLAlchemy 2.0? Эта статья является переводом статьи Мигеля Гринберга.Возможно, вы слышали, что основная версия SQLAlchemy 2.0, была выпущена в январе 2023 года. Или, может быть, вы пропустили объявление и это новость для вас. В любом случае, я подумал, что вам будет интересно узнать, что в...
Как рассказать о новом функционале и провести демо на английском языке Умение грамотно представить заказчику новый функционал продукта является важным навыком успешной работы любого разработчика в иностранной компании.Предлагаю рассмотреть аутентичные материалы. Меня заинтересовало короткое видео с Томасом Эзаном, Андроид инженером-разработчико...
Техподдержка: как научиться жить без Jira Привет! Меня зовут Савр, я работаю инженером технической поддержки Arenadata. В прошлом году нам, как и многим другим компаниям, использовавшим зарубежное ПО, пришлось переходить на российские аналоги. В частности, с болью в сердце мы отказались от Jira Service Management (д...
RPA в Х5: когда каждый в Матрице – избранный Привет! На связи Фаддей Осипов, руководитель команды разработки в Х5 Tech. Вы когда-нибудь задумывались, какую роль играют роботы в каждом вашем походе в «Пятёрочку» или «Перекрёсток», а также доставке продуктов на дом? Почему машины с продуктами разгружаются вовремя, а все ...
Микросервисные приложения на GoMicro Go благодаря возможностям компиляции и встроенным механизмам конкурентной многозадачности очень хорошо подходит для создания сетевых приложений и активно используется в создании инструментов для DevOps и распределенных приложений. В этой статье мы рассмотрим некоторые возмож...
Алгоритмы программы для дозиметра на счетчике Гейгера Эта статья написана на основе собственного опыта разработки и программирования бытовых дозиметров на счетчиках Гейгера для коммерческих заказчиков. Рассмотрены алгоритмы пересчета импульсов в микрозиверты в час, алгоритмы ускорения выдачи показаний на дисплей дозиметра, улуч...
Wrike Lock: как мы разработали механизм шифрования данных в продукте Привет! Меня зовут Даниил Гранкин, я разработчик внутреннего бэкенд-юнита в Wrike. В этой статье я поделюсь техническими подробностями разработки Wrike Lock — основного механизма шифрования данных в нашем продукте. А также расскажу, для чего мы используем Encryption as a Ser...
Замеряй и ускоряй: как мы сократили время вызова метода в Java-коде в 16 раз Привет, Хабр! Замер производительности кода — не самое простое упражнение для разработчика. Приходится решать кучу сложностей: разбираться с методом, создавать правильные условия. И всё равно можно получить результат с погрешностью, потому что любой метод «не бесплатный» и т...
Почему релиз GeForce RTX 4070 не повлияет на цены видеокарт в РФ, и когда геймерам ждать скидок Рассмотрим 7 видеокарт, которые неплохо вписываются в требования к среднему ценовому сегменту
Создание GUI-приложения в MATLAB. Часть 2 В предыдущей статье мной были рассмотрены возможности среды GUIDE входящей в MATLAB, ее инструментарий сильно устарел как по функциональности так и по дизайну. Такого инструментария недостаточно для реализации более-менее крупных проектов, которые подразумевают бол...
Как я делаю OCR — Часть 2 В предыдущей статье я рассказывал как собираю данные для детектирования текста на изображениях.Теперь используя собранный набор данных попробуем натренировать одну из самых популярных сетей для сегментации и детектирования объектов YOLOv5.Для этого будем использовать бесплат...
4 простых способа оптимизировать объём индексов в Elasticsearch Всем привет! Меня зовут Данила, я выполняю роль SR-инженера в Usetech. В этой статье я бы хотел рассказать о 4-х способах, которые помогут сократить объём ваших индексов в Elasticsearch.Прежде всего статья будет полезна начинающим специалистам по администрированию ELK с...
Сказ о том как pet-project превратился в небольшой пассивный доход (часть 2) Первая ЧастьПредыдущая часть закончилась неудачной балансировкой, которая не решает практически никаких проблем. В комментариях кто-то спросил, почему я не использовал балансировку на уровне DNS. Так вот, я ее использовал. Оказалось, что c помощью DNS записей можно организов...
[Перевод] Запросы к MongoDB из Java с помощью билдера фильтров В этой статье разберемся, как использовать класс Filters для запросов к MongoDB.Класс Filters представляет собой билдер для удобного написания фильтров запросов. Фильтры — это некоторые условные операции, которые MongoDB использует для ограничения результатов. Читать далее
Obsidian + Dataview: Задачи В прошлой статье Obsidian + Dataview: Таблицы я рассказал про установку плагина Dataview, формирование таблиц с его помощью и разобрал 4 кейса его использования.Dataview - это очень мощный и функциональный плагин, с помощью которого кроме таблиц можно так же формировать спи...
Чем заняться тимлиду, если не кодить? Рассказываю о своих задачах Моя предыдущая статья вызвала довольно бурное обсуждение на тему, кто такой тимлид и чем он занимается, поэтому в этой статье я хотел рассказать о том, чем занимаюсь я.Вообще задачи тимлида могут сильно отличаться в разных компаниях. В моем опыте обычно было так: чем меньше ...
Расширяем Android Lint Часто при разработке собственных фреймворков (или для проверки соответствия кода требованиям организации) возникает необходимость реализовать сложные проверки корректности использования в коде приложения. Это может быть реализовано через расширение возможностей линтера, кото...
Почему не стоит увольняться с января, даже если хочется начать год с чистого листа Есть риск больше потерять, чем приобрести.
[Перевод] Jenkins Scripted Pipeline: как использовать «Pipeline-as-code» — принцип, который позволяет Jenkins обрабатывать пайплайны как обычные файлы. Существует два способа описания пайплайнов: скриптовый и декларативный. В этой статье поговорим о Jenkins Scripted Pipeline: проанализируем его структуру и разберём варианты исп...
Технологии “Звёздных войн” и возможны ли они в нашем мире Любой человек, который хотя бы немного знаком со вселенной “Звездных войн” имеет представление о таких вещах, как спидеры, дроиды, репульсоры, световые мечи, гипердрайв и тому подобное. Некоторые могут даже завидовать обитателям той вселенной из-за того, что у них есть такие...
[Перевод] Почему стоит использовать лимиты CPU в Kubernetes Эту статью я написал в противовес статье “For the love of god, stop using CPU limits on Kubernetes” (Ради всего святого, прекратите использовать в Kubernetes лимиты CPU). Мне та статья понравилась, и я считаю её хорошим чтивом. Более того, я согласен с высказанными в ней р...
Методика портирования пакетов Python в операционную систему «Нейтрино» Многие расширения (модули) Python поставляются в виде платформонезависимого байт-кода и могут быть использованы в системах с любой архитектурой. Однако, в некоторых случаях расширения поставляются в виде Py-исходников лишь частично. Например, часть в...
Лучшие open-source инструменты для Python проектов Open-source проекты, сторонние инструменты и библиотеки - это то, за что мы действительно любим Python. В этой статье я собрал самые полезные, валидированные сообществом и проверенные временем инструменты, конфигурации которых можно встретить в популярных проектах с открытым...
Инфантильность как стратегия: когда она мешает жить, а когда помогает Чужая инфантильность бесит. Своя не всегда осознается. Но, как и любое другое, инфантильное поведение не возникает без причины — разбираемся, зачем оно нужно, почему вызывает столько негодования и как от него избавиться. Читать далее
Может ли chatGPT забронировать столик в ресторане через WhatsApp? А почему бы не использовать возможности chatGPT и попросить его делать что-то за нас?Например, давайте попробуем настроить его так, чтобы он мог забронировать нам столик в наш любимый ресторан. Читать далее
Журнал архитектурных решений (ADL) при проектировании информационных систем Для сложных информационных систем бывает крайне сложно принять компромиссные решения с учетом ограниченных ресурсов. Одним из возможных способов решения является подход Architecture Description Log, который внедрен в крупных компаниях, таких как Google, Spotify и Microsoft. ...
Переходим на личности: как создать не просто бота, а виртуального персонажа с характером и историей Надоели стандартные боты с типовыми запросами? Да, мы вас очень понимаем. Именно поэтому в этой статье мы решили поделиться своим исследованием по созданию не просто ботов, а виртуальных личностей с проработанным характером. Эти наработки появились немного раньше, чем к нам ...
База по шардированию базы Возможность горизонтального масштабирования это одно из важнейших нефункциональных требований индустрии в последнее время. Рост бизнеса со стороны IT выглядит чаще всего как рост нагрузки и цены отказа системы. Нам всем хочется создавать такие приложения, которые будут одина...
Как мы запускали агрегатор презентаций Часто хочется попробовать новое: архитектурное решение, рекламную партнерскую сеть или новый фреймворк. В боевых проектах новое применить сложно, не хочется нарушать принцип «работает — не трогай». Для этих целей подходят собственные небольшие проекты, которые «не жалко».Пре...
Обработка изделий из полилактида после 3D-печати Эта статья задумана как пособие для начинающих пользователей FDM/FFF 3D-принтеров. В ней мы рассмотрим основные инструменты и методы, используемые в постобработке моделей из ПЛА.
Метод Помидора — убийца прокрастинации. Использовала 6 месяцев и вот результаты Всем привет! Меня зовут Маруся, на текущий момент я - аналитик данных, блоггер (пишу в телеграм и на VC). Я использовала Метод Помидора 6 месяцев ежедневно и в честь такого праздника хочу подвести итоги. Для тех, кто не в курсе, Метод Помидора (итал. tecnica del pomodor...
DIY наушники: реализация мониторного звука О том, как получился магнитопланарный драйвер для наушников с высокой линейностью и быстрым затуханием импульсной характеристики, а также - как и почему это работает. Для подготовленных читателей, уже ознакомленных с предыдущими статьями 1, 2. Ссылка на исходники для сборки ...
Язык Umka 1.0 и игровой фреймворк Tophat После трёх лет неторопливой разработки вышла версия 1.0 моего скриптового языка Umka. Это статически типизированный язык, предназначенный для встраивания в программы на C/C++. Синтаксис и некоторые особенности семантики Umka были вдохновлены языком Go, однако Umka никак...
Как ускорить бэкап и сэкономить место на сторадже: на примере ArenadataDB ddboost и СХД Dell EMC Data Domain Всем привет, меня зовут Андрей, я – системный архитектор Arenadata и в этой статье мы рассмотрим интеграцию решения логического резервного копирования и восстановления gpbackup/gprestore с программно-аппаратным комплексом Dell EMC Data Domain — задача, которой наша команда р...
Русские шашки: представление доски с помощью двух uint64 При разработке игр, особенно таких настольных игр, как шашки, представление доски является важнейшим компонентом производительности игры. Доска - это, по сути, состояние игры: на ней хранится вся информация о положении фигур, о том, чей сейчас ход, и другие важные данные игр...
Блокируем посетителей сайтов по IP Привет! Сегодня хотим поделиться простым способом защиты от L7 DDoS-атак. Есть и другие варианты, но описанный в статье — лёгкий и быстрый. Читать далее
[Перевод] DatRet: Реализация Tensorflow для табличных данных Мой open-source продукт. Rete neurale per la previsione di Dati tabulari. (it.)Простая реализация архитектуры глубокой нейронной сети для табличных данных с автоматической генерацией слоев и послойным сокращением количества нейронов. С удобством использования, аналогичным к...
Создаём расширение google chrome для записи экрана и камеры В данной статье рассмотрим создание расширения google chrome для записи экрана и камеры. Оно может записывать целый экран, отдельное окно или вкладку. В режиме записи экрана можно вставлять окно с фронтальной камерой внутрь страницы на которой активен плагин, либо вне браузе...
[Перевод] Потоковый проект в режиме реального времени с использованием данных смартфона Девайсы повсюду. Смартфоны, холодильники, дверные звонки, часы, медицинские датчики, системы безопасности и фитнес-трекеры — все это лишь некоторые из них, которые в настоящее время являются обычным явлением и постоянно записывают (потенциально высокочастотную) информацию. Э...
Загоняем Альпаку на Эльбрус Думаю уже все слышали об Alpaca - аналоге chatGPT, которую можно запустить локально на процессоре. И раз есть такая возможность почему бы не сделать это на Эльбрусе?! Читать далее
Небольшая ретроспектива по статистике статей Хабра Хабр недавно написал статью про итоги ушедшего 2022 года. В комментариях у меня и нескольких пользователей возник вопрос, что мол статистика как-то странно подана, мол люди перемешаны с конями, почему так? Мне стало интересно.По идее, чтобы дать нормальную статистику, достат...
Docker и сети Сейчас без преувеличения можно сказать, что контейнеризация прочно вошла в нашу жизнь. Контейнеры используются в различных программных продуктах, начиная от микросервисов и заканчивая решениями ИБ, такими как песочницы. Однако, контейнеры не были бы столь удобным инструменто...
Как сделать торгового робота для Binance Программирование для меня это хобби и любимое дело. А так я сертифицированный системный архитектор. Поэтому прошу не особо ругать за код :-)В настоящее время я увлекаюсь написанием торговых роботов. Постепенно изучаю нейросети для их применения к анализу цен/объемов акций/фь...
[Перевод] Swift-код в качестве пользовательских команд LLDB Если я спрошу, какую команду LLDB вы используете чаще всего, то я почти уверен, что вы, как и большинство iOS-разработчиков, ответите po. Но знали ли вы, что вы можете определить свою собственную команду LLDB, используя только Swift-код?В этой статье я покажу вам, что н...
[Перевод] NoNa: Алгоритм заполнения отсутствующих данных Мой первый open-source продуктGitHub — AbdualimovTP/nona: библиотека для заполнения пропущенных значений с использованием методов искусственного интеллекта Читать далее
Как мы упростили жизнь высоконагруженным сервисам с Platform V SessionsData. Часть 1 Привет, Хабр! Меня зовут Андрей Чернов, я Java-архитектор микросервисов в СберТехе — компании, которая создала цифровую облачную платформу Platform V для разработки бизнес-приложений. Наша команда развивает продукт Platform V SessionsData — высокопроизводительное распределён...
Как мы упростили жизнь высоконагруженным сервисам с Platform V SessionsData. Часть 1 Привет, Хабр! Меня зовут Андрей Чернов, я Java-архитектор микросервисов в СберТехе — компании, которая создала цифровую облачную платформу Platform V для разработки бизнес-приложений. Наша команда развивает продукт Platform V SessionsData — высокопроизводительное распределён...
Как отправлять голосовые SMS из Google Таблиц Вы когда-нибудь хранили номера телефонов своих клиентов в Google Таблицах? Как думаете, было бы удобно оповещать клиентов о каких-то событиях или акциях, не копируя номера в другую систему, а прямо из Таблиц?Меня зовут Анастасия Иванова, я технический писатель МТС Exolve. В ...
Дайджест уходящего года: релокейт в Европу и США, главное о карьере и сверхзанятости Что ждет IT-инженера в Сербии, Швеции, США, Болгарии и Грузии? Чем Берлин отличается от остальной Германии в плане работы и жизни? Как правильно проходить собеседование на софт-скилы? Как расти в карьере? И каково это — полтора месяца работать на двух фултайм-работах? Собрал...
Создание модуля WebAssembly с помощью Emscripten, AssemblyScript и Rust В этой небольшой заметке предлагается рассмотреть несколько способов компиляции модуля для WebAssembly, используя три разных подхода. Мы реализуем решение одной и той же задачки на трёх языках и скомпилируем полученный код в модуль WebAssembly. Будем использовать:Emscripten ...
Yet another введение в fp-ts. Часть 1. Эквивалентность и сравнимость Что такое монада? Душнила ответит: “Это моноид в категории эндофункторов”, и будет абсолютно прав. Вопросов появляется ещё больше: “Что такое моноид?”, “Что такое категория?”, “Что такое эндофунктор?”. В эту же секунду человека сковывает первородный ужас, сошедший со страниц...
Микросервисы на основе событий с Dapr Системы оркестрации контейнеров существенно упростили управление многокомпонентными системами, в том числе основанными на микросервисной архитектуре. Но остался открытым вопрос организации надежного обмена сообщениями между микросервисами, координации последовательности опер...
Как мы боролись с багами при подготовке релиза 1.43 K8s-платформы Deckhouse и какие выводы из этого сделали Разработка собственной Kubernetes-платформы — большой и сложный проект со множеством взаимодействующих компонентов. В процессе неизбежно сталкиваешься с различными трудностями. Иногда их даже создаешь себе сам. В статье кратко рассмотрим три проблемы, с которыми нам при...
Быстрый приём платежей QIWI в проекте Python Необходимость добавить возможность оплаты чего-либо в своём проекте всплывает достаточно часто, при этом возня с ИП, банковскими договорами и прочей бюрократией мало кого привлекает, особенно если масштабы проекта сопоставимы с небольшим telegram-ботом или чем-то подобным. Н...
Работаем с Zigbee-устройствами через Zigbee2mqtt и Node-RED В первой статье «Облачный умный дом: что нужно знать, чтобы избежать проблем» я рассмотрел преимущества и недостатки облачных решений, а также проблемы, с которыми за последние месяцы пришлось столкнуться пользователям разных облаков. Затем я перешел к практике: приобрел нес...
Палеоастрономия: как астрофизики используют свет и гравитационные волны для изучения происхождения нейтронных звёзд У археологов, палеоантропологов, палеонтологов и других специалистов, работа которых связана с изучением истории происхождения жизни на Земле, предков человека и нашей собственной цивилизации, есть множество вспомогательных инструментов. Но что делать астрономам, которые изу...
Как Android-разработчику избавиться от комплекса доменной неполноценности Комплекс доменной неполноценности — это когда веришь, что доменный слой приложения должен быть самым большим и самым важным, и винишь себя в том, что в твоём коде это не так. Это происходит, если воспринимать «Чистую архитектуру» как е...
IMHO. Техинтервью Исходя из 8 лет опыта коммерческой разработки, 3 лет тимлидства, 5 компаний за плечами, могу утверждать: многие соискатели в IT сфере часто после собеседований сидят в ступоре и переваривают события, в частности из-за того, что обескуражены поведением интервьюеров или их нео...
Как я делал кино с помощью нейросетей В прошлой статье я рассказывал, как использовал нейросети в создании украшений. Сегодня расскажу, как с помощью нейросетей делал фильм для планетария. Читать далее
Мишель Сифр. Замурованный Никто не знает, что такое время. Это понятие возникло, когда первый человек обратил внимание: мир здесь и сейчас отличается от мира тогда и там.Википедия гласит, что время — это форма протекания физических и психических процессов. Философы скажут: время — необратимый поток, ...
Citizen Data Scientist в ЕВРАЗе: «войти в айти» здорового человека Говорят, что в России и в мире дефицит IT-специалистов. Врут, разумеется. Специалистов достаточно, просто IT-задач слишком много.С другой стороны, иногда задача вроде бы есть, а на самом деле её нет. Кажется, вот тут используешь machine learning — и станет хорошо. А на деле ...
[Перевод] Квазицитирование в Lisp Аннотация Квазицитирование (quasiquotation) — это технология, обычно используемая в Lisp для создания программ, генерирующих другие программы. В статье объясняется механизм работы квазицитирования, поясняется почему он работает именно так и каковы его ограничения, а также да...
Крах Silicon Valley Bank: как и почему лопнул главный банк техно-стартаперов Кремниевой долины В пятницу на финансовых рынках произошел громкий «хлопок»: внезапно лопнул 16-й по размеру банк США – а само банкротство стало вторым по размеру в истории среди американских коммерческих банков. В этой статье мы разбираемся, что произошло, и как это может на всех нас повлият...
Компонентный подход. Организуем навигацию с помощью библиотеки Decompose Это третья часть из серии статей про компонентный подход. В предыдущей статье мы рассмотрели, как реализовать сложный экран, разбив его на набор простых компонентов. Применим эту же идею, чтобы организовать сложную навигацию.В статье много практики. Сначала я покаж...
Остановись, мгновенье. Медленное программирование — тренд для уставших разработчиков Как же хочется иногда остановить дикую гонку разработки и получить удовольствие от вдумчивого, размеренного написания кода. Как же не хватает времени на обдумывание алгоритмов и исследование перспективных архитектурных вариантов системы. Как же тянет протянуть руку к стоп-кр...
Jenkins + Android Нередко управление «мобильным» CI/CD ложится на плечи разработчиков, хотя это и не относится к их основным обязанностям напрямую. Тогда возникают проблемы, связанные со снижением производительности и неэффективным расходованием времени. Чтобы оптимизировать управление «...
mQSL: подтверждение QSO/SWL по E-Mail Статья относится к области радиолюбительства (HAM Radio) и описывает альтернативный (безбумажный) механизм обмена подтверждениями двусторонних радиосвязей (QSO) и радионаблюдений (SWL). Предназначена для операторов и разработчиков радиолюбительского программного об...
Гасить ипотеку досрочно или инвестировать? Разбираемся, как не оказаться без денег и без квартиры Кто-то говорит, что ипотека – это жуткая переплата банку, и ее нужно закрывать всеми силами как можно скорее. А кто-то, наоборот – что это дешевый кредит, который лучше не гасить, а направить эти деньги на инвестиции (в STONKS). В этой статье мы попробуем понять, каким образ...
[Перевод] Сможет ли Event Sourcing перерасти базы данных? Event sourcing — не новый термин. Если вы работаете с технологиями, то должны были с ним сталкиваться. Это мощный инструмент, используемый многими крупными организациями в качестве архитектуры баз данных. Он имеет возможность масштабирования и отвечает потребностям современ...
[Перевод] Усиление безопасности Kubernetes с помощью Kyverno, RuntimeClass и контейнеров Kata По мере того как все больше организаций внедряют Kubernetes, безопасность становится для них одной из главных проблем. Kubernetes имеет множество встроенных функций безопасности, но обеспечить надлежащее применение политик безопасности в большом и сложном кластере может быть...
Самый простой способ ввести Linux в домен Всем привет!Термин Microsoft Active Directory Domain Services включает в себя множество технологий, поэтому сразу уточню, в этой статье речь пойдет про использование контроллера домена только для аутентификации пользователей. То есть в финале, нужна возможность любому сотруд...
Правильно ли вы используете useSelector в Redux? Всем привет, данная статья направлена на то, чтобы добавить понимания при использовании хука useSelector в разработке. Надеюсь, у меня получилось ниже раскрыть какую-то часть информации, которая поможет разработчикам, которые раньше не знали данной информации.Все, кто исполь...
Картофель и реголит: биокомпозитные стройматериалы для колонизации Марса Любопытству человека воистину нет равных. Мы не знаем и половины о планете, которую населяем, но наш взгляд уже давно обращен к звездам. И если когда-то нам было достаточно обрести возможность рассмотреть поверхность Луны, то сейчас многие хотят ее колонизировать. Такой ск...
Wave Function Collapse для процедурной генерации в Unity Wave Function Collapse – это алгоритм, c помощью которого можно реализовать генерацию чего угодно, что можно было бы описать с помощью правил или конкретным примером. В этой статье мы рассмотрим, как использовать WFC для генерации карты в Unity. Читать далее
Fukami. Ч.2. Прокачиваемся с ChatGPT Эйнштейн: "Порядок - для идиотов! Умные справятся и с хаосом... Если у них есть ChatGPT." В этой статье я рассказываю как этот чудо-помошник пропедалировал мой прогресс с проработкой концепции игры, которую "Я ДЖВА ГОДА ЖДУ". Читать далее
Назад в прошлое: как быстро восстановить MySQL на точку во времени Point in Time Recovery (PiTR) - это восстановление базы данных на какой-то конкретный момент времени (с точностью до секунд или до конкретной транзакции).PiTR невероятно полезен для восстановления базы данных после того, как “случилось непоправимое”. Если достаточно точно в...
Как я разрабатывал кастомный Segmented Control на SwiftUI Системный Segmented Control - это хорошо и удобно. Но когда доходит до его кастомизации, проще написать свой гибкий компонент с нуля. В этой статье история разработки своего segmented сontrol'а, переросшего в отдельную внешнюю зависимость, с ожидаемыми и не очень сложностями...
Мир математики глазами AI Всем привет! В этой статья я хочу посмотреть, как AI видит мир математики, а точнее, какие разделы знает, насколько понимает, про что они и какие основные результаты может выделить.Для этого я буду использовать популярный сейчас ChatGPT, который как-то так предложил мне нача...
Почему реляционные базы победили Когда-то давно идея хранить данные в виде таблиц была скорее экзотикой, чем мейнстримом. Вспомним, как ей удалось за короткое время отодвинуть все прочие концепции на второй план Читать далее
Neo4j. Вместо тысячи join-ов… Если вы столкнулись с задачей хранения сильно связанных данных, то отличным вариантом будет использовать графовую модель данных. Мы в Текфорс сделали именно так. Почему - разберем в этой статье. Читать далее
Релизный цикл ПО для самых маленьких В продолжение нашей серии для начинающих ИТ-шников о базовых идеях современной коммерческой разработки, поговорим о моделях релизов. Это очень обширная тема, но мы пройдемся по верхам и исключительно с позиции разработчика. Мы не будем брать экзотические случаи, когда релизы...
Кастомный генератор кода API: структура и методы доработки Всем привет! Меня зовут Юлия Сладковская, я разработчик в МТС Digital, команда BOPS (Backoffice Portal). Эта статья – про структуру генераторов NSwag для кода клиента и сервера на основе схемы API. Также я расскажу о создании кастомного генератора на базе стандартных генерат...
Непопулярный метод установки Debian GNU/Linux или готовим свежий фарш Статья предназначена для линуксят, столкнувшихся с проблемами при установке дистрибутива Debian GNU/Linux на свежее железо. От опытных линуксоидов хотелось бы услышать конструктивную критику и рекомендации по усовершенствованию данного метода установки. Давайте вместе поможе...
Какодемон на динозавре: 2004 год. Установка DOOM на японский наладонник Sharp Zaurus SL-C1000 Здравствуйте, уважаемые друзья! Недавно, мне попался в руки маленький динозаврик… но обо всем по порядку. DOOM! Что можно добавить к этому понятию? Обреченность, Рок, Судьба. При упоминании названия игры, вспоминается незабываемый рык чудовищ, безумная динамичная музыка,...
Поиск в глубину, поиск в ширину, алгоритмы Дейкстры и А* — это один и тот же алгоритм В алгоритмических задачах на графах мы часто используем четыре известных алгоритма: Поиск в ширину или глубину, алгоритмы Дейкстры и А*. Разбираемся, почему на деле это один и тот же алгоритм. Читать далее
Почему врать не всегда плохо и когда стоит это делать Честность — добродетель, но иногда о ней лучше забыть.
Какими гибкими навыками (soft skills) и почему должен обладать каждый QA Engineer в 2023 году Какими навыками должен обладать успешный в своем деле QA Engineer в 2023 году? Скорее всего, многие из вас в первую очередь подумают про навыки технического характера. Как будто только жесткие навыки (hard skills) являются гарантом стремительного профессионального и карьерно...
Как изучать SQL в 2023 году В 2023 году SQL (Structured Query Language) остается одним из самых популярных языков программирования, используемых в области баз данных и аналитики данных. Изучение SQL может быть полезным как для тех, кто только начинает свой путь в IT, так и для опытных профессионалов, к...
Не придумывайте данные для интеграционных тестов — генерируйте их Если вы разработчик и когда-либо писали интеграционные тесты — скорее всего, вы использовали TestContainers. Появившись в 2015 году, эта библиотека изменила то, как мы производим автоматизацию тестирования, позволив разработчикам запускать интеграционные тесты с участием ба...
Анализ вредоносного ПО Thunder 13-го апреля 2023 года в мессенджере Telegram обнаружена рассылка с архивом под красноречивым названием 这几笔错误的账单我圈出来了你看看.zip. В результате анализа удалось выяснить, что архив содержит вредоносное программное обеспечение нацеленное на пользователей ОС семейства Windows. В это...
Взаимодействие между процессами на С++ и PHP. Сокеты, семафоры и разделяемая память Доброго всем дня!Хочу рассказать о своём практическом опыте реализации взаимодействия между процессами в среде Linux в условиях, когда вычислительных ресурсов существенно не хватает. По условию, один из процессов написан на C++, второй на PHP, потому дополнительно мы рассмот...
[Перевод] Ограничиваем число процессов в pod’е Kubernetes Если мы говорим о безопасности в Kubernetes, первым делом нужно защитить ключевые компоненты кластера (pod’ы) от внешнего воздействия и ограничить риски внутри самих pod’ов. Чем меньше процессов в pod’е, тем меньше уязвимостей в кластере.В этой статье мы обсудим, почему риск...
Еще два года недорогие Android в чем-то будут лучше iPhone Смартфоны стали неотъемлемой частью нашей повседневной жизни, и экраны этих устройств играют ключевую роль в нашем взаимодействии с ними. С каждым годом производители смартфонов представляют новые экраны с улучшенными характеристиками, что делает выбор между различными моде...
IF: нейросеть, которая умеет в руки и текст Синтез изображений из текста прошел долгий путь от появления DALL-E до Stable Diffusion. Несколько дней назад был открыт код большой (4.3 млрд параметров) модели для генерации изображений, которая привлекла внимание своим новым подходом к генерации - DeepFloyd IF. В этой ста...
Групповой видеозвонок на сайт Ещё одна история изучения и использования технологии WebRTC (Web Real-time Communication). Краткое описание создания готовой библиотеки для её переиспользования в разных проектах. Читать далее
Clean Architecture Как многие разработчики, я прекрасно понимаю, насколько важно создавать приложения, которые будет легко поддерживать, расширять и развивать в долгосрочной перспективе. Именно поэтому принципы Clean Architecture (Чистая архитектура) стали неотъемлемой частью моей работы. В эт...
(Не)мифы: о компьютерном зрении в сельском хозяйстве Вместе с Русланом Ахтямовым, сооснователем компании Napoleon IT объясним, почему компьютерное зрение — не просто игрушка, а полезный инструмент для фермеров. В статье приведены кейсы компании, реализованные с использованием собственной разработки Video Analytics Core. Чита...
Знакомимся с Notion Ai В этой статье мы будем говорить о Notion AI - новой языковой модели, которая недавно была представлена в мире искусственного интеллекта.Notion AI встроен в Notion, который многие программисты используют для документации и ведения проектов. Читать далее
Не бойтесь использовать Gradle Дорогие junior и все, кто занимается copy-past конфигов Gradle.В этой статье я хочу простым языком рассказать вам о gradl'овой конфигурации сборки вашего проекта, чтобы вы не боялись использовать Gradle. Читать далее
Шаблон Строитель в Scala 3 По определению шаблон Строитель (Builder) отделяет конструирование сложного объекта от его представления, что особенно хорошо, когда нужно провести валидацию параметров перед получением итогового экземпляра. Особенно удобно комбинировать шаблон Строитель с уто...
Создание и тестирование процессоров аннотаций (с кодогенерацией) для Kotlin В разработке с использованием Kotlin (или Java) для создания классов по верхнеуровневому описанию часто используется маркировка аннотациями (например, для моделей таблиц баз данных, сетевых запросов или инъекции зависимостей) и подключение процессоров аннотаций, которые такж...
Краткий обзор нововведений C++23: deducing this Документ «deducing this», принятый в последний стандарт C++, вводит новый, третий тип методов классов, сочетающий в себе свойства двух уже существующих: нестатических и статических, открывающий перед нами новые горизонты:1. Дедупликация большого количества кода2. Вытеснение ...
Почему мир еще не готов к «электричкам» В недавнем хабрапосте мы уже говорили про историю электромобилей и их проблемы в XX и в XXI веке. Кажется, что электромобили — очевидное решение для снижения углеродных выбросов. Они проще в управлении и конструкции. Но почему же при таких плюсах повсеместное внедрение «элек...
Знания на экране монитора. Чему меня научило ведение базы знаний? Если есть интернет, то значит есть доступ ко всему богатству знаний всего человечества. Именно так хотелось бы думать, но по факту дела обстоят совершенно иначе. Виной тому то, что доступность информации != владению ею. Как бы это не было больно, но для того, чтобы в действи...
[Перевод] Как работает веб-браузер (с картинками) Браузеры стали частью нашей повседневной жизни. Но задумывались ли вы когда-нибудь о том, как они на самом деле работают?Эта статья приоткроет завесу магии, скрывающуюся за кулисами веб-браузеров.Давайте начнем! Читать далее
Как дебажить код на JavaScript: примеры ошибок и советы новичкам Привет, Хабр! Меня зовут Алексей Гмитрон, я наставник на курсе «Веб-разработчик» Практикума, а также работаю фулстек-разработчиком. Я начал программировать шесть лет назад, и обучение не сразу давалось легко. Одна из главных проблем — не умел выяснять, почему мой код не...
[Перевод] Интуитивно понятное управление: как помочь пользователям разобраться в принципах работы приложения Hola, Amigos!На связи Саша Чаплыгин, Flutter-dev. На проектах я нередко взаимодействую с дизайнерами, арт- и креативными директорами, поэтому решил почитать для себя статьи о том, как строиться дизайн мобильных приложений. Что нужно учитывать в разработке дизайна, чтобы поль...
Бенчмаркая строки и циклы: Replace, Split и Substring Уважаемые читатели, в этой статье я хочу рассказать о небольших тестах со строками и представить свои выводы. Тесты сделаны на .net 7.Про строки написано немало, поэтому слишком углубляться в их особенности не буду, лишь напомню, что строки в реальности могут быть изменяемым...
ChatGPT: новый инструмент в борьбе с багами. Как можно использовать AI для повышения качества тестирования Всем привет! Я QA Engineer и недавно открыл для себя ChatGPT и хочу открыть этот мир другим тестировщикам. Эта статья не руководство к применению и каких-то суперлайфхаков здесь не будет. Цель этой статьи в том, чтобы показать огромные возможности нейросетей в помощи нам, те...
Микросервисная реализация объектно-ориентированных баз данных В настоящее время объектно-ориентированные базы данных (ООБД) не имеют достаточно большого распространения в повседневном использовании, да и более того, не настолько популярны как реляционные базы данных, которые не один десяток лет уже активно поддерживаются различными соо...
Почему я советую писать статьи именно сейчас Привет, я редактор блога Максилект на Хабре. Сегодня я впервые буду высказываться от своего имени. Расскажу, как выглядит история с нашим блогом в ракурсе событий последнего года и почему ИТ-специалистам все еще стоит тратить время на написание статей.2022 год был непростым ...
Массовая незаконная электронная подпись или мина замедленного действия: Формат МинЦифры №472 1 «А был ли мальчик?»Многие и помногу подписывают документы электронной подписью (ЭП), рассчитывая, что их подпись законная. «Законная» не в смысле «сошлась математика» или «нет сомнений в сертификате подписанта». «Законная» - в смысле соответствия закону, как минимум основн...
Парсинг HTML с помощью PHP и SQL. Немного провокационный пример с анализом пользователей Хабра Выковыривание информации из html — это скучно. Очень. Между тем, эта потребность выстреливает редко, но метко (© Суворов). Из-за этого есть спрос на готовые и короткие инструкции о том, как это сделать, чтобы не тратить время на изучение. Перед вами как раз такая.Чтобы добав...
[recovery mode] Вращение по кругу объектов в blender с помощью geonodes Всем привет, в этой статье я покажу и объясню как сделать вращение по кругу объектов в blender, используя geometry nodes. Однажды в чате по блендеру увидел сообщение с просьбой человека помочь ему с анимацией кристаллов. Результат будет примерно такой: Читать далее
Что не так с IT-образованием в России, и как я пытаюсь это исправить уже более 10 лет Привет, меня зовут Дима Ботов — я руковожу магистерской программой «Искусственный интеллект» в ИТМО, вообще же преподавательской деятельностью я занимаюсь уже более 10 лет. В этой статье я хотел обсудить наболевший для меня вопрос: почему текущая модель IT-образования работа...
Экосистема фронтенд-разработчика на JavaScript: полезный инструментарий для начинающих Если вы начинающий JS-разработчик, вам лучше иметь под рукой краткий список самых необходимых и полезных в работе инструментов. В этой статье собран такой список в виде краткой шпаргалки, которая поможет вам не потеряться на начальном этапе карьеры. Читать далее
Тестирование PHP проектов на примере Symfony Хочу описать свои наработки и устоявшиеся подходы к тестированию PHP проектов. Последние годы я работаю с Symfony и здесь будет достаточно моментов специфичных для этого фреймворка. Так же в этой статье термин функциональные тесты (functional) является синонимом End-to-End т...
Зри в корень, но не в ЗD очках. Стереовзгляд в прошлое. Что увидел мишка в ASUS VR-100G или статья-предостережение В данной статье рассмотрим ряд устройств, позволяющих увидеть объемное изображение, как электронного, так и нецифрового характера, оценим субъективное восприятие и последующие ощущения. Наш путь — от простого к сложному: стерео/диаскопы времен СССР, взгляд на QUAKE 3 Are...
Влияние водорода на свойства сталей Мы стоим на пороге водородной энергетики. На улице уже можно встретить автомобили на водородном топливе ― Toyota Mirai, Honda Clarity, Ford Airstream, хоть и в ограниченном количестве. Поэтому в этой статье в блоге ЛАНИТ мы рассмотрим недостаточно хорошо известные особенност...
Самурай под красным флагом или что-то «не то» У самурая, как и у файла, нет цели, только путь. У этой статьи тоже, как оказалось, нет цели, только путь. На примере нескольких сугубо типичных, но эпичных фэйлов рассмотрим разные «не то» в проектах. В частности, как они выглядят, чем вызваны и что с ними делать.Поможет на...
Big Data в облаках Всем привет! Сегодня хотим затронуть тему облачных технологий. Дмитрий Морозов, архитектор DWH в компании GlowByte, занимается хранилищами данных 6 лет, последние 2,5 года участвует в проектах, использующих облака. В этой статье он сделает обзор облачных решений, которые мог...
За границей Hello World: полный гайд по разработке Telegram ботов с помощью Python и Aiogram 3. Часть 1 Нетипичный туториал по разработке Telegram-бота на Python и Aiogram 3. В отличие от большинства гайдов и туториалов про разработку ботов «для новичков», здесь будут рассмотрены все аспекты создания бота, от установки редактора кода до подключения оплаты и развёртывания на се...
Microsoft выпустила список изменений сборки Microsoft Edge Stable Build 108.0.1462.42 Компания Microsoft выпустила список изменений сборки Microsoft Edge Stable Build 108.0.1462.42. Новые функции • API-интерфейсы Graph для Cloud Site List Management. Новые API-интерфейсы Graph, которые позволяют ИТ-администраторам в организациях создавать, управлять и публико...
Модульное тестирование в iOS: все, что надо знать. Часть 1 Модульное тестирование в iOS: все, что надо знать. Часть 1Тестирование — один из основных способов выявления проблем в коде для их быстрого устранения и снижения издержек. В большинстве случаев при организации контроля качества лучше задействовать сразу несколько вариантов а...
Тестирование python3-расширения для GIMP Графический редактор GIMP предоставляет широкие возможности для создания расширений на языках программирования Scheme (функциональный язык, сходный с LISP) или Python. Для доступа к системным операциям и регистрации собственных действий используется общий реестр Procedural D...
Вариант реализации DSL с помощью макросов Близится релиз языка NewLang с принципиальной новой «фишкой», переделанным вариантом препроцессора, который позволяет расширять синтаксиса языка для создания различных диалектов DSL за счет макросов. И, как всегда, используя ранее найденный лайфхак Хабр — ума палата, хотело...
Мультяшная графика продаётся лучше реалистичной. Так ли это на самом деле? Хочу поделиться статистикой по визуальным стилям, востребованным на разных платформах. Я с коллегами подготовил небольшое исследование и оценку разных арт-стилей в цифрах. Под востребованностью в данной статье я буду понимать не предпочтения игроков, собранные в опросах или ...
Satellite hunter Одно из направлений в радиолюбительстве это связь через радиолюбительские спутники. Для качественной радиосвязи можно использовать поворотные устройства для антенн. В этой статье описан опыт создания такого поворотного устройства с нуля и до полевых испытаний. Читать далее
Пошатывание устоев или из FAANG в HFT-стартап Я - разработчик серверных компонент со стажем в 10+ лет (C++, python). Не трейдер и не квант. Эта статья - результат моих годичных наблюденией, когда после 8 лет в больших IT-корпорациях, я внезапно нырнул в HFT-стартап с коллективом в сотню человек. Что в разнице подходов к...
Стратегия «нишера»: почему конкуренция заставит компании подстраиваться лично под вас "Ты уникален, бро!" - вот что сейчас хочет внушить клиенту каждый бизнес. Ведь конкуренция во всех отраслях растет, а доходы клиентов - не особо. Поэтому компании всё чаще делают ставку на нишу. В этой статье разберем, что такое “конкурентная стратегия ниши”, в чем ее фишка ...
Нюансы разработки парсера для свего языка программирования Недавно прочитал на Хабре статью Свой язык, или как я устал от ассемблера и С, и невольно взглядом зацепился за один абзац: Я решил не сильно париться, поэтому использовал библиотеку parglare. Она очень легкая и удобная, всем рекомендую. Для описания синтаксиса парсер прини...
А у нас опрос: как применять технологии ChatGPT в агросфере Искусственный интеллект проникает во многие сферы жизни. Своё применение эта технология нашла и в сельском хозяйстве. Одним из перспективных для аграриев инструментов является ChatGPT — это генеративная модель искусственного интеллекта, которая используется для автоматизации...
«Хакер»: Как мы с DALL-E 2 делали картинки к статьям DALL-E 2 — нейросеть, которая рисует картинки по текстовому запросу. Гулявшие в этом году примеры работы с ней просто поражают: иногда она рисует, как настоящий художник, и еще и предлагает варианты на выбор! С августа этого года мы периодически использовали DALL-E 2, чтобы ...
[Перевод] Инкрементальный энкодер: подключение и обработка его с помощью AVR (ATmega8/16/32/168/328) В данной статье расскажу об энкодерах и попытаюсь объяснить, как их подключать и обрабатывать правильным способом с помощью микроконтроллера AVR (в примерах я использую ATmega8A-PU, но это должно работать на любом другом микроконтроллере, например, на ATmega32 или совместимо...
Почему вам стоит использовать Unity Simulator при разработке под мобильные платформы Небольшая заметка, которая будет особенно полезна начинающим разработчикам. Посмотрим на удобства, которые может предложить штатный симулятор, а также создадим свой девайс и добавим его в список устройств. Читать далее
Аутентификация и авторизация в проекте с микросервисной архитектурой: стратегии, практический пример Привет! На связи Олег Казаков из Spectr. Мы занимаемся разработкой цифровых сервисов, в том числе высоконагруженных систем с микросервисной архитектурой и большим количеством различных интеграций.В статье расскажу об одном из кейсов при работе над проектом с микросерви...
[Перевод] Работа с SQL Server в C# с помощью скриптинга. Часть 2 В этой статье я покажу вам, как работать с Microsoft SQL Server в C# проектах посредством скриптинга. Реализовать это можно как в Windows, так и в macOS. Поскольку Windows, очевидно, является намного более популярной целевой платформой для C# и SQL Server, больше внимания я ...
Где мы находимся и куда идем? Делаем процесс тестирования прозрачным с Klaros TMS Для руководителя отдела тестирования важно иметь актуальную информацию об используемых тестовых кейсах, временных затратах на их выполнение, ретроспективную статистику о количестве и успешности прохождения ручных тестов (и, в идеальной ситуации, еще и автоматически извлекать...
Не можете измерить — не сможете улучшить: как мы используем метрики в разработке автотестов Привет! Меня зовут Александр, я работаю QAA менеджером в компании Wrike, начинал с позиции QAA инженера в далеком 2010-ом и был первым в этой роли. За 12 лет нам удалось построить крутую команду и создать систему контроля качества, которая позволяет быстро и без багов деплои...
Представляю универсальный responsive header для React.js Вы когда-нибудь думали о том, чтобы создать свой стартап? Почти каждому стартапу (да и +/- любой компании) нужен лендинг/сайт. А у каждого сайта вверху есть хедер с меню навигации. При чем в наше время он обязательно должно быть адаптивным, чтобы одинаково хорошо работать ка...
Dart 3 на практике: что принесёт нам мажорное обновление языка Dart 3 – самое мажорное обновление языка со времён Null Safety: он изменит многое в том, как мы пишем код и какие библиотеки используем. Рассказываем, как новые фичи помогут вам на практике и как от этого изменится способ взаимодействия с языком. Читать далее
6 простых принципов написания приложения на Vue, которое легко поддерживать (часть 1) Привет! Меня зовут Наташа Калачева. Я Frontend-разработчик в компании AGIMA. Vue — один из самых популярных фреймворков JS, его используют для разработки SPA и PWA. А его главные плюсы — это понятная, четкая документация, готовая структура и низкий порог входа.Тем не менее, ...
Тестирование Rails приложения с Turbo Frames Тестирование Rails приложения с Turbo Frames.Рассмотрено на примере написание теста для приложения, использующего Turbo-frame Rails 7. Читать далее.
Почему новый планшет Google Pixel Tablet вряд ли превзойдет Nexus 2013 года В недавней статье Ars Technica была рассмотрена тема планшетов Google, в частности, ностальгия вокруг второго поколения Nexus 7 2013 года. Несмотря на свои недостатки, эти ранние планшеты демонстрировали стремление Google к большим экранам и выпускались по доступным ценам, п...