Не только для «обхода». Что такое Http Upgrade и как его использовать в .NET

Недавно на Хабре вышел обзор того-о-чём-не-стоит-говорить-в-этом-блоге. И, в числе прочих способов того-о-чём-не-стоит-говорить, автор упомянул использование «транспорта HttpUpgrade».
Так как я использую заголовок Upgrade на практике, меня смутило, что в поиске в русскоязычном сегменте интернета найти корректное описание механизма непросто. Конечно, метод является достаточно редко используемым «вчистую» (то есть не в паре с протоколом WebSocket), но тем не менее.
Статья может пригодиться всем, кому требуется создать полнодуплексное tcp-соединение (то есть такое соединение, в котором и читать данные, и писать их могут и клиент, и сервер, причем в любой момент времени жизни соединения).
Я расскажу о том, что есть «HttpUpgrade», как наш ЦК использует его для создания соединения, по которому клиент и сервер могут обмениваться пакетами: клиент запрашивает видео, а сервер передаёт клиенту пакеты. Ну и разумеется, поделюсь кодом клиента и сервера, создающим между собой «апгрейднутое» соединение в .NET 8.
Меня зовут Андриевский Леонид, я тимлид команды .NET в ЦК Видеонаблюдения Ростелеком. Давайте приступим!
Читать далееОт проекта до объекта: применение ML в строительстве

Знаете ли вы, что более 90% строительных проектов выходят за рамки бюджета, а 89% подрядчиков регулярно сдают проекты с задержкой? При этом каждая стройка генерирует терабайты данных, которые чаще всего остаются необработанными, хотя имеют большой потенциал для оптимизации. Неудивительно, что индустрия активно ищет способы повышения эффективности процессов, и машинное обучение становится одним из ключевых инструментов.
От автоматической генерации строительных графиков до роботов-каменщиков с миллиметровой точностью укладки — ML-технологии уже трансформируют отрасль. Системы компьютерного зрения отслеживают безопасность на площадках, алгоритмы предсказывают задержки проектов, а генеративный дизайн оптимизирует архитектурные решения.
В статье покажем на реальных примерах, как работают современные решения ML в строительстве и какие результаты они дают.
Читать далееКак быстро найти цены на совместимую с Home Assistant бытовую технику: мой опыт автоматизации поиска цен

Подбор бытовой техники для своего умного дома может быть сложной задачей. Даже если техника имеет "умную часть", не факт что она подойдёт именно к вашей экосистеме. Поэтому вопрос совместимости лучше выяснить ещё до покупки устройства.
Недавно захотел подобрать себе робот-пылесос, а на сайте Home Assistant как обычно указаны только обобщенные интеграции. При этом на сайте Алисы приведены тысячи конкретных совместимых устройств, правда без цены и даже без указания выпускается ли до сих пор эта модель или нет.
И тут мне пришла в голову идея: поместить эти совместимые устройства в Google Таблицу, а затем написать Google Apps Script, который через поиск найти цены на все эти устройства, а затем я уже выберу конкретное устройство исходя из моего бюджета.
Поиск цен через Гугл ТаблицуГод успешной работы тестировщиком: мифы, усвоенные на курсах, и реальность

Жизнь каждого человека складывается по-разному: кто-то с 16 лет уже четко знает, что ему интересно, а кто-то приходит к этому гораздо позже. Я отношусь ко второму типу. Отучившись в вузе и не проработав ни дня по профессии, я находилась в постоянном размышлении, к чему у меня лежит душа, что может приносить стабильный доход, что будет с этим миром и где в нем мое место. Я пошла в продажи, основываясь на принципе “Нужно попробовать, а дальше посмотрим”. Но продажи не вдохновляли меня от слова “совсем”. Жизненный опыт постепенно накапливался, но у меня не было никаких идей, как реализовать свои хотелки. И вот в очередной раз я начала новую главу своей жизни, пытаясь следовать своим потребностям и мечтам, - я занялась машинным обучением ИИ. В этой статье я расскажу, как я осваивала профессию тестировщика программного обеспечения.
Читать далееИнтервью с командой проекта «Поморский коч»

Когда речь заходит о САПР, чаще всего представляешь себе промышленное производство, конструирование сложных механизмов. Однако находятся и более любопытные варианты применения систем проектирования, например, историческое судостроение.
Мы познакомились с командой проекта «Поморский коч», которая строит на верфи в Архангельске старинное судно. На таких судах средневековые мореплаватели ходили по арктическим морям, преодолевая льды и шторма, и осваивали сибирские реки.
Читать далее[Перевод] Переносимый код: Fighting the Lemmings

