Как стать автором
Обновить

Технотекст

Игры наших бабушек

Время на прочтение7 мин
Количество просмотров10K

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

Читать далее

Flutter Flame: глобальная оптимизация производительности игрового движка

Время на прочтение12 мин
Количество просмотров3.5K

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

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

Читать далее

Зачем мы сделали собственный контроллер для копирования секретов в Kubernetes

Время на прочтение13 мин
Количество просмотров7.8K

Меня зовут Игорь Латкин, я системный архитектор в компании KTS.

Делимся нашей внутренней разработкой — Kubernetes-контроллером mirrors. Мы создали его внутри нашего DevOps-отдела для копирования Kubernetes-секретов между неймспейсами кластера. В итоге mirrors превратился в универсальный инструмент синхронизации данных из разных источников.

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

Читать далее

Как мы с помощью NLP облегчаем поиск людей с суицидальными наклонностями

Время на прочтение20 мин
Количество просмотров6.7K

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

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

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

Читать далее

Находчивость и смекалка. Как мы теперь чиним железки Cisco

Время на прочтение6 мин
Количество просмотров38K

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

Читать далее

Как работают глаза и что надо учитывать, создавая тёмную тему приложения

Время на прочтение11 мин
Количество просмотров13K

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

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

Читать далее

Мы разработали 44 устройства за 6 лет, продаем их по всему миру, только этого мало

Время на прочтение38 мин
Количество просмотров77K

История эмиграции, блеск и нищета стартапов, техническое порно, непрерывная разработка, гидроакустика, нарциссизм, рефлексия, open-source и много фото.

Это все под катом.

Начать погружение

50+ бесплатных курсов и ресурсов по аналитике данных от Harvard, Google, Stanford (по которым я училась)

Время на прочтение4 мин
Количество просмотров66K

Всем привет, меня зовут Маруся, я аналитик данных и на досуге веду телеграм-канал про аналитику.

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

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

Читать далее

Дополнительные временные ряды в ETNA

Время на прочтение3 мин
Количество просмотров5.6K

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

Читать далее

Ускоряем сериализацию JSON в Python с orjson и Rust

Время на прочтение12 мин
Количество просмотров14K

Немного контекста о том, как возникло это исследование...
В один из тех летних дней, когда на улице стояла ясная, солнечная, жаркая погода, когда стрижи быстро пролетали за окном, распространяя веселые звуки, мы закончили очередную задачу по проекту (в нашем проекте используется Python). Задача заключалась в получении различными способами (очередь, сервисы, файловая система и т.д.) входящих документов (JSON формат), обработке этих документов и сохранении обработанных документов обратно в JSON формате в архивную базу данных. Завершив кодирование и юнит тесты, мы выкатили решение на одно из тестовых окружений и стали ждать результатов. По функциональности решение работало отменно, но, оценив скорость работы решения, я задался вопросом, а можно ли его ускорить?

Читать далее

Как протестировать программный продукт без доступа к нему

Время на прочтение5 мин
Количество просмотров3.2K

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

Время идет, сроки становятся все короче и короче, а тестировщику еще не предоставили возможности «познакомиться» с программой. Конечно, тестер задастся вопросом: «А как я успею изучить ПО и уж тем более протестировать, если у меня нет доступа к нему?». Здесь я вам отвечу, что изучить и протестировать – можно. Даже без входа в приложение.

Читать далее

Как мы ускоряли е2е-тесты на Cypress в GitLab

Время на прочтение4 мин
Количество просмотров4.9K

Всем привет! На связи Николай Мезинов, разработчик фронтенда в продуктовой команде DevPlatform. Хочу поделиться опытом, как мы ускоряли прохождение e2e-тестов на Cypress в пайплайнах GitLab.

Читать далее

Процесс ревью кода структурно порочен. Вот, как его исправить

Время на прочтение11 мин
Количество просмотров13K

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

Разберём!

Как мы управляем надежностью производственного оборудования огромной вертикально-интегрированной компании

Время на прочтение8 мин
Количество просмотров12K

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

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

Надежность на 100%

Дизайн-система в inDriver: не пытайтесь покинуть Oymyakon

Время на прочтение6 мин
Количество просмотров4.2K

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

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

Читать далее

Настоящий Product Backlog Refinement: 4 этапа правильной работы над фичами

Время на прочтение6 мин
Количество просмотров24K

Привет, Хабр! Я Екатерина Колесникова, Agile Coach в inDriver. Когда я пришла в команду, заметила проблемы в процессе Product Backlog Refinement. Я предложила новый сценарий этой церемонии — и он сработал. В этой статье поделюсь опытом проведения PBR без скучной теории о «правильном» планировании. 

Читать далее

Что общего между локализацией багов и расследованием преступления?

Время на прочтение4 мин
Количество просмотров7.3K

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

Читать далее

Как структурировать проект на Golang: гайд от backend-разработчика

Время на прочтение4 мин
Количество просмотров64K

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

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

Читать далее

Android Debug Bridge для тестировщика без SMS и регистрации

Время на прочтение15 мин
Количество просмотров46K

Привет, Хабр! Меня зовут Александр Карпенко, я QA Engineer в inDrive. Я подготовил эту статью для начинающих QA-специалистов. Ниже расскажу, как использовать Android Debug Bridge (ADB) в тестировании мобильных приложений и нужен ли вообще этот инструмент. 

Читать далее

Port knocking и не только

Время на прочтение3 мин
Количество просмотров15K

Прочитав по диагонали статью гражданина @Winseven«ICMP открывашка портов для сервера», я сдержался. Все-таки велосипединг — это весело. Но вчитавшись, я опешил. Зачем запускать отдельное приложение для отслеживания нужных пакетов? Правильно ли, что достаточно один раз попасть пальцем в небо, чтобы порт был открыт? По мне, как-то не по фэншую.

Душа все это не вынесла, и я решился на статью.

А как надо было?