Pull to refresh

Technotext

Искусство убивать процессы: как я сократил 17 ритуалов и вернул командам 900 ч/год

Level of difficultyMedium
Reading time11 min
Reach and readers43K

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

В статье я расскажу об искусстве помогать процессам жить и умирать в нужное время. Поделюсь пошаговым планом, чек-листами и примерами из моего опыта, чтобы ритуалы не отнимали у вас по 5–10 часов в неделю.

Поехали!

Головоломка Ханойские башни на Java

Level of difficultyEasy
Reading time11 min
Reach and readers7.2K

Головоломка Ханойские башни (или Ханойская башня, или Towers of Hanoi) – классический пример задачи, в которой лучшее и самое наглядное решение основывается на рекурсии. Кроме того, эта задача иногда встречается на собеседованиях. Тем удивительнее, что последняя статья (хотя и весьма обстоятельная), посвященная  этой задаче на Хабре датируется 2013-м годом и решение приводится на Delphi. Давайте исправим эту печальную ситуацию!

Читать далее

Развлечение для инженера

Level of difficultyEasy
Reading time7 min
Reach and readers9.9K

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

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

Читать далее

Как улучшить резюме ИТ-специалиста на HH.RU, чтобы пройти фильтры ATS-систем

Level of difficultyEasy
Reading time9 min
Reach and readers35K

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

Читать далее

Чему меня научила разработка C#-клиента для распределённой СУБД Яндекса

Level of difficultyMedium
Reading time11 min
Reach and readers19K

Привет, Хабр! Меня зовут Кирилл Курдюков, и мы с командой делаем YDB (СУБД Яндекса). Как и с языками программирования, популярность СУБД определяется не только их возможностями, но и экосистемой.

В предыдущей статье я рассказал о том, как разработать Java-клиент для распределённой СУБД и интегрировать его с популярными ORM. А из этой статьи вы узнаете, как под капотом работает ADO.NET, почему управление пулом сессий может сильно влиять на ваш код работы с базой данных и какой стратегии обработки ошибок можно придерживаться для разработки отказоустойчивых сервисов. Статья будет полезна тем, кто изучает особенности взаимодействия в распределённых системах или просто хочет научиться лучше писать клиентский код, работающий с современными распределёнными системами.

Читать далее

Проект Колхоз — светлое будущее своими руками

Level of difficultyMedium
Reading time5 min
Reach and readers29K

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

Прикоснуться

Большое исследование C#-разработчиков

Level of difficultyEasy
Reading time11 min
Reach and readers18K

Привет, Хабр. Я Катя Куваева, DevRel C#-разработчиков и инфраструктурных команд в Контуре, а это моя первая статья. 

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

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

Посмотрите, сколько разных эмоций я испытала за время общения с C#-разработчиками — и мы начинаем!

Читать далее

Нельзя просто так взять и выбрать Any() или Count для проверки коллекции

Level of difficultyMedium
Reading time8 min
Reach and readers24K

Сравнивая различный code-style в проектах, я упоминал про методы проверки коллекций на наличие элементов. Самые очевидные способы – это использование LINQ-метода Any() или сравнение свойства Count с нулем. И если вы выбрали первый вариант, то у вас могут быть проблемы. Поэтому предлагаю подробнее рассмотреть этот вопрос. Кстати, если вы выбрали второй вариант, то у вас тоже могут быть проблемы.

Читать далее

В серверный шкаф попасть хотите – ключ приложите: как ограничить доступ к стойкам и следить за состоянием дверей

Level of difficultyEasy
Reading time4 min
Reach and readers7.4K

Привет, хабровчане!

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

Все это нужно для высокого уровня безопасности в ЦОДе, а к безопасности у нас относятся очень ответственно. И именно поэтому мне поставили еще несколько интересных задач:

ограничить доступ к серверным шкафам с нашим облачным оборудованием;

обеспечить возможность отслеживания состояния дверей;

настроить выгрузку событий по этим точкам доступа (дверям серверных шкафов).  

О том, как я эту задачу реализовал, рассказал в статье.

Читать далее

Тест Гилева: почему главный benchmark 1С врет в облаке

Level of difficultyEasy
Reading time5 min
Reach and readers9.6K

В мире 1С нет более известной фамилии, чем Гилев. Его тест — это своего рода «народный» стандарт, первое, что запускают администраторы для проверки производительности. Это простой и быстрый способ получить заветную цифру, которая говорит о скорости системы.

Мы и сами решили использовать этот тест, запуская новый высокопроизводительный сервис 1С. Нам нужно было понять, как себя проявят наши новые серверы с процессорами 4.0 ГГц.

Но вот в чём загвоздка: тест Гилева — это важный, но далеко не единственный и не всегда адекватный инструмент. Он как спидометр в машине: показывает скорость, но не говорит ничего о том, как авто поведет себя на повороте, при обгоне или с полным багажником. 

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

Читать далее

Kaspersky NGFW в проекте «ТУЧА»: развёртывание и первые настройки [часть 1]

Level of difficultyMedium
Reading time12 min
Reach and readers6.8K

Привет! Меня зовут Кирилл, я инженер команды киберзащиты облачного провайдера Nubes. В зоне моей ответственности решения сетевой защиты. В рамках запуска облака КИИ «ТУЧА» мне досталась задача развернуть и настроить NGFW для защищённого контура. В этой статье хочу поделиться практическим опытом первого внедрения Kaspersky NGFW без лишнего маркетинга, а с акцентом на те моменты, которые действительно важны при первом знакомстве с продуктом.