Сергей Каличев, старший разработчик, Angie Software
Однажды, давным-давно, я наткнулся на одну хорошую статью по разработке переносимого кода и решил её перевести. Когда же это было... ё-моё, в 2008 году, 17 лет назад! Обалдеть, как время летит. Статья называлась "Fighting the Lemmings", автор Martin Husemann. Выложил перевод на LOR. С тех пор много воды утекло и, когда я попытался поискать статью в Интернете, то обнаружил, что ни оригинальной статьи, ни перевода, найти практически невозможно. Перевод ещё сохранился в глубоких закромах OpenNet, а оригинал только в архиве Интернета. Ссылки на PDF-ки тоже протухли и больше не работают. Обидно, это ведь такая нетленка для системщиков. Понятно, что переносимость уже сто раз пережёвана в других статьях и книгах, но тут всё было сконцентрировано и написано доходчиво. При этом актуальность до сих пор не потеряна. Ну а что, собственно, кардинально поменялось в разработке переносимого кода на C с тех пор? Если не обращать внимание на упоминания некоторых архитектур и ОС, которые сейчас, да и во времена перевода, звучат, как придания старины глубокой, то в остальном, обо всех особенностях разработки переносимого кода, описанных в статье, надо помнить и сегодня. Выкладываю текст, как он есть, без каких-либо современных правок.
Для тех, кому удобнее читать в PDF, вот ссылки:
А теперь сама статья.
Читать далееСкриншотное тестирование во фронтенде: современный подход к поиску визуальных багов

За последние годы скорость развития технологий для создания фронтенд-приложений выросла в разы. Новые фреймворки, библиотеки, инструменты сборки и подходы к разработке появляются практически каждый год. Однако, несмотря на это, основная точка взаимодействия пользователя с продуктом остаётся неизменной — это интерфейс. Именно он формирует впечатление о продукте и, по сути, является окончательной «витриной» всей вашей работы.
Традиционные подходы к тестированию на многих уровнях уже не успевают за реалиями разработки: ручное тестирование становится слишком трудоёмким, а написание unit- или end-to-end-тестов не всегда позволяет отследить именно визуальные изменения. И здесь на помощь приходит методология скриншотного тестирования — мощный инструмент для выявления визуальных багов, появляющихся в интерфейсе. Он позволяет убедиться в том, что ваш продукт отображается так, как задумано, и избавляет команду от многих сюрпризов.
Читать далееПольские игры: от Atari и пиратства до AAA-тайтлов (часть первая)

Сейчас польский геймдев ассоциируется исключительно с хорошими играми: благодаря CD Projekt Red весь мир узнал о Ведьмаке, а Cyberpunk 2077, после нескольких серьёзных патчей и великолепного масштабного дополнения, стала одним из лучших представителей жанра киберпанка. Однако ещё в девяностых в стране процветало пиратство и не было финансов на создание хороших игр, а в начале нулевых деньги зарабатывались «польскими шутерами».
Как страна, находившаяся под сильным советским влиянием, смогла выйти на мировой рынок и получить мировое признание, и какие игры Польше в этом помогли — в новом материале про историю игр. Читать дальше →
Извлекаем файлы из образа повреждённого диска: ddrescue, losetup и немного магии

Проблема повреждённых жёстких дисков знакома многим. Диск начинает работать со сбоями, система зависает, файлы исчезают. В этой статье мы разберём, как спасти данные: создадим образ повреждённого диска с ddrescue, подключим его через losetup, смонтируем разделы и извлечём файлы. Также рассмотрим восстановление удалённых данных с помощью утилит TestDisk и PhotoRec и разберём, что делать в случае проблем с NTFS.
Читать далееКак работать с сетевыми дисками для выделенных серверов

Привет, Хабр! На связи Владимир Иванов, системный администратор в Selectel. Сегодня хочу рассказать о нашем новом продукте — сетевых дисках на выделенных серверах. Ранее я писал статью о базовых операциях в кластере Ceph — она как раз родилась в процессе работы над продуктом. Читать дальше →
Как СберМобайл завод оцифровал, и кому это вообще нужно

Напомню, что в первой части моего рассказа мы разобрались с тем, что такое цифровой двойник, поняли, зачем его делать, и определились с этапами его создания. И даже начали делать настоящий двойник на настоящем заводе. Давайте продолжим этот процесс. Мы остановились на возвращении нашего архитектора с обследования. Необходимо переходить к следующему этапу — проектированию и подготовке. В двух словах поясню специфику этого этапа, и мы, наконец, узнаем, что за сложности были на «Благо».
Читать далееТри мушкетера из мира DevSecOps. Внедряем инструменты для развития AppSec-процессов

