Социальные сети Рунета
Четверг, 25 апреля 2024

Изолируем микросервисы с помощью Feature toggles в ASP.NET Core. Теория и подготовка Привет, Хабр! Если вы работаете с микросервисами, то знаете, что они имеют свойство образовывать некоторую связанность. Хорошо, когда связи между микросервисами однонаправленные, но всё становится сложнее, если возникают циклические зависимости.Такие зависимости приводят к с...

Из Java в Kotlin: туда и обратно В статье рассмотрены проблемы и решения, которые возникли при добавлении Kotlin в небольшой существующий микросервис на Spring Boot, написанный на Java. В рамках статьи не будут рассматриваться плюсы и минусы того или иного языка - здесь и так сломано много копий. В рамках п...

Go-контексты и микросервисы. Как решить проблему с соединениями к базе при помощи контекстов Всем привет! В статье расскажу:— Как и почему у нас возникла необычная проблема, вызвавшая поток 400-ых ошибок. — Как реализовали полноценную поддержку отмены операций в микросервисе.— Как реализовали свой пул подключений к базе для переиспользования подключений к базе ...

[Перевод] RecyclerView Adapter in Android, сделай быстрее и проще Здравствуйте дорогие хабрчане. Это статья основана на статье https://blog.iamsuleiman.com/recyclerview-adapter-android-made-fast-easy/#clicklistener написанной в 2017 году на Java. А статью которую вы читаете, уже на Kotlin.Каждый раз, когда мы думаем о создании RecyclerVi...

Как мы уменьшаем размер изображений на веб-страницах в 10 раз с помощью нашего оптимизатора Привет, Хабр! Меня зовут Евгений Лабутин, я из команды разработки продукта МТС Твой бизнес. Мы разработали свой рецепт приготовления картинок для нашего портала. Благодаря ему удалось сократить их вес на странице до 10 раз относительно уже оптимизированного jpg/png, сохранив...

«Горячие» и «холодные» Feature toggles: принципы работы В этой статье мы расскажем про принципы безопасной работы с переключателями функционала – Feature Toogles:  — Что из себя представляют переключатели функционала и для чего их использовать. — Какие проблемы возникают при неправильном использовании. — Что такое «горячие» ...

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

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

Что нужно знать про Postman: максимально коротко о Mock Servers, Flow и Visualize На просторах интернета часто встречается информация о платформе Postman. Большинство статей включают информацию о переменных, различных скриптах и автоматизации при тестировании. Но на самом деле Postman – это не только инструмент для тестирования, а платформа, которая помог...

Разработка, сборка, деплой и мониторинг сервисов: от общего к частному и обратно Привет, Хабр! Меня зовут Андрей Перепелкин. Я руководитель группы бэкенд-разработчиков, вошел в IT более 15 лет назад, 10 лет занимаюсь Java и около 4 плотно работаю с микросервисами. В этой статье я расскажу, как:— мы организовали разработку микросервисов так, чтобы вы...

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

WireGuard клиент для Windows на основе BoringTun В начале 2019 года компания Cloudflare представила BoringTun, реализацию WireGuard протокола, написанную на языке Rust. Код проекта распространяется под лицензией BSD-3-Clause и включает в себя библиотеку, которая может использоваться для интеграции функц...

Разворачиваем Golang приложение в Kubernetes В этой статье я хочу поделиться примером, как можно развернуть простое приложение на Golang в Kubernetes, с помощью helm чартов и skaffold скриптов. Думаю, данная статья может быть полезной тем разработчикам, которые только знакомятся с Kubernetes, а возможно и более опытным...

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

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

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

React Hooks простыми словами О хуках в фронтенд-разработке на Хабре писали уже не раз, и в этой статье мы не сделаем великого открытия. Наша цель другая – рассказать про React Hooks настолько подробно и просто без трудной терминологии, насколько это возможно. Чтобы после прочтения статьи каждый понял пр...

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

Удаленный доступ к IP камерам. Часть 2. Мобильное приложение В предыдущей статье я рассказывал о простом сервере для работы с камерами видеонаблюдения, но для оперативного просмотра RTSP потоков использовал мобильное приложение VLC, которое меня не вполне устраивало по нескольким причинам. Под катом вы найдете описание и листинги про...

Визуализация данных с помощью веб-фреймворка Dash (часть 2) В предыдущей части статьи мы разбирали, что такое dash в общем, и создавали одностраничный дэшборд, взяв за основу датасет драгоценных камней с kaggle.Но! Задачи, которые падают на нас ,не всегда просты и не всегда возможно ограничить себя  одной страницей на Дашборде. ...

[Перевод] Развёртывание в Kubernetes из GitLab Развёртывание в Kubernetes из GitLab Это продолжение предыдущего туториала про командную разработку с использованием GitLab. Фокус предыдущей статьи был на организации непрерывной поставки в работе команды. В этой статье мы уделим основное внимание именно практическим дейст...

Настройка LEMP сервера для простых проектов. Инструкция для самых маленьких. Часть третья Приветствую читателей! В рамках текущей серии статей я рассказываю о том, как настроить сервер для простых проектов. Имеется ввиду сервер для работы нескольих сайтов, с небольшой нагрузкой под наиболее популярной CMS такой например как Bitrix. Основная цель статьи указать н...

Bottom Sheet, перейдём на «ты»? Bottom Sheet представлялся мне сложным и недосягаемым. Это был вызов! Я не понимал, с чего начать. Возникало много вопросов: использовать view или view controller? Auto или manual layout? Как анимировать? Как скрывать Bottom Sheet интерактивно?Но всё изменилось после работы ...

Как построить сетевой клиент в большом приложении, написать плагин на Kotlin и работать с UI-библиотекой Сегодня делимся видео для мобильных разработчиков с IT-конференции ЮMoneyDay. Начнём с процессов в UI. Что помогает команде работать быстро и слаженно и как срезать углы в работе с дизайн-системой? В первом докладе поделились, как наладить разработку в iOS-команде....

Пошаговое руководство, как создать собственный Kubernetes оператор В статье разберет базовые понятия, которые нужны для создания оператора (CRD - Custom Resource Definition, контроллеры) и покажем на практике как можно написать собственный оператор с использованием инструмента Operator SDK без единой строчки кода. Читать далее

Первые шаги с werf: собираем и деплоим простое приложение в Kubernetes В этой статье мы рассмотрим, как с помощью Open Source-утилиты werf собрать Docker-образ простого приложения и развернуть его в кластере Kubernetes, а также с легкостью накатывать изменения в его коде и инфраструктуре.Мы поговорим об общих принципах работы с werf при использ...

[Перевод] Распутывание микросервисов или балансировка сложности в распределенных системах Эта статья является переводом материала «Untangling Microservices, or Balancing Complexity in Distributed Systems».Расцвет микросервисов закончился. Uber преобразовывает тысячи микросервисов в более управляемое решение [1]; Келси Хайтауэр предсказывает, что будущее за моноли...

С 2 лет до 6 месяцев: как мы ускорили “доставку” почтового ПО в 4 раза Всем привет! Меня зовут Антон, я системный архитектор отдела разработки курьерских сервисов в Почтатехе. Мы разрабатываем сложные цифровые продукты Почты России. Помогаем ей стать удобнее, быстрее, качественнее и технологичнее для вас. Команда нашего отдела создаёт и ра...

Ремонт  Sony WH-H910N h.ear on 3 В статье Вы узнаете как починить "не подлежащие ремонту" наушники за сущие копейки. Статья написана по большей части для таких же заложников ситуации как я. Читать далее

[Перевод] Блокчейн на Python Когда я читал статью про блокчейн на JavaScript, мне было интересно познакомиться с идеями о блокчейн-разработке, которые отличаются от тех, что мне уже известны. А как только я начал читать код, мне захотелось сопоставить его с аналогичным Python-кодом, чтобы ещё и разобрат...

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

Прячем секреты в репозитории с помощью helm-secrets, sops, vault и envsubst Привет, Хабр! Меня зовут Евгений Симигин, я занимаюсь внедрением DevOps-практик в Центре компетенций по разработке облачных и интернет-решений МТС Digital. А еще я – куратор практикумов docker и kubernetes на платформе rebrainme.com. Практика показывает, что далеко не все ...

Стабильность develop в Android Всем привет! Меня зовут Костя, я тимлид платформенной мобильной команды в hh.ru. Мы уже рассказывали о практиках, которые помогают нам выпускать еженедельные релизы мобильных приложений: автоматизация тестирования, Release Train, GitHub Flow, Continuous Integration. И нам ст...

«МойОфис Аналитика»: изучаем отечественное ПО для анализа и визуализации данных Продолжаем рассказывать аудитории Хабра о возможностях продуктов МойОфис, которые позволяют работать с документами, в том числе совместно, до 30% быстрее. Напомним, что ранее в нашем блоге уже выходили статьи про работу с формулами, сводными таблицами и м...

Готовимся к собеседованию по PHP: Что такое «DI», «Container», «Auto-wiring» за семь простых шагов Статья написана для начинающих разработчиков на языке PHP, чтобы помочь им усвоить понятия, нужные для понимания того, как устроены и работают современные фреймворки на PHP: Dependency Injection, Container, Auto-wiring.Автор надеется, что прочтение статьи поможет вам разобра...

Security микросервисов с помощью Spring, OAuth2, JWT и Service Account Не так давно я начинал свой первый проект с микросервисами и не знал как реализовать security. Сейчас информации по этому вопросу уже больше однако она не всегда актуальна и как правило не раскрывает проблему security межсервисного взаимодействия. Поэтому я решил написать ка...

Разработка и графических приложений в WSL2 Данная статья будет неким дополнением опубликованной ранее (не мной) статьи. Чтобы не повторять написанное, по ссылке выше есть информация о требованиях к работе wsl2 на windows 10, как его включить, настроить, обновить и запустить графическую среду. В текущей статье я расск...

Микросервис головного мозга. Пилим всё, что движется Это история о том, как увеличить скорость выкатки фич, но сохранить качество продукта. О болевых точках, которые замедляют разработку, и новой «болезни» — микросервисе головного мозга, которую диагностировал Михаил Трифонов, техлид фронтов в SberСloud. Он утверждает, что она...

Психовизуальная корректировка (Psycho Visual Tuning) в NVENC Привет всем!В этой статье пойдет речь о таком параметре в OBS как Психовизуальная корректировка (Psycho Visual Tuning) используемый в кодировщике Nvenc.Статья была создана для пользователей, которые хотят более подробно разобраться в кодировщике Nvenс для получения наилучшег...

[recovery mode] Оконные функции SQL простым языком с примерами Привет всем!Сразу хочется отметить, что данная статья написана исключительно для людей, начинающих свое путь в изучении SQL и оконных функций. Здесь могут быть не разобраны сложные применения функций и могут не использоваться сложные формулировки определений - все написано м...

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

Безопасность Kubernetes — это просто Привет, Хабр!Эта статья - расшифровка доклада с QIWI Server PartyМногие знают, что такое микросервисы и как их оркестрировать. А вот как обеспечить их безопасность, это отдельный вопрос, достойный обсуждения. Потому что если достаточно глубоко не разобраться в том, что и как...

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

Запуск werf в GitLab CI/CD без Docker-сервера В этой статье рассмотрен новый экспериментальный режим работы werf — Open Source-утилиты для сборки приложений и их деплоя в Kubernetes, — в котором не требуется наличие Docker-сервера. Мы покажем, как убедиться, что это режим будет работать на вашей машине, соберем первый о...

Улучшение Visual Studio Code для новичков VSCode — Самый популярный редактор кода среди веб-разработчиков. Вы можете использовать его с нуля, однако для опытных программистов его базовых функций недостаточно. Здесь я описал, то как сам докрутил этот редактор под свои потребности. Я фронтенд-разработчик, но также ис...

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

Что такое ECS и с чем его компилят Привет! Эта статья — первая в блоге MY.GAMES, международного разработчика и издателя видеоигр. Здесь мы объединим наработки и экспертизу всех 14 наших игровых студий. Впрочем, будем рассказывать не только о внутренней кухне экосистемы MY.GAMES, но и о том, чем живет геймдев ...

[Перевод] Как выбрать подходящий Go-роутер? (с блок-схемой) Когда вы начинаете разрабатывать веб-приложение с применением Go, один из первых вопросов, которым вы, вероятно, зададитесь, — “Какой роутер мне следует использовать?”.И это не такой простой вопрос, как может показаться сначала. Доступно более 100 различных роутеров с разным...

Houdini. Визуальное представление данных в молекулярной биологии. И фокусы Драфт этой статьи был написан почти два месяца назад. Затем я заболел ковидом, а потом долго восстанавливал свои когнитивные способности, изгоняя из себя древесину.Предполагаю, что многие из нас видели фокусы. Волшебство. Когда хочется воскликнуть: — Да как ты это сделал! Эт...

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

OAuth в мобильных приложениях Привет! Меня зовут Максим, я занимаюсь мобильной разработкой в KTS.Ни один сервис не обходится без логина. Часто в мобильных приложениях требуется интегрировать вход через сторонние соцсети — например, зайти через Google или VK. А при обучении мобильной разработке используют...

[Перевод] Создание нативных CLI приложений на Java с помощью Graalvm и Picocli Язык программирования Go стал популярным для написания приложений командной строки. Для этого может быть много причин, но один аспект, в котором выделяется Go, - это возможность скомпилировать программу в один нативный исполняемый файл. Это значитель...

Пишем сервис на GO. Runtime контроллер и Graceful Shutdown Напишем вместе HTTP-сервис на golang с нуля? Я уверен, что это довольно несложно. Для тех, кто каждую неделю этим занимается, моя статья не будет особенно интересна, но я все равно рекомендую взглянуть и оценить, возможно, ваши комментарии спасут кому-то жизнь. А может кое-...

Elementary: новый взгляд на архитектуру Flutter-приложений Elementary — это архитектурный пакет, который создали в Surf на основе опыта разработки приложений на Flutter и лучших практик современной разработки. Решение позволяет чётко разделить слои согласно ответственностям, сделать код прозрачнее, а тестирование проще. На примере р...

«Только экстренная и неотложная медицинская помощь» — что это значит По данным mos.ru, стоматологии, похоже, уже не медицинские организации В Москве и ещё паре регионов (например, в Санкт-Петербурге, Хакасии) сделали новую замечательную фишку: с 28 октября по 7 ноября в стоматологиях будет оказываться только экстренная и неотложная медицинс...

Метод проб и ошибок: как мы создавали кастомный импортер в Unity3D для текстурных массивов Основной контент в играх — это почти всегда текстуры, поэтому нужно особенно внимательно следить за ними в целом, их размерами и сжатием. Раньше на проекте  War Robots у нас был устоявшийся и вполне рабочий пайплайн по импорту текстурных массивов, на выходе которог...

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

CRUD 0.11.0 для Tarantool Неделю назад вышла новая версия модуля CRUD для Tarantool. В 0.11.0 появилось множество нововведений, просьбы о которых поступали от наших пользователей. Что изменилось, как этим пользоваться и кому это может быть полезно? Расскажем обо всём.Tarantool — это платформа in-memo...

