Search
Write a publication
Pull to refresh
1
0
Sergey Kaleev @skaleev

Пользователь

Send message

Почему мы все еще храним код в текстовых файлах?

Reading time5 min
Views35K

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

Читать далее

Фильтрация предупреждений PVS-Studio, выявляющих критические ошибки (согласно классификации ГОСТ Р 71207-2024)

Level of difficultyEasy
Reading time8 min
Views810

ГОСТ Р 71207-2024 "Статический анализ кода" выделят класс дефектов в коде, называемых критическими ошибками. При разработке безопасного программного обеспечения (РБПО) такие дефекты должны в обязательном порядке выявляться и исправляться в приоритетном режиме. Статический анализатор PVS-Studio разрабатывается с учётом этого стандарта и позволяет выявлять все типы критических ошибок в коде программ, написанных на языках C, C++, C#, Java. Рассмотрим эти типы предупреждений и как их можно выделить среди других предупреждений, выдаваемых анализатором.

Читать далее

Проектирование Информационных систем. Часть 9. Моделирование поведения 9.1. Теория систем часть 2

Level of difficultyMedium
Reading time13 min
Views2.1K

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

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

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

Читать далее

Как устроен CDN RUTUBE: железо, сеть, ПО

Reading time16 min
Views7.1K

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

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

Требуется: показывать всем нашим пользователям видео из библиотеки быстро, надежно и эффективно.

Читать далее

BI в небольших аптечных сетях: примеры готовых дашбордов и калькулятор выгоды

Reading time3 min
Views1.8K

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

Читать далее

Практическое руководство по иконкам в веб-проектах — Часть 1

Level of difficultyEasy
Reading time4 min
Views3K

Сегодня почти каждый веб-проект использует иконки. Это отличный инструмент визуальной коммуникации, который помогает акцентировать внимание на элементах интерфейса. Существует хорошая статья о том, почему стоит использовать иконки — "Icons in Web Design". Но эта статья отвечает на другой вопрос — как их использовать?

Читать далее

Как работает DNS в Linux. Часть 1: от getaddrinfo до resolv.conf

Level of difficultyMedium
Reading time9 min
Views25K

Привет, Хабр! Меня зовут Анатолий Кохан, я — DevOps-инженер в К2Тех.

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

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

Читать далее

Я сделал тачпанель управления умным домом чтобы вам тоже пришлось

Level of difficultyMedium
Reading time26 min
Views21K

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

Вот как это сделать

Книга: «Kafka Streams в действии. Приложения и микросервисы, управляемые событиями. 2-е изд.»

Reading time20 min
Views3.1K
Привет, Хаброжители!

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

Автор, опытный инженер и участник проекта Apache Kafka, предлагает читателям практический подход к освоению Kafka Streams и других компонентов экосистемы Kafka. В книге рассматриваются не только основы, но и продвинутые техники, включая интеграцию с Kafka Connect, управление схемами через Schema Registry, работу с ksqlDB и тестирование потоковых приложений.
Читать дальше →

Про обогреватели

Level of difficultyEasy
Reading time25 min
Views24K
Хватит! Хватит мёрзнуть и терпеть бредни копирайтеров про электрические отопительные приборы!

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

Читать дальше →

Самый полный Роадмеп бэкенд-разработчика на Python с нуля 2025

Level of difficultyEasy
Reading time40 min
Views33K

Этот роадмэп мы начали собирать ещё в прошлом году вместе с нашей командой мидл-бэкендеров. Хотелось системно оформить весь стек технологий, с которым реально работает современный backend-разработчик на Python — от базовых тем вроде HTTP и SQL до CI/CD, микросервисной архитектуры, Kubernetes, облаков, безопасности и брокеров сообщений.

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

Читать далее

О превращении бесперебойников APC в ИБП Systeme Electric, или Кто на 100% заменил Schneider Electric в РФ

Level of difficultyEasy
Reading time6 min
Views7.4K

Приветствую уважаемых хабралюдей!

Меня зовут Игорь Холопов, я – директор по маркетингу компании Systeme Electric. Некоторые из вас давно и хорошо знают – чем мы занимаемся с 2022 года и какую продукцию предлагаем. Однако, уверен, многие до сих пор не знают. И даже не догадываются. И, например, скорбят об отсутствии на российском рынке легендарных бесперебойников APC. Дам спойлер: на самом деле с этими ИБП в РФ все в полном порядке.

Я решил завести блог на Хабре по нескольким причинам. С одной стороны, чтобы информировать о деятельности Systeme Electric тех, кто уже в теме, и знают о нас. Право дело: на каком еще ресурсе информировать знающих людей, если не здесь? С другой стороны, блог заведен с целью разъяснить ситуацию тем, кто не в курсе существования Systeme Electric, перевести их в первую категорию и… опять же, информировать о нашей деятельности, продуктах, проектах и так далее 😊

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

Читать далее

Почему оценка разработчиков должна быть про доверие, а не про поведение

Reading time3 min
Views1.2K

или разбор карты от Авито с точки зрения бизнеса, DORA и инженерной практики

Если ты релизнул фичу на 500K₽/мес выручки, но получил «3» за ретро и фассилитацию — это не шутка, это реальность многих крупных команд.

Сегодня хочу поговорить про систему оценки разработчиков. Не формально, а по существу. Разберём публичную карту Авито — без токсичности, но критически. И покажу, как строить модель, которая работает.

Читать далее

Как привинтить Python к Go

Level of difficultyHard
Reading time13 min
Views4.4K

Здравствуйте,

Меня зовут Александр Певзнер, и я программирую на Си и Go. Go обычно ассоциируется с бакендом, микросервисами и вот этим вот всем. Но я использую его необычным образом: я пишу на нём системное ПО.