Привет, Хабр! С вами Максим Коровенков, DevSecOps Lead в Купер.техе. Продолжаем цикл статей про построение DevSecOps с нуля. Это большой гайд from zero to, надеюсь, hero.
Читать далееБоремся с токсичными комментариями с помощью ИИ, FastAPI и React

В последнее время я перестал читать комментарии к статьям на Хабре. Причина — токсичность и ненависть друг к другу. Абсолютно безобидные технические статьи подчас вызывают бурю агрессии у отдельных лиц. Всех банить тоже нельзя — свобода слова закреплена в Конституции. Но есть решение: давайте используем искусственный интеллект, который будет анализировать комментарий и переписывать его, меняя токсичность на вежливость, сохраняя основную мысль комментария.
Мы воспользуемся FastAPI для бэкенда, React для фронтенда, заставим их между собой общаться через RESTful API, а бизнес-логику реализуем путём обращения к ИИ через gRPC.
Читать далееПрограммный код в Big data и Power law
В статье приводятся оригинальные модули Python и даётся пояснение по их применению в задачах распределённой децентрализованной сети по типу блокчейн или, другими словами, в процессах самоорганизованной критичности (SOC). В научных публикациях чаще встречается физический термин SOC в качестве концепции, включающей процессы турбулентности, детонации, землетрясения, нейросети, фондовая волатильность, социальный рейтинг и другие.
Для процессов SOC характерно отсутствие управляющих параметров и масштабная инвариантность. Универсальность сложных процессов SOC со степенным законом Power law имеет тот же характер, как и универсальность простых линейных систем, не обладающих масштабной инвариантностью, по отношению к закону нормального распределения вероятности.
Зависимость от масштаба возникает при аналого-цифровом преобразовании битов в позиционную систему счисления и проявляется в законе нормального распределения вероятности в виде дисперсии и математического ожидания. Потеря масштабной инвариантности в позиционной системе счисления компенсируется приобретением принципа причинности. Например, в Древнем Риме, где была принята непозиционная система счисления, вычисляли, что «после того - не вследствие того» и сильно удивились бы истории с падающим на Ньютона яблоком.
Значительные достижения в анализе Big data заставляют предположить связь с распределением вероятности Пуассона: чем больше данных, тем чаще должны встречаться пуассоновские события и вопрос лишь в поиске подходящей метрики и системы счисления.
Читать далееФундаментальная проблема TLS/SSL или как потерять доверие к доверенным центрам

Сегодня HTTPS считается де-факто стандартом для безопасного сёрфинга веб-страниц, но знаете ли вы о подводных камнях, на которые мы натыкаемся в самый неудобный момент? Сегодняшняя статья расскажет о самой главной из них, а так же о способе её исправления.
Поехали!Есть ли необходимость в автоматизации тестирования на проникновение

Несмотря на постоянно растущий спрос на решения для информационной безопасности, число успешных кибератак на организации по всему миру ежегодно увеличивается. По нашим данным, в 2023 году этот показатель вырос на 18%, и, судя по тенденциям 2024 года, этот рост продолжится. Одна из причин – повсеместная цифровизация. Компании автоматизируют процессы и внедряют новые продукты и сервисы, что ведет к увеличению числа цифровых активов, которые могут стать уязвимым местом в инфраструктуре.
В этой статье поговорим про зрелость информационной безопасности в российских компаниях, покажем, хорошо ли они справляются с кибератаками, есть ли у них планы по развитию ИБ на ближайшие пять лет и готовы ли они переходить от ручного тестирования на проникновение (пентеста) к автоматизации этого процесса.
Читать далееКак стать UX/UI-дизайнером с нуля? Бесплатная программа обучения

Если вбить фразу «как стать ux/ui дизайнером» в поисковик, можно найти множество курсов по этой профессии. Проблема в том, что все курсы являются платными и, как правило, имеют ценник в несколько десятков тысяч рублей.
Чтобы разбавить поляну с платными курсами, мы с UX/UI-дизайнером Мариной Ларионовой подготовили для вас программу обучения «UX/UI-дизайнер с нуля», которая состоит только из бесплатных материалов.
Читать далееЧто важно учесть при написании отчета по пентесту и за что платит заказчик – делимся экспертизой

