Как публиковать библиотеку в Maven Central Portal в 2024 году Начиная с 12 марта 2024 года регистрация на OSSRH портале теперь недоступна. Большинство существующих туториалов в интернете описывает как раз опыт публикации через OSSRH на Maven Central. Из-за чего после марта 2024 года эти туториалы стали не актуальны для публикации проек...
Как я создавал мобильное приложение для хранения прочитанных книг BookDesk Всем привет! Меня зовут Александр, мне 33 года и я React-разработчик (10 лет опыта во фронтенде), я из Беларуси.Я хочу рассказать о моем опыте создания мобильного приложения для хранениях прочитанных книг BookDesk.Все началось еще в 2020 году, когда началась пандемия коронав...
Т-Банк (Тинькофф) Финтех: мой опыт обучения и попытка трудоустройства на позицию QA-инженера Всем привет! Хочу рассказать о своем опыте погружения в мир IT, получении новых знаний на курсах и попытке устроиться на работу в Т-банк (на момент моего решения это еще был Тинькофф). Что из этого получилось, постараюсь изложить ниже. В этом тексте (или сочинении, эссе, как...
Построение платформенного продукта в Авито Мы в Авито разработали свою внутреннюю платформу для разработчиков. Несмотря на то, что создание платформенного продукта — довольно затратная история, в итоге мы видим сплошные плюсы. Она растит скорость и качество разработки, делает системы стабильнее, помогает инженерам со...
Метод опорных векторов (SVM). Подходы, принцип работы и реализация с нуля на Python Метод опорных векторов (Support Vector Machine или просто SVM) — мощный и универсальный набор алгоритмов для работы с данными любой формы, применяемый не только для задач классификации и регрессии, но и также для выявления аномалий. В данной статье будут рассмотрены основные...
Линейная регрессия. Основная идея, модификации и реализация с нуля на Python В машинном и глубоком обучении линейная регрессия занимает особое место, являясь не просто статистическим инструментом, но а также фундаментальным компонентом для многих более сложных концепций. В данной статье рассмотрен не только принцип работы линейной регрессии с реализа...
Откуда брать идеи для пет-проектов Очень часто при создании пет проекта для обучения я сталкивался с проблемой идеи. Откуда их брать? Постарался собрать весь пак, откуда можно брать идеи для реализации пет проектов. А также где можно проверить свои навыки, самостоятельно изучая новые инструменты и фреймворки....
Кодогенерация и парсинг TypeScript с помощью typescript Одной из интересных возможностей пакета typescript является то, что он содержит API для генерации TypeScript-кода, а также парсер для работы с написанным на TypeScript кодом. Кодогенерация часто используется для автоматического создания типов для работы с http api (типизация...
Высокоточное измерение ЭКГ. Часть 2 В данной статье изложу свою концепцию регистрации и обработки сигналов ЭКГ в носимых устройств для решения задач обнаружения опасных состояний сердечно-сосудистой системы человека. Далее рассмотрю кратко реальную точность измерения ЭКГ и свой вариант ее по...
Реверс алгоритма поиска устройств в сети При создании оконного клиента под MS-Windows для удалённого взаимодействия с LED-матрицами стояла задача сделать автоматический поиск всех табло в сети. Моей первой идеей было перебирать все существующие IP-адреса конкретной подсети, по очереди посылая на них запросы и ожида...
[Перевод] Баг Y292B: мы обречены (снова) Измерение времени — очень сложная задача. Я выяснил это, набив шишки при попытке запрограммировать расширяемый хронометр для небесных тел Солнечной системы. Сложность в том, что все календарные системы имеют так много правил и исключений, что сборщик календаря, по сути, стан...
ABC-XYZ анализ на Python. Управление ассортиментом и схемами поставок Управление ассортиментной матрицей и складскими запасами является нетривиальной задачей для бизнеса, требует аналитики и научного подхода к решению задачи. Одним из методов управления ассортиментом и закупками является ABC-XYZ классификация. Рассмотрим ее реализацию на Pytho...
Создание мультиязычного вебсайта: для Китая и других регионов В этом обзоре я делюсь собственным опытом разработки многоязычных веб-сайтов на английском, китайском, русском и немецком языках.Мы будем говорить про языковые версии сайта, которые действительно будут работать в соответствующих регионах, а не сделаны автоматическим переводч...
Обзор языка Erlang и его синтаксиса Привет, Хабр! История Erlang 80-х годах прошлого века в стенах шведской компании Ericsson. Он был разработан первоначально для нужд телекоммуникаций, Erlang задумывался как инструмент для создания распределенных, отказоустойчивых систем с возможностью быстрого обновления код...
Разработка мобильного клиента СДУ «Приоритет» под ОС «Аврора» на фреймворке Qt Всем привет! Меня зовут Илья, и я разработчик ПО в области автоматизации документооборота в компании «Диджитал Дизайн». Так получилось, что изначально я iOS-разработчик, но по воле случая мне удалось поучаствовать в создании мобильного приложения — клиента СДУ «Приоритет» (д...
Sliver C2: Подробный туториал Данная статья содержит подробный разбор нашумевшего в 2023 году инструмента Sliver, который набирает популярность среди хакеров. Подробнее об этом описано в новостях xaker.ru. Приятного прочтения! Читать далее
Создание и тестирование gRPC сервиса (Spring Boot приложение) Привет, Хабр! Сегодня я поделюсь опытом работы с gRPC и расскажу, как создать и протестировать gRPC-сервис в приложении на Spring Boot. Основная проблема — это отсутствие структурированной информации по корректному тестированию gRPC сервиса. Эта статья будет полезна для тех,...
Road Run, или как я свою первую игру делал. Часть 1 Разработка игры это очень интересно и увлекательно, а ещё это красиво, и наличие подобного проекта украсит любое портфолио. Здесь я хочу поделиться полученным опытом в ходе решения этой задачи, какие инструменты я использовал и какие цели перед собой ставил. Читать далее
Всё ещё в поисках алгоритмического дзена Не так давно прочитал статью "В поисках алгоритмического дзена", где автор обсуждает подходы к использованию алгоритмов в рабочих задачах. В статье подчеркивается, что даже наивная реализация конкретного алгоритма будет быстрее готовых средств/реализаций, существующих в плат...
Концепция донглов в Embedded устройствах В этой статье мы рассмотрим не совсем типичный процесс взаимодействия с устройствами. Сразу замечу, что предлагаемая концепция применима преимущественно к мобильным устройствам, не привязанным к стационарному питанию. В качестве примера реализации мы будем использовать самую...
Как мы в Яндекс Путешествиях на Compose стёкла морозили Всем привет! Меня зовут Антон Урывский, я Android-разработчик в Яндекс Вертикалях. Мы создаём знакомые всем сервисы: Яндекс Путешествия, Недвижимость и Аренда, Авто.ру. Сегодня я поделюсь опытом создания фичи, которая блюрит не содержимое View, а всё, что находится под ...
Как я столкнулся с Tarantool-ом: разбор подводных камней на примере микросервисного pet-проекта Привет, Хабр! Меня зовут Сергей Скубач, я работаю в VK и разрабатываю облачное хранилище WorkDisk. Мы используем Tarantool в своём продукте, так как его разрабатывают и развивают наши коллеги. Я впервые столкнулся с Tarantool именно в VK, и для более глубокого понимания реши...
Архитектурные нюансы OpenStack. Базы данных как сервис, реализация Trove Привет, Хабр. Это вторая статья в цикле, в котором мы рассматриваем архитектуру основных сервисов OpenStack. Первая, в которой я рассказывал о Nova и общих паттернах построения платформы, находится здесь. Сегодня погрузимся в детали реализации сервиса DBaaS, который в платфо...
Подсветка элементов онбординга. Spotlight onboarding / Highlight element. SwiftUI iOS15+ Всем привет! Меня зовут Саша, я iOS-разработчик компании Ozon. Я занимаюсь разработкой и развитием мобильного приложения продавца. Сегодня хотел бы поделиться опытом нашей команды по кастомизации онбординга для вашего мобильного приложения.Представьте, ваша команда несколько...
Реализация чата на Flutter при помощи вебсокетов Всем привет, на связи PurplePlane! В этой статья мы хотели бы рассмотреть реализацию простого чата на языке Dart, используя пртокол websocket.Рассмотрим пример использования вебсокета при реализации простого чата с помощью библиотеки web_socket_channel. Читать далее
Подбор цветов для проекта: советы и сервисы А зачем оно вообще надо? Поиск идеального сочетания цветов может оказаться непростой задачей, особенно для новичка в любой из профессий, связанных с визуалом: дизайнер, фотограф, видеограф и т.д. Когда не достаёт нужных знаний, когда хочется получить быстрое решение или у...
Градиентный бустинг. Реализация с нуля на Python и разбор особенностей его модификаций (XGBoost, CatBoost, LightGBM) На сегодняшний день градиентный бустинг (gradient boosting machine) является одним из основных production-решений при работе с табличными, неоднородными данными, поскольку обладает высокой производительностью и точностью, а если быть точнее, то его модификации, речь о которы...
Работа с файлами в ОС CP/M на компьютере «Profi» В предыдущий раз пришлось уделить внимание и бегло рассмотреть работу с файлами в ОС CP/M. А так как «Быстро, хорошо не бывает» (с) было приято решение о необходимости подробного и основательного разбора данного вопроса, так что бы в будущих статьях не тратить на него время ...
Как сменить технологию и не закопаться в рефакторинге: опыт внедрения DDD в проект на FastAPI — Часть 1 Привет, хабравчане!В серии статей расскажу, что такое DDD (domain-driven design) и какие у него преимущества и недостатки. Разберемся, когда применять подход и как сочетать его с FastAPI, популярным ASGI фреймворком на Python.В этой части рассмотрим паттерны проектирования R...
О внутрикластерной маршрутизации через Istio Привет, Хабр! Я Степан, DevOps‑инженер, занимаюсь созданием CI/CD процессов с учётом проверки кода на безопасность, поддержкой и разверткой новых кластеров Kubernetes, соблюдением требований безопасности и созданием системы мониторинга и логирования — все это ...
Нейроэкономика — как люди принимают решения о покупках, инвестициях, смене работы Внезапно экономисты и нейробиологи нашли друг друга. Выяснилось, что чисто математические модели могут не работать не только потому что часть людей не любят или не умеют считать, но и по каким-то другим причинам. Так появилось направление на пересечении психологии, нейробиол...
Сравнение сборщиков мусора в Unity и .NET В этой статье я хотел бы рассказать о различиях между сборкой мусора в Unity (IL2CPP) и .NET. Несмотря на то что IL2CPP существует более 10 лет, я до сих пор встречаю недоумение, когда беседа заходит на тему Garbage Collector (GC) касательно Unity. Считать реализацию GC в .N...
Создание процессора с нуля для чайников В жизни многих программистов наступает момент, когда хочется понять как же все таки работает процессор на самом деле, а не в абстрактных схемах высокоуровневых компонентов. У меня возник такой вопрос некоторое время назад, но все материалы которые я находил по этой теме либо...
Инструкция по переезду и миграции данных с Google Firebase на Self-hosted Supabase Всем доброго дня! Комментарии к моей предыдущей статье о том, как я развиваю свой pet-проект, а также различные законы, подразумевающие локализацию персональных данных на серверах, размещенных на территории РФ (в частности Федеральный закон от 21.07.2014 № 242-ФЗ «О внесении...
Мой 2-х месячный опыт настройки Selenoid под Android за 10 минут Если вы читаете эту статью, то наверняка слышали о Selenoid. Это мощное решение написанное на Go от компании aerokube для управления Docker-контейнерами, в которых «завёрнуты» все необходимые программы и драйверы для тестирования в браузерах или на Android-эмуляторах.Как утв...
Памятка: 15 фраз для стендапов на английском языке Работая с зарубежными коллегами, вам наверняка придётся участвовать в стендапах — коротких ежедневных встречах, на которых IT-специалисты рассказывают о выполненных задачах, проблемах и планах на сегодня. Делать это на английском сложнее, чем на родном языке, но, к счастью, ...
Дизайн уровней в The Last Guardian: пример геймплейного повествования The Last Guardian поражает своим уникальным подходом как в плане геймплея, так и сюжета, обеспечивая игроку захватывающий опыт и не оставляя равнодушным к второстепенному, но не менее важному, неиграбельному персонажу. Увлекательная реализация искусственного интеллекта живот...
Шаблонизатор GO text template для новичков Шаблоны - это инструмент программирования, который позволяет создавать структурированный и повторно используемый контент или код. Они имеют много применений в различных областях, включая веб-разработку, генерацию отчетов, форматирование текста и многое другое. В целом, ...
Аутентификация, авторизация пользователей и единый вход (SSO) с использованием Django В этой статье исследую технологию SSO. Начинаю с разбора концепций аутентификации и авторизации. Рассматриваю как они работаю в контексте Django. После прохожу путь от описания как работает SSO простыми словами, до разбора протоколов используемых в SSO.В итоге делаю реализац...
[Перевод] Используем Hugging Face для обучения GPT-2 генерации музыки Hugging Face имеет полнофункциональный набор инструментов, от функций создания датасетов до развёртывания демо моделей. В этом туториале мы воспользуемся такими инструментами, поэтому полезно будет знать экосистему Hugging Face. К концу туториала вы сможете обучить моде...
[Перевод] Краткий обзор техник векторизации в NLP Как переводчик-редактор, я интересуюсь темой NLP и автоматизации рутины бюро переводов. Изучая вопрос того, как смысл слов превращается в векторы, наткнулся на эту обзорную статью. Статья мне показалась изложенной доступно, поэтому я перевел ее для удобства других коллег. Ра...
В поиске оптимального подхода к миграциям в Go Привет! Меня зовут Нина, и я Golang разработчик.Однажды, мы поняли, что в нашей компании очень много Go-сервисов, но каждая команда использует свой инструмент и подход. Поэтому мы решили систематизировать и унифицировать инструменты, используемые для создания и применения ми...
Тестирование UI в Compose Multiplatform Собираясь писать UI-тесты для приложения на Compose Multiplatform, я столкнулась с дефицитом туториалов и документации по этой теме. Из полезного были только пара статей (https://habr.com/ru/articles/674112/) и выступлений на недавних конференциях, а примеры в основном своди...
Переезжаем с DUO Mobile на Мультифактор. Опыт (и грабли) QIWI Когда каждый день слышишь о новых утечках учетных данных пользователей, а социальная инженерия и разного рода мошенники активно прокачивают свои скиллы в выманивании паролей у пользователей, многофакторная аутентификация становится must have.А если мы говорим о работе в боль...
[recovery mode] Развертывание программного комплекса на Asp.net на российских ОС В России все больше пользователей и организаций используют российские Linux системы. Но при подготовке пакетов для комплексных решений на этих системах могут возникнуть сложности, связанные с несовместимостью ПО, необходимостью настройки пакетов и т.д. В этой статье рассмотр...
Кратко про микросервисы на Scala и Erlang Привет, Хабр!Микросервисы давно являются некой "попсой" для создания гибких, масштабируемых и отказоустойчивых систем. И естественное имеет свою реализацию в функциональном программирование.В статье рассмотрим два языка программирования, которые выделяются своим функциональн...
Уравнение с тремя неизвестными: как отлавливать баги в системах хранения данных Привет! Меня зовут Никита Гуцалов, я инженер в компании YADRO и занимаюсь разработкой ПО для системы хранения данных TATLIN.UNIFIED. Вообще с системами хранения данных (СХД) я работаю уже много лет и люблю эту тему, поскольку она постоянно бросает новые вызовы, заставляя реш...
Введение в библиотеку Diffusers и диффузионные модели Diffusers — это библиотека от Hugging Face, которая позволяет работать с сотнями предобученных моделей класса Stable Diffusion для создания изображений и аудио.Всегда хотели стать художником, но у вас лапки? :) Тогда Diffusers этот то, что вам нужно!В этой статье рассмотрим ...
Как я собрал солнечную станцию своими руками: детальный обзор компонентов и процесса сборки Однажды автор решил, что самостоятельно соберет дополнительный источник, так как у него есть опыт работы с электроникой, а также много разных инструментов для этого. В статье он рассказал, почему решил сделать именно солнечную станцию, и детально расписал основные её ча...
Как я проходила стажировку в отделе аналитических решений почти без опыта работы с данными Привет, меня зовут Луиза, я инженер данных в ЮMoney — работаю здесь уже год. Мы собираем данные, структурируем их, храним и создаём аналитические решения, например OLAP-кубы и дашборды. Департамент разделён на несколько команд, у каждой своя предметная область. За год я прев...
Универсальные типы в python Универсальные типы в python являются незаменимым инструментом, который позволяет выявлять множество ошибок на моменте написания кода, а также делает код чище и элегантнее.Меня зовут Саша, и в своей работе часто сталкиваюсь с ситуациями, в которых нужно создавать классы, рабо...
Протектор и LLVM-обфускатор. Сравнение двух подходов к решению задачи запутывания кода Добрый день, Хабр! В данной заметке я постараюсь сравнить два разных подхода к задаче запутывания машинного кода – это протектор и обфускатор, построенный на базе LLVM-фреймворка. Нам пришлось с этим столкнуться, когда возникла задача защиты библиотек Guardant под разны...
[Перевод] Основы Scrum менее, чем за 10 минут (Scrum Alliance) Скрам – это легкая методология, которая помогает людям, командам и организациям создавать ценности. Это простая и намеренно неполная система, которая позволяет пользователям полностью раскрыть свой потенциал и работать в режиме Agile. В центре внимания Скрам...
Двигатели переменного тока – точные модели На семинаре «Преподавание электропривода в вузах», прошедшем в ЛЭТИ пятого октября прошлого года, был представлен доклад Алексея Сергеевича Анучина (далее для краткости А.С.) под названием «Модели, которым мы учим студентов».Доклад был посвящен состоянию дел с моделями двига...
database/sql: плохой, хороший, злой Многие Golang-разработчики пробовали работать с БД в Go, и у каждого — свои боли. В этой статье разберём библиотеку database/sql как безотносительно конкретной СУБД, так и применительно к YDB. Рассмотрим трудности эксплуатации при использовании драйвера database/sql на...
Разработка сайта на Тильде на примере реального проекта — подход и разбор решений по UX и UI Привет! Сегодня хочу поделиться опытом разработки многостраничного сайта и на конкретном примере рассказать, как действую, чем руководствуюсь и на что обращаю внимание с самого начала. Погнали. Читать далее
Устройство для энтузиастов — телефон на ОС «Аврора» «Аврора» на фоне «Авроры». Привет, читатель! ОС «Аврора» — это отечественный форк финского проекта. Система позиционируется как решение для корпоративного сегмента, однако не так давно появились устройства для личного пользования. Я давно ждал, что эта операционка станет ...
Уже поменяли шину? Наш опыт «переобувания» и разработки интеграционной платформы Хабр, привет! На связи Дмитрий Бадулин, я занимаюсь разработкой ПО в компании К2Тех. Корпоративная сервисная шина, или как это по-другому называется, интеграционная платформа — это отдельная боль для множества компаний. И сегодня в условиях, когда некоторые middleware-решени...
Как на самом деле работает дефицит калорий. Часть 3 Из первой части вы узнали (или узнаете, если еще не читали), почему дефицит в 20% от поддержки — стандартная частая рекомендация и что будет, если есть меньше, например, следуя очень низкокалорийным диетам и неожиданный положительный эффект таких диет.Из второй части вы узна...
Как заставить code coverage работать на вас В этой статье я хочу рассказать о своём взгляде на code coverage и его использовании в разработке и тестировании ПО. Постараюсь развенчать популярные мифы, а также дам несколько рекомендаций, как улучшить качество тестов. Читать далее
В 20 раз быстрее Nvidia H100 и на порядок дешевле. Представлен Sohu — «самый быстрый ИИ-чип всех времён» Молодая компания Etched представила то, что она называет самым быстрым ИИ-чипом всех времён. Решение называется Sohu. По заявлению создателей, один сервер с восемью ускорителями на основе Sohu сопоставим по производительности со 160 ускорителями Nvidia H100! То е...
[Перевод] Демистифицируем парсинг PDF: конвейерная обработка Преобразование неструктурированных документов, таких как PDF-файлы и отсканированные изображения, в структурированные или полуструктурированные форматы является важной составляющей искусственного интеллекта. Однако из-за замысловатой природы PDF-файлов и сложности задач, свя...
[Перевод] Небольшой туториал по полигруппам в Zbrush Полигруппы (Polygroups) в Zbrush представляют из себя способ разделения уже существующей 3D-модели на группы полигонов с целью выполнения над ними различных видов работ. При создании каждой из этих групп полигонов ей назначается свой уникальный цвет, что помогает нам визуаль...
Процедурная генерация укрытий в играх В игровых мирах сражения, взаимодействия НПС и стратегические маневры приводят к необходимости поиска точек защиты или точек укрытия (cover). В этой статье я рассмотрю один из аспектов игровой механики – создание такой системы на основе анализа окружения, которая позволяет и...
Настраиваем ExecutorService'ы на практике В этой статье хочу рассмотреть что такое ExecutorService в Java, зачем он нужен, варианты создания и в как его настраивать для решения практических задачПонимаю что есть много подобных статей, но в тех статьях что мне удалось найти не хватало практических примеров, сегодня х...
Добавляем зрение, слух и голос в свой ChatGPT бот в Telegram Поддержка преобразования речи в текст была в OpenAI API уже давно, а вот из текста в речь, а также распознавание изображений было добавлено совсем недавно. В связи с чем продолжаю свою серию туториалов по разработке собственного ChatGPT бота в Telegram. Читать далее
О причинах технического долга, том, как с ним бороться и убедить бизнес, что это проблема Привет, Хабр! Технический долг есть в любом крупном проекте. Он возникает, когда копятся компромиссные решения, проблемы в коде или архитектуре. Важно, что эти решения и проблемы усложняют и удорожают поддержку и обновление кода в будущем. Это своеобразные «проценты». Чем бо...
[Перевод] Мягкое знакомство с дополнительным кодом Недавно, общаясь по видеосвязи с другом, я рассказывал ему о своих идеях по реализации нового продукта. В разговоре я упомянул добавление больших знаковых чисел в ассемблере с использованием дополнительного кода, на что получил от собеседника вопрос: «Что такое дополнительн...
Проектируем микросервисы с Reactive Manifesto Работаете с распределенными системами или только пытаетесь к ним подобраться? Проектировать такие системы с нуля бывает сложно и страшно: чтобы учесть все нюансы, нужен определенный багаж знаний. На помощь приходит Reactive Manifesto — документ, который обобщил опыт цел...
Мемоизация в React: я почитал документацию вместо вас В статье рассмотрены три инструмента мемоизации в React: useMemo, useCallback, memo. Главный источник информации: документация React. Не всем комфортно работать напрямую с документацией, так что если вы постоянно откладываете погружение в документацию React - я сделал это за...
Как использовать blue-green-деплой: руководство по выкату одного и нескольких приложений В статье я задеплою приложение в blue-green, а также покажу, как работает смена между blue и green на практике. Cначала рассмотрим реализацию деплоя приложения в blue-green-стратегии, а затем попробуем werf bundle для деплоя нескольких приложений из одного репозитория. Будем...
Как один российский банк пытался запустить бренд-медиа об ИИ. Нечеловеческая комедия в 3 частях Привет, я журналист и редактор с 16-летним опытом работы в крупных российских СМИ, в основном, в сфере ИТ и экономики/бизнеса, в т.ч. банковского ИТ. В моём активе из профильных изданий опыт работы в CNews, РБК, «Секрете фирмы», «Ведомостях», а также запуск бренд-медиа (бизн...
У вас новый ремонт? Лучше! Рисунок нового ремонта. Как мы из Stable Diffusion сделали дизайнера интерьеров Сейчас технологии машинного обучения и нейронных сетей находят широкое применение в различных сферах, не исключая дизайн и ремонт помещений. Одной из таких технологий является методы генеративных нейросетей, которые позволяют преобразовывать изображения, сохраняя основные эл...
Боремся с блокировками с помощью Trojan TCP на слабых устройствах c OpenWRT В данной статье рассмотрим как:Настроить обход блокировок с помощью Trojan TCP, tun2socks и bird2 (BGP) на устройствах с 8 Мб ПЗУ и 64 ОЗУ (8/64);Настроить существующее подключение к OpenVPN серверу, которое могло или может перестать работать, через Trojan TCP туннель&n...
Создание скрипта на Python с помощью ChatGPT-4о: автоматизация миграции доменов ChatGPT-4o написал Python-скрипт на 400 строк, который с помощью API Cloudflare переносит домены со всеми настройками между разными аккаунтами. В статье подробно рассмотрен процесс создания скрипта, включая сохранение и копирование настроек и DNS-записей. Также приводятся пр...
Автоматизация тестирования специфических сценариев В этой заметке я поделюсь опытом автоматизации тестирования специфичных сквозных (E2E) сценариев, с которыми мне пришлось столкнуться.Для успешного решения этой задачи, я нарушил один из важных принципов тестирования - делай тесты независимыми. Далее я покажу, почему я так п...
Разбор задач Школы программистов 2023 Школа программистов hh.ru 2023 успешно стартовала, а значит пришло время традиционно показать вам задачки со вступительных испытаний. В этой статье мы разберемся, как устроен отборочный тур изнутри и разберем решения задач этого года. Мы так уже делали: последние материалы с...
Создание первой игры: попытка попасть в gamedev Привет! В этой статье мы поделимся опытом создания нашей первой игры, несмотря на то, что мы не имели большого опыта в создании игр. Читать далее
Django + React. Авторизация с помощью сессий между разными источниками Всем здравия! Сегодня будет рассмотрена авторизация с помощью сессий между Django и React, которые находятся на разных доменах, т.е случай "cross-origin". Я в двух словах донесу принцип работы, причины появления концепций и технологий описанных здесь, оставлю ссылки на более...
Логи в файлах: написал своё приложение для просмотра структурированных логов Не каждому проекту нужно децентрализованное логирование. В моём случае, оказалось проще хранить логи в .json файлах формата Compact Log Event Format (CLEF). Мне нужно было простое и бесплатное решение для просмотра логов. Читать далее
Комбинаторы синтаксического анализа на Kotlin Существуют разные способы реализации синтаксических анализаторов для заданной грамматики. В статье рассматривается реализация комбинаторов синтаксического анализа на языке Kotlin для разбора контекстно-свободных и контекстно-зависимых языков. Читать далее
Бьемся с индексацией парных неравенств в планах PostgreSQL Я уже не раз писал, что условия с несколькими неравенствами (<, <=, >=, >) обычно плохо подходят для индексирования "классическим" btree, вызывают "тормоза", и необходимо придумывать различные нетривиальные подходы в PostgreSQL, чтобы добиться хорошей производите...
Как сделать NeoVim самым удобным текстовым редактором: туториал по настройке В этой статье затронем редакторы семейства Vi и разберем базовые сценарии работы с NeoVim. Начинающие специалисты смогут использовать материал в качестве туториала, а опытные разработчики, возможно, отметят для себя что-то новое.Почему именно NeoVim? Всё просто: этот те...
Алгоритм генерации столбцов (Column Generation) Генерация столбцов - подход к решению задач смешанного линейного программирования (MIP) с большим кол-вом переменных или столбцов.В статье представил теоретическую предпосылку, схему алгоритма и python реализацию подхода. В практической части рассмотрел решение двух задач: з...
3 399 метров. Как люди дышат на такой высоте и зачем они пьют коку? Здравствуй, Хабр! В настоящий момент я пишу большую статью про Перу: как выглядят города, как работает транспорт, как поживают потомки инков, зачем они едят морских свинок на обед. В процессе написания я натолкнулся на очень большую тему, которую решил выделить в отдельную п...
Неинвазивный мониторинг ЦОД: повышаем надежность и снижаем затраты В центрах обработки данных используется оборудование от разных вендоров, с различными встроенными системами мониторинга. Когда таких систем становится много, уследить за подобным «зоопарком» непросто.Но как сделать систему мониторинга, которая будет работать в любом автозале...
Обзор и гайд по Tortoise ORM: собрал в одну статью все, что надо знать об инструменте и своем опыте работы с ним Привет, Хабр! Меня зовут Даниил Лихачев, я Python backend developer в диджитал-продакшене Далее. Сегодня я хотел бы представить вашему вниманию асинхронную библиотеку для работы с базами данных под названием Tortoise ORM. Это обзорная статья, чтобы показать, что из себя пред...
[Перевод] Секреты и наука продуктивной четырёхдневной рабочей недели Сто лет назад экономисты и философы предполагали, что к 2000 году в промышленно развитых странах продолжительность рабочего дня будет составлять всего 4 часа. И, хотя мы прошли долгий путь от длинного 12-14-часового рабочего дня в первой половинк XIX века, мы всё ещё даже не...
[Перевод] std fs в Rust медленнее, чем Python? Нет, это аппаратный баг В этой статье я поделюсь с вами долгой историей, которая начинается с op.read() opendal, а заканчивается неожиданным поворотом. Это путешествие оказалось для меня достаточно поучительным, надеюсь, и для вас оно будет таким же. Я постараюсь максимально точно воссоздать с...
Создание основной механики игры Angry Birds на Unity Начну с того, что я новичок в разаботке на Unity. Как и многие другие начинающие разработчики, мне хочется набраться опыта в создании игр на Unity на основе небольших проектов, копирующих механики всем знакомых игр. Читать далее
Эффективная запитка от литиевых аккумуляторов (серия TI TPS63xxx) Эта статья посвящена разбору решений по запитке 3,3-вольтовых контроллеров (и их периферии) от литиевых аккумуляторов, напряжение которых меняется в процессе работы от 4,2 В до 3 В и даже ниже, в случае глубокого разряда. Получить стабильные 3,3 В в этом случае не так-то ...
[Перевод] Два потока, одно ядро: как устроена одновременная многопоточность Одновременная многопоточность (Simultaneous multithreading, SMT) — это функция, позволяющая процессору одновременно обрабатывать команды из двух разных потоков. Но задавались ли вы когда-нибудь вопросом, как это работает? Как процессор отслеживает два потока и распределяет ...
REST API сервер на Bash с использованием сокетов и Apache Всем привет! Ранее рассказывал о том, как создать REST API и Web-сервер на PowerShell для Windows, а также упоминал, что подобный сервер будет работать и в системе Linux, благодаря кроссплатформенной версии PowerShell Core. Безусловно, для подобных целей лучше используются с...
Почему инфраструктура big tech обычно состоит из самописных решений Привет! Предлагаю поговорить о том, почему крупные IT‑компании так любят создавать в своей инфраструктуре собственные решения. Казалось бы, напрашивается ответ: NIH‑синдром и ничего более. Но такой ответ вряд ли может считаться сколько-нибудь полным,...
Проект Альфа-Бизнес Mobile Web (веб-приложение), или Что делать если AppStore — всё? Начиная с ведения санкций в 2022 вниманием не обошел и банковский сектор. Сказалось это и на возможности вести разработку и обновлять банковские приложения в Google Play и AppStore. Если ограничение Google Play можно обойти через множество альтернативных сторов или, на худой...
А/Б тестирование с CUPED: детальный разбор Хабр, привет! Сегодня обсудим, как применять CUPED для повышения чувствительности А/Б тестов. Рассмотрим на простом примере принцип работы CUPED, покажем теоретически за счёт чего снижается дисперсия и приведём пример оценки эксперимента. Обсудим, как выбирать ковариату, как...
Методика нахождения потерь в обмотке дросселя вследствиe скин-эффекта и эффекта близости При расчетах трансформаторов и дросселей в силовой электронике очень часто сталкиваешься с необходимостью нахождения потерь в данных элементах и зачастую используются в основном только омические, разработчики 1часто забывают о потерях при поверхностной проводимости, потеря...
Паттерн Aggregate Outside Руслан Гнатовский aka @Number55 в свой статье Когда ни туда, ни сюда, или в поисках оптимальной границы Domain слоя описал известную проблему протекания бизнес-логики из агрегата, в случае если эта логика зависит от данных которые находятся вне агрегата, и предложил нескольк...
Как мы сделали переводчик точнее и дешевле Google и Yandex Всем привет! Меня зовут Никита, я Data Scientist из Raft. Сегодня я расскажу вам о том, как мы решили задачу перевода каталога товаров большого интернет-магазина с русского на арабский язык с применением искусственного интеллекта. Мы рассмотрим различные подходы и идеи, возн...
Проблема непонимания существующего кода, или Как руководству делать не надо Бывает так, что в продуктовой IT-компании выстраивается иерархия, в которой верхние уровни работников компании совершенно не понимают как производится продукт, который компания производит и продаёт. По сути руководители знают как продать, но не знают как произвести. Для прои...
Основы тестирования в Go: mock-объекты, fuzzing и property-based testing Привет, Хабр!Golang как ЯП очень хорош для разработки высокопроизводительных приложений. В любом проекте наступает момент, когда нужно проверить, насколько хорошо все работает на самом деле, это можно сделать с помощью тестирования.Тестирование в Go можно выполнять с помощью...
Activision показала новую карту Warzone всего на 100 игроков Activision выпустила видео с подробностями разработки новой карты Warzone, в котором уточнила, что режим королевской битвы будет поддерживать только 100 бойцов одновременно, хотя ранее число достигало 150. Разработчики из студии Raven Software объяснили, что такое решение бы...
Как создать shader в Flutter для эффектной анимации в приложении? Hola, Amigos! Меня зовут Сергей Климович, я Mobile Team Lead агентства заказной разработки Amiga. В мире мобильной разработки Flutter выделяется своей гибкостью и простотой в создании красивых пользовательских интерфейсов. Однако, чтобы добавить дополнительные визуальные эфф...
Можно ли научить чат-бота всегда говорить правду. Часть 2 Эта статья является продолжением анализа существующих способов устранения галлюцинаций чат-ботов и повышения точности их ответа. В прошлый раз был разбор того, как оценивать точность в процессе диалога, а сегодня мы поговорим о методах, которые из научного сообщества уже про...
Как нейронки дают пользователю новый опыт, не выталкивая его из уютной зоны комфорта. Разбираем на примере Яндекс Музыки В пятницу увидел гору уведомлений из всех утюгов. Оказалось, Яндекс Музыка провела ребрендинг и кардинально обновила функционал. При этом есть стойкое ощущение, что несмотря на все обзоры, никто так нормально и не раскрыл самую мякотку этого обновления. В этой статье постара...
[Перевод] При полной луне этот код работал иначе Люблю хорошие баги, особенно такие, которые поначалу сложно объяснить, а потом приходит момент, когда хлопаешь себя по лбу – ну конечно! На Github есть один баг, он называется «Эффект гистерезиса в методе подъема на холм применительно к пулу потоков» – очень интересное чтен...
Transient storage в EVM (EIP-1153): на грани добра и зла В одной из статей о расчете газа в Ethereum (ссылка) я рассказал об истории изменений механизмов подсчета газа для хранилища смарт-контракта (storage) — от правил, заложенных в протоколе изначально, до EIP-3529. Во всех этих изменениях прослеживается основная проблема: нерац...
Как устроена наша PIM-система, и почему мы не используем ни реакт, ни микросервисы Пара слов обо мне. У меня никогда не было серьезного плана делать свой продукт, открывать под это дело компанию, погружаться в custdev и вот это вот всё. Днем я работал в сеньёр девелопером, по вечерам - делал pet-проекты типа онлайн версии настольной игры или онлайн-редакто...
Как и зачем мы парсим XML Большинство разработчиков рано или поздно сталкиваются с XML. Этот язык разметки настолько глубоко вошел в нашу жизнь, что сложно представить систему, в которой не используется он сам или его подмножества. Разбор XML - достаточно типовая задача, но даже в ней можно выделить ...
Из тестирования в техподдержку и обратно В тестирование попала впервые пару лет назад - это была маленькая аутсорсинговая компания, в которую меня позвал их HR, увидев моё резюме в телеграмме. К сожалению, через пару месяцев в компании начались проблемы и бОльшую часть сотрудников уволили или отправили в “отпуск”...
Об отображении 10-бит цвета с использованием OpenGL (GLFW) Вашему внимания предлагается небольшой этюд, посвящённый отображению 10-битного цвета (1024 градаций по каждому каналу) на мониторе через OpenGL при помощи библиотеки GLFW. Под катом мы напишем пару небольших приложений, открывающих два окна, где рассмотрим тестовые изображе...
Отладка в SQL Developer Привет! Меня зовут Алексей Маряхин, я разработчик на Oracle. В этой статье продолжим знакомиться с темой отладки PL/SQL-кода. В предыдущей статье мы изучили возможности отладки в PL/SQL Developer. В этой предлагаю рассмотреть ещё один инструмент — SQL Developer (версия...
Эффект дежавю: норма или симптом заболевания? Исследования показывают, что у большинства из нас в определенный момент жизни возникает ощущение дежавю. Внезапное и необъяснимое чувство, что ты уже здесь был, делал и говорил то же самое. Но вы точно знаете, что это невозможно, ведь вы никогда раньше не были в этом месте, ...
Быстро или мгновенно — с какой скоростью должен работать ваш продукт. Часть 1 Всем привет! Я Антон Телицын, продакт-менеджер в AI-центре Тинькофф, до этого работал в Miro над движком доски. В обеих компаниях сталкивался с вопросами управления скоростью реакции продуктов в разных ситуациях.Это первая статья про управление отзывчивостью продуктов. Рассм...
[Перевод] Что такое гексагональная архитектура. Разделение бизнес-логики и инфраструктуры с помощью портов и адаптеров Гексагональная архитектура — это архитектурный паттерн, представленный Алистером Кокберном и описанный у него в блоге в 2005 году. Основная идея заключается в том, чтобы структурировать приложение таким образом, чтобы это приложение можно было разрабатывать и тестировать в ...
Написание open source проекта на примере рендера для ttf шрифтов. Начало В данном проекте планируется создать парсер, а затем и рендер для шрифтов с расширениями TTF, OTF, TTC, OTC.Цикл данных статей является своеобразным блогом, но не обучающим. Наоборот я прошу об обратном отклике в виде комментариев.Данный влог - это опыт создания open source ...
Логирование в Golang Привет, Хабр!Как в Golang логирование поживает? Рассмотрим этот вопрос в статье.Рассмотрим основные библиотеки и подходы. Читать далее
Magento 2: Visual Search модуль (php + Tensorflow) Всем привет! Давайте знакомиться ;) Я Аня, и я php разработчик. Основной стек - Magento. Очень люблю в свободное время писать всякие интересные штуки, и сегодня я хочу поделиться своей наработкой для реализации поиска по изображению в Magento 2. На мой взгляд - это полезная ...
Telegram-бот как системный администратор сервера При запуске сервера часто необходимо предоставить доступ к части функционала другим пользователям, при этом сами пользователи могут не иметь достаточных компетенций для полноценного использования софта и/или мы хотим ограничить доступный набор команд.Одним из вариантов решен...
Кем работать в IT в 2024: пентестер Рубрика «Кем работать в IT» — это интервью с представителями IT-профессий, в которых специалисты рассказывают о тонкостях своей работы: плюсах, минусах, подводных камнях и заработной плате. Мы надеемся, что джунам и стажёрам она поможет больше узнать о том, что их ожидает на...
Системное мышление на практике: переход от монолита к микрофронтендам и обратно Меня зовут Олег, я уже 20 лет работаю в ИТ и в основном на Enterprise-проектах. Сейчас работаю в Альфа-Банке на проекте Альфа-Онлайн и хочу поделиться своим видением управления сложностью на больших проектах.Мой опыт работы с десятком комплексных решений показал, что системн...
Теоретические основы всех популярных алгоритмов машинного обучения и их реализация с нуля на Python В данной статье в виде ссылок представлены все популярные алгоритмы классического машинного обучения с их подробным теоретическим описанием и немного упрощённой реализацией с нуля на Python, отражающей основную идею. Помимо этого, в конце каждой темы указаны дополнительные и...
Кем работать в IT в 2024: ведущий разработчик 1С Рубрика «Кем работать в IT» — это интервью с представителями IT-профессий, в которых специалисты рассказывают о тонкостях своей работы: плюсах, минусах, подводных камнях и заработной плате. Мы надеемся, что джунам и стажёрам она поможет больше узнать о том, что их ожидает на...
Почему PASETO лучше для аутентификации, чем JWT В веб-разработке одним из наиболее популярных решений является аутентификация на основе токенов. Чаще всего для создания системы аутентификации используют JWT (порой даже там, где это не нужно). Но несмотря на популярность, JWT имеет ряд недостатков. Поэтому появляются новые...
Java Digest #15 Всем привет!
Основные функции Apache Tomcat Привет, дорогие читатели! Apache Tomcat — это открытое программное обеспечение, реализующее спецификации Java Servlet, JSP и Java WebSocket, предоставляя таким образом платформу для запуска веб-приложений, написанных на языке Java. Разработанный и поддерживаемый Apache Softw...
[Перевод] Java ScopedValue: Ускоренный ThreadLocal В инкубаторе JEP-429 появилась новая альтернатива ThreadLocal под названием ScopedValue (в значительной степени как поддержка и развитие Virtual Threads). ScopedValue предназначен для того, чтобы предоставить более легкую альтернативу ThreadLocal, которая хорошо работает с в...
Библиотеки для реализации алгоритмов сжатия данных в Rust Привет, Хабр!Сегодня мы рассмотрим хорошие библиотеки для реализации алгоритмов сжатия данных на ЯП Rust. Сжатие данных позволяет уменьшать объемы данных без потери качества или с минимальными потерями. Различают две основные категории методов сжатия: с потерями и без потерь...
Мапы в Go: уровень Pro Подробный туториал по процессам записи и чтения данных в мапах Go. Объясняем проблемы переполнения, эвакуации элементов; важность передачи количества элементов при создании мапы. Рассказываем, почему в Go нельзя обращаться к ключу или значению по адресу. Читать далее
Универсальные датасорсы в iOS-разработке В мире iOS-разработки, коллекции – это основной инструмент для представления данных в упорядоченной форме, таких как списки, таблицы, галереи фотографий или медиа-файлов. Они широко используются в различных сервисах, от социальных сетей до медицинских приложений.&n...
Актуальные методы проверки работоспособности больших и высоконагруженных сетей. Протоколы мониторинга Привет, Хабр!В данной статье мы рассмотрим актуальные методы проверки работоспособности сетевого оборудования. Конкретно в этой статье мы поговорим про протоколы мониторинга. Статья является переваренным опытом компании Netopia, которая занимается разработкой программного о...
Тест-дизайн на практике: комбинируем разные техники тестирования, на примере проверки систем оплаты Привет, Хабр! Меня зовут Сергей, я тестировщик в “Петрович-Тех”. В этой статье хочу поговорить о комбинировании различных техник тестирования и поделиться опытом тест-дизайна для проверки системы оплаты.На всем своем профессиональном пути тестировщика я так или иначе всегда ...
Как я написал свой первый классификатор эмоций Всем привет! Немного о себе. Меня зовут Максим, я работаю специалистом по Machine Learning в компании SimbirSoft. Последние два года я углубленно изучал область машинного обучения и компьютерного зрения и сегодня с удовольствием поделюсь с вами опытом разработки личного пет-...
Мифы и реалии «Мультимастера» в архитектуре СУБД PostgreSQL. Часть. 1 Привет, Хабр! Недавно мы делали доклад на конференции HighLoad 2023 — «Мифы и реалии Мультимастера в архитектуре СУБД PostgreSQL». Мы — это Павел Конотопов (@kakoka) и Михаил Жилин (@mizhka), сотрудники компании Postgres Professional. Павел занимается архитектурой построения...
Добавление эффекта окна Aero Glass Наверно все, кто работал с Windows Vista (есть ведь ещё к примеру заядлые XPшники которые и Aero в глаза не видели :)), видели так называемый Aero Glass эффект — один из отличительных эффектов Windows Vista в режиме Aero. По умолчанию этот эффект распространяется на заголовк...
Опыт создания UI библиотеки на C++ Началось все почти два года назад в декабре, практически перед новым годом.Наш основной проект (видео мессенджер) использовал WTL для Windows и GTKmm для Linux. Поддержки мака не было. Огромной неприятностью было тащить два идентичных клиента, которые, по идее, должны делать...
NASA переходит ко второй фазе разработки импульсно-плазменной ракеты, способной достичь Марса за 2 месяца Высадка людей на Марс — одна из главных целей космических агентств, однако на пути её реализации множество технических вызовов. Один из ключевых — необходимость быстрой и эффективной транспортировки грузов и экипажа. Существующие ракетные техн...
Автоматизация рутинной деятельности с помощью Security Vision SOAR: практика Андрей Амирах, руководитель отдела технического пресейла Security VisionТимур Галиулин, менеджер по развитию продуктов Infowatch В этой статье мы расскажем о процессе автоматизации рутинной деятельности в одном из подразделений ИБ крупной компании. Исходные данные: подр...
Obsidian: Мой опыт с LYT/Ideaverse и его русификация В этой статье я расскажу о том, как организовал себе единое место для заметок, документов и проектной документации с помощью Obsidian и шаблона LYT, а также дам ссылку на русифицированный шаблон для создания своей такой системы. Читать далее
Как загружать классы в Java 8 и Java 9+? Привет, Хабр! Я разработчик в Институте Системного Программирования РАН, занимаюсь разработкой статического анализатора Svace. Недавно я столкнулся с задачей самостоятельной загрузки классов в JVM, что оказалось непросто, потому что в проекте мы используем модули Java.Модули...
Почему вам стоит отказаться от использования timestamp в PostgreSQL Не секрет, что работа с часовыми поясами — боль, и многие разработчики объяснимо стараются ее избегать. Тем более что в каждом языке программирования / СУБД работа с часовыми поясами реализована по-разному.Среди тех, кто работает с PostgreSQL, есть очень распространенное заб...
Создание консольной игры Супер Ним на Python Приветствую всех хабровчан! Я являюсь студенткой Финансового Университета при Правительстве РФ и обучаюсь на направлении Прикладная математика и информатика. Сегодня мне хотелось бы поделиться своим туториалом для изучающих Python с нуля. Идея для создания этой статьи появил...
Анимация на колесных дисках с беспроводной передачей питания Приветствую, опишу свой опыт создания анимации на вращающихся колесах движущегося автомобиля. Одно время в интернете пошла мода на светящиеся колеса с анимацией на автомобилях, велосипедах и другой подобной техникой. Но питание там везде было на батарейках или аккумуляторах....
Многорукие бандиты в задаче ритейла В настоящее время набирают популярность модели Reinforcement Learning для решения прикладных задач бизнеса. В этой статье мы рассмотрим подмножество этих моделей, а именно многоруких бандитов (multi-armed bandits). Также мы:- обсудим, какие задачи теоретически могут быт...
Менеджеры и манагеры. Ищем отличия Все мы в нашей работе так или иначе сталкиваемся с людьми, от которых нам что-то надо получить. Неважно что — ресурсы, деньги, ответ, согласование, информацию или еще что-то. Ситуация всегда одинаковая — от этого человека зависят наши дальнейшие действия. А работает ли этот ...
Роман Тезиков про СV-проекты и промт-инжиниринг как базовый навык каждого человека К нам на огонек в подкаст заглянул Роман Тезиков — senior-разработчик и DL-engineer. Эксперт рассказал много интересного о своем опыте реализации ML-проектов. А «на десерт» Роман поделился тем, как он применяет промт-инжиниринг в работе и личной жизни и каких впечатляющих ре...
[Перевод] Кодируем крестики-нолики в 15 битах Недавно я наткнулся на пост Алехандры Гонсалес (@blyxyas), в которой рассказывается о попытке сжать игру крестики-нолики в минимальное количество битов. Она пришла к решению из 18 битов. Это заставило меня задуматься: а можно ли улучшить этот результат?Как говорит Алеха...
Понимаем с полуслова: как работает поиск товаров в СберМаркете Всем привет! Меня зовут Аня Власова. Я работаю ML-инженером в команде Поиска СберМаркета. В этой статье я расскажу, как устроены наши процессы: с момента, когда пользователь вводит запрос, до получения поисковой выдачи. Если вы разрабатываете поиск или просто интересуетесь т...
Кем работать в IT 2024: мантейнер Рубрика «Кем работать в IT» — интервью с представителями IT-профессий, в которых специалисты рассказывают о тонкостях своей работы: плюсах, минусах, подводных камнях и заработной плате. Мы надеемся, что джунам и стажёрам она поможет больше узнать о том, что их ожидает на кар...
В поисках оптимального места в доме для умной колонки с экраном «Станция Дуо Макс» от «Яндекса» В публикации пойдёт речь об опыте использования гаджета, а также о поиске оптимального места в доме для умной колонки с экраном «Станция Дуо Макс» от «Яндекса». Оказалось, что не везде удобно установить устройство так, чтобы можно было часто и продуктивно работать с дополнит...
Зеттелькастен рисование на бесконечном канвасе или как помнить всё на свете Каждый автор, обдумывая статью, сталкивается с проблемой. С одной стороны хочется передать читателю крутую идею и тем самым принести большую пользу, а с другой страшно давать что-то “тяжелое”, потому что тема может оказаться неподъемной и следовательно бесполезной.В первых м...
[Перевод] Туториал по Tokio. 1/2 Hello world! Представляю вашему вниманию первую часть туториала по Tokio. Tokio — это асинхронная среда выполнения (runtime) кода Rust. Она предоставляет строительные блоки, необходимые для разработки сетевых приложений любого размера. Читать дальше →
Сервисы дружитес. Как платформа упрощает создание интеграций без ошибок Всем привет! Кратко обо мне: меня зовут Никита и я уже третий год работаю над тем, чтобы платформа СберМаркета становилась лучше день ото дня. Мой основной язык программирования — Go, но, учитывая специфику платформенной разработки, еще и bash.В этой статье на примерах разбе...
Автоматизация бизнес-процессов в Heflo: настройка форм Хабр, привет! Команда Business Process Management GlowByte продолжает знакомить вас с фишками бразильской BPMS Heflo. В рамках деятельности Heflo Club мы в GlowByte создаем обучающий контент для бизнес- и процессных аналитиков, а также для всех, кто желает познакомиться с ми...
Покрытие архитектуры as Code тестами
Побитовые операции: для чего нужны основы информатики Solidity-разработчику В этой статье я расскажу о том, как работают побитовые операции и зачем они нужны разработчикам смарт-контрактов. Например, без них не обойтись, если нужно оптимизировать расходы на газ, а иногда эти знания полезны для понимания того, что происходит в таком (оптимизированном...
Анемичная модель предметной области и логика в сервисах Анемичная модель предметной области (Anemic domain model) это такая модель, где сущности содержат только свойства, а бизнес-логика находится в сервисах. Ее противоположность это богатая модель предметной области (Rich domain model), где логика находится в сущностях, а cервиc...
Глубокий Анализ FastHTML FastHTML — это мощный фреймворк для Python, который упрощает процесс создания веб-приложений и статических страниц. Он предлагает уникальное сочетание простоты и мощи, позволяя разработчикам сосредоточиться на создании качественного контента и функциональности, не отвлекаясь...
[Перевод] Синглтоны в Java В этом кратком руководстве мы рассмотрим два наиболее популярных способа реализации синглтонов в Java. Читать далее
Поднимаем динамические окружения для stateless- и stateful-сервисов На связи Игорь Латкин, управляющий партнер и системный архитектор в KTS. Мы на своём опыте разобрались в развертывании stateless- и stateful-сервисов, и теперь хотим поделиться с вами. Мы в KTS не раз создавали подобные инфраструктуры, перепробовали разные решения и выя...
Как жить в загородной бане, пока строится умный дом Многие покупают загородные участки, чтобы построить на них свой дом и не жить в «человейниках». Обычно этот процесс растягивается на несколько лет. Что делать, если хочется наслаждаться природой прямо сейчас?В качестве временного решения можно построить баню, в которой можно...
Простой способ обработки качественных исследований Данная статья может оказаться полезной начинающим менеджерам, аналитикам и дизайнерам. В ней рассказано о подходе, который поможет структурировать и упорядочить информацию, полученную из различных источников, таких как “one to one” встречи, глубинные интервью и другие подобн...
Интерфейсы для конструкторов в Dart Реализация паттерна создания интерфейса для конструкторов и статических атрибутов в Dart.По умолчанию, Dart запрещает создавать контракты для статических интерфейсов классов. В статье рассматриваются причины и возможные решения проблемы. Читать далее
Графовые сети в рекомендательных системах Всем привет! Меня зовут Александр Тришин, я работаю DS в команде персональных рекомендаций Wildberries и занимаюсь графовыми нейросетями. Это был мой первый опыт работы с графовыми сетями, и мне пришлось погрузиться в изучение статей и проведение собственных экспериментов. В...
Карты, шлейфы, два чипа, или Аппаратный менеджер паролей для особых случаев Менеджер паролей — штука удобная, а иногда и незаменимая, ведь количество комбинаций, которые приходится помнить среднестатистическому ИТ-специалисту, не позволяет ему рассчитывать только на собственную память. Подобные менеджеры давно научились генерировать не только пароли...
KLIPPER: О подключении бюджетного дисплея "RepRapDiscount Full Graphics Smart Controller" к 3D контроллеру "BTT SKR E3-DIP". Оба моих принтера с "рождения" и до сей поры работали и работают на прошивке Marlin и в принципе не особо жаловались на свою трудовую жизнь. Да и меня в общем всё устраивало. Печатаю я немного, в основном техничку и всё вроде бы нормально, но всегда ведь хочется чего-то лучш...
[Перевод] Учимся летать: симуляция эволюции на Rust. 1/5 В этой серии статей мы создадим симуляцию эволюции с помощью нейронной сети и генетического алгоритма. Я расскажу вам, как работает простая нейронная сеть и генетический алгоритм, затем мы реализуем их на Rust и скомпилируем приложение в WebAssembly, чтобы получить следую...
Диплом специалиста ИБ. Часть №3 — Портативное устройство SmartPulse Привет, Хабр!Вам знакомо такое чувство, когда сидишь, пишешь дипломную работу и думаешь "А не сделать ли умный пульсометр на ESP32-C3 с интегрированными механизмами защиты, динамическим пин-кодом и управлением через BLE с помощью собственного мобильного приложения для IoT-ус...
Математика матричных расширений: как происходит умножение матриц на примере T-Head Matrix Extension Привет, Хабр! Я Андрей Соколов, инженер-программист в группе разработки математических библиотек. Месяц назад моя коллега Валерия запустила цикл статей про матричные расширения, ускоряющие операции над матрицами. Вы уже смогли узнать, что они делают и какие существуют, какие...
Хеш-функция Стрибог. Особенности аппаратной реализации на System Verilog На просторах интернета есть несколько статей об алгоритме получения хеш-функции Стрибог (ГОСТ 34.11-2012), в том числе и на Хабре. Однако везде в качестве примера приводится реализация на языках программирования C, C#, Python и других. То есть идет последовательное выполнен...
Zen of Python: история, реализация и пасхалки В мире программирования на Python существует особая философия, представляющая собой специальный документ под названием Zen of Python (Дзен Python). Он включает принципы, направленные на написание ясного, простого и элегантного кода на Python. В этой статье мы поговорим об ис...
Нет, мы так не работаем В предыдущем примере я затронул самый рискованный и простой способ отказаться от чего-либо – сказать: «мы так не работаем». Хотят вашу команду засунуть в лютый стафог – мы так не работаем; хотят внедрить непонятные решения – мы так не работаем. Сказали, отказались, всё по кр...
Серия градиентных PLA от RITTSUN Всем доброго дня! Сегодня я хочу поделиться своими впечатлениями о новом типе филамента, который стал доступен на рынке Китая примерно полгода назад — PLA Gradient приобрёл я его в магазине RITTSUN на алиэкспресс, но он начинает появляться и в других магазинах на этой площад...
[Перевод] Создаем свою STL-совместимую реализацию std::allocator с лучшей производительностью Реализация защиты от сбоев из-за фрагментации кучи и повышение скорости выполнения с помощью STL-альтернативы std::allocator, работающей с блоками памяти фиксированного размера.В этой статье описывается реализация STL-совместимого аллокатора, ориентированного на выделение и ...
Combat Abilities System — Расширение Gameplay Ability System в Unreal Engine, Часть 1 В серии статьей я расскажу о моём процессе создания плагина Combat Abilities System, который расширяет возможности стандартного плагина Gameplay Ability System в Unreal Engine. Мы рассмотрим шаги разработки, архитектурные решения и особенности, которые делают наш плагин уник...
TMS Test IT: польза и лайфхаки для мануальных тестировщиков Всем привет, меня зовут Антон Огольцов, я отвечаю за процессы тестирования в компании Integro Technologies. Мы являемся системным интегратором, представляющим услуги по разработке, внедрению и поддержке IT-решений для авиакомпаний, аэропортов и наземных служб. Сего...
Система рендеринга для космического симулятора в Unity Несколько лет назад я работал над проектом по реализации на Unity реалистичного космического симулятора. Это достаточно нестандартное применение движка, и в ходе работы были решены разные специфические задачи, одна из которых - обеспечение корректного рендеринга объектов кос...
С нуля до плагина JMeter: пишем свой продукт без опыта От проблемы к практике: как привязать JMeter к Allure Report если нет опыта программирования, но очень хочется Читать далее
Оптимизация Скорости и Доступности с помощью Сети Доставки Контента (CDN) в Microsoft Azure Привет Хабр!В мире быстро развивающихся технологий быстродействие и доступность играют ключевую роль в обеспечении удовлетворения потребностей пользователей. В этой эпохе, где каждая миллисекунда имеет значение, использование современных инструментов для оптимизации скорости...
[Перевод] А что, если бы функция get в Lodash выводила типы за вас в TypeScript Продвинутая реализация Lodash функции get используя за основу базовую реализацию "Typed Get" type-challenge, а затем покрывая пограничные случаи: опциональные пути, массивы, кортежи. В самом конце типы добавляются к решению на JS. Читать далее
Как на самом деле Async/Await работают в C#. Уроки по асинхронному программированию из первой половины работы Несмотря на то, что с предыдущей статьей-переводом мы выяснили что перевод уже есть на Хабре я рискну продолжить анализ этой работы.Теперь это НЕ перевод. Это моя интерпретация тех частей содержания первой половины Поста: Как на самом деле Async/Await работают в C#, которые ...
DIY: Ваше собственное облако на базе Kubernetes (часть 1) Мы очень любим Kubernetes и мечтаем чтобы все современные технологии поскорее начали использовать его замечательные паттерны.А вы когда-нибудь задумывались о том чтобы построить своё собственное облако? Могу поспорить что да. Но можно ли это сделать используя лишь современны...
Пакетируем легко и просто с помощью Lerna Всем привет! Меня зовут Иван Кузнецов, я Head of Frontend в Uzum Market. Расскажу о сложностях, с которыми мы столкнулись на пути к реализации микрофронтендовой архитектуры, и поделюсь результатами, которые мы получили в процессе пакетирования наших решений с помощью Lerna. ...
[Перевод] Структурированное логирование в Go с помощью Slog Более 10 лет разработчики на Go жаловались на отсутствие структурированного логирования в ядре Golang. Участники сообщества Golang даже создали несколько собственных пакетов, таких как Logrus, Zap и Zerolog. В 2023 году, команда разработчиков Google Go наконец-то представила...
[Перевод] Как я создал еще один JS фреймворк Многие могут усмехнуться при мысли о запуске очередного фреймворка JavaScript, учитывая множество уже существующих проверенных решений. Зачем браться за создание нового? Давайте я расскажу свою личную историю о том, что подтолкнуло меня к разработке этого фреймворка JavaScri...
[Перевод] Как работают языковые модели Если мы хотим использовать большие языковые модели (БЯМ) в своей работе и при этом называть результаты творческими, нам придётся понять, как они работают — по крайней мере, на высоком уровне.Существует множество отличных руководств о внутренних механизмах языковых моделей, н...
AtomSite 1.1. Русская версия блог-движка на ASP.NET MVC Перевел один из немногих готовых работающих движков на ASP.NET MVC. Далее — объяснение, что такое AtomSite (для тех, кто не слышал о нем) и много скриншотов. Что такое AtomSite?AtomSite 1.1 — это блог-движок, написанный на платформе ASP.NET MVC. Он находится на ранних...
Аутентификация для WebSocket и SSE: до сих пор нет стандарта? WebSocket и SSE появились более десяти лет назад, однако до сих пор в стандартах отсутствуют рекомендации по решению задачи аутентификации для подобных соединений.В статье разберем особенности аутентификации применительно к протоколу WebSocket и технологии Server-Sent Events...
SwiftUI уроки (часть 5) ссылка на 4ю частьButtons, Labels, GradientsВ этой части мы рассмотрим основы создания кнопок в SwiftUI. Кнопки играют ключевую роль в любом пользовательском интерфейсе приложения. Хорошо спроектированные кнопки не только делают ваш интерфейс более привлекательным, но и повы...
Работаем с HTTP API: разбор частых проблем и методы их решения Время идёт, технологии развиваются, а проблемы, связанные с использованием API, вызывают у многих разработчиков всё те же сложности, что и десятки лет назад. Между тем, рост числа сервисов, которые взаимодействуют друг с другом с помощью данного способа, день ото дня только ...
Как работает кнопка Mute на Яндекс Станции. Подробный разбор логики и схем Привет! На связи Геннадий «Крэйл» Круглов из команды, которая разрабатывает аппаратную часть Яндекс Станций. С кем-то из читателей Хабра мы уже могли познакомиться в рамках мероприятий Я.Железа, где делимся опытом разработки устройств. Последние несколько лет мы с...
Установка OC Linux на плату Kintex 7 (KC705) от Xilinx с софт-процессором MicroBlaze часть 1 Данная серия статей является туториалом по установке линукса на плату KC705 с софт-процессорным ядром Микроблэйз. В первой части я описываю процесс создания схемы платформы, на которую мы поставим систему, с описанием некоторых нюансов. Во второй части я опишу процесс сборки...
[Перевод] ИИ-модели ломаются при обучении на рекурсивно сгенерированных данных Ранее мы разбирали документ о неизбежности AGI от Леопольда Ашенбреннера, в котором говорилось о «Стене данных». Проблема заключается в том, что данные для обучения новых ИИ-моделей в интернете не бесконечны. Один из подходов для обхода этой стены — создание синтетических да...
Сверхчеловеческий ИИ на основе открытых систем: Утопия или антиутопия? В погоне за созданием сверхчеловеческого интеллекта (ASI) исследователи ИИ все чаще обращаются к концепции открытых систем. Но что делает открытые системы столь многообещающими в контексте достижения ASI, и каковы фундаментальные принципы, лежащие в основе этого подхода?В эт...
Обходим блокировку VPN Мой провайдер помимо замедления (читай полная блокировка) YouTube так-же стали блокировать соединения с моими рабочими VPN. Работодатель не очень любит, когда на встречах на вопрос о прогрессе, я неделю отвечаю, что у меня не работает VPN! Своими действиями, мой провайдер са...
Шифрование в Kubernetes: основы Многие приложения работающие в Kubernetes обрабатывают конфиденциальную информацию, требующую защиты от несанкционированного доступа. Kubernetes предлагает удобные способы для защиты данных. Рассмотрим основные из них в этой статье, а именно — шифрование в покое, шифрование ...
Инженерный калькулятор на C++. Часть 1: Токенизатор математических выражений Всем привет! Сегодня хочу поделиться опытом написания консольного инженерного калькулятора, который может посчитать что-то вроде (log2(18)/3.14)*sqrt(0.1*10^(-3)/0.02)В этой части мы рассмотрим создание простейшего парсера (токенизатора) на базе конечного автомата, который б...
Connection pool для pqxx В процессе изучения бекэнда, как нового для меня направления в программировании, я столкнулся с необходимостью оптимизации управления соединениями. Поискав в интернете существующие решения для библиотеки pqxx (C++ API для PostgreSQL), я обнаружил, что хотя они и выполняют св...
Практика замены MS Office: 4 ситуации, когда это невозможно…но вполне получается Привет! На связи Саша Безноздрев, ведущий инженер-разработчик К2Тех. Тематика замены продуктов Microsoft для корпоративных пользователей лежит сегодня на поверхности. Действительно, как быть, если вендор планирует аннулировать все подписки и отключить все, до чего сможет дот...
One-on-one. Девлог. Карта со сложным кастомным эффектом На этой неделе продолжил (и пока что закончил) рефакторинг. За счет этого быстро добавил карту, на реализацию которой раньше ушла бы куча времени. Читать далее
Postgres Pro Shardman: горизонтальное масштабирование реляционных СУБД Последние несколько лет мы в Postgres Professional активно занимаемся разработкой своего решения для горизонтального масштабирования PostgreSQL. Пользователям нужен был простой способ увеличить производительность путем добавления узлов. Традиционно для веба в таких случаях п...
[Перевод] Отладка дедлока FUSE в ядре Linux Наша команда вычислительных ресурсов Netflix (Compute team) отвечает за администрирование AWS, в том числе за автомасштабирование и развертывание контейнеризованных приложений, включая решение возникающих проблем. В мои обязанности входит разбор разного рода странных ошибок,...
Client-side RCE в Telegram Desktop. Разбор с POC Недавно некоторые СМИ писали о "новой уязвимости" в приложении Telegram Desktop для Windows, которая позволяет злоумышленнику исполнять произвольный код при открытии чата с ним, если у вас включена автозагрузка файлов (она включена по умолчанию).Разбор уязвимости, реальный p...
Создание и использование BOM в Gradle В каждой компании (а если она крупная, то, скорее всего, в каждом подразделении) должна быть выстроена культура использования BOM (bill of materials) для управления версиями зависимостей. В этой статье я хочу поделиться своим видением того, как это может быть организовано, а...
Давайте писать качественный код: важность статического анализа кода Привет, Хабр! Меня зовут Данил. Я frontend-разработчик департамента корпоративных систем ЛАНИТ, который очень любит порядок в коде. На мой взгляд, именно выразительность и чистота кода позволяют ему лучше работать и дольше жить.В этой статье я структурировал информацию о пол...
Разработка Tizen-приложения для Samsung Smart Signage Platform(SSSP): гайд для js-разработчиков В этой статье я хочу рассказать о своем увлекательном путешествии в мир ОС Tizen. В ней я постараюсь подробно описать не только основные шаги по установке Tizen Studio и созданию проекта, но и поделюсь с вами ценными практическими советами по разработке приложений, освещая к...
Хотите похудеть – НЕ спрашивайте меня как. Часть 2: Оземпик — опыты на себе Кратко для лиги лени: Оземпик как средство для похудения работает, но ограниченно годится для ИТ, и дает осечки примерно 50 на 50 побочки.В первой части я попробовал рассмотреть хоть как-то эффективные методы, кроме «надо меньше есть». Это вторая, с личным опытом по применен...
Typescript ENUM — баланс использования Привет Всем. Меня зовут Михаил. В НЛМК нахожусь на должности Frontend-разработчика. Занимаюсь разработкой внутренних информационных систем на React + Typescript. В этой статье поговорим про тип enum (перечисление) в Typescript, о случаях когда его можно и нужно исп...
Разглядывая JTAG: самый быстрый программный JTAG на Arduino В предыдущих статьях цикла был приведен пример реализации ведомого модуля JTAG на Verilog. Я предположил, что количество инженеров, знающих Verilog, меньше, чем количество инженеров, которым требуется понимание принципов работы JTAG. Поэтому, помимо реализации на Verilog, м...
Гайд по микрофронтендам на single-spa, или Как уже наконец-то уйти от монолита во фронтенде Привет, Хабр! Меня зовут Данил, я Frontend-разработчик в Samokat.tech. Недавно мы с командой распилили монолит на Angular и перешли к микрофронтендам на Vue. Наш опыт я постарался упаковать в пошаговый гайд – надеюсь, этот материал поможет тем, кто только начинает свой ...
PostgreSQL 16. Изоляция транзакций. Часть 2 Данная статья является продолжением первой части: "PostgreSQL 16. Организация данных. Часть 1".В этой части мы обсудим, как транзакции могут влиять друг на друга, вызывая "аномалии", а также рассмотрим различные уровни изоляции, которые помогают избежать подобных проблем. Чи...
Как мы отслеживаем просадки FPS в Альфа-Мобайл? Всем привет
Расширяем тестовый фреймворк с помощью Pytest-плагинов. Часть 1: теория Всем привет! Меня зовут Александр Волков, я занимаюсь интеграционным и компонентным тестированием в YADRO. В числе продуктов компании есть системы хранения данных и, говоря о тестировании, я буду иметь в виду в первую очередь работу с СХД. Однако описанные подходы пригодятся...
Создание системы управления электродвигателями в наноспутнике Введение:Целью работы является создание системы управления электродвигателями в наноспутнике. Установка положения спутника в пространстве осуществляется с помощью электродвигателей, снабженных маховиками. В докладе рассмотрен один из возможных алгоритмов управления электродв...
Книга «System Design. Машинное обучение. Подготовка к сложному интервью» Привет, Хаброжители! Собеседования по проектированию систем машинного обучения — самые сложные. Если нужно подготовиться к такому, книга создана специально для вас. Также она поможет всем, кто интересуется проектированием систем МО, будь то новички или опытные инженеры. ...
Релиз Truck Driver GO — симулятора дальнобойщика с сюжетом Большинство симуляторов дальнобойщика на смартфонах предлагают максимум мультиплеер, а в остальном сильно отстают от PC-версии Euro Truck Simulator 2. Но Truck Driver GO предлагает кое-что более интересное — сюжет. Эту мобильную игру выпустили 11 июля на Android и 18 июля на...
As const в Typescript Привет, Хабр!В разработке часто возникают ситуации, когда точность типов и нежелание допускать неясности в коде становятся первостепенными задачами. В таких случаях, разработчикам приходится искать инструменты, предоставляющие максимальную ясность и строгость в определении д...
[recovery mode] Тест лампочки Elektrostandard 12 Вт Е27 Разбор светодиодной лампочки от производителя Elektrostandard. Лампочка, которая стоит внимания, но при этом не может порадовать своей ценой. Читать далее
Зачем программисту микроконтроллеров тригонометрия? (или Обзор Усилителя Звука из Apple AirTag) На 12ом году опыта программирования микроконтроллеров мне наконец-то пригодилась школьная тригонометрия (6-класс). Это настолько специфический случай, что я решил накропать про это заметку.Когда Вам надо добавить в устройство звук, то можно воспользоваться микросхемой MAX98...
[Перевод] Не стоит недооценивать HTML «HTML – это просто», «Разрабатывать фронтенд проще, чем бэкенд», «После реализации бэкенда обновление UI не должно составлять труда», – за время работы в сфере веб-разработки вокруг меня то и дело звучали эти и другие аналогичные утверждения. И очень часто они вызывали у м...
Разрабатываем дизайн-концепцию IT-системы: этапы аналитики и дизайна Привет, Хабр! Меня зовут Юлия, я старший аналитик-проектировщик компании SimbirSoft. Работаю в сфере IT более 10 лет, в моем портфолио создание более 20 IT-систем для различных проектов: флагмана металлургии, медицинского проекта (6 стран присутствия), автомобилестроительной...
Кратко про лидеров рынка Runbook Automation: Ansible, Puppet, и Chef Runbook Automation — это процесс использования специальных программных решений для автоматизации выполнения повторяющихся задач и процедур, которые в традиционных условиях выполняются вручную операторами IT-систем. RBA находит применение в автоматизации широкого спектра опер...
Сделали библиотеку компонентов, но пришлось переделывать. Почему так вышло и чем дело кончилось Привет, Хабр. Меня зовут Артем Арефьев, я руковожу Frontend-разработкой в направлении продукта для учеников в Учи.ру. Фронтендом занимаюсь уже 11 лет, шесть из которых работаю у нынешнего работодателя. Еще принимаю участие в проектах Open Source (например, внес вклад в проек...
Шардирование: с нуля до Яндекс Диска Меня зовут Андрей Колнооченко. Я отвечаю за ядро файловой системы Яндекс Диска. Когда мы запускали сервис, то сразу ориентировались на рост и приняли решение шардировать базу метаданных о файлах. Но за 11 лет Яндекс Диск настолько вырос, что нам пришлось трижды менять подход...
Сложность алгоритмов. Разбор Big O Сложность алгоритмов - это ключевой аспект при проектировании и создании веб-приложений, особенно при работе с большим объемом данных или выполнении вычислительно сложных операций. Понимание, как оценивать сложность алгоритмов, помогает принимать обоснованные решения в выбор...
[Перевод] 10 тяжёлых истин о работе программиста, про которые никто не предупреждает В прошлые выходные мне представилась возможность пообщаться с только что выпустившимися студентами. Сейчас они ищут свою первую работу в разработке ПО. В разговоре с ними я понял, что они довольно ошибочно воспринимают эту работу.Причина этого в том, что реальность для этих ...
Новая файловая система Composefs для Linux: что это такое и как она работает В ноябре 2022 года Александр Ларсон, сотрудник Red Hat, разработавший Flatpack, предложил реализацию файловой системы Composefs. Она в некоторых моментах похожа на Squashfs, подходит для монтирования образов в режиме «Только для чтения». Особенности новой ФС — совместное хра...
Kubernetes 1.29: бэкенд на nftables, изменение атрибутов тома и другие фичи Сегодня ожидается выход очередной версии Kubernetes — 1.29. Среди главных изменений — бэкенд на основе nftables для kube-proxy, множественные CIDR для сервисов и функция QueueingHint, которая помогает решить, как повторно ставить поды в очередь. TaintManager стал отдельным к...
[Перевод] Как работает радио? Радиокоммуникации играют ключевую роль в современной электронике, но их теорию сложно понять начинающему любителю. Да, у нас есть общее представление: мы знаем о частотах и, вероятно, можем объяснить разницу между амплитудной и частотной модуляциями. Однако большинству из н...
Ory Kratos — коробочный SSO Показываю как базово настроить и про свой опыт использования одного из популярных коробочных open source решений для идентификации пользователей Читать далее
Один QA в поле воин? Всем привет.Меня зовут Пронин Евгений, я Senior QA Engineer. Я работал в студии ITTerritory в полноценном отделе тестирования с несколькими коллегами, также имел опыт как единственный инженер на проекте в студии Nakusi Games. Я расскажу о своем опыте и поделюсь некоторыми н...
AITU Military CTF 2024:Digital Fortress: Как мы инфраструктуру для полигона поднимали. Часть 2 Перед прочтением данной статьи настоятельно рекомендую ознакомиться с 1 частьюВведениеДанная статья является продолжением статьи про поднятие киберполигона AITU Military CTF, в этой части мы рассмотрим глобальные изменения касающиеся инфраструктуры, такие как настройка сети ...
Неструктурированные данные: что это, в чем их опасность и как защититься? Объемы, разнообразие, а главное, ценность информации продолжают расти. Особенно выделяются неструктурированные данные, которые не имеют четкой организации, структуры или формата. Этим они отличаются от структурированных данных, которые обычно хранятся в базах данных и подчин...
Нотация моделирования архитектуры С4 — примеры диаграмм и инструменты Если возникает вопрос об описании архитектуры системы, то есть несколько основных решений где и как это сделать. Среди популярных нотаций для визуализации схемы архитектуры можно выбрать C4, разработанную Саймоном Брауном.В этой статье я хочу показать пример применения нотац...
Делаем crackme. Часть вторая: шифруем функции Эта статья вторая в цикле по созданию crackme под linux amd64. В этой части мы создадим исполняемый файл, в котором каждая функция будет зашифрована собственным ключом, и будет расшифровываться только на время исполнения. Процесс создания будет полностью автоматизирован, то ...
Data сontract: давайте попробуем договориться В последнее время всё чаще и чаще натыкаюсь на термин data contract. И для того чтобы не отставать от трендов на рынке data engineering, решил изучать эту тему и рассмотреть тенденции. Постараемся понять с чем его кушать и стоит ли кушать вовсе. Читать далее
Asterisk + UniMRCP + VoiceNavigator. Синтез и распознавание речи в Asterisk. Часть 4 Часть 1 Часть 2 Часть 3 В четвертой части, как и было обещано, рассмотрим ограничения и недостатки Asterisk как голосовой платформы и особенности его взаимодействия с VoiceNavigator. Голосовая платформа – это программно-аппаратный комплекс с функциями синтеза и распоз...
5 уроков локализации из разработки игры в Telegram Многие разработчики хотят, чтобы их продукт был доступен максимально широкому кругу пользователей. И локализация на языки целевой аудитории может достаточно положительно сказаться на её росте. Вряд ли в данной статье будет что-то новое для людей, которые собаку съели на лока...
Сетевой мультитул для ИТ и ИБ специалистов: zero-skill создание Telegram чат-бота с помощью ChatGPT Привет, Хабр! Меня зовут Руслан, я – инженер по сетевой и информационной безопасности в компании-интеграторе STEP LOGIC. Решаю различные задачи, связанные с настройкой и поддержкой сетевого оборудования в компьютерных сетях, работаю над проектами, требующими планировани...
Реализация консенсусного алгоритма Raft Привет, Хабр!Когда речь идет о распределенных системах и сетевых приложениях, консенсусный алгоритм становится must have. Эти алгоритмы играют ключевую роль в обеспечении надежности, согласованности и целостности данных в условиях, когда у нас есть несколько участников (узло...
Пошаговая инструкция создания нового вида контроля в «1С: Управление холдингом» Привет, Хабр! Меня зовут Донскова Елена, я работаю разработчиком на проектах внедрения 1C в IBS, занимаюсь разработкой нового функционала и модифицирую типовой функционал для удовлетворения потребностей бизнеса. Сегодня я расскажу о том, как создать новый вид контроля в сист...
IBM продолжает выпускать и поддерживать мэйнфреймы. Кто с ними до сих пор работает и где брать специалистов? На Хабре не раз и не два писали про старые технологии, которые до сих пор в ходу — от дискет и языка программирования COBOL до винтажных ноутбуков, ОС и тому подобных артефактов прошлого. Сегодня поговорим о мэйнфреймах, которые ранее были достаточно популярными в корпоратив...
Как тяжелый монолит обернуть в удобный интерфейс Собрались как-то вместе: продакты, HR, лиды и архитекторы ИТ, и начали думать, как же им перестроить HR-процессы в Банке так, чтобы улучшить клиентский опыт сотрудников и им стало удобно работать с HR-услугами..У нас была идея продуктового подхода, десяток backend систем, 23...
Опросы с использованием метода Дельфи Метод Дельфи, представляет собой уникальный подход к систематическому и структурированному сбору мнений экспертов для прогнозирования или решения сложных проблем. Цель статьи — не только описать метод Дельфи, его основные этапы и применение, но и показать, как его преимущест...
От винта! Рычаги и винты в Unity Всем привет! Меня зовут Григорий Дядиченко, и я разрабатываю разные проекты на заказ. Сегодня хотелось бы поговорить про рычаги и винты, и их реализацию в Unity. Сейчас как раз на хайпе Apple Vision Pro, а подобные штуки бывают весьма полезны в проектах с виртуальной и допол...
Дерево решений (CART). От теоретических основ до продвинутых техник и реализации с нуля на Python Дерево решений CART (Classification and Regressoin Tree) — алгоритм классификации и регрессии, основанный на бинарном дереве и являющийся фундаментальным компонентом случайного леса и бустингов, которые входят в число самых мощных алгоритмов машинного обучения на сегодняшний...
«Ньютон» – мультитул для гитаристов Рассказ про реализацию от задумки до прототипа мультитула для гитаристов. Который превращает акустическую гитару в электрогитару с комбиком и эффектами без проводов и лишней суеты. Читать далее
Agile не поможет. Ищем решения острых проблем в разработке ПО Scrum, Kanban и другие «эталонные» методы ведения проектов далеко не идеальны и многое упускают. Поэтому они редко применяются в чистом виде: как правило, проджекты меняют эти практики под себя. При этом легко сломать то, что работает, ничего не исправить и испортить жизнь ...
Контент-маркетинг — как я пишу по статье в день, что это дает и как не сдуться Смущает ли меня моя косноязычность? Да. Но я все равно пишу по статье каждый будний день, а в выходные пишу отдельно для Хабра. Статьи — это мой второй университет, мое самообразование. А в качестве стипендии я получаю лиды.В этой статье я постарался интересно и вдумчиво про...
Restyle как новый стандарт для создания UI в React Native Restyle предоставляет набор инструментов, которые позволят строить UI продуктов на основе токенов. Особенно очень хорошо такой подход залетает, когда в продукте есть Дизайн Система и этот набор токенов действительно определен.Одно из основных преимуществ библиотеки Restyle п...
Концепция имплицитов в Scala Концепция implicit в Scala представляет собой одну из наиболее уникальных и мощных особенностей этого языка программирования. Этот ключевой механизм позволяет разработчикам создавать более гибкий и чистый код, улучшая читаемость и расширяемость программ.В этой статье мы погр...
Что в мире аккумуляторов происходит: новые технологии и предложения разных компаний Бизнес и научные организации активно работают над созданием новых технологий производства батарей с целью снижения их стоимости, повышения надёжности, ёмкости и уменьшения воздействия на окружающую среду. Основное внимание уделяется разработке новых технологий создания катод...
The Hive. Разбор open source решения В свете быстрого развития информационных систем и увеличения угроз кибербезопасности поиск надежных решений, позволяющих минимизировать вред от нарушения информационной безопасности (ИБ), становится важной задачей для различных организаций. Когда инфрастр...
Как использовать макросы для систематизации документов «как в Confluence»? Привет! Приятно ведь читать хорошо оформленные статьи на уютном хабре? В которых часть текста спрятана под катом, есть подписи к картинкам, красивые и понятные таблицы и все остальные плюшки? Я думаю очень приятно. Поэтому предлагаю рассмотреть немного полезных советов, о то...
История планшетных компьютеров. От древних времен до конца двадцатого века Как вы думаете, какой планшет был первым? Apple iPad? Может “интернет-планшеты” от Nokia? Мечтали и фантазировали люди о подобном устройстве с конца 19-го века. В середине века 20-го писатели фантасты всё чаще рассуждали о них в своих произведениях. Но фактическая история пл...
Выгорание на работе: что это такое и по каким причинам происходит Привет, Хабр! Меня зовут Даниил Старосек, я работаю аналитиком на проекте «Единое фронтальное решение» (ЕФР) в Россельхозбанке. В прошлый раз я рассказал о работе в условиях the roof is on fire на испытательном сроке: проект и сроки горят, старший коллега в отпуске, а ты в к...
Golang убивает PHP Последние несколько лет на рынке, по моему сугубо личному мнению, golang вытесняет PHP с рынка, а многие компании считают, что проекты, которые сейчас написаны и работают на PHP должны быть переписаны на golang, чтобы было хорошо. Такой подход только частично является правдо...
[Перевод] Учёные разрабатывают устройство, способное вызывать осознанные сны по запросу Приходилось ли вам когда-нибудь испытывать странный опыт, когда вы как бы просыпались внутри своего собственного сна? Вы можете сказать, что находитесь не в полном сознании - ведь вокруг вас находится сказочная картина, - но вы достаточно осведомлены, чтобы контролировать от...
Как работает физика в играх В мире видеоигр игровая физика играет важную роль, определяя реалистичность и взаимодействие игрового мира с игроком. Что же происходит под капотом? Какие алгоритмы и подходы используются в современных движках? И что же значит «застрять в текстурах»? ...
Строим свой PAM на основе Teleport На связи команда Безопасности Wildberries – сегодня расскажем, как построить PAM на основе Teleport. Эту статью по мотивам нашего доклада на PHDays для вас подготовили руководитель департамента информационной безопасности и противодействия мошенничеству Wildberries Антон Жаб...
Scram для создания аппаратуры. Проект по созданию системы тестирования ADAS или краткая история 8 месяцев нашей жизни Добрый день, уважаемые коллеги и друзья! Уже больше года я работаю в Армении в компании, которая занимается созданием под ключ сложных, комплексных систем. Взяли меня на роль руководителя проектов, чем собственно я и занимаюсь последние 5 с лишним лет. В данной статье я хоте...
Регулярные выражения в реальных задачах Привет, Хабр! Меня зовут Татьяна, я разработчик в Росбанке, и в этом посте я расскажу про регулярные выражения. По своему опыту могу сказать, что регулярки — это очень полезный инструмент. Я часто пользуюсь ими, решая задачи по обработке текста в базах данных. Вначале я оста...
Анализ Приказа ФСТЭК России №118 «Об утверждении требований по безопасности информации к средствам контейнеризации» Рассмотрим требования к безопасности информации в средствах контейнеризации, указанные в Выписке из Приказа ФСТЭК России № 118 «Требования по безопасности информации к средствам контейнеризации», приведем разъяснения к каждому требован...
Как работает память формы? Разбираем, что заставляет образец возвращаться к исходным параметрам Сейчас частенько можно услышать, что тот или иной материал с эффектом памяти формы научились использовать очередным перспективным образом. В большинстве случаев, про «память формы» многие вычитывают в описании какого-нибудь умного матраса или подушки для сна. Такой матрас пр...
Простой и сложный Always On VPN от Microsoft. Опыт внедрения VPN обеспечивает доступ удаленных пользователей в корпоративную сеть. Решений много, но выбор оптимального не всегда очевиден. В данной статье хотел бы поделиться опытом внедрения и использования такого продуктового решении как Always On VPN от компании Microsoft. Подчеркну,...
Удобный CI/CD доступен каждому Привет, Хабр! Недавно я выступал на Moscow Python Conf, где делился нашим опытом создания и использования CI/CD пайплайнов. В данной статье я расскажу об этих пайплайнах, раскрою их особенности и покажу, как они помогают нам быстро доставлять код и поддерживать высокий показ...
Как мы решали вопрос многоязычности в боте Русский или English? Что для бота хорошо, то разработчику работа :)ВведениеВ этой статье я поделюсь своим опытом реализации многоязычности в телеграм-боте, World for Life Bot расскажу о принципах выбора языков, которыми я руководствовался, технических аспектах реализации и ...
[Перевод] Реализация случайности в CSS при помощи тригонометрии В прошлых статьях я рассматривал тему реализации псевдослучайности в CSS при помощи операции целочисленного деления и использовал простые числа для создания автоматического счётчика, при помощи которых можно генерировать разные значения для каждого объекта. Благодаря этому ...
История создания API для курса валют В этой статье рассказываю, что побудило меня создать свой API для конвертации валют и получения актуального курса от различных источников. Начиная от анализа потребностей в онлайн-платежах и заканчивая разработкой гибкого и эффективного микросервиса. Демонстрирую вызовы, с к...
4 года холакратии — честный отзыв о работе без руководителей В этой статье я постарался честно и вдумчиво проанализировать опыт перехода из вертикальной структуры в горизонтальную. Как мы к этому пришли? Как проходил переход? Что с зарплатами? Куда делись руководители, которые вдруг стали не нужны? Если что-то упустил, спрашивайте в к...
Полноценный 2D-платформер на Python в 2023? Мой опыт Говорят, что на Python легко и просто создавать игры-платформеры. Правда ли?В этой статье вы узнаете о всех стадиях создания игры-платформера на Python, о сложностях при его создании и выводах, которые я сделал после релиза игры. Читать далее
[recovery mode] Как вести несколько проектов и не сойти с ума. Очередная статья про тайм-менеджмент Привет! Меня зовут София, я маркетолог проекта Fitil, в блоге которого публикую эту статью. Fitil — это сообщество для знакомств и общения. Мы стартап, а значит, задач очень много.Кроме Fitil я веду ещё два проекта как маркетолог: занимаюсь позиционированием, запусками ...
Основные отличия PascalABC.NET PascalABC.NET имеет базовую совместимость с Turbo Pascal, что должно было позволить портировать старые программы с меньшим трудом. Однако, благодаря этому, сложилась тенденция, использовать PascalABC.NET только в стиле Turbo Pascal и игнорировать современные конструкции. Тут...
Database, Data Warehouse и Data Lake: что это и когда следует использовать каждое? Данных становится все больше. Важно уметь эффективно хранить и обрабатывать их для решения сложных бизнес-задач. Одним из первых шагов на пути к успешной стратегии является выбор технологии хранения, поиска, анализа и отчетности по данным. Как выбрать между базой данных, Dat...
Работа в стартапе, студии и корпорации – опыт проджект-менеджера В настоящее время, особенно после пандемии, большим спросом пользуется работа в сфере IT. Множество курсов предлагает за короткие сроки обучиться новой специальности и найти высокооплачиваемую работу. Но какую компанию выбрать для старта карьеры? Можно выделить три основных ...
Где мне это пригодится в жизни или применение Nothing в Kotlin на примере В данной статье я хочу показать, почему развитая система типов в языке программирования это здорово. Я попробую провести небольшой ликбез о таких на первый взгляд сложных вещах, как sealed-иерархии, ковариантность и тип Nothing на понятном практическом примере создания своей...
Решение систем линейных уравнений с помощью Python Как-то я наткнулась на статью, где говорилось о SymPy, а именно о возможности решения систем уравнений с ее помощью. Если кратко, то это бесплатная библиотека для символьных вычислений на языке Python. В символьных вычислениях компьютер работает с уравнениями ...
Разбор геймплея тестовой версии Need for Speed Assemble на POCO F5 Для Need for Speed Assemble проходит бета-тест на Android в Китае. Я участвую в нём, поэтому решил показать, как выглядит игровой процесс на POCO F5. Я не менял настройки графики, поэтому при записи видео в 1080p порой проскакивают лаги в городе. Без записи экрана лагов зн...
Игрострой. Начало Привет всем! Меня зовут Ш. Сергей!Я очень не хотел создавать подобные темы. И уже есть темы которые я уже создавал и там многое уже написано. А так же есть множество подобных тем, где люди написали больше меня и вероятно для кого-то более полезно чем я. Это и не удивительно,...
Наивный байесовский классификатор. Основная идея, модификации и реализация с нуля на Python Наивный байесовский классификатор (Naive Bayes classifier) — вероятностный классификатор на основе формулы Байеса со строгим (наивным) предположением о независимости признаков между собой при заданном классе, что сильно упрощает задачу классификации из-за оценки одномерных в...
Как студенты МИФИ призывали Шиву на Eurobot 2024, часть 1 В статье представлен опыт участия студенческой команды НИЯУ МИФИ в соревнованиях по робототехнике Eurobot 2024. Статья разделена на 2 части, в которых описываются конструкционные решения при создании робота и разработка электрической схемы и печатной платы питания и управлен...
SimulIDE: открытый симулятор цифровых схем и микроконтроллеров В этой заметке я решил рассказать о SimulIDE. Это относительно новое программное средство с открытым исходном кодом, предназначенное для моделирования 8-битных микроконтроллеров семейств AVR и PIC, а также прочих электронных схем. По интерфейсу SimulIDE напоминает Proteus. S...
Миграция на российские IT-решения. Успешный кейс нашей команды В этом посте я не буду акцентировать внимание на значимости перехода на Российское ПО в государственном секторе, поскольку об этом написано уже множество статей. Вместо этого, хочется поделиться опытом реализации одного из наших проектов, в рамках которого мы успешно перевел...
Творчество в OpenSCAD: своя мелодия для музыкальной шкатулки Одна из моих любимых вещей в программировании — это когда получается применить свои навыки не только в своей основной работе, но и в какой-то новой и неожиданной предметной области, облегчая чью-то работу и решая задачи, которые не были до этого автоматизированы. Чаще всего ...
Как мы решали задачу оптимизации доставки грузов с использованием численных методов на примере метода имитации отжига В статье хотим поделиться своим опытом реализации алгоритма решения задачи маршрутизации на основе метода имитации отжига в Norbit CDS – умной системе управления доставкой. Проанализировав материалы, можно обнаружить различные предлагаемые способы решения VRP-задач (Veh...
[Перевод] Почему нельзя парсить вывод ls(1) Команда ls(1) достаточно хорошо справляется с отображением атрибутов одного файла (по крайней мере, в некоторых случаях), но когда просишь у неё список файлов, возникает огромная проблема: Unix позволяет использовать в имени файла почти любой символ, в том числе пробелы...
«Квантовая» диаграма Виенна: как нас дурит научпоп Хорошо, когда нам простыми словами объясняют сложные вещи, правда? Особенно когда речь про такие неочевидные эффекты как квантовая запутанность, суперпозиция и прочее квантовое. А как здорово, когда квантовый эффект можно увидеть своими глазами! Нам всего-то нужны три просты...
Тайные смыслы: создание сообществ разработчиков, исходя из целей бизнеса и участников Сообщество — это не просто еще один инструмент работы с людьми как потенциальными клиентами, кандидатами в найм или партнерами, это инвестиция бизнеса в репутацию, масштабирование и увеличение прибыли в долгосрочной перспективе.Речь сегодня пойдет о трёх форматах профессиона...
Укрощение примитивов синхронизации: сравниваем решения задачи с построением пула потоков на С и Go Эта статья основана на истории об одном личном челлендже. Задача звучала так: помочь с реализацией взаимодействия компонентов в программном комплексе заказчика. Иными словами, понадобилось IPC для дальнейшего развития продукта. Вызов заключался в том, что в обязательных треб...
Что делают лиды разработки, когда собираются вместе? Об опыте проведения встреч в формате LeadHub Чем больше в компании продуктов, команд и процессов, тем острее становится потребность в развитой культуре лидерства. Речь не только о тонкостях управления, но и об организации слаженного взаимодействия: на уровне разработчиков, между командами, с бизнесом. Когда каждая...
Разбор заданий PHDays 2024 взлом Web3 CTF С 23 по 26 мая Positive Technologies проводили конференцию PHDays по кибер безопасности с CTF конкурсами по разным направлениям. Про Web3 blockchain CTF узнал случайно от друзей и очень обрадовался, т.к. этой сферой давно интересуюсь. По итогу занял 2-е место, далее разберу ...
Учимся создавать простых ботов или туториал по библиотеке TeleBot Начнем с того, что библиотек для разработки телегам-ботов на Python несколько, я упомяну основные три. В первой части статьи будет небольшой обзор этих библиотек (примеры кода тут будут для красоты, не пугайтесь, ниже будет пошаговый Гайд по одной конкретной библиотеке), по...
Задача на собеседовании, её решение и его разбор Привет, обычно пару раз в год я хожу на собеседования без намерения менять работу, а для получения нового опыта и в поисках актуального ответа на вопрос "А что сейчас спрашивают?" Часто там задают обычные, даже скучные вопросы вроде "расскажите о контракте меж...
Кластеризация в ML: от теоретических основ популярных алгоритмов к их реализации с нуля на Python Кластеризация — это набор методов без учителя для группировки данных по определённым критериям в так называемые кластеры, что позволяет выявлять сходства и различия между объектами, а также упрощать их анализ и визуализацию. Из-за частичного сходства в постановке задач с кла...
Свой плеер для DASH: вошли и вышли, приключение на 20 минут. Доклад Яндекса Меня зовут Оля, я разработчик в Yandex Infrastructure и я делаю веб‑плеер — библиотеку для воспроизведения видео на разных сервисах Яндекса (например, на Кинопоиске, Диске, Практикуме и Погоде).Эта история о том, как мы отказались от о...
Как приручить виртуальные машины …и попутно воспитать сотрудниковВсем привет! Хочу поделиться опытом борьбы с большим «зоопарком» гипервизоров и виртуальных машин (далее – ВМ), а точнее историей по созданию внутреннего сервиса по контролю за виртуальными машинами, благодаря которому нам в IT стало силь...
Как возникают и развиваются стандарты систем связи: рассматриваем на примере 6G Все слышали о поколениях мобильной связи, и сокращения 4G, 5G, а может быть даже и 6G уже у всех на слуху. Но чем определяется смена технологических поколений, кто решает, что новое поколение уже наступило? Как так вышло, что вроде бы 5G массово еще не используется, а уже на...
Тестирование веб-приложений Flutter с помощью Selenium Разобраться в тонкостях тестирования пользовательского интерфейса веб-приложений Flutter может быть непростой задачей. Если вы когда-либо ломали голову, размышляя о том, как применить свой опыт работы с Selenium к интерфейсу, нарисованному с помощью Flutter, эта статья для в...
Хуже, чем заключенные: как в Китае студенты тренируют ИИ Аннотаторы данных для ИИ — новая горячая профессия в IT. Несколько десятков тысяч человек работают на таких «плантациях» в Венесуэле, в том числе обучая умные пылесосы. Недавно я рассказывал о том, как это происходит в Финляндии за счет труда заключенных. За разбор картинок ...
Типы собеседования или как довести соискателя Привет Хабр!За свою карьеру, мне довелось пройти много собеседований, и я хотел бы поделиться с вами "типами собеседований" в формате коротких историй. По ходу повествования, мы постараемся понять, а какое же идеальное собеседование? И на какие собеседования лучше не тратить...
[Перевод] Как, блуждая по Stack Overflow, можно набрести на Branch predictor В блоге beeline cloud мы делились историями и мнениями разработчиков — как программист-самоучка выучил 30 языков программирования, в каких случаях парное программирование не работает и почему некоторые проекты угасают, когда из компании уходит тимлид разработки. Сегодня...
Как устроены видеоконференции Привет, Хабр! На связи Женя Фирстов, лид команды разработки бэкенда видеозвонков в Т-Банке. Расскажу про устройство современных систем видеоконференцсвязи. Я затрону широкий спектр тем, но не буду углубляться в детали, чтобы статья была понятна для тех, кто ранее не работал ...
Бизнес-правила в действии: семь лет развития и усовершенствования Business Rules Engine Привет! Меня зовут Владислав Кучинский. Я начинал свой карьерный путь в IT с разработки на С++ и Java, а сейчас являюсь руководителем группы Platform Event Management в компании Bercut. Сегодня я расскажу историю создания платформы Business Rules Engine (BRE) Bercut – систем...
Софтмакс Гумбеля: как устроен и для каких нейронных сетей полезен Всем привет! Меня зовут Николай Лысенко, я занимаюсь рекомендательными системами в Яндекс Маркете. Сегодня хочу затронуть интересную тему: что делать, если в графе вычислений (aka нейронная сеть) возникает дискретное место, через которое не проходит градиент. Как многие знаю...
Создание онлайн видео плеера Привет, Хабр! Меня зовут Игорь, я занимаюсь мобильной разработкой в компании ГРИ, часть холдинга Sunlight. Сегодня хочу поделиться опытом создания плеера для воспроизведения плейлистов в форматах m3u и m3u8. Читать далее
[Перевод] Как языковая модель предсказывает следующий токен (часть 1) Я обучил небольшой (порядка 10 миллионов параметров) трансформер по превосходному туториалу Let’s build GPT: from scratch, in code, spelled out Андрея Карпати. После того, как он заработал, я захотел максимально глубоко понять, как он устроен внутри и как создаёт свои резуль...
Замыкания и декораторы в Python: часть 1 — замыкания Впервые столкнувшись с концепцией замыканий, я мало что понял, и мне потребовалось потратить какое-то время на поиск и изучение дополнительных материалов, чтобы разобраться. Если у вас возникли те же проблемы, я постараюсь коротко, но понятно объяснить эту тему. Читать далее
Внутренние данные: топливо успеха в банковской индустрии, или Тайны загрузки данных, формирующих будущее инноваций Внутренний источник данных в банке – это любой источник информации, который находится внутри банковской организации и генерирует данные самостоятельно. Эти данные хранятся исключительно внутри банка. Они выделяются уникальностью, бесплатностью (сформированы внутри ...
Улучшаем возможности PM2 с помощью дополнительных модулей автоскейлинга и мониторинга Всем привет. Сегодня я бы хотел рассказать о том, с какими трудностями пришлось столкнуться при работе с менеджером node.js процессов PM2, и как нам пришлось расширить его возможности для того, чтобы его было можно использова...
Navmesh, lightmaps и lightprobes: реализация и использование в Playcanvas В этой небольшой заметке хотелось бы поделиться результатами реализаций нескольких технологий из gamdev-а. В основном коснёмся двух тем. Первая тема - это использование navmesh-ей для нахождения путей в пространстве трёхмерной сцены. Вторая тема - это использование lightmap ...
Похоже, я придумал свой алгоритм поиска кратчайшего пути Всем привет! Я реализовал похоже собственный алгоритм поиска кратчайшего пути с отрицательными ребрами графа. Почему собственный? Я искал подобное решение, но не нашел, возможно, оно уже было реализовано, просто плохо поискал. Жду Нобелевскую премию =) Додумался я до него пу...
Добавить в пиццу клей или готовить курицу при 39 градусах. Google объяснила странные ответы ее функции AI Overviews, добавленной в поисковую систему Компания Google недавно добавила в свою поисковую систему новейшие технологии на базе искусственного интеллекта. И с этим сразу же появились проблемы, хотя компания заверяет, что это единичные случаи. создано DALL-E Функция AI Overviews в поисковике Google работа...
Локальный веб-сервер для разработки с помощью Docker К вам в отдел выходит новый коллега-разработчик и, прежде чем брать первые задачи в одном из проектов, первым делом ему нужно запустить его у себя локально. Если это Senior Full Stack разработчик с опытом администрирования Linux, то установка и настройка конфигов Nginx,...
Теория, практика и личный опыт в обучении IT-управленцев Всем привет. Меня зовут Сергей Фегон. Я ex-CТО, сейчас работаю руководителем нескольких групп разработки финтех-продуктов экосистемы компаний ВБЦ и TenChat, а также преподаю в OTUS. Делюсь своими знаниями на курсах CTO/Технический директор и Team Lead в OTUS. За время препод...
В чем силиум, брат? Обзор ключевых фишек Cilium и его преимущества на фоне других CNI-проектов Привет! Меня зовут Даниил, я DevOps-инженер в KTS.Сегодня я расскажу о Cilium – единственном опенсорсном CNI-плагине для Kubernetes с технологией eBPF под капотом.Помимо CNI, Cilium предоставляет множество фич, которые также используют eBPF и в совокупности покрывают почти в...
Padding vs SizedBox. Что выбрать для вёрстки отступов Column и Row Здравы будьте! С вами на связи руководитель Flutter-направления Mad Brains Николай Омётов. В этой статье я проведу разбор особенностей вёрстки отступов с помощью Padding и SizedBox и расскажу, что выбрала наша команда для создания единого стиля кода. Читать далее
Что такое Proxima DB? Знакомство с российской СУБД на базе PostgreSQL Спрос на российские СУБД ожидаемо вырос за последние три года. В этом нет великого предвидения: такова жизнь и так сегодня работает «геополитика». Но в итоге мы очень рады, что начали разработку Proxima DB еще 5 лет назад. В этой статье я расскажу, чем Proxima DB отлич...
Мой первый софт и астрономия Расскажу о своём небольшом опыте работы в проекте, который был посвящён астрономии, и о математике, с которой пришлось повозиться. Я написал программу которая при помощи метода Монте-Карло моделирует рассеивание света звёздной пылью. Скажу сразу что я не математик и не астро...
[Перевод] Кандидатура — старший инженер-программист. В должности отказать… Привет, Хабр!Недавно команде разработки beeline cloud попалась вот такая статья. И оказалась она довольно дискуссионной. Настолько, что мы решили ее перевести и узнать мнение широкой аудитории — а кто же, по вашему мнению, достоин называться синьором?Похвально, когда ради ка...
Зачем и как практиковаться начинающему аналитику — Что работодатели хотят от джуниор аналитика данных?— Работодатели хотят, чтобы он был мидлом.Если ты не смеёшься над этим анекдотом, то наверняка недавно закончил (либо заканчиваешь) обучение по обретению специальности «Аналитик данных». А ещё ты пока не нашел, но уже нача...
Как быстро интегрировать Систему быстрых платежей (СБП) в приложение на Flutter Всем привет! Меня зовут Мурат Насиров, я Flutter-разработчик в Friflex. Мы разрабатываем мобильные приложения и специализируемся на решениях для ритейла. На одном из наших проектов мне пришлось столкнуться с внедрением кнопки оплаты через Систему Быстрых Платежей (СБП). В эт...
[Перевод] Призыв писать компактное ПО, версия 2024 года (с примером кода) Этот пост посвящён памяти Никлауса Вирта, первопроходца в сфере вычислительных наук, ушедшего от нас 1 января этого года. В 1995 году он написал важную статью A Plea for Lean Software, и в своём посте я постараюсь воспроизвести её почти тридцать лет спустя, с учётом современ...
Очень дорогое лечение дёсен — постарайтесь до него не доводить Есть такой классный врач, который весьма успешно решает большую часть проблем с дёснами, чувствительностью зубов и кровью, которая остаётся на зубной щётке. Он называется пародонтолог. А я хирург-ортопед, и разруливаю нетипичные случаи, в которых он бессилен. У первой пац...
Backup. Файловое резервное копирование бюджетного VPS Предыстория. В своё время, когда мне надо было найти решение этого вопроса на Хабре, казалось, что все статьи состоят из установки и настройки Veeam Backup, Proxmox Backup и прочих коммерческих решений для блочных устройств. У меня запросы поскромнее. SLA и 3-2-1 не требуютс...
Как работает эффект плацебо Многие относятся к эффекту плацебо с большим скептицизмом, будучи уверенными, что от пустышки не может быть эффекта. И я это вполне понимаю, никто не хочет платить деньги за воздух. Но посмотрим на это с научной точки зрения и почему в мире так часто применяют плацебо? На с...
Изучаем WebRTC на практике: Лучшие инструменты и демо В этой статье(или дайджесте) я поделюсь ключевыми инструментами, демонстрационными приложениями и открытыми проектами, незаменимыми для практического понимания WebRTC. Здесь не будет туториалов или подробных объяснений о той или иной части WebRTC, а скорее некий дайджест рес...
RAIDIX: тернистый путь к светлому счастью? Разбор на винтики Привет, Хабр, и добрый день, уважаемые читатели! Я архитектор по инфраструктурным решениям, и в этой статье расскажу про свой личный опыт работы программной СХД RAIDIX 5.1 — 5.2. Все изложенное — мой личный опыт, пройденный от сборки, ...
Реализация взаимодействия с БД через Middleware в Telegram-ботах Когда я начинал писать своих первых ботов с использованием базы данных, их код был очень плохим: он расходовал лишние ресурсы, а также была плохая архитектура проекта. Поэтому я хочу поделиться с вами своими знаниями, чтобы вы не наступали на те грабли, на которые наступа...
[Перевод] Perfect DLL Hijacking. Разбор техники Привет, Хабр, на связи лаборатория кибербезопасности компании AP Security! В статье речь пойдет о такой технике, как DLL Hijacking, а именно как это работает от А до Я.DLL Hijacking - это техника, позволяющая внедрять сторонний код в легитимный процесс (EXE), обманывая...
[Перевод] find + mkdir полны по Тьюрингу ВведениеМы покажем, что система, имеющая лишь команды GNU find и mkdir, полна по Тьюрингу.Хорошо известно, что команды sed и awk сами по себе полны по Тьюрингу, но мне не удалось найти информации о Тьюринг-полноте find + mkdir.Доказательство осн...
Собираем бюджетный домашний NAS на 14 ТБ Начав заниматься фотографией, я быстро ощутил нехватку места на компьютере. Фотографии в RAW имеют большой вес, а про видео говорить ещё страшнее. Решение проблемы очень простое — собрать NAS. О моём опыте сборки бюджетного NAS на 14 ТБ я напишу далее в статье. Читать да...
NLUX: Библиотека интерфейса Conversational AI В современном мире взаимодействие с компьютерами и приложениями становится все более естественным и удобным благодаря использованию разговорных интерфейсов и искусственного интеллекта. Однако, интеграция таких функциональностей в веб-приложения может стать вызовом для разраб...
Призвание быть наставником Привет, Хабр! Меня зовут Данила Гриднев. Я занимаю должность Software Engineering Manager, курирую бэкенд‑разработку различных проектов, созданных на базе блокчейн‑платформы компании Web3 Tech. Помимо этого, я уже не первый год занимаюсь онбоардингом и менторством ...
Почему я больше не буду работать наставником на IT-курсах Меня всегда тянуло к обучению людей и шарингу знаний. Когда я был разработчиком, то охотно становился ментором у стажеров. И даже сейчас, работая тимлидом, я являюсь пипл-менеджером уже у senior-разработчиков. Но у меня никогда не было опыта работы преподавателем или наставн...
Как работают Векторные базы данных и Поиск похожих текстов в них Если вы когда-нибудь использовали в работе retrieval augmentation generation (RAG) на базе векторного поиска и не лезли туда под капот, но были бы не прочь, я постараюсь погрузить вас в то, как устроена векторная база данных внутри. Читать далее
Сборник советов, как упростить работу с YAML-файлами YAML (.yml) — популярный язык для конфигурационных файлов, широко используемый DevOps в подходе «Инфраструктура как Код» (IaC). Несмотря на то, что работать с ним бывает проще, чем с тем же JSON (особенно в контексте взаимодействия с большими объемами данных), иногда использ...
Смена профессии и мой первый опыт в IT: путешествие в мир фронтенда с Tauri, REST и Fetch API Привет, Хабр! Меня зовут Гармаев Энхэ. В течение длительного времени я работал в сфере розничной торговли, занимая должность менеджера. Это было увлекательное и насыщенное время, но, как говорится, в жизни всегда есть место переменам и новым вызовам....
VisionFive2 (ядро Linux) В предыдущей статье мы рассмотрели процесс сборки загрузчика. Теперь мы рассмотрим ядро Linux, исходные коды которого поддерживает компания StarFive в репозитории https://github.com/starfive-tech/linux. Кроме того, мы рассмотрим создание скриптов загрузки ядра (boot.scr) для...
Илон Маск планирует строить новые Starship так же часто, как Boeing выпускает 737-ю модель самолёта. Но зачем? Создатель SpaceX Илон Маск никогда не скрывал того, что вся его деятельность направлена на колонизацию Марса. И сейчас предприниматель находится к реализации своей цели ближе, чем когда-либо. Так, сверхтяжёлая ракета-носитель уже почти готова, в феврале планируется третий те...
Чтение на выходные: DIY-материалы о контейнерах, DevOps и архитектуре — личный опыт напрямую от специалистов Подготовили дайджест материалов, в которых авторы делятся опытом решения различных ИТ-задач и рассказывают: как развернуть Kubernetes-кластер в домашних условиях, провести аудит его безопасности, выстроить ИТ-архитектуру и не только. Читать далее
[Перевод] О создании системы, преобразующей текст в SQL для аналитиков Pinterest Написание запросов для решения аналитических задач — это основное занятие тех, кто работает с данными Pinterest. Но подбор подходящих данных и преобразование описания проблемы в корректный и эффективный SQL‑код могут оказаться непростыми делами. Ведь...
Наделяем ansible состоянием, делая похожим на terraform (Читать с толикой сарказма…) Все, кто работал с ansible, знают, что он не хранит состояние результата своей работы. Это нелепое поведение ansible, нельзя взять и просто удалить из git объекты конфигурации, чтобы они исчезли с управляемых систем, фу. При этом сразу вспоминае...
Как интегрировать мультиаккаунт в уже работающий сервис и не поломать всё Многие мобильные приложения, от социальных сетей до стриминговых сервисов, позволяют авторизоваться. Это открывает доступ такой функциональности, как история действий, список избранного, хранение и синхронизация между устройствами созданного пользователем контента, персонали...
Обзор библиотеки bleve в Golang Bleve предоставляет индексации любых структур данных Go, он поддерживает различные типы полей: текст, числа, даты и логические значения, а также разнообразие запросов: от простых терминов до фраз и сложных булевых запросов.В этой статье рассмотрим основной функционал этой би...
Опыт использования трех уровней защиты технологии акустической заморозки. Патентная. Техническая. Отсутствие публикаций Делимся опытом защиты свой разработки. Опыт не универсален. Кому-то подойдет, а кому-то нет. Крупные корпорации рассчитывают на суды. И на свои бюджеты на суды. А если ты не корпорация? Тогда ищи другие пути. Читать далее
Землю — крестьянам, gRPC — питонистам Протокол gRPC в данный момент является довольно распространёным решением (почему, очень хорошо описано в статье от Яндекса). На работе мы также используем его везде, где идёт речь об общении микросервисов друг с другом. Но, к сожалению, когда я начал вникать в устройство и п...
Он был не таким: смотрим на HP Veer. Какой смартфон выпустила HP во времена iPhone 4? Друзья! Мы уже успели с вами рассмотреть некоторые смартфоны на самых разных и редких Web-based платформах, таких как Bada, FireFox OS и конечно-же KaiOS. Однако сегодняшний девайс особо выделяется за счёт того, что использует операционную систему HP webOS (предок той самой...
Мой первый опыт с VyOS. Часть 1 Привет хабр!Меня зовут Берик, я работаю системным администратором в IT холдинге SAMGAU, где отвечаю за IT инфраструктуру. Хочу написать серию статей где поделюсь своим опытом по использованию VyOS. Читать далее
В Германии обнаружен заброшенный автосалон с Lada и Kia YouTube-канал Forgotten Buildings, специализирующийся на исследовании заброшенных зданий, опубликовал видео из Германии. Авторы канала обнаружили там давно закрытый автосалон, который в разное время продавал автомобили бренда Lada и корейской марки Kia. Судя по всему, и...
Лучше быть, чем казаться. 10 шагов, чтобы стать «вкусным» кандидатом на собеседовании Каждую неделю я провожу собеседования и вижу, как ребята с классным опытом и неплохими навыками продолжают получать отказы. Для меня это как зелёный свет: можно писать, кому-то это будет полезно.Сегодня я хочу поговорить о том, как стать «вкусным» кандидатом для крупных комп...
Как язык моделирования ArchiMate помогает IT аналитикам в решении их задач В постоянно меняющемся мире бизнеса и технологий организации сталкиваются с вызовом управления сложностью, стремясь при этом к эффективности и инновациям. Для решения этой проблемы аналитики начинают обращать свой взгляд к надежным языкам моделирования, чтобы получить всесто...
Road to Flutter – анализ опыта миграции с React Native Смена стека разработки. Иногда команды просто вынуждены пойти на подобный радикальный шаг для того, чтобы продолжать успешно решать поставленные задачи. И мы в BetBoom в рамках проекта LotoClub пошли на это и хотим рассказать об опыте своего перехода от React Native к Flutte...
Интеграционная платформа в The Platform: что умеет, как работает и зачем ей Workflow Engine Всем привет! Меня зовут Александр Бардаш, я главный архитектор интеграционных платформ в МТС. Сейчас наша команда работает над интеграционной платформой в рамках The Platform, которая объединит все существующие типы интеграций экосистемы и позволит ими управлять. Давайте дог...
Реализация многофункционального терминального интерфейса для МК AVR В данной статье речь пойдёт о разработке многофункционального терминального интерфейса для МК (на примере МК Atmega32 и терминала HyperTerminal. Многофункциональность в моём случае будет заключаться в обработке управляющих символов и управляющих последовательностей с целью р...
Пишем минимальный ActivityPub-сервер с нуля В последнее время, на фоне покупки Twitter Илоном Маском, люди начали искать ему альтернативы — и многие нашли такую альтернативу в Mastodon. Mastodon — это децентрализованная социальная сеть, работающая по модели федерации, как email. Протокол федерации называется Activity...
Общее описание и реализация Word2Vec с помощью PyTorch В данной статье даётся общее описание векторного представления вложений слов - модель word2vec. Также рассматривается пример реализации модели word2vec с использованием библиотеки PyTorch. Приведена реализация как архитектуры skip-gram так и CBOW. Читать далее
[Перевод] Почему я отказался от разработки игр на Rust, часть 3 Часть 1Часть 2Ситуация с GUI в Rust просто ужаснаВ сообществе Rust ходит шутка, что на 5 игр существует 50 игровых движков; наверно, ещё одна такая шутка нужна про фреймворки GUI. Люди пробуют разные подходы, что, учитывая полную обобщённость Rust как языка, имеет смысл. Но ...
[Перевод] Прекратите клепать базы данных В жизни каждого инженера-фронтендера наступает момент, когда осознаёшь: далее не обойтись без кэширования данных из API. Всё может начаться с самых невинных вещей: сохраняем предыдущую страницу с данными, чтобы кнопка «Назад» срабатывала мгновенно; реализуем простенькую логи...
Готов ли Swift OpenAPI Generator для продуктивного кода? Привет! Меня зовут Андрей, я iOS-разработчик приложения «Пункт Ozon». С помощью него сотрудники пунктов выдачи Ozon выдают посылки, принимают возвраты, проводят инвентаризации. Мы хотим упростить работу с OpenAPI-спецификациями, внедрив кодогенерацию для автоматического...
Геймдев жив? Несмотря на кликбейтный заголовок, проблему я хочу поднять вполне серьёзную. Последние 17 лет я работаю в геймдеве и преподаю геймдизайн. Это помогает структурировать мысли и факты. И именно этим мы займёмся в данной статье: разложим по полочкам факты, формирующие облик совр...
Как я писал свою первую игру для Dendy Что такое Dendy? Что так любит детвора? Это электронная игра! Ооо, дендиии...В этой статье я вам расскажу о своем первом опыте разработки игры для NES/Famicom консоли. Постараюсь рассказать о инструментах, которые использовал и о интересных особенностях разработки игр для De...
ВРМ. Смарт-инструменты «Таблица -> Схема» для формализации бизнес-процессов. Рестайлинг ARIS SmartDesign Ставится задача повторить доселе непревзойдённый ARIS SmartDesign, который по табличному представлению процесса автоматически рисует схему процесса (структуры чего-либо). Схемы процессов желательно строить в нескольких процессных нотациях (EPC, VAD и т.п.). ARIS SmartDesign ...
Пакуем весь трафик в Ping message, чтобы не платить за интернет | ICMP NAT traversal Бывало ли у вас такое, что вы подключились к общественной сети или мобильному интернету, но он себя странно ведёт. Надпись «Подключено, без доступа к интернету» отсутствует, устройство думает, что всё нормально. Вы открываете браузер и видите «Пройдите проверку личности в с...
Безопасный интернет через Termit: 11 шагов для развертывания СТД Привет, Хабр! Сегодня мы подробнее поговорим про Termit 2.1 — систему терминального доступа. Она предназначена для организации удаленного доступа конечных пользователей к приложениям, опубликованным на терминальных серверах. В этой статье я расскажу о том, как мы делал...
[Перевод] Руководство по веб-скрейпингу на Python В этом туториале мы создадим надёжные веб-краулеры с использованием таких библиотек, как BeautifulSoup, изучим техники, позволяющие преодолевать реальные трудности при скрейпинге, а также представим рекомендации по крупномасштабному скрейпингу. Вы получите навыки для скрей...
Методы оптимизации в машинном и глубоком обучении. От простого к сложному В данной статье представлен обзор различных популярных (и не только) оптимизаторов, которые применяются в машинном и глубоком обучении, в частности для обучения нейронных сетей. Мы рассмотрим их основную идею и ключевые особенности, переходя от простых к более сложным концеп...
NVIDIA обновила свой чат-бот ChatRTX AI Сегодня компания NVIDIA официально обновила свой чат-бот ChatRTX AI, который позволяет в корне изменить опыт использования ПК с искусственным интеллектом. В компании отмечают, что основное различие между ChatGPT от OpenAI и ChatRTX от NVIDIA заключается в том, что решение NV...
Дерево отрезков Всем привет. В этой статье я расскажу про дерево отрезков. Очень мощной структуры данных, которая позволяет делать много разных операций над массивом чисел. Я постараюсь по полочкам разложить эту тему и объяснить возможности дерева отрезков. Также я разберу несколько нетриви...
Обзор Датчика Ультрафиолетового Излучения LTR-390UV-01 Существует ASIC чип LTR390. Это датчик ультрафиолетового излучения.Я разрабатываю Солнечный навигатор. Признаком присутствия естественного света у поверхности Земли может как раз служить факт наличия ультрафиолетовых лучей. Поэтому и пришлось разбираться как подключить датчи...
Диплом специалиста ИБ. Часть №2 — Стационарное устройство SmartLight Привет, Хабр!Так вышло, что я заканчиваю университет в феврале 2024 года (направление 10.05.01 «Компьютерная безопасность» является специалитетом, поэтому студенты выпускаются традиционно зимой после 5,5 лет обучения). Соответственно, уже в прошедшем 2023 году передо мной, к...
Книга «React быстро. 2-е межд. изд.» Привет, Хаброжители! React предельно упрощает создание привлекательных и надежных интерфейсов для веб-приложений. Эта великолепная библиотека JavaScript имеет модульную архитектуру, что позволяет легко создавать, объединять и тестировать компоненты. React идеально подходит...
Как создать часы на Python: уроки программирования для школьников Разбираемся, какие проекты могут создавать на Python дети от 10 лет. Внутри туториал по созданию часов и видеоинструкция, если вам больше подходит аудиовизуальный формат.Python открывает перед школьником множество дверей в мир технологий и дает возможность получить увереннос...
Сократили 70% штата: к чему готовиться, когда запускаешь агентский бизнес в IT Моей веб-студии уже 4 года. За это время я прошёл путь от «вау, я бизнесмен» до разочарования и примирения с суровой реальностью.Хочу поделиться опытом с теми, кто тоже мечтает открыть агентский бизнес. Вы узнаете, какие ошибки я сделал, что из этого вынес — и почему до сих ...
[Перевод] Я уже 14 лет в отрасли, но программировать по-прежнему сложно Много лет назад, учась computer science на старших курсах, я долго изучал различные вакансии онлайн, надеясь найти подходящую должность стажёра-программиста.Кроме вакансий для стажёров я иногда случайно нажимал на объявления о вакансиях «сеньор-разработчика». Помню, больше в...
Пишем асинхронный парсер и скрапер картинок на Python с графическим интерфейсом В этой статье мы создадим desktop-приложение, которое по нашему запросу будет сохранять на нашем диске заданное количество картинок. Так как картинок будет много, мы воспользуемся асинхронностью Python для конкурентной реализации операций ввода-вывода. Посмотрим, чем отличаю...
Динамический шеринг GPU в Kubernetes: разбор взлетов, падений и существующих решений Привет, Хабр! С вами снова Антон, все еще DevOps-инженер в отделе Data- и ML-продуктов Selectel, который все еще исследует тему шеринга GPU. В предыдущей статье я рассказал, как можно использовать шеринг видеокарт в Kubernetes. В комментариях была затронута тема динамическ...
Миграция с Webpack и react-scripts на Vite: Путь к Быстрому и Легковесному React Я работаю фронтенд-разработчицей в IT-компании, и многие из моих проектов на протяжении долгого времени собирались с использованием Webpack. Настройка Webpack иногда бывала сложной, но в целом он справлялся с задачей сборки проектов. Однако в последнее время мои коллеги нача...
Работа с TCP IP на IBM Mainframe Не так давно я проводил корпоративное обучение на тему того, как работать с мейнфреймом IBM. Хочу рассказать об этом в нескольких статьях. TCP/IP (Transmission Control Protocol/Internet Protocol) представляет собой набор сетевых протоколов, обеспечивающих связь между компьют...
Потерянный контакт с агрессией, гештальт и IT-шники Меня зовут Антон. Я гештальт-терапевт и руководитель отдела тестирования. В основе моей терапевтической практики лежит работа с IT-специалистами. В данной статье я постараюсь ёмко описать свой опыт работы с клиентами, которые потеряли контакт со своими активными, агрессивным...
Запуск I2S Трансивера на Artery [часть 2] (DMA, FSM, PipeLine) В этом тексте вы узнаете, что общего между I2S трансивером и оладьями. Да... Именно так. А также зачем программисту микроконтроллеров конвейеры и цифровые фильтры. В тексте изложено про то, как источать звук при помощи I2S + DMA. Читать далее
Разбор монады ContT, или как написать продвинутый goto, генераторы и файберы на хаскеле В этой статье я разберу монаду ContT, и покажу как вернуть return и другие control-flow операторы из императивных языков программирования, которых мне так нехватало, когда я начинал изучать хаскель. Читать далее
Летающий Санта, танцующие снегири и ёлочные игрушки: опыт реализации и оптимизации анимаций в игре Привет! На связи Кристина, фронтенд-разработчик в KTS.Большое количество графики и анимаций потребляет достаточно много ресурсов. Однако благодаря оптимизации можно сделать так, чтобы всё работало без глюков и тормозов. Рассказываю, как создавала анимации для игры из внутрен...
[recovery mode] Домашняя лаба. Как собрать домашнюю инфраструктуру мечты Мой первый опыт на Хабре получился не очень положительным, и, признаюсь, до сих пор смотря на комментарии и оценки, мне стыдно и больно где-то внутри.Потому в имя исправления ошибок молодости решил написать серию статей о том, как дома собрать свою "идеальную" хранилку, или ...
Нейросети и компьютерное зрение (CV). Основы теории. Практика. Своя система распознавания на одноплатном компьютере — Никто не обнимет необъятного!Козьма Прутков, 1854Одно из интересных и полезных применений нейросетей — обнаружение объектов на изображении, таких как машины, люди или человеческие лица.Глубокое погружение в тему нейросетей требует немало времени и сил, ...
Нагрузи меня, Gatling Привет. Это статья-туториал про выбор технологии и реализацию проекта нагрузочных тестов для API REST микросервисов. Про себя и специфику продукта, над которым работаю, я подробно описывал тут, когда рассказывал о интеграционных тестах. Здесь этому уделять внимание не буду. ...
Итоги RecSys 2023: разбор знаковых статей прошедшей конференции. Часть 1 ACM RecSys — международная конференция, на которой эксперты в области рекомендательных систем делятся своими наработками и исследованиями, задавая тренды развития технологий и подходов. Команда ОК изучила статьи конференции RecSys 2023 и сделала разбор наиболее интересных из...
Edge ML для людей с ограниченными возможностями С развитием технологий появились новые возможности для людей с ограниченными возможностями. Edge Machine Learning (Edge ML) представляет собой передовую технологию, которая приближает алгоритмы машинного обучения к источнику данных, что сокращает задержку и улучшает возможно...
Дружим FreeBSD и HomeAssistant Привет, Хабр!Многие из вас наверное слышали о Home Assistant (далее HA) - система домашней автоматизации с открытым исходным кодом, которая прекрасно работает на различных аппаратных решениях и поддерживает операционные систем Linux, macOS, Windows. К сожалению, в списке под...
Волчистость в IT или как наставники манипулируют фактами и подменяют понятия Привет Хабр! В данной статье я планирую рассмотреть современное явление и сообщество, известное как "Волчистость в IT". Это сообщество активно развивается благодаря своим членам и наставникам. Оно также отстаивает ценности, которые являются токсичными и приводят к выгоранию....
Кроссдоменная координация. Как двигать огромные IT-проекты в огромной компании Все знают, что в условиях большой компании очень сложно двигать крупные проекты к успеху. В таком проекте участвует много команд, каждая со своими интересами, приоритетами и особенностями, а общий объём работы — огромный. Если вам интересно довольно простое решение этой...
Найти работу в IT: миссия 2024 Привет! Меня зовут Полина, и я уже десять лет работаю дизайнером в айти. В основном продуктовый UX/UI, но были и отдельные проекты разного характера. Расскажу про свой (и друзей) опыт поиска работы два года назад и сейчас, на русскоязычном рынке. Читать дальше →
Создание базового образа с Packer Packer – это инструмент для создания однородных образов виртуальных машин и контейнеров для использования на различных платформах от HashiCorp. C ним можно легко автоматизировать процесс сборки образов на основе одного исходного конф. файла, используя предопределённые шаблон...
[Перевод] Kubernetes на AWS: пошаговое руководство В этой статье мы рассмотрим несколько распространенных способов создания кластера Kubernetes на AWS:— Создание кластера с помощью kops: kops — это инструмент, предназначенный для промышленной эксплуатации, используемый для установки, обновления и управления Kubernetes на AWS...
Мифы и реалии «Мультимастера» в архитектуре СУБД PostgreSQL. Часть. 2 Привет, Хабр! Это снова мы — Павел Конотопов и Михаил Жилин, сотрудники компании Postgres Professional. Напомню, что Павел занимается архитектурой построения отказоустойчивых кластеров, а я анализом производительности СУБД. У каждого из нас за плечами более десяти лет опыта ...
Road Run, или как я свою первую игру делал. Часть 7 Отличительной особенностью игр жанра раннер является бесконечный уровень, на котором игрок должен продержаться как можно дольше и собрать при этом как можно больше очков. В этой части речь пойдёт о способе генерирования новых сегментов дорожного полотна для создания эффекта ...
Мартышка и АйТи Мартышка и АйТи: Парадокс сложной эффективностиВы когда-нибудь задумывались, почему в IT всё циклично? Почему старые методы и технологии, которые когда-то были на пике популярности, возвращаются на сцену?Давайте разберёмся, что такое Парадокс сложной эффективности на простом...
[recovery mode] Софт-скиллы. Мой опыт в зарубежных компаниях Когда я училась в универе, программисты ещё считались людьми закрытыми, необщительными, странными. И я очень старалась этому образу соответствовать. Но после моего переезда оказалось, что ситуация начала меняться, и даже самому матерому сисадмину неплохо бы овладеть культуро...
Блокчейн для чайников: создаем свой первый распределенный реестр Привет, Хабр! На связи Николай, главный редактор Web3 Tech. Как можно предположить по должности, опыта в разработке я почти не имею. Год назад закончил мини-курс по Python, сделал об этом пост и с тех пор код не писал. Но недавно набрался смелости, заручился посильной поддер...
Применяем стандартные алгоритмы в C++. Семь примеров Привет, Хабр! Меня зовут Николай, я разработчик С++ в SimbirSoft. В этой статье я хочу поделиться своим опытом применения алгоритмов. Каждый из нас знает, что существуют алгоритмы стандартной библиотеки, и что они делают. Но не все и не всегда используют их. Я тоже их н...
UUIDv7 Седьмая версия UUID (Universally Unique Identifier Version 7, UUID Version 7, UUIDv7) является модифицированной и стандартизованной версией ULID. Проект стандарта (далее стандарт) находится в ожидании окончательной проверки редактором. Но уже имеется большое количество реали...
Как получить гражданство в Германии? Сейчас проходят финальные слушания по принятому закону, который позволит получить гражданство за 5 лет или в особых случаях 3 года. Раньше это было 8 лет. Дальше в статье идет детальный разбор закона и его 4-ех основных требований с ссылками на статьи и цитаты. Читать дале...
Дорожная карта основных HR-исследований HR-исследования играют ключевую роль в успешном управлении человеческими ресурсами. Они позволяют компаниям лучше понимать своих сотрудников, выявлять проблемные зоны и разрабатывать эффективные стратегии для улучшения рабочей среды и повышения продуктивности. В данной стать...
[Перевод] Как добавить Flutter в нативное приложение iOS и протестировать его на Codemagic (Часть 2) Hola, Amigos! На связи Саша Чаплыгин, Flutter dev компании заказной разработки Amiga. Нашел интересную статью на английском о том, как добавить Flutter в новый или существующий проект Native iOS. Решил поделиться с вами переводом. Это вторая часть, в которой будет идти речь ...
Расширяем тестовый фреймворк с помощью Pytest-плагинов. Часть 2: практика В первой части статьи мы разбирались с теорией, которую нужно знать для создания собственных Pytest-плагинов: фикстурами, маркерами и хуками. А теперь перейдем к практике. Я покажу два примера плагинов, которые помогают нам в интеграционном тестировании систем хранения ...
Разбор задач «Квеста на миллион» Друзья, разбираем задачи прошедшего квеста на миллион. Для простоты, в разборе будем использовать формализованные формулировки задачи. Ознакомиться с исходными формулировками можно в самом квесте. Квест открыт и доступен для прохождения. Читать далее
Помогаем приложению Kyocera увидеть сканер из-под доменного пользователя Привет, Хабр. Меня зовут Александр, и с недавнего времени я работаю системным администратором в «Петрович-Тех». Не так просто поделиться локальной проблемой, когда регулярно читаешь лонгриды о каких-то масштабных продуктах, в том числе и разделе «системное администрирование»...
Как сделать нейросети ассистентом SMM-менеджера: наш опыт Нейросети в маркетинге сегодня используют не только из-за высокой скорости решения задач и их относительной дешевизны по сравнению с целой командой специалистов, но и потому, что это стало модным. Логотип, нарисованный Midjourney, или презентация, написанная с помощью ChatGP...
Чем живёт айтишник в атомной отрасли Когда-то я работал системным инженером в одном из крупнейших российских системных интеграторов. Там внедрял и сопровождал системы электронного документооборота. В 2010 году «Гринатом» искал специалиста с моим опытом, чтобы сопровождать свою отраслевую систему документооборот...
Заглянем в хрустальный шар: как продвигается разработка стандартных матричных расширений RISC-V Привет, Хабр! В предыдущем тексте мы рассмотрели все существующие матричные расширения. Возникает вопрос: ждать ли в ближайшее время новых расширений для матричных операций? Ответ — да, они разрабатываются прямо сейчас для архитектуры RISC-V. Новость может вызвать удивление,...
Нарратив и геймплей: создание согласованного игрового опыта Привет, уважаемые поклонники видеоигр, разработчики, мои коллеги нарративные дизайнеры, и все, кто когда-либо задумывался о том, как создаются захватывающие игровые миры! Сегодня мы погрузимся в увлекательное путешествие по миру нарративного дизайна и геймплея, раскрывая сек...
Intel не делает процессоров, подобных Ryzen X3D, потому что это не имеет смысла? Тесты показали, что дополнительная кеш-память для текущих Core почти бесполезна Процессоры Ryzen X3D показали себя, как лучшие решения для игр. К тому же наличие дополнительной кеш-памяти существенно повышает энергоэффективность. Компания Intel пока не выпустила ничего подобного, но, возможно, её процессорам это и не поможет. По крайней мере тесты ...
Как уменьшить размер бандла раз и навсегда: приемы, метрики, мониторинг Существует довольно много статей на тему оптимизации размера бандла, но большинство из них говорят об узких деталях или подходах к уменьшению размера бандла. Либо наоборот — совсем широко, с общими советами.В этой статье я постараюсь рассказать как комплексно подойти к оптим...
Оптимизация работы с Camunda на основе External task Привет! Меня зовут Андрей, я - ведущий разработчик в "РТК ИТ". В этой статье речь пойдет об опыте перехода на паттерн external task в одной из наших систем.Camunda — это BPM-движок для автоматизации бизнес-процессов. Она представляет собой набор библиотек, которые и позволяю...
Как реализовать обрезку изображений во flutter без сторонних библиотек Сегодня рассмотрим, как с помощью небольших знаний в математике и встроенных инструментов flutter реализовать функционал редактирования изображений. Сначала рассмотрим существующие библиотеки, которые предоставляют нужный функционал, а потом реализуем собственное решение, ис...
Xiaomi Redmi Note 13 и Redmi Note 13 Pro: универсальные телефоны на все случаи жизни. На что они способны? Недавно представленные компанией Xiaomi телефоны Redmi Note 13 и Redmi Note 13 Pro поступили в продажу в России. Оба устройства внешне похожи, и если сравнивать их в чёрном цвете, порой сложно определить, какая именно модель у вас в руках. Но это первое впечатление. На самом...
Сравниваем DBSCAN и OPTICS Привет, хаброчеловек) В этой статье рассмотрим алгоритмы кластеризации DBSCAN и OPTICS, посмотрим их особенности, обсудим, когда что лучше применять Welcome под кат Читать далее
Терминальная ферма 1C на x2go Итак, импортозамещение катится по стране неостановимым катком. Внесём свой посильный вклад. Под давлением обстоятельств нам пришлось сделать терминальную ферму на ОС REDOS и x2go (из комплекта поставки ОС). В принципе, решение получилось рабочим, с небольшими особенностями....
Построение сложных логических элементов на резисторно-транзисторной логике В своей прошлой статье я концептуально показал как устроены основные логические элементы РТЛ. Сегодня на их базе рассмотрим более сложные элементы. Читать далее
Convex — альтернатива Firebase и Supabase Convex - это платформа для создания бэкенда. В нее входит: Server Functions, ACID Database, Vector Search, Scheduling and crons, File StorageВсе в Convex работает в режиме реального времени. Также написаны удобные интерфейсы для работы с Convex на React Читать далее
Анализ и оценка перспективы использования LSMW для автоматизации подготовки тестовых данных в SAP Привет, Хабр! Меня зовут Василь Хамидуллин, я работаю в ЦК тестирования решений на платформе SAP в компании РСХБ-Интех. В прошлый раз я делился опытом тестирования бизнес процессов, внедряемых модулей SAP, в банке. Сегодня расскажу вам про LSMW, и как данный инструмент ...
Дизайн-разбор ссылок в вёрстке Привет! Это первая статья из серии разборов элементов веб-вёрстки для дизайнеров интерфейсов (и немного аналитиков). Разберём атрибуты разных тегов, свойства, которые можно к ним применить, поведение в разных обстоятельствах. А главное – как они влияют на то, что видит польз...
Храним файлы Strapi в облаке Selectel Привет, я некоторое время работаю над своим пет проектом, где в основном занимаюсь фронтом, а для данных использую headless CMS под названием strapi.io. В какой-то момент у меня появилась потребность вынести медиа хранилище из локальной папки в облако. А так-как основно...
Тестирование NAND и eMMC Когда я плотно занимался аппаратным тестированием, в рамках разработки embedded-устройств, часто бывало так, что инженеры-разработчики и я оказывались в условиях жесткого ограничения в выборе возможных компонентов NAND или eMMC. И в этой связи очень часто возникала необходим...
Очередной взгляд на собеседования. Часть 1 Регулярно мы видим в интернетах множество размышлений или криков души на тему содержания собеседований в IT. Мол, и интервьюировать не умеют, и задачи дают не релевантные, и вопросы бессмысленные, и, вообще, собесы в IT это ритуал и карго-культ. Сидит там интервьюер и думает...
Как мы работаем со Stateful в Kubernetes: особенности и подводные камни Всем привет! На связи Олег Сапрыкин, технический директор по инфраструктуре и тимлид DevOps-команд во «Фланте». В марте 2024 года мы с Андреем Радыгиным (ex-главный архитектор по внедрению Deckhouse) выступили на конференции DevOpsConf. Эта статья — текстовый вариант нашего ...
[Перевод] Моя первая встраиваемая система под управлением Linux В этой статье я задокументировал историю создания своей первой системы под управлением Linux. Здесь я расскажу, как собрал печатную плату под эту ОС, не имея какого-либо опыта работы с печатными платами в принципе. Первая часть статьи может показаться не совсем по теме, н...
Почему FilamentPHP — это хорошее решение для создания CMS Привет, Хабр! Меня зовут Егор Черненок, я работаю PHP-разработчиком в AGIMA. В этой статье расскажу вам о FilamentPHP. В документации говорится, что это набор красивых Fullstack-компонентов для Laravel. От себя добавлю, что он отлично подходит для построения CMS. А теперь по...
Внутреннее устройство Blueprint функций в Unreal Engine 5 Привет!В этой статье я попытаюсь в подробностях объяснить, как именно работают Blueprint функции с точки зрения C++ кода. Разберем разницу в C++ реализации между Blueprint функциями и C++ функциями, а также будет разобран пример одной из "Blueprint схем". Читать далее
Job Market в США моими глазами Привет сообществу, в свободный час, решил поделиться с вами историей поиска работы в США в 2023-2024 году. На текущий момент живу в Беркли в Калифорнии. Нахожусь тут с лета 2021-го. И это, можно сказать, мой второй поиск работы.Сейчас работаю в Realm, занимаюсь там созданием...
Как видели будущее компьютеров в СССР. Часть 2 В прошлой статье мы остановились на 1970-х годах – поговорили о машине «МИР», портативных компьютерах, которые сегодня мы бы скорее назвали калькуляторами. В этот раз заглянем в 1980-е годы – период, когда в СССР активно занимались популяризацией компьютеров и программирован...
Сниму тебя спящей и выложу в интернет: какой была жизнь в общежитии и чему она нас научила За время учёбы в Московском политехническом университете я 2 года прожил в общежитии. Иногда мне очень мешал недостаток личного пространства, и я искал разные способы, помогающие сосредоточиться.Я спросил коллег и друзей, которые тоже жили в общежитии: пришлось ли им столкну...
[Перевод] Время изменений: депрекация datetime.utcnow() в Python Как-то я изучал release notes новой версии Python 3.12, и в разделе о депрекациях моё внимание привлекла следующая фраза:utcnow() и utcfromtimestamp() из datetime.datetime устарели и будут удалены в будущей версии.Если вы следили за моими туториалами по в...
Как оценить эффект от внедрения проекта? Целью любого проекта, будь то разработка сайта, внедрение искусственного интеллекта или модернизация оборудования, является получение бизнес-результата. Поэтому для клиента важно понимать, какую выгоду он получит от внедрения проекта и как это отразится на его прибыли. Кроме...
Hashicorp Vault — собираем непрямую репликацию через ведро Hashicorp Vault - прекрасный продукт для централизованного хранения всех паролей и других секретов компании. При этом, многие знают, что удобная ключница - это идеальный способ потерять все ключи одновременно. Когда я работал в крупном телекоме, то DRP-протоколы с восстановл...
Инструменты Android-разработчика Будь эффективным — используй «туллинг»!В этой статье я хочу поделиться с вами своим опытом и рассказать о наиболее полезных инструментах, которые я использую в своей повседневной работе. Мы рассмотрим как широко известные, так и менее популярные...
Как я за месяц написал интерпретируемый язык программирования на Python Привет, Хабр! В этой статье я хотел бы поделиться опытом создания своего языка программирования.ПредысторияМне 14. Обучаясь на втором году Яндекс Лицея, нужно было написать несколько проектов. Первым из них стал проект на PyQT5. Я долго думал над идеей и вспомнил, что летом ...
Основные типы распределений вероятностей в примерах Статистические исследования и эксперименты являются краеугольным камнем развития любой компании. Особенно это касается интернет-проектов, где учёт количества пользователей в день, времени нахождения на сайте, нажатий на целевые кнопки, покупок товаров является обычным и необ...
Шесть соседних с Россией стран-членов НАТО намерены воздвигнуть «стену беспилотников» Объединенные общей русофобской идей, шесть соседних с Россией стран-членов НАТО на последней министерской встрече высказались за создание на границе с Россией и Белоруссией "стены беспилотников".
Кастомные декораторы в Angular приложениях При разработке приложений мы каждый день решаем как типичные задачи , так и весьма сложные. Иногда сложные задачи решаются очень просто и быстро, а иногда даже самые простые требуют нестандартных решений и не малого опыта от разработчика. В данной статье я хочу поделиться с ...
Обзор LSP: что это такое, зачем нужно, как работает Представьте: у вас есть N редакторов или IDE и M языков программирования. Получается, что для их корректной работы вам необходимо поддерживать N*M плагинов. Но что, если таких редакторов и языков много?.. Решением может стать LSP — единый интерф...
Опыт использования AI для QA: тестировщикам приготовиться на выход? Всем привет, меня зовут Илья. И я использую в своей QA работе уже полгода различные инструменты ИИ. Хочу поделиться своим опытом и наблюдениями, как ИИ может повысить эффективность работы. И стоит ли бояться тестировщикам их замены железными мозгами и руками? Читать далее
Переход с физического сервера на виртуальный Домашний сервер — одна из самых важных и полезных частей домашней компьютерной инфраструктуры. В нашем блоге мы многократно рассказывали, насколько круто иметь свой сервер и какие функции он способен выполнять: это система управления умным домом, медиасервер, хранение и раз...
Получение мостов tor из GMail с помощью Python В предыдущей статье была рассмотрена установка и настройка tor в ОС Linux Mint 21.3, а также были рассмотрены несколько способов получения мостов obfs4 с помощью сайта и телеграмм бота. В комментариях был задан вопрос по пово...
База: айсберг A/B-тестов Если вы по кусочкам и фрагментарно изучаете разные аспекты и тонкости A/B-тестирования, но большое множество концепций и идей не ложатся в единую систему, то это статья для вас. Предлагаю разобрать структуру A/B-тестов сверху вниз. Пройдем по основным этапам от наблюдаемой р...
Медленная сборка кода с .NET Roslyn: как найти и устранить причину .NET разработчики знают, что такое ждать сборки кода. Работать при этом невозможно: пока не увидишь, как обновится приложение, — не перейдешь к следующему шагу. А переключиться на другую задачу за это время не успеешь. Получается, если в день переписать к...
Как вернуть энергию и интерес В этой статье я постарался честно и вдумчиво проанализировать свой опыт выгорания и последующего восстановления нормального уровня энергии. Если что-то упустил, спрашивайте в комментариях.Мне 48 лет, сидячий образ жизни, интеллектуальные задачи. С одной стороны вредных привы...
Основы работы с хранилищами в Kubernetes Привет, Хабр! В Kubernetes принято разделение хранилищ на два основных типа: постоянные и временные. Постоянные хранилища (PV) представляют собой сегменты дискового пространства, которые могут быть подключены к подам и сохранять данные даже после перезапуска или удаления кон...
Как разработчику организовать личную базу знаний: систематизация информации из книг, статей, видео и курсов Привет, Хабр!Хочу поделиться своими мыслями и опытом («сыном ошибок трудных») в организации своей базы знаний, регулярно приобретаемых после прочтения разных книг, статей, просмотра видосов, прохождения курсов и прочих самообразовательных активностей.Начнем с краткой предыст...
И в очередной раз про мониторинги. Как его готовим мы и причем тут бизнес? Привет, Хабр! Про мониторинги написано уже примерно 100500 статей, но это не значит, что нельзя делиться продакшен опытом. Я Виктор Глембицкий, управляющй партнер компании разработчика haiku.dev. Одна из наших услуг - копипаста с западных сервисов Managed service provider. З...
Метод быстрого марша (Fast Marching Method) Пример реализации метода быстрого марша(Fast Marching Method) для создания полей расстояний(Distance FIeld) и поиска кратчайшего пути. Читать далее
ОбАСУчиваем дачу. Опыт эксплуатации и новые идеи Окончание затянувшейся истории. Начало здесь. Продолжение здесь. «Когда дела идут хорошо, что-то должно случиться в самом ближайшем будущем» Второй закон Чизхолма. Итак, в начале июня дачная автоматика заработала. Поначалу всё шло хорошо, но вскоре появился странный эффект...
Базовые архитектурные решения для обеспечения масштабируемости и производительности в социальных сетях Привет, Хабр! За последние полгода я очень увлекся созданием социальных сетей и делаю пет-проект в виде социальной сети.Если вам интересна эта тема, то возможно, вы уже видели мою предыдущую статью о базовых принципах проектирования архитектуры социальных сетей на Хабре (есл...
Who are you, Platform Engineering. Часть 3: знакомство с Dev Platform Внутренние платформы разработки (Internal Development Platform, IDP), как один из артефактовпримеров реализации платформенного подхода (Platform Engineering) становятся важной точкой роста для многих компаний, занимающихся разработкой: помогают унифицировать стек, снизить не...
10 полезных англоязычных ресурсов для программистов Привет, Хабр! Это Вадим Райский, и сегодня я хотел бы рассказать о сайтах и блогах, в которых можно почерпнуть информацию и лайфхаки, полезные для работы. Чем-то любопытным в Рунете читателей Хабра уже вряд ли удивишь, да и поиск Яндекса работает отлично. Поэтому в данн...
Как сделать поиск в интернет-магазине Привет, Хабр! Меня зовут Степан Родионов, я из Х5 Digital. Сегодня расскажу о поиске в интернет-магазине — типовой задаче для e-commerce, которая в теории имеет типовое решение, но на практике оказывается сложнее.Я запускал около десятка e-commerce проектов, и в каждом из ни...
Как студенты МИФИ призывали Шиву на Eurobot 2024, часть 2 Вторая часть повествования опыта участия студенческой команды НИЯУ МИФИ в соревнованиях по робототехнике Eurobot 2024. В статье представлены решения программного управления периферией на роботе и алгоритмы движений, а также описана стратегия поведения на игровом поле. Читать...
Выбор информационной системы для автоматизации вашей бизнес-задачи – разбираемся вместе с GlowByte Вопрос автоматизации бизнес-процессов всегда был актуален для большого количества современных компаний, и в последние несколько лет тренд на автоматизацию набирает всё большие обороты. Информационные системы (ИС) позволяют повысить качество бизнес-процессов компан...
По Cyberpunk 2077 снимут полноценную экранизацию У нас просто отличные новости — появилась информация о том, что в ближайшем будущем будет запуск разработки экранизации видеоигры Cyberpunk 2077 от CD Projekt Red. Польский разработчик игр сотрудничает с медиа-компанией Anonymous Content, которая работала над сериалами «На п...
Автоматизируем рутину в Android разработке: плагин для создания шаблонного кода на примере создания -api -impl модулей Привет, хабр! Меня зовут Алексей, я ведущий разработчик платформенной команды и по совместительству лид архитектурной компетенции в проекте Альфа-Бизнес. Сегодня я расскажу, как можно автоматизировать повторяющуюся работу в андроид-разработке при помощи плагина для Android S...
Двухтрубные системы отопления тупикового и попутного типа. Мнимая магия «петли Тихельмана» Двухтрубные системы отопления тупикового и попутного типа. В чём разница и что об этом говорят современные строительные нормы.Ранее в одной из статей я уже рассказывал об однотрубных системах отопления.Теперь настала очередь рассмотреть особенности проектирования и эксплуата...
5 советов для тех, кто хочет войти в IT в 2024 году Всем привет! Я Даниил Беликов, мобильный разработчик с опытом работы HR-менеджером. Я начал программировать в 2019 году, когда мне было 27 лет. У меня не было технического образования, друзей-программистов и поддержки со стороны близких. В силу обстоятельств, мне пришлось пр...
Хороший ретрай, плохой ретрай, или История одного падения Порой простое и очевидное решение может потянуть за собой хвост проблем в будущем. Например, добавление ретраев.Меня зовут Денис Исаев, и я работаю в Яндекс Go. Сегодня я поделюсь опытом решения проблем с отказоустойчивостью из-за ретраев. Основано на реальных инцидентах в с...
Как отключить цензуру в ChatGPT? Это настолько просто сделать, что я даже не понимаю как вообще об этом можно написать полноценную статью. Весь туториал можно уместить буквально в один комментарий под постом, т. к. тут нет чего-то сверхтяжёлого. Читать далее
Автоматизация менеджмента качества и комплаенса, как мы к этому шли Краткая историяСлово «комплаенс» я узнал давно. В середине 2000х, будучи преподавателем питерского электротехнического университета, мне надо было подготовить учебную программу по электронному документообороту. В интернете информации, конечно же, никакой не было. Я навязался...
Некоторые внешние аккумуляторы не могут заряжать iPhone 15 В этом году Apple добавила порт USB-C в линейку iPhone 15 , что позволяет ему работать с кабелями USB-C, блоками питания USB-C и другими аксессуарами. Как стало известно, некоторые внешние аккумуляторы с разъёмами USB-C не работают должным образом с iPhone 15. Как сообщ...
Артефакты в браузере Chrome и подобных? Умирает ли видеокарта или можно исправить? Словить подобный эффект неприятно. Неважно, дорогое у вас «железо» или бюджетное, но купленное на кровные честно заработанные. Внепланово менять то, что работало ещё час назад и приносило пользу и удовольствие — не самая приятная ситуация. Читать полную статью
Google работает над проектом Microfuchsia — сборкой Fuchsia, нацеленной на виртуальные машины Компания Google давно работает над операционной системой Fuchsia. Не очень понятно, какие у компании долгосрочные планы на эту ОС, так как пока что она используется очень ограничено, и вовсе не на смартфонах. Но такой вариант компания всё же прорабатывает, хотя и не так...
Как мы реализовали текстовый поиск за 48 часов В компании Циан (где я, Клюшев Александр, и работаю в роли ML-инженера) проводятся внутренние хакатоны, и один из таких проходил в начале лета 2023. Достаточно давно в компании обсуждали идею по реализации поиска объявлений через текстовую строку, и было принято решение эту ...
Создание собственного API на Python (FastAPI): Гайд по POST, PUT, DELETE запросам и моделям Pydantic Друзья, приветствую вас в очередной статье, посвященной разработке API с использованием фреймворка FastAPI. В прошлой публикации мы познакомились с основами FastAPI и написали первые функции, освоив GET-запросы. Однако возможности HTTP общения клиента и сервера этим не огран...
[Перевод] Mapping объектов с помощью MapStruct В огромном приложении Android с Clean Architecture много рутинной работы, связанной с отображением объектов между различными слоями. Хорошим решением будет автоматизация этого процесса.В этой статье рассматривается опыт использования библиотеки MapStruct, которая помогает ...
Российские студенты защитили первые дипломы, для которых официально использовалась нейросеть Яндекса YandexGPT Этим летом студенты нескольких направлений подготовки НИУ ВШЭ — «Философия», «Медиакоммуникации», «Международные отношения» и «Востоковедение» — впервые использовали нейросеть в процессе написания дипломных и к...
В тени Neuralink. Техномедицинские аспекты нейрокомпьютерных интерфейсов В одной из недавних статей «Киборги идут, или как Neuralink Илона Маска приближает киберпанк», опубликованной в корпблоге компании FirstVDS, уважаемый @klimensky затронул тему Neuralink и нейрокомпьютерных интерфейсов в целом. 1 февраля 2024 года в корпоративном блоге компан...
Как мы наладили процесс разработки внутренних приложений с помощью Appsmith Привет! Меня зовут Алексей, я аналитик данных в команде BI финансового маркетплейса Банки.ру. Сегодня хочу поделиться опытом работы с Appsmith. Это low-код инструмент для автоматизации бизнес-процессов. В статье расскажу, зачем вообще нам понадобился подобный инструмент...
Расслоение Хопфа и квантовая механика В математике существует очень интересная тема, которая носит название "расслоение Хопфа". В 1931 году Хайнц Хопф опубликовал свою работу об открытой им в топологии конструкции, получившей в истории название "Hopf fibration" - расслоение Хопфа. Суть этой конструкции, была о...
Состояние цифровых прав потребителей в России Случившиеся со мной и моими коллегами истории заставили задуматься - а как вообще обстоят дела с цифровыми правами потребителей? Эти размышления о опыт изысканий в области нарушения этих самых прав породили достаточно длинную статью ниже. Рассуждения не являются истиной, выб...
Подключаем умный поиск (GPT) к своей базе документов Есть отечественный файрвол (NGFW) и есть документация для пользователей powered by GitBook. В этой документации работает простой поиск — только по словам и словосочетаниям. И это плохо, потому что нет ответов на вопросы: "Какие алгоритмы шифрования ipsec поддерживаются у вас...
В помощь IT-команде — «Регламент создания багов» или «Как сделать задачу ясной для тебя из отпуска» Данный регламент я написал на основании опыта работы лидом в IT компании с веб-приложением. Пункты из него прошли проверку практикой. Изначальные версии были (естественно) основаны на best practice из интернета, agile и опыта предыдущих и текущих руководителей. Стоит отметит...
Представлен 3D-монитор Samsung, для которого не нужны очки. И он реально работает Компания Samsung объявила перед открытием выставки CES 2024 о создании игрового монитора с поддержкой 3D-изображения, которое видно невооруженным глазом. Журналисты издания Digital Trends получили возможность ознакомиться с рабочим прототипом. Дисплей создает визуальные...
Чтобы никакие личные фотографии не достались сотруднику сервисного центра. Google работает над режимом Repair Mode для Android Компания Google работает над режимом Repair Mode для операционной системы Android. Указания на этот режим обнаружились в репозитории AOSP. создано DALL-E Речь о режиме, который пригодится любому пользователю, если придётся сдавать смартфон в сервисный центр. Это ...
ref vs shallowRef Рассмотрим отличие ref от shallowRef, и попробуем ответить на вопрос - когда же нужно использовать первое, а когда второе? За разъяснением обратимся к исходному коду vue3 Читать далее
Система онбординга комфорт-класса Привет! Я Евгений Антонов, ведущий технический менеджер проектов в Yandex Infrastructure. В ИТ‑индустрии за 17 лет успел поадминистрировать, поразрабатывать и поруководить. Работал на многих позициях в разных компаниях — аутсорсных и продуктовых...
Сам себе экосистема. Часть 4: как я реализовал клиент Telegram на Android-смартфоне 14-летней давности? С момента выхода первой части статьи из рубрики «сам себе экосистема» прошёл уже практически год! За это время, мы успели с вами реализовать клиенты VK и YouTube, которые работают на Android 2.2+, а также на Windows Phone 8, написать небольшую 2D-игру с нуля весом менее 1М...
XeLaTeX для оформления текстов: Текст, рисунки, таблицы, автоматизация В статье рассмотрим пример того как в XeLaTeX можно настроить форматирование отдельных элементов текста, автоматически создавать таблицы, рисунки. В первую очередь будет интересна тем кто собирается оформлять ВКР (выпускная квалификационная работа) бакалавра или магистра, пи...
Фокус в Android TV Разработчики начинающие писать приложения под Android TV часто сталкиваются с непониманием того, как работает фокус. По моему опыту, и по опыту коллег часто приходится сталкиваться с непонятными костылями в Android TV проектах, результатом которых является поломанный фокус, ...
Quantization Deep Dive, или Введение в современную квантизацию Привет! Меня зовут Василий Землянов, я занимаюсь разработкой ML-инфраструктуры. Несколько лет я проработал в команде, которая делает споттер — специальную маленькую нейросетевую модельку, которая живёт в умных колонках Яндекса и ждёт от пользователя слова «Алиса». Одной из м...
Как оседлать хаос Вы сталкивались с ситуацией, когда мобильное приложение или веб-сервис напоминают лоскутное одеяло? Action-кнопки прыгают по экрану, навигационные паттерны неожиданно меняются, а дизайн элементов интерфейса разнится в частях проекта?А теперь представьте, что вы создаёте цифр...
Статический анализ структуры базы данных (часть 3) Продолжим разбор проверок структуры базы данных, на примере PostgeSQL. Данная статья будет посвящена проверкам связанным индексами. Статический анализ не учитывает размер индексов и частоту их использования, которые используются в эвристиках других анализаторов.В первой стат...
Почему «утекают» данные в больших языковых моделях. Часть 2 Добрый день, уважаемые читатели Хабра. Продолжаем разбираться в теме «утечки» конфиденциальных данных на примере больших языковых моделей и совершаемых для этого атак. В первой статье мы затронули такие механизмы атаки как Special Characters Attack (SCA), Leakage of Test Dat...
NAS и SAN: основные характеристики, принцип работы и применение решений Сетевое хранилище (NAS) и сети хранения данных (SAN) — это два ключевых подхода к организации хранилища в сети, которые позволяют пользователям обмениваться данными независимо от их местоположения, что особенно актуально для работы геораспределенных команд.Несмотря на то, чт...
Господин сенатор, шаттл подан: как мы переносим тысячи секретов в StarVault за секунды Казалось бы, простая задача: перенести секреты между хранилищами Vault. Но на практике возникают сложности. И их столько, что мы в Orion soft разработали свою утилиту для миграции – StarVault Shuttle.В этой статье я расскажу, почему мы остановились на таком решении и как раб...
Суровая правда о разработчиках и разработке. Part 2. Три года спустя Почти три года назад, в эпистолярном порыве, написал я значит дискуссионную статью посвященному текущему состоянию рынка IT. Для нашей отрасли три года — это достаточно большой срок, поэтому самое время подвести промежуточный итог с моей не самой выс...
Телефония «дёшево и сердито» Бывают ситуации, когда нужна очень недорогая и несложная телефония, например, для связи между 2-3 точками: позвонить из магазина на склад, из основного помещения в подвал и прочее. Приобретение и установка АТС в таких случаях бывает избыточна, часто и довольно затратно и люд...
«А» и «Б» сидели на трубе. «А» упало, «Б» пропало. Что осталось на трубе? (алгоритм получения ответа в частном случае) Началось всё с того, что не нашел я библиотеки для JavaScript, которая вычисляет собственные векторы для комплекснозначной матрицы 4х4. Пришлось писать самому. И в ходе реализации встала передо мной этакая бодренькая микрозадачка – из набора чисел «1, 2, 3, 4» вычеркнули два...
Как человек покоряет Марс: хронология В настоящее время исследование Марса — одна из важнейших задач мировых космических агентств. Развитие технологий приводит к появлению новых методов изучения космического пространства. Это, в свою очередь, помогает решaть отдельные научные задачи. Космические аппараты собираю...
Nvidia представила программную платформу NIM для для оперативного развертывания AI-моделей На конференции GTC Nvidia анонсировала новую программную платформу Nvidia NIM, предназначенную для оптимизации развёртывания пользовательских и предварительно обученных моделей искусственного интеллекта в производственных средах. Источник: Nvidia Как правило, на р...
Huginn. Мозговой центр PaaS Привет, Хаброжители! Я Саша, Go-разработчик в компании Сбермаркет. Я со своей командой работаю над созданием инструментов PaaS.PaaS для нас — это не просто микросервисная архитектура. Это целый мир, в котором с самого начала мы почувствовали потребность в создании эффективно...
Cloud Spark от VK Cloud — простой доступ к инструментам анализа больших данных Cloud Spark — облачный сервис на основе Managed Kubernetes и Apache Spark для распределенной пакетной и потоковой обработки данных, работы с Machine Learning и аналитикой. С помощью сервиса вы можете структурировать данные из разрозненных источников для создания аналитич...
Подбираем нужные автозапчасти: миллиарды комбинаций за 12 минут Привет! Меня зовут Кирилл Егоров, я технический лидер двух юнитов Авито: «Запчасти» и «Строительство и ремонт». В этой статье рассказываю о том, как мы определяем, к каким автомобилям подходят запчасти из объявлений, как нам с помощью Golang удается перебрать миллиарды вариа...
Как эффективно самостоятельно изучать английский язык Читатели Хабра, категорически вас приветствую! В этой статье я хочу поделиться с вами моделью эффективного изучения английского языка, которую я постарался сформировать исходя из своего n-летнего опыта его изучения.Расскажу вам насколько это актуально, с чего начать, какие р...
Торговый бот на Python с нуля (с использованием Binance API), часть 2 Продолжение первой части статьи о создании торгового бота на python с нуля с использованием Binance API!В данной статье мы напишем полностью рабочую реальную стратегию с использованием биржевых данных. Я расскажу что такое линии Боллинджера, а также о других популярных страт...