Модуль ACME-клиента для Tarantool Ссылка на GitHub. Подробнее о работе алгоритма и модуля можно посмотреть здесь.Клиент ACME-протокола используется для автоматического получения сертификата безопасности для вашего сайта. Для бесплатного получения сертификата и автоматического его продления в основном все исп...

10 вещей, которые можно делать в верстке с помощью псевдоэлементов before и after Привет, Хабр! Меня зовут Максим Васянович, я спикер курса “Веб-верстка” в Skillbox. Сегодня поговорим о верстке, а точнее - о нюансах работы с псевдоэлементами before и after. Статья будет полезна, прежде всего, начинающим верстальщикам. Но, возможно, и профи будет интересно...

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

Деплоим приложение на Django в Kubernetes с нуля Нашей компании уже 6 лет, и 4 из них мы живем с Kubernetes. До этого мы испытали все варианты деплоя приложений на серверах: начиная от простого git pull до ci/cd на нескольких серверах.Сегодня мы на практике разберем, что нужно делать, чтобы ваше приложение оказалось в Инте...

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

Как мы создаем микросервисные проекты с нуля Считается, что запуск микросервисов изначально затратнее по времени, чем монолит, и наш опыт это подтверждает. Однако, если следовать проверенным процессам, эти затраты можно минимизировать. Делюсь лучшими практиками и составляю чек-лист запуска. Читать далее

[Перевод] Go: рендеринг изображений в 2D-играх на примере Ebiten В статье речь идет о Ebiten 1.10.Ebiten — это хорошо продуманная библиотека для создания 2D-игр, написанная Хадзиме Хошем на языке Go. С ее помощью созданы движки ряда мобильных и десктопных игр, как например зарелиженная в Apple Store Bear's Restaurant, или OpenDiablo2 — ре...

Пишем простого slack-бота на Java Привет! Я — Саша Казанцев, разработчик в hh.ru. В статье я расскажу, как сделать простого бота в Slack на java и немного о других вариантах использования slack api.Слак обладает обширной и всеобъемлющей документацией и туториалами, и чтобы написать эталонного бота, лучше про...

Мобильная разработка: Cross-platform или Native Всем привет! Я Игорь Веденеев, руководитель мобильной разработки в AGIMA. Поговорим немного о нативной и кроссплатформенной разработке. Раньше я по большей части скептически относился ко второй: не устраивало качество конечных приложений в первую очередь. Однако за последний...

Как htmx помогает разработке на HTML htmx — инструмент для создания сложных и интерактивных веб-приложений на HTML, алтернатива клиентскому рендерингу на Javascript. В этой статье рассказываем, как библиотека помогает переиспользовать элементы на сервере, сократить объем кода на Javascript и отказаться от сборк...

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

Знакомство с .Net Compiler Platform .Net Compiler Platform, или Roslyn - это высокоуровневый API для анализа и рефакторинга кода, написанного на  С# и VB (языках .Net). С помощью Roslyn можно как создавать независимые инструменты анализа и рефакторинга, так и писать расширения, встраиваемые в Visual Studi...

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

Потратил 1 000 000 $, чтобы сделать свой переводчик. Продолжение истории Начало этой истории тут:https://habr.com/ru/post/492524/ ВступлениеЯ занимаюсь переводчиками с 2012 года, и эта тема выбрана не случайно. Еще тогда было замечено, насколько сильно переводы могут влиять на показатели бизнеса. В нашем случае поддержка всего 15 языков вмес...

[Перевод] Мониторинг приложения Spring Boot с помощью Micrometer, Prometheus и Grafana, используя пользовательские метрики Важно отслеживать показатели и работоспособность приложения: это помогает нам повышать производительность, лучше им управлять и замечать неоптимизированное поведение. Мониторинг каждого сервисного модуля важен для поддержания системы, состоящей из множества микросервисов.В э...

3 простые вещи, которые сделают вашу жизнь лучше Цель данной статьи довольно проста — принести пользу людям, дав им в руки несколько действительно рабочих инструментов, которые проверены на практике.Три простых вещи, о которых пойдёт речь в данной статье это:· Сон — как/сколько/почему нужно спать и какие есть лайфхаки для ...

Автоматизация процесса релиза Всем привет! Меня зовут Даниил Хейфец, и я QA Lead мобильного направления в hh.ru. В этой статье я расскажу, как мы автоматизировали flow релиза мобильных приложений, как разбили его разработку на этапы, какие инструменты использовали и с какими проблемами столкнулись. ...

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

WinAPI из C# Язык программирования C# был создан как язык, который можно использовать для простого программирования в ОС Windows. Позже этот язык получил возможность создавать приложения и на других операционных системах, но в этой статье мы будем говорить только об ОС Windows.Для работы...

Как внедрить что-то своё в CoordinatorLayout и не умереть: путь Android-самурая Привет! Меня зовут Андрей Шоколов, я Android-разработчик KODE. К нам обратилась компания Forward Leasing с запросом разработать мобильное приложение по готовому дизайну. Прототип содержал дугу, которая по задумке должна была сжиматься в одну линию при скролле. За основу реши...

Как проходит интервью мобильных разработчиков в Тинькофф Привет! Я Максим Коробов, руководитель отдела разработки мобильного приложения Тинькофф. В статье расскажу о том, как проходит отбор кандидатов на вакансии разработчиков iOS и Android, что спрашивают на первичном и техническом интервью и какие задачи предлагают решать во вре...

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

[Перевод] Табличные тесты в Go с использованием Gomock Чтобы эффективнее тестировать работу программы, можно использовать табличные юнит-тесты. В этой статье пошагово рассказываем, как писать такие тесты с помощью фреймворка Gomock.Этот текст написал Golang-разработчик Арек Ностер. С разрешения автора мы перевели статью. Читать ...

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

Выводим программных роботов на третью космическую скорость, или RPA в Linux Программные роботы (RPA) с каждым годом всё больше проникают в IT-инфраструктуру компаний, а доля роботизированных процессов в бизнесе постоянно растет. Чтобы поддерживать увеличивающееся количество автоматизированных процессов организациям необходимы дополнительные вычислит...

Flutter: автоматизация UI тестирования Мы — команда мобильного проекта FL.ru. В своей статье хотим познакомить вас с Flutter Driver и рассказать об автоматизации UI тестирования мобильных приложений с помощью данного инструмента. Читать далее

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

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

Proof Of Concept на Python или как портировать С/С++ Язык программирования Python существует уже 31 год. Это полностью объектно-ориентированный язык. За все время существования на нем стало возможно применять разные парадигмы. Сейчас этот язык может поддерживать:- объектно ориентированную парадигму- структурное программрование...

Держи свой трафик в тайне. SSL Pinning — ещё раз о том же самом Всем привет! Меня зовут Юрий Шабалин, я один из основателей компании Stingray Technologies. Мы разрабатываем платформу анализа защищенности мобильных приложений iOS и Android. Сегодня я хотел бы снова затронуть тему безопасности сетевого взаимодействия между приложением и ег...

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

[recovery mode] Пошаговая инструкция как создать NFT коллекцию на Golang + Ethereum (часть 3) Привет Хабр. В прошлых статьях мы научились генерировать 10 000 изображений для нашей NFT коллекции с помощью Golang, а также загрузили все сгенерированные изображения в децентрализованное хранилище IPFS.В этой статье мне хотелось бы поделиться знаниями и опытом, а такж...

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

Справочники в iOS: храним, обновляем, используем Всем привет! Меня зовут Саша, и я iOS-разработчик в hh.ru. Страны, города, профобласти, языки, валюты – всё это названия справочников внутри нашего мобильного приложения. Они очень редко меняются, но используются повсюду, а поэтому обязаны быть актуальными и не должны т...

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

Нужен ли Mockito, если у вас Kotlin? Салют, коллеги.В рамках пятничной статьи предлагаю посмотреть на интересный способ создания моков в Kotlin, без использования сторонних библиотек.Я занимаюсь разработкой аддонов для Atlassian-стека в компании Stiltsoft и, из-за технических ограничени...

[Перевод] TDD: Что пошло не так? Эта статья является переводом материала «TDD: What went wrong or did it?».В сфере разработки программного обеспечения уже давно хвалят Test Driven Development (TDD, разработка через тестирование). Однако в последнее время было сказано много резких слов в адрес TDD, поскольку...

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

TINKOFF-INVEST. Разработка торгового робота на JAVA. Часть 2 Как же быстро летит время... Прошло почти 2 месяца с момента публикации моей первой статьи о работе с TINKOFF INVEST API – Разработка торгового робота на JAVA. Часть 1, в которой мы начали свое знакомство с инструментарием автоматизации торговли, предоставляемым брокеро...

Main Loop (Главный цикл) в Android Часть 2. Android SDK Основой любого приложения является его главный поток. На нем происходят все самые важные вещи: создаются другие потоки, меняется UI. Важнейшей его частью является цикл. Так как поток главный, то и его цикл тоже главный - в простонародье Main Loop.Тонкости работы главного цик...

Как подружить Git с приложением на Webpack+React Иногда бывает полезно отображать некоторую информацию из Git-репозитория прямо в приложении. В статье мы воспользуемся преимуществом встроенной в NodeJS функции execSync и будем показывать в приложении три версии мастер-ветки. Читать далее

Как устроены цикл событий и стек вызовов в JavaScript Цикл событий (event loop) — ключ к асинхронному программированию на JavaScript. Сам по себе язык однопоточный, но использование этого механизма позволяет создать дополнительные потоки, чтобы код работал быстрее. В этой статье разбираемся, как устроен стек вызовов и как они с...

Как оплатить VPN без Visa и Mastercard Во времена хаоса самый необходимый и жизненно важный ресурс - это не еда, вода и средства гигиены, а информация. К сожалению, цензура интернета особенно последнее время стремится оградить людей от информации. Еще больше усугубляет положение изоляция России от международных п...

Щуп осциллографа. Устройство и принцип работы Эта статья для тех кто всегда хотел знать как устроен щуп осциллографа, но боялся спросить. Для тех кто начинает работать с осциллографом, а также для тех кто много лет работает, но никогда не хватало времени и сил для того, чтобы разобрать как устроен щуп(пробник) осциллогр...

Gatling. Тестирование JDBC Привет! Меня зовут Александра, я работаю в отделе тестирования производительности Тинькофф. Этот текст — часть цикла статей, посвященных тестированию производительности с помощью инструмента Gatling. В предыдущей статье мы с командой рассказали о работе Gatling с HTTP. Еще м...

Как я перестал беспокоиться и полюбил тестирование React-компонентов Как тестировать React-компоненты? Какую библиотеку использовать? Как тестировать компоненты, которые берут данные из Redux, а не из пропсов? Как тестировать компоненты, в которых используется роутинг с помощью React-router-dom? Что делать, если в компоненте есть асинхронный ...

Микросервисный фреймворк Flogo — собираем систему из кирпичиков Для создания микросервисной архитектуры на Go может использоваться фреймворк Flogo, основанный на идеях потока сообщений/данных между микросервисами и реакции на события. В этой статье мы рассмотрим его возможности на примере простой задачи обработки данных телеметрии. Читат...

Ещё одна статья про дизайн-системы (в продуктовом дизайне) Привет. Меня зовут Костя, и я отвечаю за дизайн в Агиме. И да, я решил написать ещё одну статью по дизайн-системам, в довесок к 7 млн уже существующих. Я думаю, эта статья будет бесполезна для любого, кто сталкивался с ДС вживую. Но с другой стороны, мне регулярно ...

Skyrim на Unity Статья о моих приключениях при разработке первой игры в 3D. Да, вы правильно поняли, я замахнулась на святое, и попробовала сделать Skyrim на Unity. Но делала это с любовью и от чистого сердца. Читать далее

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

Static Reverse engineering для web Львиная доля всех статей, которые посвящены вопросу обратной разработки посвящены темам анализа низкоуровневого представления приложений и работы прошивок устройств. Только ли в этих областях можно применять подходы, которые использует обратная разработка? Попробуем разобрат...

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

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

7 принципов Agile из Agile Extension от IIBA Принципы — это те рельсы, которые направляют людей по жизненному пути. Международный Институт Бизнес-Анализа (IIBA) определил 7 главных принципов, которые указывают бизнес-аналитикам как работать приносить больше пользы команде и клиенту, делая меньше работы с большим к...

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

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

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

Flutter for Desktop — новый подход к разработке приложений Язык программирования Dart был изначально разработан как перспективная замена JavaScript в веб-приложениях (с поддержкой асинхронности, потоков, классической поддержки ООП и возможностью использования строгой типизации), но, к сожалению, в этом качестве он так и не достиг зн...

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

Как я создал Spring Boot startup analyzer Ни для кого не секрет, что приложения на Spring могут задумываться на старте. Особенно это заметно с развитием проекта: новый сервис стартует быстро и радует отзывчивостью, потом начинает обрастать функционалом, появляются всё новые и новые зависимости, а итоговый дистрибути...

Добавление пользовательской темы для фронтэнд-приложений Привет, Хабр! Меня зовут Павел, я фронтэнд-архитектор в компании Itransition. Вот уже более 8 лет я работаю во фронтэнде. В течении этого времени мне довелось поработать с приложениями, как полностью основанными на бэкенд технологиях, так и с классическими сайтами, написанны...

PCIExpress 1.0 2.5GT/s analyzer на базе ПЛИС своими руками На работе я занимаюсь созданием PCIExpress устройств на ПЛИС. Некоторые из ПЛИС имеют встроенное PCIExpress ядро, позволяющее работать с этим интерфейсом на уровне пользовательского приложения. ПЛИС серии ECP5UM фирмы Lattice использует Soft-IP Core для реализации протокола,...

50 оттенков нагрузочного тестирования С нарастающими скоростями и распределёнными системами всё сложнее бывает создать приложение удобным для конечного пользователя. Программы обладают кучей фич. Но выполняют ли они то, что нужно юзерам? А скорость их выполнения достаточная? А производительность при выполнении н...

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

Создание Single Page Application на Marko.js — ZSPA Boilerplate В данной статье вы познакомитесь с Marko.js актуальной на данный момент пятой версии. Пару лет назад на Хабре уже была отличная статья (за авторством apapacy) о том, как работает этот замечательный реактивный фреймворк, разработанный где-то в недрах eBay.В своем комментарии ...

Hexagon — гексогональная архитектура для Kotlin Backend В математике идеальной фигурой является шар. В мире микросервисов близкой к идеальной можно считать шестиугольник. Сегодня мы поговорим о преимуществах и недостатках гексагональной архитектуры, и относительно новой, но перспективной библиотеке Hexagon для Kotlin, предоставля...

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

Текстовые игры — новый старый инструмент для автора или «Сделаем Текстовые Квесты снова Великими!» Про текстовые игры написано довольно много как на Хабре, так и на просторах интернета. Это один из самых первых жанров интерактивных развлечений с использованием ЭВМ и даже без него (просьба поделиться опытом НЕэлектронных текстовых игр в комментариях). В данной статье я хоч...

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

Тестирование GraphQL: подходы, инструменты, автоматизация Несколько месяцев назад на моем пути возник GraphQL.Это произошло, когда я присоединилась к одному из наших проектов, где был не только привычный REST, но и GraphQL API. Это было моё первое знакомство с ним. Я понятия не имела, что он собой представляет, в чем его особенност...

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

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