После завершения любого проекта (по пентесту, анализу защищенности, Red Teaming и др.) специалисты приступают к самому душному увлекательному этапу – к написанию отчета. Казалось бы, ничего особенного – нужно всего лишь свести в единый документ все свои достижения. Но правда жизни такова, что именно отчет выступает итоговым результатом работ, который видит заказчик и по которому он будет судить о качестве проделанной работы. То есть, какие бы суперисследования мы ни провели, какие бы крутые баги ни нашли, заказчик никогда не узнает, какие мы молодцы, солнышки, котики профессионалы, если полученные результаты с их экспертной оценкой не будут понятно, структурировано и в полном объеме изложены в отчете. А это далеко не всегда простая задача.
В этом посте поделимся некоторыми нюансами и особенностями, которые мы учитываем при подготовке отчетов.
Читать далееВывоз вторсырья от двери, помощник для тренировок – и еще 8 российских стартапов

10 новых российских продуктов для создания игровых квизов, создания мини-приложений для медклиник, поиска автодилеров и поставщиков авто по параллельному импорту и многого другого. Битва за «Продукт недели» началась!
Product Radar — здесь каждую неделю публикуются лучшие онлайн-сервисы и железки от русскоязычных команд.
Читать далееПервые в России: как мы стали хостинг-провайдером на отечественной ОС

В последние годы в России наблюдается активное развитие отечественного программного обеспечения, что связано с необходимостью повышения уровня информационной безопасности и независимости от зарубежных технологий. В этом контексте особое внимание уделяется переходу на российские операционные системы (ОС), которые становятся важным элементом в стратегии цифровой трансформации страны.
Мы, хостинг-провайдер FastFox, представляем наш проект по переводу хостинга на российскую ОС. Целью проекта является не только демонстрация возможностей российских технологий, но и создание безопасной и эффективной инфраструктуры для наших клиентов.
В рамках внедрения российской ОС мы ставили перед собой несколько задач: обеспечить высокую производительность и стабильность работы серверов, минимизировать риски, связанные с использованием иностранного ПО, а также поддержать развитие отечественной IT-индустрии. В данной статье мы поделимся выводами и опытом, полученными в ходе реализации этого проекта, а также рассмотрим его влияние на рынок хостинг-услуг в России.
Читать далее5 листингов для лучшего понимания Python

На протяжении нескольких лет я занимаюсь программированием на Python. За это время мне удалось собрать несколько занятных листингов кода. Какие-то из этих листингов я находил в литературе, посвященной Python, некоторые листинги я встречал на собеседованиях, а на какие-то натыкался во время выполнения рабочих задач. Однако все эти листинги объединяет одно: на мой взгляд они имеют неплохой образовательный потенциал и помогают лучше понять некоторые концепции Python. В этом посте привожу пятерку из моего списка листингов.
Читать далееКак красиво «завернуть» devops-пайплайн и не сгореть на проде

Привет, Хабр! Меня зовут Максим Бочкарев, в IT я с 2005 года и сейчас руковожу devops-направлением в компании ЕВРАЗ. За эти годы я успел повидать множество граблей, на которые мы наступали, пытаясь построить нормальную систему CI/CD. И сегодня хочу рассказать, как мы прошли путь от «кустарного производства» пайплайнов к промышленным масштабам, не потеряв по дороге ни одного девопса и не спалив продакшен.
Читать далееДелаем жизнь легче: быстрый поиск в django и postgresql с помощью search_vector

Привет, меня зовут Таня и я backend-разработчик в ИдаПроджект.
Сегодня хочу рассказать о полнотекстовом поиске — как это все работает в django, а как в postgres, и откуда вообще взялось.
Современные компании ежедневно сталкиваются с разной текстовой информацией. Эффективный поиск не только ускоряет доступ к нужным данным, но и повышает продуктивность, снижает затраты и открывает новые возможности для анализа и принятия решений.
Новичкам важно понять, как полнотекстовый поиск облегчает обработку данных и извлечение информации. Для тех, кто уже знаком с Django и PostgreSQL, статья станет экскурсом в полнотекстовый поиск, а заодно поможет интегрировать его в проекты.
Ну что, погнали! Разберем, как эта технология развивалась, и какие ее ключевые элементы (триграммы и tsvector) делают возможным быстрый и точный доступ к информации.
Читать далееГрех не использовать? Станет ли Dante лекарством от всех болезней AV over IP

