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

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

Send message

Как использовать японские подходы в IT. Часть 6: покажи и расскажи

Reading time7 min
Views7.1K

Больные одной болезнью симпатизируют друг другу. Несчастные понимают друг друга.

Японская пословица.

(こんにちは) Конничива! Меня зовут Виктор, я менеджер проектов в Selectel. Это шестая часть цикла о применении TPS/TBP (Toyota Production System/Toyota Business Practice) на практике в IT. Каким бы крутым специалистом вы ни были, одного этого недостаточно — нужно еще и уметь показывать ход своих мыслей. Но как это сделать так, чтобы вас поняли все? Рассказываю под катом!
Читать дальше →

Почему разработка через тестирование (TDD) не приводит к плохому коду

Reading time3 min
Views2.8K
Только вот если…

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

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

Электрификации России. Первые электростанции

Reading time5 min
Views2.7K

Сегодня поговорим о различных электростанциях, которые появились в стране в дореволюционный период. Так как о электростанциях для освещения города я уже сказал ранее, то начнем с электрификации в промышленных зданиях. Там, если не считать гальванопластики, применявшейся с 1839 г., электричество начало использоваться с 70-х гг., поначалу только для освещения помещений. В 1873 г. было впервые организовано электроосвещение Сормовского завода, в 1877 г. Охтинского, в 1883 г. Обуховского и т. д. Причем для Охтинского и других пороховых заводов, подобная модернизация была долгожданной. До того момента, освещение на пороховых заводах могло стать причиной взрыва.

В 1882г. Н. Н. Бенардос изобретает дуговую электросварку, которую он именовал «электрогефестом». Это изобретение открывает новые возможности для промышленности и железнодорожного хозяйства. В 1888г. Н.Г. Славянов усовершенствует эту технологию и взамен угольных электродов использует плавящийся.

Читать далее

Важнейшая модель теории вероятностей

Level of difficultyMedium
Reading time14 min
Views14K

Что объединяет частицу в воде, биржевой курс и кота Барсика, бродящего по району в поисках ларька с рыбой?


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

Мы начнём с истории открытия броуновского движения — от наблюдений Роберта Броуна до формулы Альберта Эйнштейна, которая связала наблюдаемое явление с атомной гипотезой. Покажем, как идея случайного движения превратилась из гипотезы в надёжный инструмент научного анализа.

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

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

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

Читать далее

Всё об устройстве и работе SSTV с примерами на Python

Level of difficultyMedium
Reading time23 min
Views3.2K

SSTV (slow-scan television) — телевидение с медленной разверткой, узкополосный формат передачи данных, позволяющий передавать изображения через эфир. В этой статье будут рассмотрены подробности кодирования, декодирования SSTV-сигнала.
Статья может быть интересна радиолюбителям, желающим познакомиться с новым форматом связи, а также тем, кто хочет в подробностях понять как же работает эта технология.

Читать далее

Возможное расширение языка C++ операцией скалярного произведения

Level of difficultyEasy
Reading time4 min
Views4.7K

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

C[>i][>j] = A[i][>k] * B[>k][j];