Создание телеграмм-бота (Spring Boot, Kafka, PostgreSQL), часть первая Всем привет, данная статья является, своего рода моей первой, но все же постараюсь максимально просто рассказать вам о том, как создать бота, прикрутив к нему все обещанные выше свистелки-тарахтелки.Статьи будут разделены на 2 части, первая часть - создание основного бота с ...

Создание внутреннего мобильного приложения «На связи»: от идеи до визуального решения Меня зовут Лена, я дизайнер интерфейсов в Tele2. И я расскажу о создании внутреннего корпоративного мобильного приложения «На связи» для сотрудников Tele2 – его проектировании и выборе визуального решения. Пройдусь по основным этапам работы над digital-продуктом с точки...

[Перевод] Популярные расширения для VS Code 2022 В виду того, что мне срезали подписку на Medium решил поддерживать отечественные IT ресурсы. Попробую кидать интересные статьи с переводом на русском, а правообладатели пусть сами разбираются, я честно платил за подписку.На текущий момент VS Code остается средой разработки, ...

Роботизация для macOS по-взрослому Несмотря на то, что на рынке существуют различные RPA-решения, большинство из них не работают на macOS. Microsoft выпускает самую распространенную операционную систему для конечных пользователей, и большинство вендоров предоставляют решения, совместимые только с Windows. При...

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

NestJS + GraphQL + Lambda Цель данной статьи - создать GraphQL приложение, построенное на фреймворке NestJS. А также загрузить его в Лямбда-функцию при помощи Terraform. Надеюсь данный пример поможет многим сэкономить много времени. Читать далее

Как снова начать читать книги, а не ленту. Часть 1 За последние полгода я прочитала около 20 книг и перечитала ещё десяток старых и любимых. Это не то чтобы очень много, но в пять раз больше, чем я прочитала за полгода перед этим.Зачем вообще читать книги, а не ленту, лонгриды или смотреть сторисы? Сейчас даже довольно сложн...

Main Loop (Главный цикл) в Android Часть 3. Другие главные циклы Основой любого приложения является его главный поток. На нем происходят все самые важные вещи: создаются другие потоки, меняется UI. Важнейшей его частью является цикл. Так как поток главный, то и его цикл тоже главный - в простонародье Main Loop.Тонкости работы главного цик...

Особенности сканирования штрих-кодов в средней полосе России Привет, Хабр! Немного наболело, хочу поделиться. В серии материалов я освещу ряд аспектов мобильного компьютерного зрения по принципу “от простого к сложному в имплементации”, однако буду фокусироваться на сложных кейсах, которые выходят за грань банального “распознать QR-ко...

Kubernetes и другие оркестраторы Привет! Меня зовут Леонид, я DevOps-инженер в компании KTS. В этой статье я рассмотрю различные оркестраторы и объясню, почему Kubernetes — лучший выбор.Нашей компании уже 6 лет, и 4 из них мы живем с Kubernetes. До этого мы испытали все варианты деплоя приложений на се...

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

[Перевод] Пишем Python-расширение на Ассемблере (зачем?) Прим. Wunder Fund: в жизни каждого человека случается момент, когда ему приходиться позаниматься реверс-инжинирингом. В статье вы найдёте базовые особенности работы с ассемблером, а также прочитаете увлекательную историю господина, который решил написать Питон-библиотеку на ...

Умный дом своими руками на ESP8266 + Kotlin + React Всем привет! Я решил написать про свой опыт построения умного дома. Тема конечно достаточно избита и статей последнее время про нее много. Но, это же и хорошо, значит люди занимаются, делают. Сразу оговорюсь, что мой кейс достаточно специфический, цели и задачи всей зат...

Как создать telegram бот на C# быстро? Как создать telegram bot на C# быстро?В этой статье мы рассмотрим заготовку для создания telegram бота на C#. В связи с последними обновлениями TelegramBotAPI, большая часть удачных с моей точки зрения публикаций на эту тему несколько устарело. Потому предлагаю разобраться в...

Что нам стоит дом построить? (часть 3) Продолжаем рассказывать про ECM-систему, разработкой которой мы занимаемся. С момента выхода предыдущей статьи прошло достаточно много времени, и мы успели не только создать прототип, но и реализовать немалое количество функционала. Сейчас мы готовы выйти в опытную эксплуата...

Мой опыт с Webpack 5 Module Federation Всем привет. Меня зовут Михаил, я - фронтенд-разработчик в Лиге Цифровой Экономики.В последнее время я пробую себя в должности руководителя направления фронтенд-разработки, однако я хочу с вами поделиться опытом разработки приложения с применением Webpack Module Federation, ...

И снова про App Transport Security: что это и зачем Привет, Хабр! Меня зовут Юрий Шабалин, и, как я пишу в начале каждой своей статьи, мы разрабатываем платформу анализа защищенности мобильных приложений iOS и Android. В этой статье мне бы хотелось затронуть тему безопасной конфигурации сетевого взаимодействия, а также немног...

Даниэль Канеман «Думай медленно… Решай быстро»: механизмы наших ошибок Труд Даниэля Канемана «Думай медленно… Решай быстро» — из тех, о которых все как минимум где-то слышали; он не случайно оказался на первой строке в рейтинге самых упоминаемых книг на HackerNews. Это книга о том, как мы ошибаемся, о системности наших ошибок, заложенной в сам...

Стоит ли подружить QA и разработку с помощью практики хранения тестов в коде? Заводить тест-кейсы руками в тестохранилищах — долго и скучно. Но ведь есть еще много юнит-тестов, которые пишут разработчики. И не всегда понятно, что они покрывают и как пересекаются с E2E-тестами. Head of QA в Авито, Александр Матвеев, на Test Driven Conf расскажет о том,...

[Перевод] Базовые принципы Availability О чем статьяВ этой статье речь пойдет о БАЗОВЫХ подходах и принципах к такому quality attribute (QA) как Availability. Никаких сложных случаев, ничего слишком сложного, только теория с двумя примерами, скипайте, если искали что-то эдакое.Вся информация основана на парах книг...

Конкурентный анализ приложений из App Store на основе открытых данных В этой статье я покажу, как можно без программирования парсить, анализировать и визуализировать данные из RSS- и Atom-лент на примере загрузки и парсинга фида Apple iTunes, а также проведения последующего конкурентного анализа приложений. Представим, что мы собираемся публик...

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

Unity «Best» Practices Эта статья родилась из внутреннего доклада для коллег, которые уже достаточно давно занимаются разработкой игр, но только недавно прикоснулись к Unity. Здесь мы собрали фишки и особенности работы с этим игровым движком разной степени капитанскости, почерпнутые из собственног...

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

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

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

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

Идеальный каталог, пример использования Я разрабатываю библиотеку для работы с Entity Attribute Value (репозиторий), сокращенно EAV (структура базы данных для хранения произвольных данных). В конце прошлой статьи я спросил у вас о чём мне ещё надо написать, вы попросили показать пример использования и сделать заме...

Автоматизируем iOS-сборку c помощью Jenkins Всем привет! Меня зовут Иван Чечиков, я QA-инженер в МТС Digital, работаю в проекте WASD.TV. В этой статье я расскажу о своем способе автоматизации iOS-сборки в TestFlight через Jenkins. С помощью такого метода можно настроить автоматизацию как локально, так и на удаленной м...

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

Почему видеографы выбирают Андроид? Привет, камрады, киноделы и просто читатели!Некоторые из вас меня знают как разработчика Андроид-приложения mcpro24fps, предназначенного для видеосъёмки на телефон.Внезапные 100K прочтений моей первой статьи о недостатках телефонов Андроид побудили меня написать эту статью-р...

[Перевод] Туториал по JUnit 5  - Введение В этом туториале по JUnit 5 рассказывается о том, как JUnit адаптировал стиль кодирования Java 8 и некоторые другие функции. Узнайте, чем JUnit 5 отличается от JUnit 4.JUnit 5 - наиболее широко используемая среда тестирования для приложений Java...

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

2021 год в разработке технологий ABBYY – и не только. Подводим итоги года С наступающим новым годом, Хабр! Чтобы не быть занудами, постараемся подвести короткие итоги 2021 года, потому что без них никуда :) Вот несколько главных событий, которыми гордится вся наша команда:•     Создали low-code/no-code платформу, которая позвол...

Main Loop (Главный цикл) в Android Часть 1. Пишем свой цикл Основой любого приложения является его главный поток. На нем происходят все самые важные вещи: создаются другие потоки, меняется UI. Важнейшей его частью является цикл. Так как поток главный, то и его цикл тоже главный - в простонародье Main Loop.Тонкости работы главного цик...

DevSecOps by Swordfish Security. Часть первая Меня зовут Юрий Сергеев, я основатель и управляющий партнер в Swordfish Security. С 2017 наша компания активно занимается проблематикой построения процессов разработки защищенного ПО (Secure Software Development Lifecycle). За прошедшие годы нам посчастливилось реализов...

«Свою работу делать не умеют, зато лезут в мою»: 7 вещей, которыми руководители проектов бесят разработчиков Привет! Я Любовь Тимошенко. Руковожу менеджерами проектов в «Лайв Тайпинге», веду блог, который помогает управлять другими и собой: без насилия, пожаров, сорванных дедлайнов и выгорания. В этой статья я расскажу, какие вещи бесят разработчиков в менеджерах, и что делать, что...

Работа с картами. GMAP C# На написание данной статьи меня подтолкнуло не столь большое наличие текстовой информации по работе с GMap на просторах интернета, как хотелось бы.Стояла задача визуализировать на карте положение объектов по известным координатам для дальнейшего анализа и выявления каких-либ...

Игровой код, который сам себя программирует На сегодняшний день у меня выпущены четыре игры в Steam, и все они написаны на языке Haxe. Мне нравится по-максимуму автоматизировать свою работу, и сегодня я поделюсь некоторыми приёмами, которые я использую при программировании своих игр.Для непосвящённых: Haxe — это язык...

Есть ли системные аналитики за рубежом? Мы привыкли к тому, что в российских командах разработки есть позиция системного аналитика.А есть ли системные аналитики за рубежом? Что входит в их обязанности? Востребованные ли это специалисты?В этой статье я показываю результаты анализа рынков труда США и Германии. Читат...

10 лет Oil Rush: как не сгореть, создавая игру на собственном движке В этом году Oil Rush, нашей первой игре на собственном движке, исполнилось 10 лет. Основной профиль деятельности нашей компании — не совсем игры, но разработка Oil Rush помогла не только продемонстрировать технологию UNIGINE во всей красе, но и сделать ее еще лучше.Три года,...

От КАМАЗа до природного газа. Самые интересные статьи про дата-центры за год Привет, Хабр! В прошлом году мы много писали про дата-центры. Статьи про необычные локации ЦОД, новые технологии и личный опыт. Будем рады, если вы найдете материалы, которые еще не читали, и поделитесь мнением в комментариях. Приятного чтения! Читать да...

Простой шутер от третьего лица на Unreal Engine. Часть 2 До прочтения этой статьи рекомендую прочитать первую часть.План на сегодня:Сегодня мы создадим простеньких противников, который будут ходить туда-сюда. Научимся наносить им урон. Читать далее

Моя первая игра — Picross.io Всем привет, я инди разработчик, но когда то я им не был :) За всё время своих скитаний я успел сменить много различных профессий, от грузчика и продавца консультанта, до сотрудника торгового зала в "Ленте", но в итоге пришёл в геймдев, и, в этой статье я поделюсь своим опыт...

Практика бэкапов в 2022 году: как ИТ-специалисту не потерять самое ценное Резервное копирование — не та бизнес-задача, которая приносит прибыль, но без бэкапов потенциальный ущерб от потери данных может быть выше затрат на их хранение. По мере роста рисков меняется и ценность системы резервного копирования (СРК). Сейчас ее роль трудно переоценить....

Балансируем нагрузку в Jenkins В Arenadata мы используем Jenkins для CI. Почему? Как бы банально это ни звучало — так исторически сложилось. Мы хранили код в GitHub, когда там ещё не было Actions, и продолжаем хранить, потому что много работаем с Open Source. За три года работы с Jenkins мы неплохо разобр...

Мобильное приложение «Дорожный ассистент» для 1С Пример реализации мобильного приложения для водителей грузового транспорта. Frontend: React-Native. Backend: 1С. Первый опытДля первой попытки разработать мобильное приложение была выбрана мобильная платформа от 1С.  Спустя месяц был готов прототип и показан заказчику....

[Перевод] Cron — лучшие практики Планировщик задач cron(8) существует с 7 версии Unix, а его синтаксис crontab(5) знаком даже тем, кто нечасто сталкивается с системным администрированием Unix. Это стандартизированный, довольно гибкий, простой в настройке и надёжно работающий планировщик, которому пользовате...

«Право на забвение» или как просто удалять персональные данные по запросу пользователя Удалять персональные данные пользователя по его запросу, чтобы продукт соответствовал законам CCPA или GDPR, можно по-разному. Хоть вручную каждую заявку на почте разбирать. Главное — сделать процесс максимально простым и понятным для пользователя. А это уже хороший повод за...

Физика в Python с использованием Pymunk Физика. Кто-то её любит, кто-то нет, но определённо это неотъемлемая часть нашего существования. В этой статье мы рассмотрим как самому создавать физические симуляции используя всего 2 библиотеки Python. К концу статьи мы сделаем интерактивную симуляцию взаимодействия тел и ...

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

Как мы распознаем фото документов пользователей. Часть II В прошлой статье я кратко описал методы и подходы, которые мы используем в inDriver при распознавании фото документов. Во второй части подробно опишу архитектуру CRAFT и CRNN, а также варианты их использования. Прошу под кат! Читать далее

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

Серия статуэток Mass Effect    Всем привет, хочу поделится нашим нынешним проектом, фигурки по игре Mass Effect.   Изготовлением статуэток мы занимаемся 3 года, но только пол года назад мы начали выпускать статуэтки тиражами. В этом важную роль сыграл наш постоянный клиент Александр Ш., заказав у нас п...

Как мы используем фича-флаги в мобильном приложении QIWI Кошелек Привет, Хабр! Меня зовут Василий Материкин, я — Android-разработчик в QIWI. В этом посте я расскажу о применении фича-флагов в QIWI Кошельке.Внедрение Trunk-Based Development и Feature FlagsВ процессе работы над большими приложениями, в которых много фич и над которыми ...

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

[Перевод] Гайдлайны и бритвы компании Bungie по кодингу на C++ Для создания игры наподобие Destiny требуется много командной работы и мастерства. У нас есть талантливые люди во всех областях знаний, однако было непросто достичь уровня координации, необходимого для создания игры масштаба Destiny. Это похоже на то, как если бы группе лю...

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

Двигаем биты — или как реализовать свой стандарт UUID Я работаю над открытой реализацией предложенного стандарта идентификаторов UUIDv7. На данный момент спецификация существует в виде IETF черновика. Черновик уже пережил два переиздания, и мы постоянно обновляем спецификации. Но сам документ — это дело простое. Для того чтобы...

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

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

Основные варианты использования CSS переменных (Custom Properties) CSS Variables или CSS Custom Properties уже давно используются в разработке и поддерживаются большинством популярных браузеров. Если у вас нет обязательного требования разрабатывать под IE, то вполне вероятно, вы уже успели оценить их преимущества.По этой...