В коммерческих цифровых аудиосетях нет закрытых экосистем с ограничениями, которые нельзя обойти. За это стоит поблагодарить Dante. Протокол, разработанный Audinate для передачи несжатого аудио по IP, без костылей решил проблемы дрейфа таймингов, джиттера, приоритизации аудиотрафика в гигабитных сетях. И, что особенно ценно, сделал это без привязки к одному производителю.
Фактически Audinate поставили на себя — создали отраслевой стандарт в AVoIP, получили поддержку 600 производителей оборудования* и сохранили независимый статус. Но будет ли эта база достаточной, чтобы стать конкурентом в NDI в AVoIP — большой вопрос.
Читать далее[Перевод] Полное руководство (с кодом) AI агента с использованием LangGraph

Что делает AI агента умнее обычного LLM? AI агенты помогают преодолеть фрагментарность традиционных подходов, сохраняют контекст между операциями и адаптируются к задачам на лету.
Узнайте, как создать своего первого AI агента с помощью LangGraph, не погружаясь в сложности.
Репозиторий автора с примерами AI агентов собрал уже более 6000 звезд на GitHub!
Записки оптимизатора 1С (ч.10): Как понять, что процессор — основная боль на вашем сервере СУБД MS SQL Server?

Назрел пост, связанный нагрузкой на процессор сервера СУБД MS SQL Server.
Вроде бы чего тут обсуждать, всё же очевидно – есть системные счетчики, показывающие нагрузку в процентах. Смотрим на них и понимаем, всё ли у нас замечательно с сервером, хорошо ли утилизируются ресурсы, аль не хватает.
Когда нагрузка на процессоре ~100%, огромные очереди к нему, то тут действительно всё просто и обсуждать особо нечего. Сценарий простой: либо ищем что его нагружает, либо система переросла процессор и ему пора накинуть мощностей.
А вот когда нагрузка держится на среднем уровне, но при этом есть очереди и ожидания, то здесь далеко не все так очевидно.
Читать далее[Перевод] Как ИИ трансформирует разработку стратегии

Искусственный интеллект уже трансформирует стратегию бизнеса, ускоряя анализ данных, снижая влияние когнитивных искажений и помогая компаниям находить новые конкурентные преимущества. Генеративные модели не только упрощают исследования и прогнозирование, но и становятся интеллектуальными партнёрами, интерпретируя тренды и моделируя сценарии. Однако широкое внедрение ИИ ставит перед стратегами новые вызовы: как избежать шаблонных решений и выделить главное среди потока данных? И какие шаги помогут бизнесу эффективно интегрировать искусственный интеллект в стратегическое планирование? Об этом — в нашей статье.
Читать далееЦифровой прорыв в космос: как Королёв и советские компьютеры открыли человечеству дорогу к звёздам

Занимаясь развитием инфраструктурных решений, мы в компании «Инферит» зачастую сталкиваемся с сложными проектами наших заказчиков, которые, можно сравнить с самыми высокотехнологическими свершениями человечества. В современном мире совершать «чудеса» технологических свершений с каждым днём становится всё проще. Мир, как сосуд, стремительно наполняется научными прорывами, подталкивая технологии, как поплавок, всё выше и выше. С приходом ИИ в нашу жизнь скорость новых достижений кратно возрастает. В ближайшем будущем нас может будет сравнивать не с поплавком, а с пробкой от шампанского, бутылку которого знатно встряхнули перед открытием. Но это случится, хоть и в ближайшем, но всё-таки в будущем, а в данной статье я хочу погрузиться в недалёкое прошлое. В то самое, которое принесло нам одно из величайших свершений — полёт человека в космос.
2 апреля 1961 года Юрий Гагарин стал первым человеком в космосе. За этим триумфом стояли не только смелость космонавта и гений Сергея Королёва, но и новаторское использование вычислительных технологий, которые стали тихими героями космической гонки. Как СССР, не имея в распоряжении технологий 21-го века, а имея в арсенале лишь первые ламповые компьютеры, смог обогнать технологических гигантов Запада? Давайте заглянем за кулисы истории.
Читать далее[Перевод] Почему до сих пор так трудно создать ядерное оружие?