Почему я это делаю именно на Go? Этот язык привлекает меня своей простотой, лаконичностью, ясной семантикой, прекрасной документацией и великолепной стандартной библиотекой.

Одна из моих программ, ipp-usb, написанная на Go, входит во все дистрибутивы Linux и *BSD и делает возможным использование принтеров и сканеров, которые подключаются к USB и поддерживают IPP over USB протокол - т.е., примерно всех современных.

А еще я член OpenPrinting - небольшой, но очень плодотворной группы людей, которая ответственна за печать и, отчасти, сканирование на всех UNIX-like OS и за формирование индустриальных стандартов в этой области.

Это всё начиналось для меня, как хобби, но сейчас это - часть моей оплачиваемой работы.

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

Об одной из таких штук и пойдёт речь в этой статье.

Понадобился мне для одного проекта на Go встроенный скриптинг. Ну т.е., чтобы программа могла всосать в себя скрипт, который определяет некоторые аспекты её поведения.

Размышляя о том, на каком языке программа должна скриптоваться, в выбирал между JS, Lua и Python.

Однако, JS и Lua - слишком нишевые языки. JS ассоциируется у всех с вебом а Lua - с разработкой игр. Таким образом, выбор естественным образом пал на Python. Этот язык знают все, а я испытываю некоторую надежду, что скрипты для моей программы буду писать не только я. Хотя сам я, должен признаться, Python не знаю и не люблю :)

Таким образом, осталось только придумать, как встроить интерпретатор Python-а в программу на Go.

Об этом и пойдёт речь в этой публикации

«Потеряли на колёсах десятки миллионов, айтишники, помогайте»

Reading time6 min
Views20K
Нас позвали в цех решить задачу. Приходим — там тишина, люди ходят мрачные. Оказалось, недавно пришлось экстренно вернуть обратно в ремонт более 1000 колёсных пар, потому что не нашлось их диагностических протоколов. Это очень дорого. И больно.

Причину быстро нашли. Там был ненадёжный элемент, отвечающий за взаимодействие между буксами и вибростендом.

Человек. Реальный человеческий фактор в системе диагностики.

image

В вагоне колёса жёстко сидят на одной оси, и у каждой есть букса — подшипниковый узел, который позволяет колёсной паре вращаться.

Букса проверяется вибродиагностикой. На вибростенде её раскручивают до 300 оборотов в минуту и датчики слушают, нет ли странных звуков. По результатам формируется протокол, где указано, пригодна ли букса. По регламенту в конце рабочего дня оператор должен распечатать протоколы за смену и подшить их в архивную папку. Для этого нужно подойти к стенду, авторизоваться, выбрать период, сформировать сводный файл отчёта (или единичный отчёт) и нажать кнопку «Печать». Все протоколы хранятся в бумажном виде — в тех самых архивных папках, а ещё в закрытой базе данных стенда.

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

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

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

Как я решил проблему бардака в инфраструктуре в рабочих и личных проектах

Level of difficultyEasy
Reading time6 min
Views11K

Это история о том, как я устал держать в голове инфраструктуру по всем своим проектам.

Прод падает — а ты тратишь время на то чтобы вспомнить где лежит Grafana, где настраивается DNS, чей Docker Registry мы используем, есть ли у нас CDN и какой.

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

Читать далее

Оправдались ли ИТ-прогнозы Всемирного экономического форума пятилетней давности?

Level of difficultyEasy
Reading time11 min
Views1.9K

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

В июне 2020 года, в разгар пандемии, ВЭФ попросил лидеров этих стартапов высказать свое мнение о том, какие инновации больше всего трансформируют нашу жизнь в ближайшие пять лет. Результаты были опубликованы в статье «17 изменений, которые произойдут в мире к 2025 году благодаря технологиям». Список вышел впечатляющим — от роботизированной торговли до исцеления рака.

Оказавшись в 2025 году, мы решили оглянуться назад и проверить, какие из этих прогнозов оправдались, а до каких нам, как выяснилось, еще как до Луны.

Читать далее

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

Level of difficultyEasy
Reading time9 min
Views14K

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

Читать далее

Русская «Ардуина»: первый взгляд любителя

Level of difficultyEasy
Reading time20 min
Views29K

Я — самодельщик-ардуинщик со стажем. Люблю пихать ардуины во всякие подходящие и не очень места. Как-то раз я уже показывал свою коллекцию Arduino-совместимых плат, и с тех пор она только росла и ширилась. Теперь в ней случилось особенное пополнение: русская (пока не) народная «Ардуина» ELBEAR от сибирской компании «Элрон» на базе отечественного микроконтроллера MIK32 «Амур», о существовании которой я узнал несколько дней назад из статьи на Хабре.

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

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

Как я стал программистом и перестал им быть

Level of difficultyEasy
Reading time5 min
Views18K

Привет! Я давно в IT, настолько что верстал еще под IE6. Начинал ещё со школы: сервера Diablo II, боты mIRC, карты Warcraft III на JASS, код, форумы, общение и дикий, нескончаемый интерес. Без какого-либо понимания, что я делаю и куда меня это приведёт.

Я никогда не считал это чем-то серьёзным, но был уверен, что в случае чего смогу этим прокормиться — так по итогу и вышло. Хоть я и усердно убегал от «бездушных железок».

Заваривайте чай, расскажу вам свою историю как я попал в IT и вот уже лет 13 тут, приятного прочтения

Читать далее

Information

Rating
Does not participate
Location
Сургут, Тюменская обл. и Ханты-Мансийский АО, Россия
Date of birth
Registered
Activity