Как стать автором
Обновить

Все потоки

Сначала показывать
Порог рейтинга
Уровень сложности

Миссия невыполнима 2: как мы снова «похитили» радиатор

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров5.2K

Приветствую! На связи Федор Наумов, сервисный инженер К2Тех. В прошлом году, выполняя капитальный ремонт ДДИБП (дизель-динамического источника бесперебойного питания) на объекте, к нам поступила жалоба от заказчика, что зимой, при отрицательных температурах они наблюдают течи с радиаторов охлаждения рубашки дизельных двигателей. После почти недельной диагностики, размышлений и составления различных планов стало понятно, что точно установить места протечек и устранить их на месте мы не сможем. Радиатор установлен на высоте трех метров и со всех сторон окружен различными металлоконструкциями. Как мы справились с этой задачей? Читайте под катом!

Читать далее

Семантический поиск по статьям Хабра в PostgreSQL + индексация текстов LLM в Ollama

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров4.3K

Покажу вам практическую реализацию семантического поиска на основе векторных представлений - эмбеддингов из текста. Здесь я создам систему, которая анализирует статьи с Хабра, извлекает из них темы и ключевые слова с помощью локально работающих больших языковых моделей LLM, и на основе этих данных создает векторные представления для эффективного поиска по смыслу, а не по запросу на вхождение определенного текста.

Читать далее

std::launder: зачем и когда нужен

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров7.7K

Привет, Хабр!

В этой статье разберём мутный, но крайне важный инструмент ‒ std::launder. Мы поглядим, зачем его протащили в C++17 и что компилятор делает, когда видит launder.

Читать далее

Как мы разрабатываем отечественный AI-процессор. Часть 1. Почему GPGPU?

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров9.5K

«We have a phrase inside Intel. We are supposed to be a data driven company and the phrase is, "Don't argue with the emotions, argue with the data."»

Andrew S. Grove, Chairman of the Board, Intel Corporation, August 9, 1998

В июле 2023-го года в «Байкал Электроникс» стартовал проект по разработке собственного AI-процессора. В данной публикации мы хотим рассказать, почему мы выбрали именно архитектуру GPGPU, какими данными при решении мы руководствовались, а во второй части немного рассказать о ходе разработки и поделиться полученным опытом.

Читать далее

React Native тормозит? Проверь эти 8 узких мест в производительности, прежде чем винить фреймворк [ЧЕК-ЛИСТ]

Время на прочтение14 мин
Количество просмотров3.9K

Идея этой статьи родилась во время задушевных разговоров на кухне и за утренним кофе с коллегами. Началось все с вопроса: «Что ты сказал бы себе прошлому, чтобы релизы стали легче, а спринты прекраснее?» Конечно, в тот момент я ничего дельного не ответил, но, кажется, наконец‑то сформулировал идеальную фразу: «Настоящий разработчик, Слав, это не тот, кто с сияющим макбуком и вкусным смузи. Разработчик — тот, кто делает то, что нужно сделать. И в легаси покопаться приходится, и memory leak дебажить, а он всё равно делает, потому что так надо».

Привет, Хабр! Меня зовут Вячеслав Чащухин, я — разработчик в МойОфис. Занимаюсь мобильной версией Squadus — цифрового рабочего пространства для совместной работы и деловых коммуникаций.

Обращаю ваше внимание на то, что эта статья — не инструкция по решению всех проблем. Скорее, чек‑лист причин, которые, по моему мнению, чаще всего приводят к тем или иным проблемам. Поэтому в некоторых пунктах будут ссылки или упоминания возможных решений. Я объединил проблемы по группам. Если вы обнаружили в своем приложении подлагивания или не хотите их обнаружить в будущем, рекомендую пройтись по пунктам :)

Читать далее

Трассировка запросов в Postgres с расширением pg_trace

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров2.8K

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

Читать далее

Новые процессы без боли: как сделать так, чтобы команда не сопротивлялась

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров4.8K

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

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

Читать далее

Почему граф в RAG работает лучше, чем вы думаете… но не так, как вам рассказали

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров3.8K

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

Читать далее

Недистрибутивность деления, или Как я считал среднюю величину

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров5.6K


Казалось бы: сложно отыскать формулу проще, чем нахождение среднего арифметического. Однако код — не формула, вдобавок, если вы пишете на С++, то разного (и в основном неприятного) рода сюрпризы могут ожидать вас где угодно.

Постановка задачи: реализовать функцию uint32_t average(uint32_t a, uint32_t b), не используя типов шире, чем uint32_t, и затем обобщить этот подход на произвольное количество аргументов.
Посмотреть, что из этого вышло

Полный захват аккаунта стоимостью $1000 — Думайте нестандартно

Время на прочтение3 мин
Количество просмотров3K