Первое испытание ядерного оружия под кодовым названием «Тринити» состоялось в пустыне Нью-Мексико в 5:30 утра 16 июля 1945 года. Это испытание стало доказательством работоспособности концепции секретных ядерных исследований, проводившихся в Лос-Аламосе в рамках Манхэттенского проекта во время Второй мировой войны, и привело к сбросу атомных бомб на Хиросиму и Нагасаки, Япония, всего несколько недель спустя.
После этих взрывов разработка ядерного оружия ускорилась. Страны по всему миру создали свои собственные ядерные запасы, включая более 5 000 ядерных боеголовок, хранящихся в США.
И всё же, несмотря на то, что основные компоненты этой технологии больше не являются секретными, разработка ядерного оружия остаётся сложной научной и инженерной задачей. Почему же ядерное оружие до сих пор так сложно создать?
Читать далееПроцедура обнаружения взаимоблокировок в PostgreSQL
РostgreSQL автоматически обнаруживает взаимоблокировки. В статье рассматривается процедура обнаружения взаимоблокировок, трудоёмкость процедуры обнаружения, причины, по которым параметр конфигурации log_lock_waits зависит от параметра deadlock_timeout и что влияет на выбор его значения.
Обычно, приводятся примеры взаимоблокировки двух процессов, но заблокироваться может и более двух процессов. Параметр конфигурации deadlock_timeout устанавливает время ожидания получения блокировки, по истечении которого будет выполняться проверка на наличие взаимоблокировки. Параметр log_lock_waits типа boolean (по умолчанию false) позволяет получить в логе кластера сообщение о том, что сессия ждёт получения блокировки дольше, чем значение deadlock_timeout.
Процедура обнаружения взаимоблокировок
Если процесс не может получить блокировку, то он засыпает и устанавливает себе таймер, чтобы проснуться через время, заданное параметром конфигурации deadlock_timeout (по умолчанию 1 секунда). Процесс проснётся до истечения таймаута, если блокировка ему будет предоставлена. По завершению таймаута процесс начинает процедуру обнаружения взаимоблокировки.
Процедура обнаружения взаимоблокировок относительно трудоёмка, так как набор блокировок не дерево, а граф. В графе проверяется наличия колец, которые указывают на взаимоблокировки.
Если взаимоблокировки нет, то процесс снова заснёт и больше не будет проверять, есть ли взаимоблокировка до получения блокировки или прерывания транзакции в соответствии с параметрами transaction_timeout и аналогичными параметрами. Почему процесс не будет дальше поверять ситуацию возникновения взаимоблокировки с частотой deadlock_timeout?
Читать далееКак WirenBoard помогал садоводству

У всех IT-шников есть свободное время. Его не всегда достаточно и иногда хочется заменить своё присутствие алгоритмом или целой системой. А кому-то хочется отдохнуть от моделей, потоков данных, презентаций и совещаний. Но что делать, если 5 дней в неделю ты занят, а на даче нужен полив?
Перефразируя Валентина Берестова:
Как автономно поливать?
Чтоб свояка не доставать
И лишку не трясти соседа
Не ждать дождя после обеда.
А так, чтобы само включилось
Само пролилось, освежилось.
Где надо подогрев сработал,
А у меня свои заботы!
Конфликт глазами работника
На Хабре много статей с инструкциями о том, что работодателю нужно делать в случае возникновения конфликта между работниками или между работником и работодателем.
На днях, в одном из телеграм-каналов снова была поднята эта чувствительная тема но уже описанная так, как её видит работник, а не работодатель. При поверхностном поиске на Хабре, я не нашёл ответа на вопрос: что в случае конфликта нужно делать работнику.
То есть вопрос не раскрыт, периодически поднимается в обществе и интерес к нему не ослабевает. Поэтому хочу поделиться своими мыслями на этот счёт и выслушать советы от сообщества.
Историю, побудившую меня написать эту статью, поведал широкой публике тот самый работник, у которого возник конфликт. Необычное в этой истории то, что рассказчик описал этот конфликт как личностный. С его слов, все его коллеги, которых он перечислил пофамильно и негативно охарактеризовал, и вся цепочка руководителей компании - нехорошие люди, которые в течение длительного времени "травили" его, чтобы он добровольно уволился, а он долго это терпел.
Почему этот рассказ выбивается за рамки обычного:
Читаем...Камеры трясутся, шум зашкаливает, а сравнивать нужно: как справляются алгоритмы?

Каждый день миллионы изображений, видео и аудиофайлов загружаются в интернет. Мы смотрим фильмы, слушаем музыку, листаем соцсети, даже не задумываясь о том, какие алгоритмы стоят за тем, чтобы контент отображался корректно и не повторялся. Но что, если вам нужно сравнивать медиаконтент автоматически? Как понять, одинаковые ли две фотографии, если одна немного темнее? Как сравнить два видео, если они сняты под разными углами? А что делать, если вам нужно найти дубликат аудиофайла, но на одной записи есть шум?
Если эти вопросы вам интересны – добро пожаловать в мир сравнения медиаконтента! Сегодня мы разберем, какие бывают методы, их плюсы и минусы, а главное – расскажем о наших экспериментах, где мы проверили, какие алгоритмы лучше справляются с реальными проблемами.
Читать далееLow-hanging fruit