Насколько мне известно, сочетания операторов [> и [< вроде бы нигде не используются. Их можно применить для декларации индексов, которые существуют только в пределах данного выражения. Сочетание [> используется для декларации индекса, который пробегает от начала до конца массива в прямом направлении, а сочетание [< для декларации индекса, который пробегает в обратном направлении. Для повторяющихся индексов в произведении подразумевается суммирование - они аналогичны немым индексам в тензорных обозначениях.

Разберём на примерах, как это будет работать.

Читать далее

Проектирование Информационных систем. Часть 3. Инфраструктура (ландшафт) для организации проектной деятельности

Level of difficultyMedium
Reading time15 min
Views2.3K

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

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

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

Читать далее

Всего два месяца — и новый релиз: Linux 6.15 уже готов

Reading time6 min
Views6.6K
image

Линус Торвальдс представил ядро Linux 6.15 всего через два месяца после предыдущего релиза. Среди ключевых новшеств: механизм аудита в Landlock, режим закрепления маппинга памяти, подсистема fwctl, драйвер Nova для GPU NVIDIA, поддержка Hyper-V как хост-системы, зонированные устройства хранения в XFS, оптимизации сетевой подсистемы, удаление опции HIGHMEM64G, scrub-проверка в Bcachefs и управление операциями через io_uring. Все подробности — под катом.
Читать дальше →

Офисный провал: Как принудительные командировки айтишников убивают продуктивность и лояльность

Level of difficultyEasy
Reading time7 min
Views12K

Долгих дней и приятных ночей! Меня зовут Натали, я IT Project Manager со стажем 10+ лет. В данной статье хочу поднять вопрос негативного влияния добровольно‑принудительных командировок удаленщиков в офис как на сотрудников, так и на компанию вцелом. Особенно первый раз. Особенно для интровертов. Статья будет полезна руководителям, проджектам, HR и любому it‑специалисту (возможно вы узнаете себя, и убедитесь что вы такой не один). Поехали!

Представим, что вы — руководитель (тимлид, ПМ, Head of PMO, не столь важно). Работаете в крупной компании в Москве, следите за финансовыми метриками успешности проекта/компании. Под вашим руководством распределенная команда — многие работают в Москве на гибриде, кто‑то всегда из дома, кто‑то из других городов. В какой то момент вы раздумываете над вопросом — а как увеличить эффективность команды? Часто на этом этапе руководители приходят к мысли, что нужно, как это сейчас модно, «сплотить» команду — и все сразу станут более производительными, чаще будут писать друг другу, просить и оказывать помощь, охотнее говорить о проблемах и быстрее придумывать решения.

Читать далее

CI/CD на GitHub Actions и GitLab CI для самых маленьких. Часть 2

Level of difficultyEasy
Reading time11 min
Views8K

Часть 2: Настройка GitHub Actions и GitLab CI – первый workflow и деплой

В первой статье мы разобрались с основами CI/CD: что это такое, зачем нужно и какие инструменты существуют. Теперь пришло время перейти от теории к практике – создадим наши первые рабочие CI/CD-конвейеры на GitHub Actions и GitLab CI.

Читать далее

О Statement, instruction, operator, expression и других терминах IT

Level of difficultyEasy
Reading time11 min
Views1.6K

По своему опыту преподавания информатики и программирования регулярно замечаю, что вдумчивые начинающие программисты, отличающиеся внимательным отношением к различным деталям применяемых в программировании терминов, не редко впадают в ступор, изучая переведённые на русский язык книги известных на Западе программистов: М. Лутц, Дж Гл. Брукшир, М. Саммерфильд, М. Прайс, J.P. Мюллер, J. Албахари и т.д.  Например, чем отличается Statement, Operator, Instruction, и почему они так переводятся на русский язык?

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

Однако для тех начинающих программистов, кто хочет выстроить стройную систему знаний такой ответ явно не подходит. И почему знания должны быть искажёнными, некорректными, если он тратит время на обучение, лучше сразу выучить правильно, чем потом переобучаться. Это культура знаний. Помню, когда ещё был молодым адъюнктом, решил на актуальные для себя темы поговорить (пообсуждать) с учёным со стажем, он послушал меня, рассмеялся и сказал: «Давайте сначала мы договоримся о терминах, а потом пообсуждаем Ваши вопросы. Вы не тушуйтесь, это обычная ситуация, все через это проходят.» Применительно к IT, когда наш специалист в беседе с западными применяет словосочетание, например, if operator, вместо if statement – это режет слух. Но нравоучения вряд ли кому понравятся, поэтому перейдём к нашей теме.

Читать далее

Программисты не исчезнут никогда

Reading time5 min
Views16K

Пять лет назад я сделал некоммерческий проект с немного провокационным названием — «Школа брата Антония». Это был базовый курс по изучению программирования на языке Swift. Тогда я утверждал, что существует явное окно возможностей, которым стоит воспользоваться. Впоследствии я получил десятки писем с благодарностью — люди писали, что это действительно был хороший совет. Многие решились на изменения в жизни — и не прогадали. Бывшие электрики, продавцы, HR-специалисты, стоматологи (за врачей мне немного стыдно), хирург (тут я чувствую себя ещё хуже) смогли устроиться на высокооплачиваемую работу. Кландайк.

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

Читать далее

Как пройти… к третьей нормальной форме?

Level of difficultyEasy
Reading time7 min
Views5.3K

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

Пройдёмте, товарищи!

«Я слышу свой код»: как работает Java-программист, потерявший зрение

Level of difficultyEasy
Reading time8 min
Views9.7K

Константин Евтеев @beginner760собирает Java-код с помощью диктора NVDA, редактирует его в Блокноте и передает на Linux по SSH через самописные bash-скрипты. После потери зрения он не потерял интереса к жизни и желания быть полезным и выстроил собственную инженерную экосистему: оглавления по строкам .txt-файлами, навигация по main и маленьким методам, отладка на слух.

Читать далее

Оптимизируем C++ шаблоны: от инлайнинга до модулей

Level of difficultyMedium
Reading time18 min
Views4K

Мы рассмотрим, чем опасны шаблоны для проекта на C++ и как минимизировать эти риски. В оптимизации нам помогут инлайн-файлы, явные инстанциации и даже модули из C++20.

Читать далее

Код-ревью: борьба или мотивация?

Reading time6 min
Views2.1K

Привет! Меня зовут Илья, последние 7 лет я занимаюсь фронтендом и наконец решил отметиться на Хабре. Стартую с темы, которая, как кажется, уже успела приесться, но всё ещё вызывает жаркие споры — код ревью (CR). Не смотря на сотни статей и мануалов, каждая команда подходит к этому процессу по‑своему. Хочется зафиксировать и осмыслить собственный опыт, показать, как мы подходили к настройке процесса в реальном проекте, и почему, на мой взгляд, код‑ревью не может быть универсальным, а должен опираться на контекст команды.

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

Читать далее

Voyager 1 восстановил резервные двигатели перед командной паузой

Level of difficultyEasy
Reading time5 min
Views5.6K

14.05.2025, Редакционная Группа NASA Science

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

Инженеры Лаборатории реактивного движения NASA в Южной Калифорнии восстановили ряд двигателей на борту космического корабля Voyager 1, которые считались неисправными с 2004 года. Ремонт потребовал креативности и риска, но команда хочет иметь их в качестве резерва для работающих двигателей, в топливных трубках которых накапливается остаток, что может привести к их выходу из строя уже этой осенью.

Читать далее

От Docs as Code к Everything as Code: как Gramax меняет работу с документацией

Level of difficultyMedium
Reading time5 min
Views6.7K

Привет, Хабр! Меня зовут Катя, я лидирую Gramax, open source-платформу для управления технической документацией. Однажды мы с коллегами утонули в хаосе рабочих документов: без версий, без согласований, без истории принятых решений. Это подтолкнуло нас к созданию Gramax — инструмента, который интегрирует документацию в процесс разработки, делая его прозрачным и управляемым.

В этой статье расскажу, как Gramax помогает на каждом этапе разработки ПО. Как перейти к документированию в подходе Docs as Code и шагнуть дальше — к Everything as Code.

Интересно, давай!

Как нанимать крутых инженеров: работающие приемы для собеседований

Level of difficultyMedium
Reading time7 min
Views13K

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

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

Читать далее

Я не люблю NumPy

Level of difficultyMedium
Reading time10 min
Views18K

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

NumPy — это ПО для выполнения вычислений с массивами на Python. Оно невероятно популярно и очень сильно повлияло на все популярные библиотеки машинного обучения, например, на PyTorch. Эти библиотеки во многом имеют те же самые проблемы, но для конкретики я рассмотрю NumPy.

Читать далее

Information

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