Сегодня я расскажу о баге, который позволял мне захватить любой аккаунт пользователя. Сначала это была проблема уровня P4, но я не стал сообщать о ней, а довёл до уровня P1 с помощью цепочки уязвимостей. Без лишних слов — начнём!

Я не имею права раскрывать информацию о цели, поэтому давайте назовём её example.com. Это был обычный сайт. Ничего особенного: можно создать аккаунт, войти, поменять пароль и так далее.

Как обычно, я создал два аккаунта. Сначала зарегистрировался и вошёл в аккаунт жертвы, после чего проверил все запросы и ответы через Burp Suite. Я обнаружил, что сайт использует какой-то CSRF-токен для защиты от CSRF-атак. В исходном коде страницы я заметил, что сайтом каждому пользователю присваивается userID. Это шестизначный идентификатор, поэтому его можно легко угадать.

Далее я перешёл в настройки аккаунта, изменил часть своей информации (я всё ещё нахожусь в аккаунте жертвы) и зафиксировал этот запрос.

Читать далее

Необычная планета в двойной системе: ретроградная орбита и выживание между звездами

Время на прочтение4 мин
Количество просмотров3K

В 70 световых годах от Земли астрономы обнаружили удивительный мир — планету, чья орбита направлена противоположно движению второй звезды в системе. Главное светило там чуть массивнее Солнца, его компаньон — белый карлик. Планета, зажатая в узком пространстве между двумя светилами, не только существует в сложной гравитационной среде, у нее еще и ретроградная орбита. Все это делает ν Октанта настоящей загадкой для науки. Давайте попробуем разобраться.

Читать далее

Книга: «Настоящий SRE: инжиниринг надежности для специалистов и организаций»

Время на прочтение3 мин
Количество просмотров2.5K
Привет, Хаброжители!

Ищете руководство, которое поможет разобраться в Site Reliability Engineering (SRE) с нуля?

Издательство Sprint book представляет книгу «Настоящий SRE: инжиниринг надежности для специалистов и организаций», написанную Дэвидом Н. Бланк-Эдельманом — экспертом с почти 40-летним опытом в области эксплуатации информационных систем. Она подскажет, как внедрить культуру надежности в вашей организации, на какие факторы стоит обращать внимание.
Читать дальше →

Почему синтетические данные редко используются в реальных задачах

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров476

Синтетические данные – это искусственно сгенерированные наборы, имитирующие структуру и статистические закономерности реальных данных. В последние годы вокруг этой технологии возник значительный ажиотаж. Еще недавно аналитики прогнозировали, что уже к 2024 году до 60% данных, используемых для разработки ИИ, будут синтетическими. Однако на практике полностью перейти на «искусственные» данные пока не удалось. Экспертные отчеты отмечают, что возможности синтетических данных сейчас несколько переоценены и что они вряд ли смогут в ближайшем будущем полностью заменить реальные данные. В разных отраслях синтетические данные используются скорее точечно, а не повсеместно. Ниже мы рассмотрим ключевые причины, почему применение таких данных остается редким – от технических ограничений и бизнес-факторов до правовых барьеров.

Читать далее

Ближайшие события

Творческая переработка MVVM и TCA на примере iOS

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров818

Всем привет, меня зовут Дмитрий Лоренц, я iOS-разработчик в IT-компании GRI. Наш основной клиент — Sunlight, для него мы разрабатываем нескольких мобильных приложений по полному циклу и поддерживаем сайт.

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

Читать далее

Бегущий по дедлайнам: узнали у айтишников, реально ли совмещать спорт и работу

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров4.5K

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

Читать далее

Почему multiprocessing.Queue() тормозит и как обойти это с помощью shared_memory

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.6K

Привет, Хабр!

Вы запускаете многопроцессную задачу, кидаете данные в multiprocessing.Queue(), а потом вдруг замечаете... что всё тормозит. Муторно. Медленно. Местами прям отвратительно. Вы смотрите в монитор, на top, на htop, на код — и не понимаете: ну ведь должно же летать! А не летит.

Читать далее

Архитектурные принципы Spring Security. Часть третья

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.4K

Команда Spring АйО перевела и адаптировала доклад Даниэля Гарнье‑Муару «Spring Security Architecture Principles», в котором на наглядных примерах рассказывается, как пользоваться возможностями Spring Security, не запутываясь на каждом шагу и не зарабатывая себе головную боль. 

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

Читать далее

Лидерство в тестировании: инструменты тестирования

Время на прочтение11 мин
Количество просмотров2.8K

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

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

Читать далее

Не украл, а вдохновился! Как геймдизайнеры крадут ассеты, модели, текстуры и уровни из чужих игр

Время на прочтение6 мин
Количество просмотров8.8K

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

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

Алертинг метрик Pilot в Prometheus

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров535

Настройка алертинга для своевременного оповещения о возможных проблемах с системой Pilot. Используется инструмент AlerManager, который будет отправлять оповещения на основе метрик Pilot-Server из Prometheus.

Читать далее