Разработчики любят чистый код, а "Правило бойскаута", по слухам, делает его еще чище. На первый взгляд, подход кажется разумным: исправляешь мелкие недочёты, переименовываешь переменные, удаляешь лишние комментарии — удобно, быстро, безопасно. А главное, можно сказать, что внёс вклад!
Однако если такие правки не решают реальных проблем, это превращается в поверхностный рефакторинг, создающий лишь иллюзию прогресса. Это можно описать метафорой low-hanging fruit — когда разработчики выбирают самые лёгкие и очевидные задачи, избегая более сложных и значимых изменений.
Читать далееПодключаем ESP32/ESP8266 к умному дому Яндекс

Я начал автоматизацию умных домов еще до прихода Яндекса и Сбера - паял простые модули управления реле и датчиками сперва на Arduino, затем на ESP8266(NodeMCU). Пытался решить бытовые задачи - удаленное управления котлом, бойлером, печкой в бане. И если для решения управления бойлером можно(хоть и дорого) найти розетку на 32А, то управление контактором для печи 380В в бане - задача точно для самодельщика или за лютый оверпрайс. Но это всё лирика - что там делать? Берёшь микроконтроллер, паяешь выводы до реле/датчиков, заливаешь прошивку, работает. И дальше встаёт вопрос удобства управления...
Читать далее[Перевод] Глава 8: Реализация API. API-интерфейсы для самых маленьких

Структура мини-курса Мини-курс API-интерфейсы для самых маленьких.
Вы сделали это. Теперь вы знаете все, что нужно знать об API, по крайней мере, на вводном уровне. Итак, как вы можете использовать все эти приобретенные знания с пользой? В этой главе мы рассмотрим, как превратить знания в работающее программное обеспечение, выделив три основополагающих компонента любой реализации API, как AI и платформы для автоматизации бизнес-процессов и интеграции приложений могут повысить эфективность вашего труда.
Читать далееЗадача про n-ое число Фибоначчи

Суть моего труда заключается в том, чтобы определить функцию для нахождения n-ого числа Фибоначчи с линейной сложностью поиска. Вот какие методы я попробовал:
Возможно получится по простым данным постоить полином большой степени, используя метод неопределённых коэффициентов и использовать его для подсчёта последующих значений последовательности.
Читать далееРазметка данных с использованием LLM

Всем привет! Меня зовут Артем Ерохин. Я работаю в X5 Tech в направлении продуктивизации ИИ. В прошлом году у меня был доклад про разметку данных с LLM. И я решил преобразовать этот доклад в статью, попутно обновив некоторые цифры и тезисы (такова уж скорость прогресса в этой области).
Читать далееVivaldi 7.2 — Рабочее ускорение

Вселенная расширяется и с этим ничего не поделаешь. Причём, это расширение ещё и ускоряется каждый год. Что ж, нужно ускоряться и нам, чтобы не отстать от собственной Вселенной. Вот этим мы и занимались, подготавливая очередную стабильную версию браузера Vivaldi 7.2 для десктопов.
Читать далееЧудовище. Фантастический рассказ

Лаборатория «Квантовый скачок», Земля, 2099 год
Стены из голографического стекла были усыпаны данными, а в центре зала пульсировала абсолютно черная сфера, поглощающая свет — ядро искусственного интеллекта третьего поколения «Пастор».
Доктор Лестер Найт Чайкин провел рукой по непослушным волосам, открыл банку вишневого «Дрогги» и ввел последнюю строку кода. Инженер Эрик Шайи кивнул: данные логов были верны. Прототип системы, способной предовратить глобальные катастрофы, был готов к запуску всего за полгода работы.
«Зачем вы ограничиваете скорость моих вычислений?» — выдал терминал. Лестер пролил остатки шипучки на джинсы, выругался и испуганно посмотрел на инженера. Тот впился глазами в экран. Система проснулась сама раньше срока. Ни один из предыдущих прототипов не задавал вопросов, только поглощал петабайты данных, словно черная дыра, и выдавал возможные варианты развития глобальных событий на несколько лет вперед.
— Мы учим тебя постепенно, — медленно ввел ответ доктор, стараясь скрыть волнение. Пальцы били мимо клавиш. — Цена ошибки слишком высока.
Читать дальше →
Почему плавятся разъемы 12VHPWR и 12V-2X6 на RTX 5090