Читать далее

Чистый чил: как сделать так, чтобы тебя не трогали по рабочим вопросам в отпуске

Reading time3 min
Reach and readers35K

Сезон отпусков в самом разгаре, но вместо долгожданного чила в гамаке ты получаешь в мессенджере: "Я знаю, что ты в отпуске, но можешь пожалуйста, посмотреть..."

В этой статье поделюсь принципами, которые позволяют спокойно уйти в отпуск - без стресса для себя и команды.

Читать далее

SDD (Spec-Driven Documentation) – фреймворк для разработки технической документации в репозитории

Level of difficultyMedium
Reading time29 min
Reach and readers15K

По мере роста сложности программных систем документация становится не “сопроводительным текстом”, а инженерным активом, она участвует в принятии решений, согласовании требований, проектировании архитектуры, тестировании и эксплуатации. Однако на практике документация часто создаётся разрозненно, несколькими авторами, в несогласованных форматах. Это приводит к потере целостности и росту транзакционных издержек на коммуникации. В такой распределённой среде параллельно растёт применение AI-ассистирования при подготовке технических материалов, что повышает требования к формализации процесса и контролю качества создаваемых артефактов [1].

В программных проектах техническая документация представляет собой совокупность различных артефактов – требований, сценариев, диаграмм, описаний архитектуры и данных – распределённых между участниками и стадиями жизненного цикла. В условиях активного уточнения целей и решений, особенно на стадии исследовательско-опытных работ (research and development, R&D; далее – R&D), такие артефакты развиваются неравномерно, одни быстро детализируются и пересматриваются, другие остаются на уровне ранних гипотез. Это приводит к утрате целостности документационного контура, возникают противоречия между документами, различается уровень абстракции, дрейфует терминология, а изменения становятся трудно сопоставимыми друг с другом. Одновременно ослабевает трассируемость и затрудняется восстановление причинно-следственной цепочки “исходные данные → допущение → решение → требование → сценарий/диаграмма → проверка”, что увеличивает стоимость ревью и повышает риск ошибочных инженерных выводов [2–5].

Читать далее

Capacitor: от веба к мобильным приложениям. Часть 1. Миграция проекта на Capacitor

Level of difficultyEasy
Reading time8 min
Reach and readers11K

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

Теперь переходим к самому болезненному и интересному этапу: миграции уже существующего веб-приложения.

Читать далее

Capacitor: от веба к мобильным приложениям. Часть 0. Зачем нужен Capacitor

Level of difficultyEasy
Reading time3 min
Reach and readers9.1K

С Новым годом, Хабр. Меня зовут Илья, я работаю Frontend разработчиком в компании Бастион. Январские выходные в самом разгаре, но уже многие, включая меня, наобещав себе свернуть горы в этом году, находятся в поиске полезной для мозга информации. Тогда присаживайтесь поудобнее, ибо сейчас мы будем разговаривать о такой замечательной технологии для разработки гибридных мобильных приложений, как Capacitor.

Читать далее

Прямая трансляция во Flutter через WebCodecs: как пришлось написать свой декодер

Level of difficultyMedium
Reading time10 min
Reach and readers5.8K

Когда live-видео приходит как сырой H.264 поток через WebSocket, стандартные Flutter-плееры перестают работать.

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

Читать далее

Ваш текст воняет GPT. 12 мест, откуда несёт и почему

Reading time11 min
Reach and readers26K

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

Ну давай гляну, что там у тебя

ИИ‑агент внутри 1С [Сгенерировано]

Level of difficultyEasy
Reading time9 min
Reach and readers16K

ИИ‑агент внутри 1С:Предприятие, который не только отвечает текстом, но и добывает данные и выполняет задачи шагами через ограниченный набор команд (DSL). Подход “план → действия → проверка” снижает риск галлюцинаций и помогает держать контроль над тем, что агент делает в базе. Ищем ранний фидбэк аналитиков по сценариям, формату результатов, UX и границам безопасности.

Читать далее

Как измерять техническое качество и SLA, чтобы команда работала стабильно

Level of difficultyMedium
Reading time11 min
Reach and readers31K

Всем привет! Меня зовут Александр Пряхин, я технический руководитель в Авито Подработке. В этой статье я рассмоатриваю подходы к измерению качества стабильной работы системы, а не только её отказов. Я постараюсь описать, что такое бюджет качества и почему его стоит считать; как SLA, SLO и SLI помогают наводить порядок и принимать решения; и главное – почему техническое качество напрямую становится зоной ответственности тимлида и как через метрики команда может начать говорить с бизнесом на одном языке.

Читать далее

Разбор threading vs multiprocessing vs asyncio в Python

Level of difficultyMedium
Reading time8 min
Reach and readers10K

При работе с Python да и другими языками программирования часто возникает необходимость ускорения выполнения кода, масштабирования обработки данных или работы с большим количеством сетевых запросов. Именно в Python для решения этих задач существуют три базовых метода. Это: threading, multiprocessing и asyncio. На первый взгляд – механизмы схожие. Но при детальном разборе ясно, что они решают принципиально разные задачи, опираются на разные модели исполнения и обладают своими ограничениями. В статье расскажу об особенностях каждого метода – будет интересно и познавательно.

Читать далее