Pull to refresh

Technotext

Солнечный Навигатор (или Фоторезистор = Навигатор)

Level of difficultyEasy
Reading time17 min
Views14K

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

Если взять микроконтроллер, к ADC пину подключить фоторезистор, целый день непрерывно записывать на SD карту показания солнечной освещенности с вкраплениями временных отметок из часов реального времени RTC, то спустя 24 часа можно оценить широту (длительность светового дня) и долготу (фаза светового дня).

Попробуем понять, работает ли эта идея.

Читать далее

Вы никогда не сократите Тime Тo Мarket, если будете тестировать все фичи на одном сервере

Level of difficultyEasy
Reading time4 min
Views3.6K

Привет, это Максим Павлов из KTS. Мы создаём IT-продукты для бизнеса.

Все твердят про важность Time To Market — времени от появлении идеи фичи до её релиза для пользователей. При этом почему-то тестируют все фичи на одном сервере. В статье рассказываю, как ускорить Time To Market одним простым способом.

Читать далее

Учебное проектирование для джунов: как учить и зачем

Level of difficultyEasy
Reading time12 min
Views26K

Привет! Меня зовут Андрей, я бэкенд-тимлид в KTS

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

В статье расскажу про методику обучения проектированию в нашей компании.

Читать далее

Долгоиграющие приложения на PHP

Level of difficultyMedium
Reading time15 min
Views22K

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

Меня зовут Александр Пряхин, я TechUnit Lead в Авито. В IT работаю уже 14 лет. Из них 8 лет руковожу командами. Параллельно с этим преподаю и менторю. Сегодня разберём, как готовить демонов на PHP — от А до Я, и почему это актуально.

Читать далее

«Эффект лицензионного домино»: тренд на коммерциализацию open source решений набирает обороты — кейс HashiCorp

Reading time12 min
Views12K

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

Три месяца назад HashiCorp взяли похожий курс на защиту от конкурентов и коммерциализацию ранее полностью открытых продуктов, в том числе Terraform для управления ИТ-инфраструктурой в формате Infrastructure-as-Code и Vault для управления сертификатами, токенами доступа и другими «секретами». Однако, если сравнивать с Elastic, руководство HashiCorp выбрало иной подход и тип лицензии.

Разбираемся, что к чему, как реагирует сообщество, и на что обратить внимание компаниям с точки зрения стратегического развития своих ИТ-продуктов.

Читать далее

Как быстро выбирать языковые модели (LLM) под свои задачи

Level of difficultyMedium
Reading time6 min
Views19K

Последние полгода я активно занимаюсь разработкой сервисов на базе больших языковых моделей, они же «LLM». Для каждого проекта мне приходится подбирать модель по определенным критериям: языковая поддержка, требования к памяти, типу (instruction-based или completion), скорости генерации и т.п. Первое время я использовал платформу HuggingFace, где ежедневно публикуются около сотни новых моделей. Но кто им пользовался, знает, насколько там неудобный и слабый поиск: даже точные совпадения по названию он иногда не выдаёт. Плюс к этому, приходится тратить достаточно времени, чтобы найти и сравнить модели по нескольким критериям. В этой статье я расскажу, как решил проблему выбора языковых моделей.

Читать далее

Превращаем старый iPad в умную фоторамку

Level of difficultyMedium
Reading time12 min
Views16K

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

Читать далее

“Ну и долго мне ещё до магазина?” Или пара слов о геоинформационном анализе с помощью Python

Level of difficultyMedium
Reading time11 min
Views6.8K

Привет, хабр! Сегодня мы хотели бы продолжить тему обработки пространственных данных средствами Python библиотеки estaty. Мы уже рассказывали о том как можно Объединять открытые данные Open Street Map и Landsat для уточнения площадей зеленых зон вокруг объектов недвижимости.

Теперь же поговорим о более сложном анализе

Ну правда, долго?

Обзор онтологического Low-code подхода к разработке решений класса ERP

Level of difficultyMedium
Reading time9 min
Views2.7K

Здравствуй, уважаемый Хабр!

Эта статья описывает объектно-ориентированный (или онтологический) Low-code подход к проектированию и разработке информационных систем на примере платформы «Системный Геном».

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

Читать далее

Я знаю, что вы сделали с этим файлом. Проектируем функцию «история событий» в офисном продукте

Reading time7 min
Views3.4K

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

Чтобы лучше понимать пользователей, мы в МойОфис регулярно проводим UX-исследования. И сегодня расскажем о некоторых из них.

О том, как мы планировали и проектировали «историю событий файла» — новую функцию в «МойОфис Частное Облако 2» — читайте под катом.

Читать далее

Кастомизируем VS Code для веб-разработки

Level of difficultyEasy
Reading time10 min
Views40K

Привет, меня зовут Филипп, я фронтенд-разработчик в KTS.