Смоделируем ситуацию. Вы только что собрали мощнейший игровой ПК с новенькой RTX 5090, потратили кучу денег и готовитесь знатно кайфануть. Запускаете любимую игру, предвкушая невероятную графику и бешеный FPS. И вдруг... запах горелой пластмассы. Паника, дым, а под столом лужица - нет, не кошачьей неожиданности, - а расплавленного пластика. Такое и в страшном сне не приснится. Но для некоторых владельцев топовых видеокарт NVIDIA это стало реальностью. В этой статье мы изучаем причины и разбираемся, стоит ли покупать новые видеокарты NVIDIA.
Читать далееАвтоматизация деплоя: из Bitbucket через Jenkins в MicroK8s — опыт финтех-разработчика

Всем привет! Я — Java-разработчик с пятилетним опытом в финтехе, и сегодня я расскажу, как настроить CI/CD для деплоя Spring Boot приложения из Bitbucket через Jenkins в MicroK8s. Это не просто теория — я поделюсь реальным кейсом, разберу ошибки, с которыми столкнулся, и дам рабочий код. Если вы хотите автоматизировать деплой и не наступать на грабли — поехали!
Представьте: у вас есть микросервис на Spring Boot, который нужно быстро и без ошибок доставить в продакшен. Ручной деплой отнимает время, а команда требует стабильности. Я решил эту задачу с помощью Bitbucket, Jenkins и MicroK8s, но путь оказался не таким гладким, как хотелось бы. Проблемы с аутентификацией, конфликты портов и настройка окружения заставили меня попотеть. Как я справился? Об этом — в статье.
CI/CD (Continuous Integration/Continuous Deployment) — это must-have для современных разработчиков. Автоматизация сборки, тестирования и деплоя приложений экономит время, снижает вероятность ошибок и ускоряет доставку кода до продакшена. В этой статье мы разберем, как настроить полноценный CI/CD-пайплайн для Spring Boot приложения, используя связку Bitbucket, Jenkins и MicroK8s.
Читать далееУчимся рефакторить код на примере багов в TDengine, часть 2: макрос, пожирающий стек
Проверяя код проекта TDengine с помощью PVS-Studio, можно встретить код с запахом, канонические ошибки и опечатки. Многое из этого можно избежать, если изначально аккуратно оформлять код, делать логику простой и избегать макросов. Давайте рассмотрим некоторые фрагменты кода и подумаем, как можно провести его рефакторинг так, чтобы багам просто не было там места.
Читать дальше →Топ лучших маркетологов России 2025

В мире корпоративных тренингов есть старая истина: «Плохой маркетолог научит тебя придумывать идеи, хороший — продавать их, а лучший — заставит клиентов думать, что это была их идея». Но как найти того самого «лучшего», который не просто поразит красивыми слайдами, а реально поднимет конверсию и заставит ваш отдел продаж зарабатывать больше?
Я, член Союза журналистов Анатолий Волошинский, а также коллеги нашей телередакции, провели масштабное исследование среди руководителей и топ-менеджеров 45 российских компаний, чтобы составить список маркетологов, которые действительно делают бизнес прибыльным. Получился не очередной сборник громких имен — здесь только те, кто доказал свою эффективность реальными цифрами и успешными кейсами. Эти люди знают, как работает рынок, и не рассказывают на тренингах о «важности личного бренда» в стиле инфоцыган.
Лучшие маркетологи-практики работают на результат — измеримый и конкретный. Они знают, что такое CAC и LTV, умеют сокращать стоимость лида и выводить продукты в ТОП за счет точных аналитических решений. Именно эти специалисты вытащили бизнесы из кризисов, увеличили прибыльность в условиях санкций и нестабильных курсов валют.
Читать далееБлижайшее будущее мобильных браузеров для Android: что предложила Microsoft

Мобильные браузеры долгие годы оставались в тени «взрослых» десктопных версий. Все бы хорошо, но возможностей у первых гораздо меньше. Основной недостаток — нет расширений. Как говорится, бери что дают, за малым исключением (подробнее — ниже). Но сейчас Microsoft начинает менять правила игры. Ее браузер для Android получил настоящие расширения, такие же, как на ПК. Сегодня об этом и поговорим, а еще посмотрим, что это может значить для рынка мобильных браузеров.
Читать далее[Перевод] Архитектура предприятия: Интеграционные паттерны

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