«Люди, видоизменяющие или уничтожающие художественные работы и наше культурное наследие ради прибылей или демонстрации власти — это варвары, и если законы США продолжат оправдывать такое поведение, то мы точно войдём в историю, как варварское общество.»
— Джордж Лукас, 1988 год
«Для меня её [оригинальной трилогии «Звёздных войн»] больше не существует. Я задумывал этот фильм именно так, и мне жаль, что вы увидели половину целого фильма и полюбили его.»
— Джордж Лукас, 2004 год
Ванкувер, 2011 год: мы с моей соседкой Виллой Росс сидим в одной из характерно стерильных монтажных студий Университета Саймона Фрейзера и уже не знаем, что делать: мы провели все выходные, ваяя из трёх разных копий вестерна Серджо Леоне 1966 года «Хороший, плохой, злой» одну версию — причём все три копии были незаконными рипами. В начале 2000-х этот фильм пал жертвой «реставрации», выполненной компанией MGM: вырезанные Серджо Леоне сцены были возвращены, увеличив время англоязычной версии с 161 до 179 минут; Клинт Иствуд и Илай Уоллак дублировали недостающие диалоги, а место умершего к тому времени Ли Ван Клифа занял похожий на него голосом дублёр. Монофоническая дорожка была переработана в многоканальный звук с неприятно современными звуками выстрелов. Почти десяток лет эта «дополненная» лента оставалась единственной продаваемой версией фильма; подобное очень часто происходит в эпоху ревизионистских студийных реставраций.
Наша цель была простой: спасти фильм от этой вивисекции. Мы планировали соединить звук уже не издававшегося DVD 1998 года (приблизительно похожий на звук международного релиза 1967 года) с видео из недавно привезённого Blu-ray итальянской версии. После того, как мы успешно преодолели многочисленные подводные камни, связанные с риппингом домашних видеозаписей конца 2000-х, наши надежды рухнули из-за катастрофического открытия: итальянская версия оказалась ещё сильнее отличающейся от международной, чем расширенная версия: печально известная сцена пытки была полностью перестроена, а у некоторых кадров отсутствовали начало и конец. Мы почти на десяток лет отказались от этой затеи.
Читать далееОдно дело создать машину, пускай даже с нуля и пускай даже уникальную, как БК-0011. Но совсем другое — создать (или хотя бы умыкнуть) для нее софтверную экосистему, которая вдохнет жизнь в ПЭВМ. Какой же софт был в распоряжении советских гиков?
Читать далееВ прошлый раз я рассказывал, как неделю искал клиентов для своего конструктора ботов. Хабр дал просмотры, реклама в VK дала клики, а до регистрации не дошёл никто. Люди заходили на сайт, смотрели и уходили.
Я долго думал, почему так, и в итоге решил не допиливать главную, а выкинуть её целиком. Расскажу, что поставил вместо неё и почему.
Читать далееОтносительно недавно я начал заниматься FPV и поначалу как любой новичок бился головой об стену от непонимания некоторых моментов, индустрия достаточно молодая в ру сегменте, информации есть, но она разрознена по множеству каналов на YouTube и статей, поначалу непонятно, на какой ролик стоит потратить час своего времени, а в какой налили воды и четких ответов на вопросы ты не получишь. Именно поэтому я решил написать ряд статей-руководств, которые дадут ответы на все вопросы, которые возникнут у вас при попытке начать заниматься FPV, такие как выбор симулятора и его правильная настройка для комфортного обучения, выбор пульта и его настройка, выбор очков, дрона и прочих аксессуаров, которые вам обязательно понадобятся, сколько всё это стоит и как всё это адекватно хранить.
Читать далееПочему интерфейсный текст — это функциональная логика, а не финальное «украшение» макетов; как один UX‑писатель масштабирует качество на 10+ команд через AI‑редакцию и где проходят строгие границы применимости нейросетей в сложных B2B/B2C‑системах.
РазобратьсяЗа 26 лет в бизнесе я видел десятки бизнесов, которые формально были прибыльными по бухгалтерским отчетам, но “ложились на бок” из-за внезапных кассовых разрывов. Причина всегда одна: собственник принимал управленческие решения на основе бухгалтерской отчетности или, что еще хуже, просто глядя на остаток на расчетном счете.
В этой статье будет дана чистая методология: как настроить управленческий учет (ДДС и ОПиУ) с нуля, в чем их принципиальная разница и как выстроить ритм управления, чтобы цифры реально влияли на решения, а не пылились в таблицах.
Читать далееПривет, Хабр! Меня зовут Георгий, руковожу продажами и маркетингом в Аспро.Cloud. За плечами больше пятнадцати лет в B2B-продажах — TELE2, Samsung, Whirlpool, команды до полусотни человек.
Планерка заканчивается вовремя. Все кивают, расходятся с ощущением, что договорились. Через неделю выясняется — клиенту так никто и не позвонил. Пятеро услышали задачу в моменте, и каждый в глубине души решил, что ей займется кто-то другой.
Знакомое чувство? У него есть имя и почти шестьдесят лет исследований за спиной, хотя ни один психолог образца 1968 года, конечно, не думал о планерках в Zoom.
Читать далееНесколько месяцев назад я начала пробный проект для одной редакции. Хотелось решить довольно бытовую проблему: журналисты тратили слишком много времени не на журналистику, а на обслуживание новостного потока.
Утром нужно открыть несколько источников, найти подходящие темы, проверить, не взял ли новость коллега, сохранить материал, подготовить текст, выбрать рубрику, перенести все в CMS. По отдельности эти действия занимают минуты или секунды. Но когда новостей много, рутина съедает заметную часть рабочего дня.
По профессии я редактор, а не разработчик. Поэтому я начала не с архитектуры и выбора технологий, а с вопроса: какие действия мы каждый день повторяем руками и какие из них можно передать системе.
Так появилась новостная панель. Сначала это был небольшой внутренний эксперимент. Сейчас ей пользуются около десяти человек, а сама система собирает материалы, помогает готовить новости, ведет их статусы, отслеживает повторы и взаимодействует с CMS. Для одного из сценариев часть новостей уже может проходить путь до сайта автоматически.
Читать далееВ работе аналитика 1С хватает задач, которые находятся между обсуждением потребности заказчика и разработкой: оформить требования, проверить связи объектов, собрать пример решения, подготовить сценарии испытаний.
В данный момент я постепенно пытаюсь при помощи ИИ и агентов выстроить свой процесс так, чтобы сократить время на формирование документации, подготовку анкет для интервью и подведение итогов обследований.
Пока для себя выделил четыре направления, в которых пробую его использовать.
Читать далееМодель «упрощает» валидацию. Линтер молчит, тесты проходят, ревьюер видит аккуратный дифф в одну строку и жмёт Approve. Через неделю выясняется, что функция скидки начала принимать отрицательный процент.
Тесты в таком PR почти всегда написала та же модель, что и код. Они подтверждают, что модель сделала задуманное, и ничего не говорят о том, ведёт ли себя код так же, как раньше. Я сделал инструмент, который проверяет именно это: он берёт каждую изменённую функцию, запускает старую и новую версию на одних и тех же входах и показывает вход, на котором они разошлись.
Под катом расскажу, как устроен confidence‑scorer, на какие грабли я наступил по дороге и почему в инструменте для проверки кода от нейросетей, нейросеть всё‑таки есть, хотя решающего голоса у неё нет.
Читать далееЗадача звучала просто. Есть большой каталог франшиз - витрина, где сотни карточек с ценами входа. Надо понять, насколько быстро эта витрина обновляется: сколько предложений, которые человек видел два года назад, дожили до сегодня.
Вопрос не праздный. Каталог франшиз читают как справочник, и возраст предложения в нём воспринимается как возраст бизнеса за ним. Проверить это можно только одним способом - сравнить два состояния каталога в разные годы.
Ниже история про то, как я это сделал, и почему повторить уже не смогу: источник закрылся не только от меня, но и от веб-архива.
Читать далееПривет, Хабр! На связи Сергей Кноль, маркетинговый аналитик, отвечаю за всю аналитику маркетинга в М2 и Артём Колесник, руковожу продуктовым маркетингом.
В М2 мы столкнулись с задачей и пытались ответить на вопрос: как связать цели бизнеса с работой отдельных маркетинговых команд — и при этом не поставить человеку в KPI метрику, на которую он почти не влияет?
Мы решили построить единое дерево метрик, которое связало бы бизнес-показатели с тем, чем маркетинг действительно может управлять. В статье расскажем, как мы трижды пересобирали модель, почему в итоге отошли от классической декомпозиции сверху вниз, какие правила помогли не превратить адаптацию фреймворка в подгонку под ответ и как теперь используем дерево для постановки KPI и оценки маркетинговых инициатив. А ещё — где этот подход пока не работает. Полезно будет маркетологам, которые хотят переиспользовать наш подход для декомпозиции целей кампании до отдельных отделов и сотрудников маркетинга.
Читать далее• Как я оживил LaserJet 1320 и Color LaserJet CP1025 на macOS 27 — разбор по логам CUPS
• “Filter failed” и «legacy USB class driver»: анатомия двух поломок печати на M1
Дано:
macOS 27 на M1, два древних принтера HP, одно и то же сообщение «ПО принтера несовместимо с этим устройством». Выглядит как один диагноз — «драйверов под ARM нет, покупай новый принтер». На деле это две совершенно разные поломки: одна лечится одной командой, вторая не лечится вообще и требует замены драйвера на open‑source. Ниже — разбор по логам CUPS, file, nm и strings, с рабочими решениями для обоих случаев.
Практический разбор двух простых шин: как разделить запуск действий и реакцию на изменения в реальном frontend-приложении.
Читать далееПри вайб-кодинге без инженерного контура отладка съедает у разработчика больше времени, чем экономит генерация.
От подхода «а давайте добавим немного ML» в 2023-м мы дошли до процесса, где работает не столько модель, сколько контур вокруг нее.
В этой статье делюсь нашим практическим опытом (набитыми шишками) и эволюцией подходов применения LLM (не только в разработке).
Читать далееБольшую языковую модель можно скачать с Hugging Face, развернуть на сервере с GPU и отправить ей первый запрос. Технически LLM уже работает: получает текст на вход и генерирует ответ. Но до готового бизнес-сервиса еще далеко.
Пользователю нужен интерфейс. Приложению — API. Модели нужно передавать контекст и корпоративные данные. Доступ к сервису необходимо ограничивать, действия — контролировать, запросы — логировать, а ошибки — обрабатывать.
Чтобы модель делала что-то полезное для бизнеса, ей потребуется передать контекст, подключить внешние или внутренние системы и описать правила работы с ними.
Все эти компоненты вокруг модели часто называют обвязкой, или harness.
В этой статье разберемся, зачем она нужна, из каких частей может состоять и почему выбор самой LLM — только один из этапов создания ИИ-сервиса.
Читать далееWarpnet — это полностью децентрализованная, одноранговая социальная сеть, вдохновлённая Twitter, но построенная так, что у неё нет центральных серверов. Каждый пользователь запускает свой собственный узел (node), и именно эти узлы вместе образуют сеть.
Читать далееПо новому требованию закона онлайн-кинотеатры и другие аудиовизуальные сервисы должны передавать уполномоченной правительством исследовательской организации дополнительный идентификатор пользователя, сопоставленный с номером мобильного телефона. Если один человек указал один и тот же номер в разных сервисах, идентификатор тоже должен совпасть.
На первый взгляд, задача элементарная: нормализовать номер телефона и посчитать от него хеш с общим для всех компаний секретом. На практике простое решение создало бы единый секрет сразу для десятков независимых компаний — и единую точку компрометации. Поэтому мы хотели найти более надёжный способ защитить данные пользователей.
Меня зовут Айдар Сабиров, я занимаюсь информационной безопасностью в Яндексе. Порой нам приходится решать самые необычные задачи, в которых техническая часть оказывается лишь половиной решения. Вторая половина — договориться между компаниями и превратить непонятные формулы в работающий отраслевой процесс. Это как раз такой случай.
В этой статье я расскажу Хабру, как мы вместе с другими участниками рынка искали более надёжную конструкцию и пришли к схеме на основе Oblivious Pseudorandom Function (OPRF), предотвращающей отслеживание пользователя по его номеру.
Читать далееМне нужны собственные каноники книг. Каноник — это одна устойчивая запись «вот этот текст», к которой привязывается всё остальное: файлы в разных форматах, аудиокниги, издания, дубли.
Не потому, что внешние источники плохие. Если мне нужно быстро получить автора, название или идентификатор книги, я вполне могу взять их из существующего каталога. Даже если в каталоге есть мусор, это не катастрофа: мусор можно постепенно исправлять. Проблема в другом — это не мой каталог. Я могу годами накапливать вокруг внешнего идентификатора результаты собственных анализаторов: связывать с ним аудиокниги, находить дубли, определять издания, собирать статистику, строить рекомендации. А потом внешний источник поменяет идентификаторы, структуру или просто исчезнет, и вся накопленная работа повиснет в воздухе.
Поэтому я решил сделать собственный корпус книг. Он тоже будет грязным, и это нормально. Главное, что это мой грязный корпус: я могу его постепенно улучшать, и его идентификаторы контролирую я сам.
В корпусе сейчас около 664 тысяч книг. А задача, ради которой всё это понадобилось, на первый взгляд была совсем простой: взять несколько минут аудиокниги, прогнать через Whisper и найти соответствующую книгу по тексту.
Ну что может быть сложного? Оказалось — примерно всё.
Читать далееПочти в каждой компании есть устаревшие системы (те самые legacy), которые по различным причинам необходимо поддерживать. Например для соответствия требованиям регуляторов или просто, из-за отсутствия полноценной замены. При этом, работа с такими приложениями часто превращается в экстрим, так как добавление каждой новой функции равносильно заезду еще одного грузовика на старый, шаткий мост. Этот образ точно передаёт суть технического долга, который является не конкретным багом, а накопленным системным обязательством. И вроде бы каждый компромисс в стиле «сначала выкатим, потом оптимизируем» или «страшно трогать», кажется разумным краткосрочным решением, но в итоге все сливается в невидимую силу, которая тормозит всю организацию.
Читать далее