Visual Studio Code — это бесплатный, шустрый (что важно на больших проектах) и глубоко кастомизируемый редактор кода.

В статье расскажу, какие настройки и плагины VS Code использует наша команда фронтенда в KTS. Материал может быть полезен для JavaScript- и React-разработчиков, а ещё для тех, кто уже давно пользуется VS Code, но не знает о некоторых полезных плагинах и фичах для повседневного использования. 

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

Также я рассмотрел инструменты для оптимизации работы с Git, шаблоны директорий и другие возможные настройки.

Читать далее

DTO в языке PHP: примеры для начинающих

Level of difficultyEasy
Reading time12 min
Views33K

DISCLAIMER


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

DTO (Data Transfer Object) — это шаблон проектирования, который используется для передачи данных между слоями приложения. DTO представляет собой объект, который содержит данные, необходимые для выполнения операции или запроса в приложении.
Читать дальше →

Тонкости настройки Grafana Loki

Level of difficultyMedium
Reading time12 min
Views47K

Привет! Меня зовут Игорь, я управляющий партнёр и системный архитектор в KTS.

В этой статье, подготовленной по мотивам моего доклада в «Школе мониторинга» Slurm, хочу поделиться своим набором best practice «Как лучше всего настроить Grafana Loki для сбора логов в инфраструктуре». 

На мой взгляд, порог входа в систему достаточно низкий, и в Интернете много туториалов. Поэтому я расскажу о более сложных и не совсем очевидных вещах, с которыми не раз сталкивался при работе с Grafana Loki. 

Читать далее

Профилирование асинхронного Python

Level of difficultyEasy
Reading time3 min
Views9K

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

Для асинхронного python-кода существует конечное количество специфических "узких мест", которые лучше перечислить заранее.

Читать далее

Рассчитываем бэклог спринта не на глаз

Level of difficultyEasy
Reading time10 min
Views8.6K

А с использованием методов линейного программирования.

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

В статье я поделюсь основными тезисами моего доклада, представленного на конференции Analyst Days #16. В нём я постарался показать, как методы линейного программирования могут быть применены в работе команды, живущей спринтами. Под катом вас ждет альтернативный взгляд на планирование спринта.

Читать далее

Как мы планировали повысить версию PHP за месяц, а потратили на это год

Level of difficultyEasy
Reading time14 min
Views27K

Как и множество больших сервисов, Яндекс Еда основана на микросервисной архитектуре. В общей сложности у нас чуть больше 200 микросервисов. Но есть один сервис, который совсем не микро – легаси-монолит.

Он написан на PHP 7.2 разработчиками разного уровня и в разное время. Мы подумали, что так больше нельзя, и решили навести порядок. В ходе разбирательств выяснилось, что версия языка, на котором всё написано, устарела и уже не поддерживается, что ведёт к рискам безопасности. Делать нечего — мы приняли решение обновиться до 8-й версии.

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

Читать далее

Многопоточность в Photon Plugin

Level of difficultyEasy
Reading time4 min
Views1.1K

Плагины в фотоне предназначены для того, чтобы запускать какую-то свою логику на своём Photon облаке. Так же даже если используется Photon SDK плагин является более быстрым способом, получить что-то работающее без погружения в дебри SDK.

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

Читать далее

Изучаю мок-сервера и пишу свой

Level of difficultyEasy
Reading time20 min
Views13K

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

План статьи:

— Проблематика черного ящика и почему его вообще нужно вскрывать.
— Варианты решения проблемы.
— Подробно про мок-сервер, как один из вариантов решения проблемы: зачем нужен, в чём польза и как выбрать между готовыми и самописными решениям.
— Как написать свой мок-сервер.
— Посмотрим как он работает на реальной задаче. 
— Закрепляем материал в блоке «Польза мок-сервера».

Читать далее

Вы точно хотите пойти программистом в gamedev?

Level of difficultyEasy
Reading time17 min
Views80K

Хочу вас огорчить, программисты не делают игры - их делают дизайнеры и арт. Можно уволить программиста и на его место придет другой и через условные месяц-два-полгода начнет закрывать таски не хуже. Если увольняется дизайнер, его монстр, пушка или контент повисает без хозяина и без "видения". Если её не перехватил сосед (а у соседа свой монстр), то в большинстве случаев его работа просто уходит в стол и монстра пишут заново на тех же ассетах и принципах, но заново.

Если увольняется арт-директор, который несет "видение" проекта, то проекту становится очень плохо, в большинстве случаев визуально он изменится до неузнаваемости, хотя ассеты могут быть те же самые. Программисты делают всё, кроме самой игры: рендер, звук, физику, сеть, AI, инверсную кинематику, поиск пути и т.д. Можем подискутировать в комментариях.

O, тепленькая пошла!

Внедрение pet-проекта в реальный бизнес или как в одиночку написать ERP-систему для общепита

Level of difficultyMedium
Reading time9 min
Views7.9K

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

Читать далее