Реализации машины в qemu В процессе обратной разработки прошивок возникает задача по эмуляции прошивки, например для фаззинг тестирования или детального изучения поведения в динамике. На практике обычно для этого хватает фреймворков avatar2, unicorn, qling и подобных. Однако они поддерживают далеко ...

Как мы подняли ретеншн третьего дня на 30% у североамериканских игроков в World of Tanks Blitz Привет! В данной статье расскажу о том, как мы подняли ретеншн приблизительно на 30% на проекте World of Tanks Blitz на регионе NA (Северная Америка).Сперва немного о себе и о нашей игре. Меня зовут Козловский Владимир. Работаю на должности ...

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

Как поделиться паролем от Wi-Fi с Айфона на Андроид Компания Apple старается добавлять новые фишки в свои устройства чуть ли не с каждым обновлением. Но, к большому сожалению, большинство из них работает исключительно внутри яблочной экосистемы. Иной раз задумываешься, как было бы хорошо иметь одну единственную операционку н...

Тысячная статья про принципы SOLID Ещё будучи совсем-совсем начинающим разработчиком, я услышал про принципы SOLID и, конечно же, совершенно их не понял. Их не помогли понять ни лекции Дядюшки Боба, ни книга его же авторства, не несколько десятков (а то и сотен) статей в интернете, которые я тогда прочитал (п...

Сервер «1С: Предприятие» на Linux: настройка доменной авторизации В данной статье мы рассмотрим настройку сервера «1С:Предприятие» для использования Microsoft AD в качестве системы авторизации клиентов 1С. Статья представляет собой описание успешно внедрённого решения, за основу брались различные статьи из открытых источников, в частн...

Кроссплатформенный путь мобильного тестировщика или как стать Flutter QA Привет, Хабр! В этой статье расскажу, в чём особенности тестирования приложения на Flutter под iOS и Android и чем оно отличается от тестирования нативного приложения. Читать далее

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

Открытый проект файловой системы для внутренней  памяти STM32H Зачем ставить внешнюю IC памяти или SD карту если в микроконтроллере осталось много свободной Flash памяти! Микроконтроллеры семейства STM32H снабжены двумя независимыми банками Flash памяти и это очень удобно. В одном банке можно расположить программный код, а в другом...

Какую СУБД выбрать и почему? (Статья 2) После публикации статьи “Какую СУБД выбрать и почему? (Статья 1)” ко мне поступили справедливые комментарии о том, что я не упомянул такие типы СУБД, как Time Series и Spatial. В этой статье я кратко опишу их и добавлю еще два типа — Search engines и Object-oriented (объект...

Как BI «купается» в озёрах данных: практика платформы «Форсайт». Часть 2. Виртуализация данных Всем привет. Мы продолжаем цикл публикаций о том, как наша BI-платформа «Форсайт» работает с данными. В этой статье мы бы хотели поговорить о том, как выйти за рамки привычного online analytical processing (OLAP) и с помощью enterprise BI погрузиться в проблематику «Fixed fo...

Представляем .NET 7 Preview 1 Мы рады объявить об очередной вехе в истории .NET. Отмечая 20-летие технологии, .NET 7 Preview 1 знаменует собой первый шаг вперед к следующим 20 годам .NET.ASP.NET Core Preview 1 и EF7 Preview 1 также были выпущены. .NET 7 строится на базе, созданной .NET 6, которая включае...

[Перевод] Работа с API на языке R, введение в пакет httr2 Цель этой статьи - показать вам основы httr2. httr2 - переосмысленная реализация пакета httr, т.е. интерфейс для работы с HTTP запросами на языке R.Из статьи вы узнаете, как создавать и отправлять HTTP-запросы и работать с полученными HTTP-ответами. httr2 разработа...

Простой backend на C++: это возможно? Была у меня мечта - писать backend на C++. А вот разбираться в unix socket'ах, TCP, многопоточной/асинхронной обработке запросов и во многом другом совсем не хотелось. Не верил я, что до сих пор нет каких-то минималистичных фреймворков. И сегодня я вам расскажу, как можно пр...

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

Охота на toggle: Как простую фичу сделать максимально сложно – Хей, Катя, у нас там багуля небольшая завелась. Посмотри, плиз.– Не вопрос, бро. В чем проблема?– Toggle сбрасывается при возврате на экран. Изи ваще!С этой безобидной фразы началось мое недельное приключение в мир безумной архитектуры, сумасшедших фиксов и красноглазия. И...

Вторая жизнь звука в «Художественном» — работает 3D печать В этой статье речь пойдет о том, как с помощью 3D-печати можно получить качественное звуковое оборудование и при этом сделать уникальный дизайн. В данном случае компании удалось выполнить нелегкую задачу по оснащению и одновременно сохранению исторического облика одного из с...

5 крутых приложений для рисования на Android Если ваш смартфон поддерживает стилус или под рукой есть планшет с этим аксессуаром, наверняка вы коротаете свободное время по пути на работу, занимаясь рисованием. К слову, заняться им никогда не поздно, а для того, чтобы «набить» руку даже не нужно ходить в худо...

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

Настройка cервера с помощью docker для простых проектов. Часть вторая: docker-compose Настройка cервера с помощью docker для простых проектов. Инструкция для самых маленьких. Часть вторая: docker-compose.Мы продолжаем цикл обучающих статей для самых маленьких наших читателей. В данном обучении мы бы хотели разобрать docker-compose. Данная статья рассчитана на...

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

GraphQL: как сделать бэкенд приложения экономнее и быстрее Самый распространённый стандарт для обмена информацией внутри приложений — это REST API. Его все любят, но знают, что он не идеален. В этой статье обсудим его альтернативу — GraphQL. Мы расскажем, в чём преимущество GraphQL, как выглядят запросы и с чего начать. Читать далее

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

Module Federation: простая загрузка динамических модулей Всем привет! Меня зовут Евгений, я работаю frontend-разработчиком в платформенной команде. Моя задача — помогать другим frontend-разработчикам выполнять их задачи эффективнее. Мы в Delivery Club больше года назад внедрили подход с микрофронтендами, о чём писали здесь. Вы мож...

Blazor: Нужен ли нам .Net в вебе? Всем доброго времени суток, меня зовут Михаил. Я .net разработчик в компании Orion Innovation. Сегодня речь пойдет про наш опыт создания веб приложения при помощи Blazor. Обсудим с какими проблемами мы столкнулись при разработке и почему вообще решили использовать Blazor.Ста...

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

[Перевод] Как мы собрали проект на Django и React и уважили загрузчик Webpack Когда мы взялись за гибридный проект, в котором одновременно использовались Django и React, мы столкнулись с дилеммой: как интегрировать две эти части, в особенности, как разрешить шаблонам Django отображать ресурсы JavaScript, сгенерированные при клиентской сборке. Мы нашли...

[Перевод] Сериализуемость транзакций В этой статье рассмотрим, что такое "Сериализуемость" (Serializability) и какие гарантии она предоставляет.В реляционных СУБД уровень изоляции Serializable (сериализуемость), как следует из названия, обеспечивает сериализуемость транзакций. Однако, как вы увидите далее, в не...

Настройка PostgreSQL под Linux Время от времени приходится слышать мнение от некоторых системных администраторов, а также некоторых 1С-разработчиков, что установка, настройка и поддержка PostgreSQL под Linux очень сложна. Что гораздо дешевле покупать лицензии Windows и Microsoft SQL Server, чем нанимать в...

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

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

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

Правки на мёрдже: зачем редактору GitLab Всем привет! Меня зовут Наталья Которева, я редактор в Яндекс.Практикуме. В этой статье я расскажу, как мы создали обучающий курс в GitLab. Да-да, вместо текстовых документов.Вообще сложно представить, как можно подружить git и редактуру, а главное, зачем. Есть же много пров...

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

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

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

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

Меняем стек с PHP на Golang, или Разработка под Kubernetes Привет, Хабр!На связи Паша Емельянов, тимлид в AGIMA. В этой статье расскажу, как на одном из проектов мы переписывали старый функционал, разработанный когда-то на PHP, на Golang, с какими проблемами столкнулись и как их решали. Статья будет интересна и начинающим, и миддлам...

Топ вопросов работодателю от Android-разработчика Представьте: вы на собеседовании, только что закончили отвечать на кучу вопросов и были на высоте. Наконец наступает ваш черед задавать ваши вопросы работодателю. Не знаю как вы, а я в таких ситуациях часто начинал теряться и забывал самое важное, о чем стоило бы спросить. О...

Руководство по NestJS. Часть 1 Привет, друзья! В этой серии из 3 статей я расскажу вам о Nest (NestJS) — фреймворке для разработки эффективных и масштабируемых серверных приложений на Node.js. Данный фреймворк использует прогрессивный (что означает текущую версию ECMAScript) JavaScript с полной поддержкой...

Как мы меняем Anti-spoofing модель с вендорских решений на собственные Привет! Меня зовут Ренат Алимбеков, я занимаюсь задачами, связанными с Computer Vision в Beeline Казахстан. Сейчас моя работа направлена на Anti-spoofing. Моя основная задача сейчас — заменить вендорские решения в продуктах Beeline Казахстан на собственные. В этой стать...

Samsung лучше отказаться от Exynos и перейти на Snapdragon, иначе компания столкнётся с судебными исками со стороны европейских пользователей. Так считает надёжный сетевой информатор Ice Universe Очень надёжный сетевой информатор Ice Universe опубликовал несколько новых сообщений на своей страничке в социальной сети Twitter, в которых он подтверждает печальные новости для поклонников Samsung, с нетерпением ожидающих выхода однокристальной системы Samsung Exynos ...

В России разработан браузер, которым можно управлять жестами и движением глаз Технологии IT/Игры 30.10.2021, 14:03 В России разработан браузер, которым можно управлять жестами и движением глаз Студенты Волгоградского государственного технического университета создали браузер для людей с ограниченными возможностя...

STM32, CMSIS, CAN, Часть 1 — передача Привет, сегодня мы будем настраивать отправку данных с помощью CAN (Controller Area Network). В интернете много информации о том, как настроить CAN использую HAL библиотеку, а в случае использования CMSIS информация обрывочна, по этой причине решил рассказать о своем опыте р...

Норм альтернатива Тбилиси и Ереванам Я тут подумал, куда бы поехал сам, если бы находился, как и многие, в России без зарубежных ВНЖ. И в итоге ответ не самый популярный: в моем личном топе стран на первом месте с большим отрывом —

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

Camunda: тестируем модели процессов Привет! Продолжаем делиться опытом о том, как можно автоматизировать бизнес-процессы в банке с помощью Camunda. В прошлой статье мы рассказали об одном из проектов, который создали на базе Spring Boot с подключенной Camunda в качестве библиотеки. В этом материале расскажем о...

Тестирование офисных пакетов Р7-Офис, МойОфис, LibreOffice и MS Office Всем доброго времени суток. В рамках импортозамещения или точнее ухода от MS Office, на работе, возникла необходимость в рассмотрении российиских аналогов офисных пакетов и пакета LibreOffice, т.к. он автоматически установлен в дистрибутивах astra linux. Здесь хочу поделитьс...

Flutter: простыми словами про ассинхронность и параллельность Всем привет, читатели Хабра! В этой статье я хочу простыми словами рассказать про асинхронность и параллельность в Dart/Flutter. Многие новички сталкиваются с непонимаем того, что это и когда что использовать. Я сам столкнулся с этой проблемой в начале своего карьерного пути...

Робот для сборки кубика Рубика В этой статье я хочу рассказать о любопытном DIY проекте, что я недавно реализовал. И, заодно, эта статья послужит неплохим продолжением темы «3D печати для чайников», а именно вопроса «что бы такого мне еще распечатать»

[Перевод] Как проверить, зависит ли Java проект от уязвимой версии Log4j Если ваше приложение использует Log4j с версии 2.0-alpha1 до 2.14.1, вам следует как можно скорее выполнить обновление до последней версии (2.16.0 на момент написания этой статьи - 20 декабря).Log4j уязвимость отслеживаться как CVE-2021-44228 (также известный ...

Руководство разработкой: beginner's survival guide Привет! Меня зовут Наташа, я руковожу разработкой бэкенда страницы yandex.ru. Сейчас у нас в команде больше двадцати человек, которые входят в отдельные группы разработки. Три года назад я впервые стала «тимлидом» маленькой группы из четырёх человек, накопив к этому времени...

Первый хакатон ВСК — от идеи до реализации В конце 21-го года состоялся первый хакатон в истории ВСК! Точнее - это был не совсем хакатон. А почему - читайте далее!Что еще вы найдете в этой статье:• все подробности организации;• цифры и сложности;• как создать почву для решения бизнес-задач;• как повысить лояльн...

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

Повышаем эффективность работы с Word В данной статье собраны основные операции и алгоритмы работы, позволяющие повысить эффективность разработки документации в редакторе Microsoft Word как индивидуально, так и при командной работе. Не рассматриваются подходы с использованием Markdown, Pandoc, Asciidoc и Conflue...

Performance review как инструмент для оценки результатов работы и развития сотрудников Меня зовут Артём Сусеков, я менеджер разработки в Miro. Расскажу, как мы пришли к справедливой оплате и прозрачному обсуждению эффективности сотрудников команд продуктовой разработки.Статья будет полезна, если вы задаётесь вопросами: •Как оценить вклад каждого сотрудник...

Как вырастить джунов — советы бывалых из 2ГИС Привет, это снова Даша. В прошлой статье я рассказывала о том, как наняла в команду 7 джунов. Но просто привести людей в команду недостаточно, надо чтобы они в ней ещё и прижились. Для погружения джунов в работу мы выработали процесс. Он состоит из четырёх этапов и длится от...

Где в смартфоне навигационный чип? Часть 2 В первой части статьи мы вспомнили старые-добрые времена, когда один телефон от другого можно было отличить по фотографии. Мы добрались до iPhone 4S и увидели, как функции навигационного приемника переместились в связной чип Qualcomm MDM-6610. Что же было в следующих айфонах...

Хабр не делай больно писателям Хабр! Добро пожаловать снова.Сегодня я расскажу о том как писатели хабра теряют свои статьи из за ошибок в работе редактора Хабра. Мне бы очень хотелось чтобы разработчики Habr или Chromium услышал меня и исправили эту проблему как можно скорее. Читать далее

Что делать, если Xiaomi не видит сим-карту Смартфоны Xiaomi — одни из самых популярных устройств среди читателей нашего Telegram-чата. Пользователи выбирают самые разные варианты, но у них, как и у других смартфонов, есть одна общая проблема — это проблемы с распознаванием сим-карты. Это происходит по со...

Книга «C# 9 и .NET 5. Разработка и оптимизация» Привет, Хаброжители! В этой книге опытный преподаватель Марк Прайс дает все необходимое для разработки приложений на C#. В пятом издании для работы со всеми основными операционными системами используется популярный редактор кода Visual Studio Code. Издание полностью обновле...

Страх и ненависть в RouterOS: что такое сетевое соединение в ядре Linux (часть 2 — практика) Ранее в первой (теоретической) части статьи была подробно описана сущность сетевого соединения глазами ядра маршрутизатора. В текущей части мы закрепим информацию в результате рассмотрения работы прикладного протокола DNS через подсистемы RouterOS. В заключительной части...

[Перевод] React SEO: Советы по созданию SEO-friendly приложения Привет, Хабр! Представляю вашему вниманию перевод статьи “React SEO: Tips to Build SEO-friendly Web Applications” автора Paridhi Wadhwani.О чем пойдет речьВы узнаете проблемы, с которыми сталкивается React приложения в части SEO (Search Engine Optimization или оптимизация д...

MIR CIT Mobile: передовые технологии тестирования в платежной системе «Мир» ВведениеВсем привет. Мы Денис и Александр из команды разработки сертификационных приложений Мир Plat.Form.Мы занимаемся развитием систем, которые помогают банкам-участникам платежной системы «Мир» и поставщикам платежных решений выполнять тестирование. Многие из нас совершаю...

Недельный геймдев: #58 — 20 февраля, 2022 Из новостей: новая версия RPG Maker будет работать поверх Unity, Дисней опубликовал USD-ассеты из мультфильма Моана, стала доступна коллекция ассетов Scene3D для упрощения разработки 3D игр с помощью Defold.Из интересностей: статья от команды Unity по работе с террейном, ...

Основы работы отечественных МК 1986ВЕ1Т с болгарскими отладчиками OLIMEX ARM-USB-OCD-H. Часть 1 — Первый запуск Во первых строках сего письма хочется сказать, что идея написать эту статью пришла из-за того, что волею судьбы мне пришлось работать с микроконтроллерами компании Миландр. Помимо того, что информации по сети не так много, она еще и достаточно разрознена. И все бы ничего - к...

Что нужно клиентам Прочтя на хабре очередную статью о том, как мы и так, и эдак удовлетворяли заказчиков, прокомментировала. Я написала "дайте клиентам уверенность и спокойствие" (цит. по памяти). Просто отстаньте от нас, клиентов. От нас, лояльных. Делайте то, что у вас уже покупают. Стабильн...

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

Анонимизация базы данных или как быть уверенным, что ты не нарушаешь закон “О персональных данных” В настоящее время практически все ИТ-продукты работают с персональной информацией пользователя: ФИО, телефон, e-mail, паспортные и другие идентифицирующие данные. Для  обеспечения защиты прав и свобод, человека и гражданина при обработке его персональных данных в Россий...

Не совсем очевидные тренды развития рынка приложений, как к ним подготовиться мобильному разработчику? Меня зовут Ексей Пантелеев, я 12 лет программирую мобильные приложения, а всего зарабатываю программированием почти 20 лет и как профессионал пережил несколько платформ (например Flash Player, AIR, Stage3D), под которые я разрабатывал приложения. До мобайла я делал веб и игр...

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

Engineering Manager: Место в структуре организации, задачи, плюсы и минусы Данная статья поможет разобраться в том, что из себя представляет позиция Engineering Manager, причём тут Tech Lead и как с этим жить? Читать далее

(Net)-NT(LM)v[12] Очень часто встречаю, что люди путают разные типы хэшей и думают, что NTLM и NTLMv1/v2 это одно и тоже, а NTLMv1/v2 и Net-NTLMv1/v2 разные типы. Данная статья заметка предназначена для того, что бы разобраться со всем этим. Читать далее

Актуальные форматы изображений в вебе Эта статья — расширенный вариант нашего внутреннего документа о том, как подготавливать изображения для сайтов и веб-приложений. В ней мы описали актуальные форматы и собрали рекомендации, как добавить поддержку WebP и AVIF на сайт и какие инструменты можно использовать. В з...

Как управлять командой разработки Привет! Я Иван Антипин, заместитель директора департамента разработки в AGIMA. За свою карьеру я поработал с десятками команд. Где-то был разработчиком, где-то тимлидом, где-то помогал извне. У меня был миллион возможностей разобраться, как люди ведут себя в коллективе. Но в...

[Перевод] Что такое MLOps и различные MLOps-инструменты  (часть 2) По сравнению с прикладным программированием общего назначения машинное обучение (ML) является относительно недавней областью исследования. Крупные инициативы в области ML сегодня поддерживаются как аппаратным, так и программным обеспечением, позволяя предприятиям принимать б...

Новый язык обычного и параллельного программирования Planning C 2.0 Здравствуйте, уважаемые читатели.Хочу написать здесь об одном из своих проектов -- языке Planning C (v2.0). Он является расширением C++, дополняющим базовый язык рядом новых конструкций. В настоящее время проект доступен в репозитории (исходный код прототипного транслятора-п...

Scrum в госкомпании: миф или реальность? SCRUM закрепился и в стартапах, и в IT-гигантах, но что на счёт скрама в крупной госкомпании? Попытаемся дать ответ на примере одной из команд разработки Россельхозбанка, а в конце статьи поделимся чек-листом в помощь начинающему скрам-мастеру. Читать далее

Ускоряем hugo на 20% простым изменением в пакете reflect Найти значительное узкое место в производительности стандартной библиотеки или зрелого приложения — это редкость. Я был удивлён, когда в top10 списке CPU-профиля hugo при сборке digitalgov.gov на первой позиции находился метод reflect.Type.MethodByName(). flat flat% ...

Lighthouse. Руководство для начинающих Быстрые сайты любят и пользователи, и поисковики.С первыми всё просто: если страница долго грузится, пользователь её закроет и перейдёт на другой сайт. С поисковиками похожая история: скорость загрузки, скорее всего, влияет на ранжиров...

Zynq 7000. Тестирование счётчика импульсов После небольшого (нет) перерыва в изучении Zynq и очередного прочтения своей предыдущей статьи, я отметил для себя очень важный момент - практически не отражено никаких результатов тестирования полученного поделия, кроме базовой проверки работоспособности. Во время подготовк...

Я устал вручную удалять мобильное приложение с устройства и написал расширение для VS Code Каждый мобильный разработчик рано или поздно сталкивается с тем, что его начинают утомлять некоторые рутинные операции. Скажем, дебажишь авторизацию в приложении. Или проверяешь перехват UTM-метки при первой установке. Или пытаешься понять, работает ли корректно очередная ми...

Девять избранных статей с конференции NeurIPS 2021. Часть 1 В Одноклассниках мы регулярно проводим разборы научных конференций и делимся  результатами этих разборов. В этот раз хотим поделиться статьями с NeurIPS 2021. NeurIPS – крупнейшая конференция по машинному обучению: в этом году было подано 9000 статей, 2300 из которых по...

Теперь в боковой панели Google Chrome можно читать статьи Обновление браузера расширит функциональность боковой панели.

Окрашивание изображений Статья про окрашивание изображений на основе работы Color2Embed: Fast Exemplar-Based Image Colorization using Color Embeddings. Рассмотрим, как переносить цвет с одной картинки на другую с помощью смеси из U-Net и StyleGAN v2. Читать далее

[Часть 1] Математика в АБ-тестах. Что такое z-score и p-value? Приветствую тебя, дорогой друг! Эта публикация была создана для тебя, если ты хотел бы разобраться с этими непонятными словами из заголовка раз и на всегда. Как с идейной, так и с математической стороны. Признаюсь сразу, в свое время в универе частенько прогуливал семинары п...

Terraform-модуль для инициализации Vault При настройке CI/CD для приложений мы в компании, как правило, используем Vault от HashiCorp. К тому же сами приложения зачастую используют Vault для хранения секретных данных. Но для того, чтобы начать использовать Vault, сначала необходимо произвести его настройку. Раньше ...

[Перевод] CCIP (Cross-Chain Interoperability Protocol) — протокол кросс-чейн совместимости экосистемы Блокчейн В этой статье хотим рассказать про протокол кроссчейн совместимости (CCIP) для децентрализованного обмена сообщениями/событиями и перемещения токенов между блокчейнами.Рост многочисленных независимых блокчейн-экосистем с различной спецификой и географическими нишами привел к...

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

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

Основы Linux (обзор с практическим уклоном) Привет, Хабр!В последние несколько лет все больше и больше людей ищут возможность войти в ИТ или поглубже изучить Linux, повысив уровень своей квалификации. Вместе с тем полноценных обзоров с практическом уклоном по типу «все и сразу» написано не так уж и много (особенно на ...

Основы языка microScript Привет Хабр!Под предыдущей статьей собралось много вопросов и рассуждений относительно microStudio, в частности языка microScript, которому я не уделил внимания в предыдущей статье. Да я и не ставил цель затронуть все вопросы в одной статье.В этой статье я расскажу подробнее...

Разработка приложения на Flutter с нуля до релиза: Part 2 Привет! Это вторая статья из цикла о разработке приложения на Flutter. В этом "номере" я опишу создание сетевого слоя, работу с локализацией, удобный способ работы с ассетами, локальный поиск и создание UI для одного из двух экранов приложения. Также я выведу интересные метр...

Каким будет новый автомобиль для езды по Луне? Компания Northrop Grumman показала внешний вид своего лунного автомобиля Аэрокосмическое агентство NASA планирует отправить людей на Луну в 2025 году, в рамках программы «Артемида». Перед этим необходимо проделать колоссальную работу: закончить разработку ракеты-носителя Spa...

Создаем и тестируем свой plugin для Gradle 7.0+ Система сборки проектов Gradle стала значительной вехой в эволюции инструментов подготовки артефактов и заменила во многих проектах ранее популярный Maven (который ранее стал заменой для make и ant). Де-факто Gradle является стандартом для сборки проектов для Android, но в д...

Neovim: модульность для разработчика В этой статье речь пойдёт про некоторые его преимущества, которые, на мой взгляд, наиболее важны для конечного пользователя. Читать далее

Мой компьютер на логических микросхемах Привет, Хабр. Два года назад, как раз перед началом пандемии, я затеял большой проект: построить компьютер, используя только простые логические микросхемы 74 серии и микросхемы памяти. В этой статье я бы хотел кратко рассказать о том, что получилось, и более подробно об осно...

[Перевод] Тип данных Either как альтернатива выбрасыванию исключений Исключения – это базовый элемент многих языков программирования. Они обычно используются для обработки аномальных или непредусмотренных условий, при устранении которых необходим особый подход, нарушающий нормальный поток задач в приложении. В некоторых языках, например, в C+...

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

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

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

«Я больше не могу»: 5 причин эмоционального выгорания программиста и что с этим делать  Андрей Н. начал кодить 8 лет назад, и готов был работать сутками напролет, набирая «шабашки» на выходные, а в свободное от работы время изучая новые фреймворки. Работа приносила удовольствие, он наконец-то нашел себя! Спустя 8 лет Андрей с трудом заставляет с...

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

Как оптимизировать производительность сайта. Расширенные рекомендации Привет!Это снова Сергей Кузнецов, руководитель отдела Frontend-разработки в AGIMA. Недавно я рассказывал здесь про оптимизацию сайта в разрезе показателей Google PageSpeed. И теперь хочу вернуться к этой теме. Сегодняшняя статья будет не слишком длинной, но, надеюсь, для мно...

GoLand 2021.3: полная поддержка WSL, запуск gofmt при сохранении файла, Inline Function, удаленная разработка Привет, Хабр! Сегодня расскажем о свежем релизе GoLand. Что нового: полная поддержка WSL, запуск gofmt при сохранении по умолчанию, рефакторинг Inline Function, удаленная разработка (Beta), поддержка gRPC в HTTP-клиенте, улучшения отладчика и многое другое!Под като...

Что у ECS под капотом Всем привет, это моя первая статья на Хабр. Давно хотел попробовать что-то написать, но всё никак не решался, да и темы подходящей не было. Наконец тема подвернулась, и пришло время закрыть этот гештальт =)В данной статье я опишу общий принцип "подкапотной" работы ECS фреймв...

Как я запускал Spring Cloud Меня зовут Аксёнов Вячеслав, я старший бэкенд Java/Kotlin разработчик в крупном энтерпрайзе. Однажды я попал на проект, полный микросервисов, в котором за конфигурацию отвечала такая штука как Spring Cloud. Чтобы разобраться как именно это работает я исследовал и прикрутил э...

Вторая часть гайда по интервью за рубежом — Coding, System Design и Culture Fit Мы GeekFactor. Вместе с GetMentor мы помогаем разработчикам найти работу за границей, а компаниям подбираем подходящих кандидатов.Главные этапы в собеседовании зарубеж — подача резюме, system design interview, coding interview и culture fit interview...

KC868-Uair: пролетая над гнездом кукушки. Часть 2. Подключаем nRF24 и LoRa С устройством и схемотехникой Kincony KC868-Uair мы разобрались в предыдущей статье, в этой статье мы продолжим знакомство с этим контроллером, разберём его распиновку и попробуем подключить к нему популярные беспроводные модули nRF24L01. KC868-Uair и сам по себе достаточн...

[Перевод - recovery mode ] Modula-3 — Исторический контекст 6 ноября 1986 года Морис Уилкс написал Никлаусу Вирту с предложением пересмотреть и стандартизировать язык Modula-2+ в качестве преемника Modula-2. Вирт благословил этот проект, и так родился комитет Модула-3.На первом заседании комитет единогласно согласился придержива...

Путеводитель по ID для JPA сущностей. Часть 1: ID, генерируемые на сервере Разработка инструментария – очень познавательное занятие, потому что заставляется задуматься над теми вещами, которые в процессе разработки иногда не замечаешь. Казалось бы, создание @Id атрибута в JPA – рутинное занятие и каждый разработчик может сделать айдишник, даже не в...

Parole*, paro*es, *aroles… Частичные пароли: история о том, как задёшево вывести из себя пользователя и/или как вставить палки в колёса кейлоггерамЧто такое частичные пароли? Каковы достоинства и недостатки их использования в процессе аутентификации? В статье подробно рассматриваются математические ос...

JavaScript: ускоряем загрузку изображений с помощью Imgproxy, Cache API и Service Worker API Привет, друзья! В этой статье я хочу поделиться с вами результатами небольшого эксперимента, связанного с ускорением загрузки изображений с помощью Imgproxy, Cache API (далее — кеш) и Service Worker API (далее — СВ). Мы с вами разработаем простое приложение на React, в ко...

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

Service Mesh на стероидах: как построить управляемое взаимодействие между сотнями микросервисов Сталкивались ли вы с задачей построить Enterprise-grade-приложение из десятков приложений, слабо связанных друг с другом, разрабатываемых разными командами, с разными моделями релиза? Мы хотим поделиться опытом, как решили эту задачу в Netcracker. Как в этом помогла концепци...

Для мониторинга CronJob в Kubernetes нужен простой советский… Привет, Олимпийский Хабр! Меня зовут Аня, я работаю в Ozon: строю и развиваю инфраструктуру мониторинга в Observability-платформе. Моя команда помогает разработчикам следить за своими сервисами и своевременно получать алерты, если что-то идёт не так. На Хабре довольно много ...

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

Pixel 6 и Pixel 6 Pro не позволяют управлять дронами DJI. Но проблема именно на стороне производителя дронов Как будто мало проблем уже имеется у новых смартфонов Pixel, так теперь к ним добавилась ещё одна. Правда, затрагивающая далеко не всех.  Как сообщается, приложение DJI для управления дронами компании несовместимо с Pixel 6 и Pixel 6 Pro. ...

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

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

Как настроить «Планфикс» с нуля и почему именно он Статья будет интересна бизнес-аналитикам, project-менеджерам, тимлидам, CEO начинающих студий по разработке и всем причастным и интересующимся. Hola, Amigos!Меня зовут Артем, и я TeamLead компании Amiga. Сегодня расскажу, как мы настроили процессы взаимодействия с коман...

Часть 1. Создание и настройка проекта, работа в редакторах microStudio В этой статье я расскажу про создание проекта и его настройку в среде разработки видеоигр microStudio. А также расскажу про работу в редакторе кода и спрайтов. Читать далее

Собираем компилятор для ПЛИС Lattice ECP5 в лице Yosys и NextPNR для работы в ОС Windows Наш цикл про ПЛИС Lattice ECP5 растянулся уже на шесть статей. Мы уже научились не только создавать простые проекты для них, но набили руку в разработке сложных систем на базе кроссплатформенной открытой среды LiteX. В целом, я уже набрал материалов, чтобы выдать инструкцию,...

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

Ментор в беде не бросит: как онбордить новичка, чтобы он тестил в свое удовольствие Всем привет. Меня зовут Ильмир, я QA Manual Engineer в inDriver. В статье расскажу о своем опыте менторства. Я занимаюсь этим уже больше 2 лет и хочу поговорить про этапы, которые могу выделить как основные. В статье будут затронуты не проблемы методик и инструментов дл...

Next.js: подробное руководство. Итерация первая Привет, друзья! Хочу поделиться с вами заметками о Next.js (надеюсь, кому-нибудь пригодится). Next.js — это основанный на React фреймворк, предназначенный для разработки веб-приложений, обладающих функционалом, выходящим за рамки SPA, т.е. так называемых одностраничных при...

Безопасная разработка и уязвимости программного кода Часть 1. Как писать свой код без ошибокНа сегодняшний день трудно представить себе какую-либо отрасль бизнеса, в которой не использовались бы информационные технологии. Не только в банковской сфере, но и в промышленности, транспорте, сельском хозяйстве – везде ИТ играют огро...

[Перевод] Пишем 3D-рендерер в стиле первой PlayStation Я занялся новым хобби-проектом, который мне очень нравится. Я создаю вымышленную консоль, источником вдохновения для которой стали технологии эпохи PS1. Проект довольно масштабный, но сегодня я хочу поговорить о рендеринге, который стал моим первым шагом к его реализации. В ...

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

Пишем асинхронного Телеграм-бота Сегодня я покажу, как написать своего Телеграм-бота на основе asyncio и aiohttp. Мы не будем использовать ни aiogram, ни любые другие библиотеки, а напишем бота с нуля, чтобы немного познакомиться с асинхронным программированием, корутинами и некоторыми примитивами синхрониз...

Adobe представила Photoshop и Illustrator, которые работают через браузер и не требуют подписку Creative Cloud Компания Adobe объявила о важном шаге — популярные приложения Photoshop и Illustrator стали доступны в веб-версиях, проще говоря — работать в них можно через браузер. Веб-версии Photoshop и Illustrator ориентированы на совместную работу. Они предоставляют д...

Как подготовить бэклог продукта с большим количеством зависимостей и не потратить время впустую Привет, меня зовут Макс, я продакт команды Self-Service в мобильном приложении Тинькофф. У моей команды три основные цели по созданию сервиса: contactless, proactive и self-service.   Это значит, что мы стараемся сделать незаметными процессы для пользователя: убрат...

[Перевод] Data-Oriented архитектура В архитектуре программного обеспечения существует один малоизвестный паттерн, заслуживающий большего внимания. Архитектура, ориентированная на данные, (data-oriented architecture, DOA) была впервые описана Радживом Джоши в отчете RTI 2007 года, а затем в 2017 году Кристианом...

[Перевод] Remix: руководство по новому open source React-фреймворку Последнее время кажется, что React-фреймворки выходят каждый день. Хотя каждому из них есть, что предложить, Remix особенно выделяется. Remix — React-фреймворк для SSR (server-side rendering) от создателей react-router, который заопенсорсили совсем недавно.В этой статье мы п...

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

Стоит ли учить PHP в 2022 году IT-индустрия – динамичная сфера, где новые технологии и решения могут кардинально изменять структуру рынка, что влияет на популярность того или иного стека. Также IT-рынок подвержен субъективному хайпу, когда на какие-то технологии и языки программирования обращают чрез...

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

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

Match/case vs If/else. Сравниванием скорость работы операторов в Python 3.10 Прошло уже достаточно времени с момента релиза Python версии 3.10. Самым главным и самым ожидаемым было введение оператора match/case (он же pattern matching). Однако далеко не всем разработчикам из комьюнити зашел данный оператор. Свидетельствуют этому даже комментарии...

JavaScript: разрабатываем чат с помощью Socket.io, Express и React с акцентом на работе с медиа Привет, друзья! В данной статье я хочу показать вам, как разработать простое приложение для обмена сообщениями в режиме реального времени с использованием Socket.io, Express и React с акцентом на работе с медиа. Функционал нашего приложения будет следующим: при первом за...

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

Благодатная карма на Хабре и животрепещущие комментарии Можно ли активно комментировать публикации на Хабре и не иметь низкую карму?Казалось бы - это невозможно. Ни постоянные жалобы к администрации, ни попытки изменить механизмы кармы владельцами пока не помогают. Даже больше - становится всё более опасней писать комментарии, в ...

CSS и XPath для QA: чтобы разобраться с локаторами, нужно всего лишь… Привет! Меня зовут Иван, я руковожу горизонталью автоматизации тестирования в Skyeng. Часть моей работы — обучать ручных тестировщиков ремеслу автоматизации. И тема с поиском локаторов, по моему опыту, самая тяжкая для изучения. Здесь куча нюансов, которые надо учитывать, но...

Транскрибация в Linux + lifehack Нет, это не ругательное слово (для тех, кто не в курсе). Трансскрибация это перевод голоса в текст.На протяжении нескольких лет я подрабатывал этим делом. Титры для видео (использовал subtitle editor), интервью, доклады, проповеди и т. п. По заказам речь переводил в те...

Генератор компонентов Vue.js? Разработка веб-приложения это не только решения интересных задач, работа с логикой, или с интересной версткой. Это также рутина, которая преследует каждого разработчика в процессе работы. Начиная от создания разных файлов, и написания шаблонного boilerplate кода, заканчивая ...

Мониторинг веб-приложения на Rust с использованием Prometheus и Grafana В статье будет показано как настроить мониторинг веб-приложения на Rust. Приложение будет выставлять наружу Prometheus метрики, которые будут визуализированы с помощью Grafana. Мониторинг осуществляется для приложения mongodb-redis demo, детально рассмотренного здесь. В итог...

Veslo — расширение Retrofit для тестирования (Java) Статья расскажет о расширении для декларативного HTTP клиента retrofit предназначенного в большей степени для функционального тестирования API. Создан в первую очередь для упрощения и ускорения разработки API тестов. Расширение позволяет использовать сразу две модели данных ...

Как сжать видео на Маке без сторонних приложений Если вы хоть раз снимали видео в 4K, то представляете, сколько оно весит. Минута ролика в 4K 60 fps на iPhone обойдется вам чуть ли не в 500 МБ свободного пространства. На других устройствах, я уверен, такого качества видео займет ничуть не меньше памяти. Понятно, что если ...

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

Next.js: подробное руководство. Итерация вторая Привет, друзья! Хочу поделиться с вами заметками о Next.js (надеюсь, кому-нибудь пригодится). Next.js — это основанный на React фреймворк, предназначенный для разработки веб-приложений, обладающих функционалом, выходящим за рамки SPA, т.е. так называемых одностраничных при...

Вертел я ваши UIView Эта статья является логическим продолжением UIKit ты вообще про UI?Если вы ее пропустили, рекомендую сначала ознакомиться с ней. На всякий случай напоминаю, что весь графический интерфейс – это ответственность слоев (не вью!).Я люблю пользоваться инструментами разработки, ко...

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

Как мы четыре года организовываем работу на удаленке с помощью Discord Тренд 2020 года продолжает расти. Все больше компаний дают возможность работать сотрудникам в гибридном формате или полностью из дома.Я расскажу, как мы организовали удаленную работу в Discord.Меня зовут Илья, я CTO компании 2people IT и один из её основателей. Основная наша...

Случайные лабиринты и сапёр от третьего лица, инопланетные жуки и алгоритм Брезенхема Всем привет! Уже больше 30 лет я занимаюсь разработкой видеоигр и регулярно экспериментирую с различными игровыми механиками. В результате я пришел к идее создать игру по типу сапёра, но от третьего лица и на roguelike подобном уровне.Исследуя большое пространство, нужно соб...

Как можно тестировать платформенные сервисы PaaS (Platform as a Service) — внутренняя платформа для запуска и разработки приложений. Если коротко, то наш PaaS позволяет легко и, можно сказать, при нулевом знании внутренней кухни создать свой сервис и начать пилить продуктовые компоненты. Более длинное объяснение — в э...

Интеграция CrowdSec в Kubernetes Архитектура микросервисов — самая серьёзная угроза безопасности в кластере Kubernetes (K8s), так как каждое развёртываемое приложение открывает для злоумышленников новый потенциальный вектор атаки. При этом, развёрнутые приложения генерируют логи, а наша платформа CrowdSec м...

Ускоряем прохождение iOS UI-тестов. Часть 1. Запускаем тесты без сборки проекта Хабр, привет!Меня зовут Борис. Я Mobile QA lead в Vivid Money.Это вступительная статья в цикле статей по iOS-автоматизации, в которых я расскажу о том, как ускорить прохождение UI-тестов.Данная статья будет полезна iOS-автоматизаторам с опытом, либо разработчикам.В рамках эт...

Gentoo в облаке Hetzner c LUKS шифрованием В статье описана установка Gentoo в Hetzner Cloud, статья не рекламная. Написана с целью разобрать и описать установку Gentoo с загрузкой без UEFI с шифрованным корневым разделом, а также возможностью разблокировки LUKS без размещения ключа на виртуальной машине, а только пр...

Отображение данных из подписанного ЭЦП PDF-файла в Joomla На Joomla CMS сделано очень много сайтов для образовательных учреждений самого разного уровня и сложности. На сайты образовательных учреждений распространяется (на момент написания статьи) Приказ Рособрнадзора от 14.08.2020 №831, согласно которому документация должна быть на...

Подведение итогов первого года от JPA Buddy 2021-й год закончился, уже почти прошел первый месяц 2022-го. Прошлый год стал знаменательным для JPA Buddy: первый публичный релиз, встреча с первым пользователем и рост до одного из самых высокорейтинговых плагинов на IntelliJ IDEA Marketplace. А еще завтра у Баддика ...

[Перевод] Уроки абстракции: чему FP может научить ООП Одним из наиболее распространенных «лучших практик» в программировании является принцип DRY: не повторяйся. Для реализации этого принципа можно использовать множество методов: инкапсуляция, параметризация, инверсия управления и многое другое. Одним из этих методов является а...

Транспорт в PvP-шутере на Unity: добавляем и синхронизируем Когда мы начали разработку батлрояля на 100 игроков, то решили сделать самую большую карту в нашем шутере — 2 на 2 километра против стандартных 200 x 200 метров. Но для таких масштабов нужны были более быстрые способы перемещения, чем просто пешком. Так появилась задача доба...

Запись разговоров на мобильных Тут на МВидео выложили статью про 10 лучших приложений для записи звонков на смартфонах, а на 4pda выложили статью, что Гугл совсем запрещает запись звонков на Андроиде. Тема мне близка, т.к. недавно занимался разработкой приложения для записи звонков и все вышло не так как ...

Атака не клонов, или Генерация и анализ тестовых данных для нагрузки. Часть 1 Как добиться необходимого контроля, удобства и даже скорости при подготовке тестовых данных для микросервисов и тестов производительности? В каких случаях лучше не генерировать XML и JSON файлы с помощью конкатенации строк? Зачем анализировать статистику по SQL запросам?Меня...

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

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

Улучшаем процесс ведения проекта в Git Привет! Я давно заметил, что процесс добавления нового кода в проект в большинстве команд может быть не всегда стандартизирован. Из-за этого могут возникнуть сложности с коммуникациями разработчиков как на уровне описания добавленного кода, так и понимания, какое влияние нес...

Физики выяснили, как песчаная дюна обходит препятствие Наука Физика 27.10.2021, 10:22 Физики выяснили, как песчаная дюна обходит препятствие Исследователи создали простую экспериментальную установку, позволяющую определить условия, при которых мигрирующая песчаная дюна пройдет через препя...

reveal.js: HTML-презентации Привет, меня зовут Александр, я старший разработчик ПО в Центре разработки Orion Innovation и я люблю делиться своими мыслями с людьми, разумеется, любимые форматы – статьи на Хабре и доклады на конференциях и митапах. Сложно представить доклад без презентации, о них и хочу ...

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

Тестирование игр в Unity3D и на эмуляторах Всем привет. Сегодня публикуем вторую часть текстовой расшифровки интенсива, который был проведен в преддверии старта курса "Game QA Engineer. С первой частью можно ознакомиться по ссылке.Интенсив провела Надежда Чертовских — руководитель отдела QA в компании BeresnevGa...

[Перевод] Экспериментальная разработка эксплойта для Use-After-Free Пошаговая реализация эксплойта для уязвимости CVE-2021-23134, включая описание используемых для этого инструментов. Это мой первый опыт разработки эксплойта для ядра – так что здесь вы вполне можете заметить некоторые ошибки, за которые я заранее извиняюсь. Читать дальше &r...

Шейдеры в Unity — это не сложно. Часть 3 — добавляем блеска Всем привет! Благодарен всем за замечания и комментарии к предыдущим статьям. Благодаря всем нам мы наполняем интернет доступными знаниями и это действительно круто.Сегодня продолжаем разбираться с шейдерами, а именно с работой с освещением. В прошлой части мы разобрали тип ...

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

Как за час построить CI/CD для высоконагруженного проекта в облаке SberCloud.Advanced Привет, Хабр! Меня зовут Кирилл Шеховцов, и я технический лидер в SberCloud. Сегодня расскажу, как быстро интегрировать пайплайн Continuous Integration/Continuous Delivery (CI/CD) и продуктовый подход к проектированию приложений в облаке SberCloud.Advanced. Эта обзорная стат...

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

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

Мой опыт первой игры — Escape from the 70's Захотелось мне делать игры… Хотя бы одну! И записался я тогда на курс Unreal Engine в середине июня 2020 - просто в гугле набрал курсы по анрниалу и на самом первом в списке я зарегистрировался. Хочу сделать отступление и акцентировать на том, что это моя первая игра. Я...

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

Потрясающее будущее PHP-стека для карьеры Совсем недавно была позитивная новость о том, что компания JetBrains простимулировала создание специального фондаTHE PHP Foundation, который будет финансировать и координировать дальнейшее развитие PHP, как современного языка программирования. Эта отлична...

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

[Перевод] Игры для MS-DOS с открытым исходным кодом Игры под DOS с открытым исходным кодом — редкость. Однако спустя много лет некоторые разработчики всё же решили выпустить в свет исходники. Большинство из них уже переписаны на SDL, благодаря чему их можно перенести практически на любую современную платформу, но какой в это...

Структурное логирование и интерполированные строки в C# 10 В последние годы все большую популярность у разработчиков завоевывает структурное логирование. В этой статье я хотел бы рассмотреть, как мы можем добавить поддержку структурного логирования с использованием интерполированных строк при помощи новых возможностей C# 10. Читать ...

[Перевод] Шаблоны C++: как итерировать по std::tuple — std::apply и еще пара приемов В предыдущей статье, посвященной перебору элементов кортежей, мы рассмотрели только основы. В результате нашей работы мы реализовали шаблон функции, который принимал кортеж и мог красиво вывести его в консоль. Мы также реализовали версию с оператором <<.Сегодня мы пойд...

Как я визуализировал граф билда. Build Graph for Xcode Каждый год я стараюсь запускать по одному пет-проекту. Самый первый начинался ещё до того, как я умел пользоваться Git, а последний вообще был не программой, а книгой про доступность. Каждый проект учил меня как программированию, так и подходу к продуктовой разработке, что п...

Как завести XCRemoteCache, или Кэши из топора Всем привет! Меня зовут Федоров Василий, я руковожу группой Mobile.Speed в компании Aliexpress Россия. Мы стараемся облегчить жизнь разработчиков, пишем утилиты, настраиваем CI, складируем метрики в Grafana — в общем отвечаем почти за все, что влияет на time-to-mar...

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

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

Обнаружение наличия функциональности в C++ на этапе компиляции Иногда, при реализации очередной "шаблонной магии" очень хочется на этапе компиляции иметь сакральное знание о том, а если у типа нужный метод, чтобы его вызвать или нет?Хорошо, если есть поддержка концептов или рефлексии. А что делать, если их ещё нет, или они не в полной м...

Альтернатива MapReduce при поиске в распределенной БД Привет, меня зовут Сатбек, я работаю в команде Tarantool. Расскажу, как реализовать в шардированном кластере поиск, скорость которого не зависит от количества мастеров и объёма хранимых данных. Условно назову этот способ индексным слоем:- Опишу общую схему построения по...

«Слив денег, сил и времени»: 5 ошибок цифровой трансформации 5 ошибок цифровой трансформации: "Слив денег, сил и времени".Если элементы цифровой трансформации не связаны друг с другом и с вашей основной стратегией, вы просто сливаете деньги, силы и время. А потом происходит расхолаживание, и вы думаете: «...

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

Золотое правило системного администрирования Я занимался разработкой систем последние 12 лет своей жизни. У меня в руках побывало всё. Я видел системы, работающие на COM портах, для передачи данных между терминалами. У меня есть сертификат NEC, подтверждающий тот факт, что я могу программировать их зубодробительные с...

Потратить миллион, чтобы нанять двух джунов: профит и около него Привет, меня зовут Валерий Антонов, я руковожу направлением Java в Уральском банке реконструкции и развития (УБРиР). Осенью у нас окончилось обучение в двух школах Java. По итогам работы мы приняли в штат двух учеников школы Java, а несколько сотрудников банка сменили с...

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

Путь к автотестированию Android нативными инструментами: испробовали всё, что есть на рынке и сделали свои выводы Давайте сначала представимся. Мы - команда управления тестирования и контроля качества в БКС Мир Инвестиций. Наш продукт - это приложения и сайты, созданные для удобства всех желающих окунуться в мир ценных бумаг и инвестиций. Конкретно в нашем “ведомстве” приложения на IOS&...

[Перевод] Structured concurrency в Swift Примечание переводчиков: В Swift 5.5 появилась новая концепция языка async/await. Мы решили опубликовать перевод статьи, чтобы разобраться с structured concurrency.За время подготовки перевода оригинал успели переписать, и в статье ниже мы совместили обе версии: сначала идет...

Docker: заметки веб-разработчика. Итерация четвертая Привет, друзья! В этой статье я продолжаю (и заканчиваю) делиться с вами заметками о Docker. Заметки состоят из 4 частей: 2 теоретических и 2 практических. Если быть более конкретным: первая часть посвящена Docker, Docker CLI и Dockerfile; во второй части рассказывается о...

Моя первая NFT-коллекция на Solidity + Hardhat — «Сизифов Труд» На момент написания статьи я работаю Frontend-разработчиком в VK (Delivery Club) на Vue и плавно перехожу на iOS-разработку. Уже около 4 лет считаю себя поверхностно приближенным к сфере крипты: участвовал в разработке P2P-платформы (BTC-обменника), изучал основы и идеологию...

Картридж с The Super Shinobi 2 На самом деле эта мини-статья была написана ещё в 2018-м году, задолго до моего появления на Хабре. И я решил выложить её здесь, чтобы, во-первых, она получила большую аудиторию, а во-вторых потому что недавно мне пожаловались, что давненько я ничего не писал. А так как моя ...

Angular Libs как монорепозиторий 2: tree shaking и сборка клонов Всем привет! В прошлом посте мы с вами разобрали механизмы создания библиотек с помощью Angular libs, а также научились настраивать их работу в приложении и друг с другом и даже вынесли наши ассеты в одну из таких библиотек.В этом посте хочу продолжить тему разделения функци...

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

От чего PET-G теряет свои свойства со временем? В предыдущей статье я рассказывал о воздействии вибраций на PET-G пластик и считал, что тема будет на этом исчерпана. Но через некоторое время после публикации со мной связался Юнах Анатолий - автор youtube-канала Prozhektor8kvt и поделился интересующей его проблемой изменен...

Пишем без Retrofit'а, Gson'a и Kotlin Coroutines Android приложение Порой нам хочется написать код без лишних библиотек, чтобы более глубоко понять основные принципы или просто ради интереса.В качестве примера я написал простое Android приложение, которое позволяет юзерам найти значение русского слова.Давайте остановимся на каждом моменте по...

8 правил, которые пригодятся при описании Git-коммитов Иногда системы контроля версий напоминают групповые чаты: вроде бы все тут собрались по какому-то поводу и пишут о чём-то одном, но что именно пишут ― разобраться порой просто невозможно. Как и в чате, где на одно грамотное и полное сообщение наберётся сотня «гыгы, лол» и «)...

«От категорий к векторам», или нестандартное кодирование категориальных данных. Часть 2 Привет, Хабр! С вами снова Артём, Team Lead Data Scientist из МегаФона. Надеюсь, вам понравилась первая статья серии о нестандартных методах кодирования категориальных данных, где я поделился своим опытом и показал, как с кодированием справляется тематическое моделирование. ...

Эволюция разумна? Приветствую, хабрчане! Сегодня речь пойдёт об одном, на мой взгляд, интересном варианте алгоритма для самообучающейся системы. Идея подобной статьи зрела давно, однаĸо руĸи всё не доходили.Рассматриваемую ниже модель можно споĸойно отнести ĸ областям...

Что нужно сделать прямо сейчас, чтобы получить первые заказы на Upwork Я раньше думал, что это абсолютно нереально — получить первый заказ на фриланс бирже. Думал, что надо читерить, добывать фейковые отзывы, просить друзей сделать заказ или выполнять работу за бесплатно. Но бирже выгодно, чтобы я зарабатывал, нужно лишь правильно использовать ...

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

[Перевод] Шаблоны C++: как итерировать по std::tuple — основы Для большинства стандартных контейнеров перебор элементов можно осуществлять просто с помощью цикла for с диапазоном прямо во время выполнения. Но что насчет кортежей (std::tuple)? В этом случае мы не можем использовать обычный цикл, так как он не «понимает» список аргументо...

Учёные создадут бесконечный источник энергии на основе термоядерного синтеза Термоядерный синтез - экологически чистый способ обеспечить человечество энергией. Сейчас уже идёт строительство Международного термоядерного экспериментального реактора (ИТЭР). Подробнее о работе в этом направлении - в статье BBC Science Focus Magazine.

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

Что произойдет, если на ходу включить стояночный тормоз: мера безопасности Автомобили Другое 17.05.2021, 08:15 Что произойдет, если на ходу включить стояночный тормоз: мера безопасности В современных автомобилях привычный «ручник» давно заменила кнопка электронного стояночного тормоза. Что будет, если нажать ...

TINKOFF-INVEST. Разработка торгового робота на JAVA. Часть 1 Многие что-то слышали, некоторые даже пробовали, но лишь единицы рассказали о таком мощном и удобном инструменте автоматизации биржевой торговли, как TNIKOFF INVEST API. Полностью раскрыть все возможности API или написать полноценного робота в рамках одной статьи – непосильн...

Комментарий к статье «Почему СтарЛинк от Илона Маска это Скам» Раз меня упомянул @Arnak в его большой статье "Почему СтарЛинк от Илона Маска это Скам", то нужно написать ответ. (точнее повторить и немного расширить, тот что я написал там в комментах)1) Я не знаю, что точно обозначает "скам". Поэтому не могу тут ответить ни да, ни нет....

Новая документация Docsvision ч. 2 — Antora Привет всем читающим! Меня зовут Владимир, я - технический писатель в компании Docsvision и я здесь, чтобы опубликовать вторую часть статьи и надрать задницу всем, кто ставил дизлайки к первой части. Статью вы можете найти ниже.В первой статье я рассказал, как мы выбирали SS...

Установка Windows 10 с работающим звуком на старые MacBook и iMac Столкнувшись с проблемой не работающего звука при установке Windows на свой MacBook 11го года обнаружил, что материала по данной теме в русскоязычном сегменте интернета крайне мало, можно сказать что его нет вообще. Эта статья написана в помощь всем столкнувшимся с такой же ...

Как большинство Java проектов выглядят изнутри Меня зовут Аксёнов Вячеслав, я бэкенд разработчик и в последние годы пишу веб приложения на java/kotlin. Основная идея этой статьи описать основные технические задачи, которые ставятся перед современными веб приложениями, а также перечислить те библиотеки, которые чаще всего...

Создаем свой React с рендером и useState за 30 минут Понимание процессов приходит с изучением механизмов, которые приводят в движение мелкие части большого пазла. Если представить, что Вам дали задачу объяснить, что такое React за полчаса, скорее всего, Вы бы выбрали один из двух вариантов: - пересказать все то, что изложено ...

Тренды веб-разработки в 2022 простыми словами Самое важное — отказ от поддержки старых браузеров в 2021. Майки окончательно убили IE, поэтому разработчикам станет проще использовать классные технологии. Гриды (83%) и флексбоксы (99%) захватили всё. TypeScript есть в 70% вакансий для мидлов. 2022 будет годом TypeScript.&...

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

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

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

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

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

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

Windows 11: минусы дизайна В этой статье мне бы хотелось поделиться пользовательским опытом, связанной с Windows 11, которой я на момент написания статьи пользуюсь примерно месяц с лишним. Читать далее

[Перевод] От песочных часов к пирамиде: как усовершенствовать структуру тестов Меня зовут Владислав Романенко, я Senior iOS QA Engineer в Badoo и Bumble. Мы регулярно внедряем новые фичи в приложения, и автоматизация тестирования — один из способов не пропустить баги. Фактически автотесты входят в жизненный цикл всех частей наших приложений: бэкенда, с...

[Перевод] Меняем std::sort для Google Мы меняем std::sort в библиотеке libcxx проекта LLVM. В этой статье мы подробно расскажем о том, как мы пришли к этому решению и какими будут возможные последствия, о багах, с которыми вы можете столкнуться в примерах из open source. Мы покажем несколько бенчмарков, объясни...

Заплатка на асме. Создаем панель инструментов для Windows на Flat Assembler Для подписчиковВ этой статье я расскажу о том, как создать простое приложение — заготовку панели инструментов для рабочего стола Windows. По ходу дела мы вспомним Win32 API, разберемся, как его использовать на языке ассемблера, и познакомимся с Flat Assembler, который станет...

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

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

[Перевод] Сохраняем кластеры Kubernetes в чистоте и порядке Одновременно с ростом кластера растет количество ресурсов, volume и других API-объектов. Рано или поздно вы упретесь в потолок, будь то etcd, память или процессор. Зачем подвергать себя ненужной боли и проблемам, если можно установить простые — хотя и довольно изощренные — п...

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

Sysbox: Изолированный container runtime. Краткий обзор и настройка О Sysbox в 3-х предложениях:- Sysbox - это "VM-like" контейнеры с возможностью запускать внутри системный софт: Docker, Kubernetes, Systemd, вложенные контейнеры и т.д. - Любой софт, работающий на виртуальной машине, должен также работать в контейнере без проблем и с на...

VPN на минималках ч.2, или трое в docker не считая туннеля Привет, хабр! К прошлой статье закономерно возник ряд вопросов, и, перед тем как продолжить рассказ о внутривенном курсе отечественного велосипедостроения внесу ряд важных уточнений. Как мне показалось, постановка задачи была достаточно понятной. Со временем оказалось, ...

Razer выпустил петличный Bluetooth-микрофон Seiren для мобильных стримеров Razer представила Seiren Bluetooth, свой первый петличный Bluetooth-микрофон. Всенаправленный микрофон на основе искусственного интеллекта, создан чтобы помочь мобильным стримерам и видеоблогерам, которые хотят лучшего качества голоса. В Seiren Bluetooth есть разъем 3,5 м...

Huawei отключила поддержку карт «Мир» в своем магазине приложений AppGallery Huawei отключила поддержку карт «Мир» в фирменном магазине приложений AppGallery. Данную информацию подтвердили в технической поддержке Huawei. К сожалению, у нас могут возникнуть трудности с платежами, в том числе картами «Мир». Мы уже рабо...

База знаний wiki сохранит внутренние документы компании — как сделать ее удобной для пользования Привет, Хабр! Я Вика Левена, тимлид продуктовой аналитики AGIMA. В этой статье я расскажу, как сделать хранилище для сотен документов, созданных десятками людей, удобным и работающим инструментом, а главное — популярным среди коллег. Читать далее

[Перевод] Программирование с dplyr Большинство глаголов dplyr так или иначе используют аккуратную оценку (tidy evaluation). Tidy evaluation - это особый тип нестандартной оценки, используемый во всём tidyverse. В dplyr есть две основные формы tidy evaluation:Описанные концепции обращения к переменным таблиц д...

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

Alcatel-Lucent Enterprise представляет новые стационарные телефоны  Alcatel-Lucent Enterprise выпустила новый модельный ряд стационарных телефонов, разработанных для эпохи цифровых технологий. Для того, чтобы поддержать новые форматы рабочего процесса, включая гибридные модели и удаленную работу, Alcatel-Lucent Enterprise создала новый мод...

Три способа отследить запросы Greenplum, которые «отъедают» слишком много ресурсов Привет, Хабр! Меня зовут Роман, я работаю разработчиком в компании Arenadata, где мы решаем много задач, связанных с Greenplum. Как-то мне представился случай разобраться с одним непростым, но вполне типичным для этой СУБД кейсом. Необходимо было выяснить, на обработку каких...

Репликация с нуля за 5 простых шагов (невозможна) Меня зовут Сергей Петренко, я работаю в команде кластерных технологий Tarantool. В прошлом году я рассказывал о том, как в Tarantool появилась синхронная репликация и поддержка автоматических выборов лидера на основе Raft. Теперь предлагаю погрузиться во «внутренности» репли...

JavaScript: работа с датой и временем с помощью Temporal Привет, друзья! В этой статье я хочу рассказать вам о Temporal, новом API для работы с датой и временем в JS. Описание предложения Черновик спецификации Рецепты по использованию Temporal Источником вдохновения для меня послужила эта замечательная статья. Обратите внимани...

И всё-таки, возможен ли 1мс таймер в Windows? В комментариях к недавней статье оказалось что, во-первых, этот вопрос кому-то да и интересен, и, во-вторых, существует некоторое количество заблуждений на эту тему.Вводные: нам нужен таймер, на Windows, с точностью порядка 1мс, драйвер при этом мы писать не хотим и решения ...

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

[Перевод] Создаем CLI-приложение с помощью React.js Приложения с интерфейсом в виде командной строки (Command-Line Interface — CLI) стали популярными в экосистеме разработчиков по целому ряду причин. Самые банальные из них — это простота использования (CLI) и то, что многие важнейшие инструменты разработки представляют из себ...

Венец Творения Two Trees. Обзор на Sapphire Plus Всем доброго времени суток. В данной статье рассмотрим принтер Two trees Sapphire Plus. Это не первый принтер у меня от этой компании. Про другие принтеры вы можете посмотреть тут: TT-1S, Bluer plus ч1, ч2. Один не плохой, второй до сих пор недоделанный стоит. Данный же прин...

Проектирование непредсказуемого интеллекта в играх. Часть 1 — архитектура Создаем персонажа, который сам решает, что ему стоит сделать с игроком.В этой статье я познакомлю вас с методикой проектирования искусственного интеллекта под названием GOAP на примере игры Hitman.Подобные методики редко применяются в СНГ, но более популярны в зарубежных сту...

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

Computer Vision для iOS, Android, Web Привет, я Денис Соколов, руковожу R&D в Zenia — это платформа для йоги и фитнеса, которая использует ИИ для трекинга поз человека (подробнее об этом — в другой моей статье). Наша система распознавания работает на трёх платформах — iOS, Android, Web. В этой статье поговор...

7 вопросов о компьютерной томографии Привет, Хабр! Спустя много лет режима ReadOnly, решила зарегистрироваться, чтобы рассказать о своем опыте работы с промышленным томографом. Когда люди узнают, что я занимаюсь компьютерной томографией, то обычно задают два вопроса: первый - «Это неопасно? Там же излучени...

Вы «продоете теплых кросовок»: ищем идеальную пару обуви с помощью Elasticsearch Привет, эту статью мы пишем вместе — Дмитрий Генинг, руководитель направления разработки R&D, и Александр Желубенков, руководитель направления ранжирования и навигации в компании Lamoda. Одна из самых важных систем, с которой мы работаем — это поиск. Ежедневно на La...

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

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

Асинхронное программирование в однопоточных средах JavaScript Асинхронное программирование в однопоточных средах JavaScript Моя прошлая обучающая статья Введение в Redux & React-redux набрала больше 100к просмотров. Что же это не может не радовать меня. И поэтому я решил порадовать и вас написав очередную статью по JavaScript. Хотя...

Как применять Branch by Abstraction в проекте на примере Android-разработки Представим простую историю. Вы заканчиваете делать рефакторинг, которым занимались последние 2 недели. Вы хорошо над ним поработали, сделали несколько ключевых изменений в проекте. Делаете долгожданный pull request, и ... 12 конфликтов.Или другой вариант. Вы работали и посто...

Архитектура Вселенной, часть 3: Идея Перед прочтением рекомендуется ознакомиться с предыдущими статьями цикла "Архитектура Вселенной":• Часть 1: Сознание• Часть 2: Относительность• Часть 3: ИдеяВ прошлой части "Архитектуры Вселенной" мы говорили об относительной природе пространства и времени, а сейчас я хотел ...

Apple разрабатывает систему обнаружения ДТП для часов Apple Watch 2022 Apple представила функцию обнаружения падения на Watch Series 4 - часы отслеживают ускорение, чтобы определить, падение, и могут автоматически вызывать экстренную помощь. Теперь компания хочет сделать что-то подобное, но для автокатастроф. Сложная часть - это обнаружение ...

Страх и ненависть в RouterOS: что такое сетевое соединение в ядре Linux (часть 1 — теория) В статье рассмотрено понятие «соединение» для TCP и UDP протоколов в ядре операционной системы Linux на примере работы оборудования MikroTik. Дополнительно рассматриваются особенности работы технологии NAT в указанном контексте. Материалы носят в основном теоретический хара...

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

Сегментация корпоративных сетей в концепции Zero Trust В этой статье я бы хотел поделиться своими мыслями о материале по сегментации сетей представленном на недавно прошедшем LinkMetup и дополнить рассказ некоторыми важными на мой взгляд деталями. В результате я надеюсь представить более полную картину о тенденциях и возможностя...

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

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

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

Латунирование, это просто Эта статья - простая и подробная инструкция, как можно в домашних условиях покрыть латунью металлические детали, применяя только подручную химию. cut/ В ней, подробно описанны все ньюансы и "подводные камни". После прочтения этой статьи, у вас просто не может не получиться...

Forrester: разработка ПО адаптируется к новой нормальности в 2022 году По прогнозам Forrester, разработка ПО будет ориентироваться на архитектуры, управляемые событиями (EDA), консолидированные конвейеры DevOps и боты с искусственным интеллектом, чтобы продолжать удовлетворять потребности бизнеса ...

Сто раз сломай, один раз поправь или как мы улучшали тестирование отказоустойчивости и восстановления API Привет, хабровчане!Меня зовут Нурыев Асхат, я ведущий инженер по автоматизации в DINS. За время работы в компании я участвовал в решении множества сложных задач. В этой статье я поделюсь историей улучшения процесса и автоматизации тестирования высокой доступности и восстанов...

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

Controller, но не Massive: реализуем список карточек для iOS 13 и не только с учетом практик чистого кода Привет! Когда мне по работе понадобилось реализовать список карточек на связке UICollectionView и UICollectionViewCompositionalLayout для iOS 13+, я не нашел хорошего примера. Написал свой и хочу поделиться с сообществом. А заодно показать реализацию для iOS11+.Примеры можно...

В России создадут мобильное приложение для доносов на экстремизм Генпрокуратура заказала разработку мобильного приложения, через которое граждане могли бы подавать жалобы на экстремизм. На проект потратят 10,5 млн рублей.

Скрытые друзья в плюсах Как известно, ключевое слово friend в C++ используется для предоставления доступа к закрытым членам класса внешним функциям и классам. Помимо этого, friend наделена еще одной фишкой, о которой знают далеко не все. В этой статье речь пойдет о hidden friends. Желающих разобрат...

Материализованные представления и ReplacingMergeTree в ClickHouse В этой статье будут описаны подводные камни, на которые я натыкался при использовании одновременно материализованных представлений и движка ReplacingMergeTree в ClickHouse (далее CH). Для опытных пользователей CH эта информация возможно будет уже не новой, но надею...

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

В перечень товаров для параллельного импорта должны войти ИТ-продукты Минпромторг РФ подготовил Приказ № 1532 от 19.04.2022 «Об утверждении перечня товаров (групп товаров), в отношении которых не применяются положення подпункта б статьи 1359 и статьи 1487 Гражданского кодекса ...

Как добавить обязательный запрос на IDFA через App Tracking Transparency С весны этого года каждый iOS-разработчик должен запрашивать разрешение пользователя на использование рекламного идентификатора IDFA. В предыдущей статье мы сделали подробный обзор изменений в App Store и их влияния на мир iOS-разработки.А сегодня — практический материал. Ра...

[Перевод] Находим более качественные решения при помощи boost Каждый C++-разработчик хотя бы слышал о Boost – это, пожалуй, наиболее распространенный набор внешних библиотек, используемый в мире C++. Истоки большинства стандартных библиотек восходят к Boost, поскольку многие разработчики Boost также входят в состав комит...

Причинно-следственный анализ в машинном обучении Что появилось первым: курица или яйцо? Статистики давно уже нашли ответ на этот вопрос. Причем несколько раз. И каждый раз ответ был разным.А если серьезно, то для машинного обучения становятся все более актуальными вопросы причинно-следственного анализа (causal inference) -...

Как попасть на 192.168.1.1 Часто встречаются сообщения, в котором спрашивают, что не могут попасть на веб-интерфейс новых шлюзов VPN / USG Flex / ATP по дефолтному 192.168.1.1 из коробки или после сброса. Причин много существует, от простых до нестандартных.Для облегчения поиска решения проблемы и эко...

[Перевод] Внутренняя история внешнего расследования SoftRAM 95 Перевод статьи Рэймонда Чена, более 25 лет участвовавшего в разработке ОС Windows, автора блога The Old New Thing, начатого им в 2003 году. С выходом Windows 95 появилось большое количество программных продуктов, предназначенных специально для этой ОС. Много внимания в ка...

[Перевод] Масштабируем Jetpack Compose Navigation В одном из моих личных проектов я решил использовать Jetpack Compose в качестве основной технологии. Это означало, что моё приложение будет иметь одну Activity, а вся навигация будет выполняться с помощью Compose. Когда я начал планировать проект, библиотеки Compose Navigati...

Microsoft Edge получает функцию Edge Bar в Windows Помните экспериментальные веб-виджеты Microsoft Edge? Эта функция теперь называется «Edge Bar» и имеет новую боковую панель, которая позволяет легко перемещаться между любимыми веб-сайтами с рабочего стола. Edge Bar — это эксклюзивный виджет Microsoft Edge, похожий на ленту ...

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

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

Нет, правда, зачем нам TypeScript? Когда код на JavaScript содержит больше одного выражения, ну хорошо, больше трех, в нём можно легко запутаться. Выходов два — или добавить кучу проверок, но тогда код станет громоздким и его будет сложно сопровождать. Или можно добавить комментарии, но&nb...

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

Сверхновая реальность рынка труда IT Рынок труда и в «спокойном» состоянии подвержен непрерывным изменениям, а сегодня его трансформация приобрела невероятное ускорение. На фоне известных событий в стране и мире к высокой скорости изменений добавилась и смена вектора. Рынок труда едва успел приспособиться к нов...

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

Проверяем Архитектурные стили на движке Factorio (часть 1) Добрый день всем, дорогие читатели!Если вы хотя бы чуть-чуть имели неудачу пообщаться с Архитекторами, то знаете, что в их понимании не существует идеальной архитектуры ПО и вся их работа состоит во взвешивании плюсов и минусов того или иного Архитектурного стиля. И поскольк...

Это Gaidai какой-то. Сервис HTTP сценариев Привет, Хабр, меня зовут Артем Кудряшов, некоторую кучу лет я работаю в ATI.SU — крупнейшей в России бирже грузоперевозок. В разное время я писал код, управлял командами и занимался другими весёлыми вещами. В статье, что вы видите, хочу рассказать об одном из наших сервисов ...

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

«Ваша сезонность, сэр!»: ищем тренд и прогнозируем спрос с помощью временных рядов, SARIMA и Python. Ч.1 Как вы можете помнить по первой статье "Маркетинговая аналитика на Python. Пишем код для RFM-сегментации", более 8 лет я работаю в сфере маркетинга для B2B и примерно столько же бешусь от дилетантского подхода к аналитике, который тянет за собой ряд проблем с определением кл...

Зловещая долина: terra incognita, в которой расставлены нейронные сети Не припомню, чтобы в детстве я боялся клоунов. За все детство я побывал в цирке-шапито, может быть, два раза. Зато я определенно испытывал отвращение и настороженную злость к деду Морозу,  поскольку примерно в семь лет прочел сказку Евгения Шварца «Два брата», а также б...

Как сделать красивый вывод текста на C# Прошлый пост на счет сердечка посмотрело много людей и у меня возникла идея сделать еще одну простенькую, но достаточно красивую штуку, а именно такой вот вывод текста(можно сказать анимированного, но язык не поворачивается). Данный пост подходит для новичков, можно потренир...

Мультивибратор на компараторе Занимаясь электроникой, я столкнулся с проблемой организации разрозненных знаний в "разумное целое".Стандартный вузовский путь: читай высокоумный учебник, делай лабораторку, проходи контрольный тест — слишком долог, «лишняя» информация быстро забывается. Бессистемные опыты ...

Молодым везде у нас дорога, везде ли старикам почет? Привет Хабр!В этой статье я хочу поделится своими соображениями по поводу перспектив роста и развития «пожилых» (в возрасте более 40 лет) разработчиков. Статья будет полна субъективизма и антитолерантности, так что всем желающих похоливарить – добро пожаловать в комментарии....

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

Как я решил стать трейдером и проигрался, а потом отыгрался, потому, что я программист. Мой опыт Таким я себя видел в своих мечтах. Freepik Здравствуйте дорогие хабровчане, в этом небольшом посте я хочу рассказать про свой опыт в торговле на бирже. Под катом я написал о том, как я пошёл тем же путём, что и все, и как и все (или как подавляющее большинство) проигрался,...

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

Микросервисы, Apache Kafka и Domain-Driven Design Почему Apache Kafka стала стандартом и основой архитектуры микросервисов. Как Kafka не только заменяет другое промежуточное ПО, но и позволяет создавать сами микросервисы с помощью DDD и нативных API Kafka: Kafka Streams, ksqlDB и Kafka Connect. Читать далее

Как в Hazelcast добавляли распределенный SQL Чтобы разработать свой распределенный SQL-движок, можно написать свой SQL-оптимизатор для построения движков. Вам придется сделать парсер, семантический анализатор и придумать правила трансформации и оптимизации. Всё протестировать, а потом как-то интегрировать в свою систем...

Бизнес-аналитик – кто он? Профессия бизнес-аналитика вызывает множество вопросов. Более того, в разных ситуациях под термином «бизнес-аналитик» понимают самых разных специалистов и, соответственно, ожидают разных компетенций и результатов. Я предлагаю разобраться в этом вопросе как можно подробнее.Ин...

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

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

Аудиомодификации для Android смартфонов Предыдущая статья была посвящена теме качества мобильного звука в Android смартфонах. Углубляясь в эту тему мы подробно рассмотрим что из себя представляют аудиомодификации, требования для их установки, принципы работы magisk модуля и способы улучшения качества звука на прим...

Как скрестить Intel с Эльбрусом: Обзор новой линейки СХД АЭРОДИСК Всем доброго здравия! В этой статье мы проведем обзор обновленной линейки систем хранения данных АЭРОДИСК Восток-5 и АЭРОДИСК Engine-5. В новых СХД мы уделили много внимания управлению большими хранилищами в многоконтроллерных конфигурациях на разных процессорных архитектура...

«Сам ты ворованный!», или Что iPhone и Android позаимствовали друг у друга Когда-то Стив Джобс назвал Android «украденным продуктом» и поклялся его уничтожить. Но «отец Android» Энди Рубин совершенно не считал, что все фичи iPhone — исключительно заслуга Apple. А позже сторонники Android и вовсе стали говорить, что это в Apple все у них к...

Все материалы на данном сайте взяты из открытых источников или присланы посетителями сайта и предоставляются исключительно в ознакомительных целях. Права на материалы принадлежат их владельцам. Администрация сайта ответственности за содержание материала не несет. (Правообладателям)