Обновить

Моя лента

Тип публикации
Порог рейтинга
Уровень сложности
Предупреждение
Войдите или зарегистрируйтесь, чтобы настроить фильтры

Записки из подполья незаконного архивирования фильмов

«Люди, видоизменяющие или уничтожающие художественные работы и наше культурное наследие ради прибылей или демонстрации власти — это варвары, и если законы США продолжат оправдывать такое поведение, то мы точно войдём в историю, как варварское общество.»

— Джордж Лукас, 1988 год

«Для меня её [оригинальной трилогии «Звёздных войн»] больше не существует. Я задумывал этот фильм именно так, и мне жаль, что вы увидели половину целого фильма и полюбили его.»

— Джордж Лукас, 2004 год

Ванкувер, 2011 год: мы с моей соседкой Виллой Росс сидим в одной из характерно стерильных монтажных студий Университета Саймона Фрейзера и уже не знаем, что делать: мы провели все выходные, ваяя из трёх разных копий вестерна Серджо Леоне 1966 года «Хороший, плохой, злой» одну версию — причём все три копии были незаконными рипами. В начале 2000-х этот фильм пал жертвой «реставрации», выполненной компанией MGM: вырезанные Серджо Леоне сцены были возвращены, увеличив время англоязычной версии с 161 до 179 минут; Клинт Иствуд и Илай Уоллак дублировали недостающие диалоги, а место умершего к тому времени Ли Ван Клифа занял похожий на него голосом дублёр. Монофоническая дорожка была переработана в многоканальный звук с неприятно современными звуками выстрелов. Почти десяток лет эта «дополненная» лента оставалась единственной продаваемой версией фильма; подобное очень часто происходит в эпоху ревизионистских студийных реставраций.

Наша цель была простой: спасти фильм от этой вивисекции. Мы планировали соединить звук уже не издававшегося DVD 1998 года (приблизительно похожий на звук международного релиза 1967 года) с видео из недавно привезённого Blu-ray итальянской версии. После того, как мы успешно преодолели многочисленные подводные камни, связанные с риппингом домашних видеозаписей конца 2000-х, наши надежды рухнули из-за катастрофического открытия: итальянская версия оказалась ещё сильнее отличающейся от международной, чем расширенная версия: печально известная сцена пытки была полностью перестроена, а у некоторых кадров отсутствовали начало и конец. Мы почти на десяток лет отказались от этой затеи.

Записки из подполья незаконного архивирования фильмов
Статья

Сайт бесплатно и навечно: я выбрал WordPress

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели0

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

Но если ты создаёшь для себя или для общественного проекта, и если таких сайтов много, — появляется проблема: сайты будут тянуть деньги из кармана, так что рано или поздно — через год или десять — они «умрут».

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

Ещё один вариант — завести сайт на известной крупной платформе, например, на WordPress.com, где платформа выступает хостингом и даёт возможность прикрутить домен. И вот, как только перестаёшь платить, ты теряешь домен и возможность пользоваться всеми платными фишками, но сайт хотя бы останется на плаву на субдомене 12345.wordpress.com.

Читать далее

Новости

Статья

Книга: «Простой Python. Современный стиль программирования. 3-е изд.»

Время на прочтение2 мин
Охват и читатели2

Привет, Хаброжители! Путешествие в мир программирования часто напоминает блуждание по лабиринту, из которого нет выхода. Неудивительно, что Python стал любимцем миллионов: он не просто понятен, его приятно изучать, читать и писать на нем.

Читать далее
Статья

3,5 секунды, которые изменили IT: как Брайан Ино случайно озвучил эпоху

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели0

Двадцать четвертого августа девяносто пятого года Microsoft выкатила Windows 95 с рекламой под Start Me Up от Rolling Stones, очередями у магазинов в полночь и маркетинговым бюджетом, которого хватило бы на пару-тройку небольших студий вместе с их кофемашинами, и где-то внутри этого праздника лежал файлик на несколько секунд, который за следующие годы, подозреваю, услышало больше народу, чем все песни Роллингов вместе взятые.

Файлик назывался The Microsoft Sound, а написал его Брайан Ино, человек, который ввел в оборот сам термин ambient, продюсировал U2 и Боуи и к середине девяностых меньше всего походил на автора системных звуков для офисной операционки. Позвали его, судя по всему, в очень удачный момент, потому что у самого Ино с музыкой тогда было совсем плохо, и он потом честно рассказывал журналисту San Francisco Chronicle, что идей у него не было никаких и задача от чужого дяди с четкими рамками пришлась как нельзя кстати.

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

Читать далее
Статья

Как мы описываем тысячи таблиц с помощью LLM

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели434

Привет, Хабр! Меня зовут Сергей Третьяков. Я product owner MWS Data Scout — сервиса, который описывает таблицы баз данных с помощью больших языковых моделей (LLM). 

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

Читать далее
Статья

Вторая молодость мобильного роутера Netgear AC810 или как 10-летний 4G-роутер всё ещё один из лучших даже в эпоху 5G

Время на прочтение3 мин
Охват и читатели307

Пролог.
Это статья - призыв к размышлению.

Пока в российском телекоме вовсю бурлят обсуждения освоения частот для 5G и перспектив нового стандарта связи, реальность обычного пользователя остается прежней: хорошо отлаженная, «вылизанная» инфраструктура LTE (4G) на оптимальных частотах зачастую обеспечивает более стабильный, надежный и быстрый доступ в интернет здесь и сейчас.

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

Вендоров можно понять — они защищают себя от гарантийных случаев и «окирпичивания» девайсов пользователями со «шаловливыми ручками». Но в результате страдает комьюнити энтузиастов и техногиков. Сегодня я хочу рассказать, а скорее напомнить, о существовании легендарного мобильного роутера Netgear AC810. Спустя почти 10 лет после релиза он переживает настоящую вторую молодость и благодаря сообществу превратился в настоящий убер-девайс, способный потягаться с навороченными новинками. И на дружественном форуме, известном почти всем читателям Хабра, до сих пор этот роутер изучается, а его возможности активно совершенствуются!

Старичок на стероидах: почему именно AC810?

Netgear AC810 — один из самых удачных и компактных мобильных роутеров в своем классе. Он построен на чипсете Qualcomm, поддерживает практически все российские диапазоны LTE, технологию 256QAM и агрегацию частот (до 3CA). Из его главных «железных» и функциональных плюсов можно выделить:

Читать далее
Статья

Capacitor: от веба к мобильным приложениям. Часть 5. Микрофронтенды в Capacitor

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели272

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

Читать далее
Статья

Русский текст в Claude Opus 5 стоит в 3,9 раза дороже, чем в GPT-5.5, при одинаковой цене за токен

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели287

Claude Opus 5 тратит на русский текст в 3,9 раза больше токенов, чем GPT-5.5, — при одинаковой цене за токен счёт выходит почти вчетверо выше. Я замерил 11 токенизаторов на параллельных текстах на русском и английском: от одного символа на токен у Claude Opus 5 до пяти у YandexGPT и GigaChat, у которых русский текст даже короче английского. Внутри — методика, пересчёт в рубли за тысячу символов, находка про «usage» у агрегаторов и код, чтобы повторить замер на своих текстах.

Читать далее
Статья

ROUGE‑V: как я транслировал CUDA/PTX в LLVM IR и запускал его без CUDA runtime

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели316

Я написал транслятор CUDA/PTX в LLVM IR: он берёт PTX от настоящего nvcc и собирает его обычным clang. Восемь ядер уже исполнены на живой GeForce MX450 и побитово совпали с хост‑эталоном. А главное — как настоящий nvcc и видеокарта сломали мои зелёные тесты.

Читать далее
Новость

Реестр платформ для самозанятых расширили до 13 сервисов

Время на прочтение2 мин
Охват и читатели267

Минэкономразвития России расширило реестр посреднических цифровых платформ — сейчас в него входят 13 прошедших проверку сервисов. Для включения платформа должна иметь среднесуточную аудиторию не менее 100 тыс. пользователей и соответствовать одному из условий: не менее 10 тыс. активных партнёров либо оборот сделок от 50 млрд рублей в год, пишет «Российская газета».

Читать далее
Статья

Как перестать ревьюить правки, о которых никто не просил

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели476

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

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

Читать далее
Статья

Как перестать сжигать бюджет на разработку и заставить IT приносить прибыль?

Уровень сложностиСредний
Время на прочтение29 мин
Охват и читатели362

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

Читать далее
Статья

Как я в 1998 году стартап делал

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели519

В 1998 году 20-летний студент из Великих Лук отправил в Microsoft письмо с идеей push-индексации сайтов. Ему ответили вежливым отказом. Потом были Яндекс, частные инвесторы, отказ в визе и неслучившийся Grabit. Спустя 28 лет автор нашёл тот самый конверт из Редмонда — и понял, что идея опередила время.

Читать далее
Статья

Если UI плагинный, почему BFF монолитный?

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели573

Модульная архитектура во фронтенде дает командам автономность: каждая пилит свой модуль и не ждет соседей. Потом появляется BFF, один на всех, и автономность начинает утекать обратно. Каждая новая ручка проходит через согласования, релизы приходится синхронизировать, узкое место просто переезжает с клиента на сервер.

Привет, Хабр! Меня зовут Маргарита Козырева, я — сеньор-фронтенд в «Лаборатории Касперского», работаю в Kaspersky Security Center. В айти семь лет, значительная часть из них ушла на дизайн-системы, которые я строила с нуля.

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

Читать далее

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

Статья

Kafka гарантирует порядок? Разбираем 3 инцидента с Outbox

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели465

Один ключ на все события заказа — и кажется, что порядок гарантирован. А потом клиенту приходит «Ваш заказ собран» раньше, чем «Оплата получена», витрина откатывает статус назад, а после планового перезапуска одно событие пропадает навсегда.

В статье разбираем три таких инцидента из одной системы на transactional outbox, PostgreSQL и Kafka 4.2. Попробуйте сами определить, где сломалось: в источнике, в relay, в продюсере или у потребителя.

Читать далее
Статья

2 100 писем и ноль ответов: разбор холодной рассылки в банки и фонды

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели667

За две недели мы отправили около 2 100 приглашений в отраслевой опрос: специалистам по рискам в банках и инвестиционных фондах. Базу собрали сами. Организации взяли из открытого реестра юрлиц GLEIF, сайты искали через Wikidata и автокомплит Clearbit, адреса собирали со страниц контактов. Из холодной рассылки не ответил никто.

Под катом разбор по шагам. Почему среди 1 301 адреса с сайтов финансовых компаний нет ни одного со словом risk. Как локальный DNS в режиме fake-ip превратил проверку доменов в формальность. Почему почтовые шлюзы банков отбили письма, отправленные из Gmail. И как рассылка однажды завершилась без единой ошибки и не отправила ни одного письма. С кодом на Python и цифрами.

Читать разбор
Пост

Должен ли тимлид быть лучшим разработчиком в команде?

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

Инна Пристягина (руководитель развития персонала в PVS-Studio) рассказала о практиках хорошего тимлида, но плохого тех.эксперта. Разобрала, почему неумение лично выполнять задачи команды — не слабость руководителя, а вполне осознанная и эффективная модель работы.

Александра Бутузова (TeamLead кросс-функциональной команды в F.Doc) разобрала, как решать проблемы как тимлид. Ведь лидеру регулярно приходится сталкиваться с задачами и ситуациями, в которых он не является экспертом. Как действовать в таких случаях и в чем заключается истинная ценность работы руководителя — обсудили на вебинаре.

Посмотреть можно тут:
▫️ YouTube

▫️ VK Video

▫️ Rutube

▫️ Наш сайт

Приятного просмотра! 😉

Теги:
0
Комментарии0
Пост


Ссылка на одного участника в Telegram — ещё не персональный доступ

Представим закрытый канал: бот подтвердил оплату и выдал покупателю ссылку с member_limit=1. Кажется, что схема защищена: один платёж — один участник. Но лимит не проверяет, кто именно вступает.
По документации Telegram, member_limit ограничивает число пользователей, которые могут одновременно состоять в чате, вступив по этой ссылке. Это не привязка к Telegram ID покупателя и не гарантия одного использования за всё время.

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

Здесь речь об обычных приглашениях, когда доступом управляет бот. Нативные платные ссылки Telegram Stars — отдельный механизм.
На мой взгляд, проверять нужно право конкретного пользователя на вход. Приглашение позволяет подать заявку, а решение принимается по актуальным правам аккаунта.

Для обычных chat_join_request без query_id схема такая:

  1. Бот создаёт ссылку с creates_join_request=True, без member_limit: эти параметры нельзя использовать одновременно.

  2. При получении заявки берёт chat.id и from.id, проверяет действующее, не отозванное право пользователя на конкретный чат.

  3. При положительном решении вызывает approveChatJoinRequest. Боту нужны права администратора с can_invite_users.

Допустим, доступ оформлен для user_id=101 в канал A. Приходит заявка от user_id=202, у которого такого права нет. Само наличие приглашения не становится основанием для одобрения. И наоборот: оплата канала A не должна автоматически открывать канал B.
Если разрешены подарки, получателя доступа нужно определить заранее. С заявкой сравнивается его Telegram ID, который может отличаться от ID плательщика.

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

Условная последовательность для общей ссылки:

— 12:00:00 — пользователь оплачивает подписку;
— 12:00:02 — приходит заявка, но обработчик платежа ещё не создал право доступа;
— 12:00:05 — подтверждение оплаты обработано, право записано.

Заявку для повторной проверки с ограниченным временем ожидания я бы сохранял. После обработки платежа можно заново проверить актуальный доступ и попробовать одобрить заявку. Скриншота платежа для этого недостаточно. Если БД недоступна, автоматическое одобрение тоже следует отложить.
Это относится к обычным заявкам. Для событий с query_id действует другой протокол: в течение 10 секунд нужно вызвать answerChatJoinRequestQuery или sendChatJoinRequestWebApp. Переносить туда ту же логику ожидания без изменений нельзя.

Срок приглашения и срок подписки тоже нужно разделять. Например, ссылка действует пять минут, а доступ оплачен на месяц. Истечение expire_date не удаляет уже вступившего участника. За окончание доступа отвечает отдельная логика.
Проверка заявки защищает только этот способ вступления. Другие ссылки без одобрения и действия администраторов тоже нужно учитывать. Копирование самого контента она не предотвращает.

Собственная система нужна не всегда: для ежемесячного доступа в один канал у Telegram есть платные пригласительные ссылки с оплатой Stars. Дополнительная модель прав становится полезной, когда продукт объединяет несколько чатов и тарифов.

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

Теги:
0
Комментарии0
Статья

Как анимировать матрицу на Swift UIKit

Уровень сложностиСложный
Время на прочтение8 мин
Охват и читатели914

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

Читать далее
Новость

За Bare Metal — тоже к нам: RUVDS вышел на рынок аренды физических серверов

Время на прочтение1 мин
Охват и читатели860

Говорим как есть: мы вышли на рынок Bare Metal. Возможность заказать новую услугу уже доступна на сайте RUVDS. Новый кластер, реализованный на базе ДЦ в Московском регионе, дополняет наши существующие площадки.

Услуга стартует с более чем 40 предустановленными конфигурациями в четырёх линейках: «Старт», «Стандарт», «Мощные» и «AMD EPYC». Каждый сервер предоставляется без гипервизора и с полным root-доступом, что позволяет разворачивать любую ОС или собственный гипервизор.

Читать далее
Новость

Еврокомиссия развернёт меры против 10 видеоигровых компаний в рамках борьбы с проблемами внутриигровых покупок

Время на прочтение2 мин
Охват и читатели826

Европейская комиссия анонсировала меры против 10 видеоигровых компаний, чтобы защитить права игроков. Претензия Сети по защите прав потребителей (Consumer Protection Cooperation, CPC) и ЕК касается виртуальной валюты и ценообразования внутриигровых предметов. Регуляторы считают, что некоторые механики могут нарушать правила защиты потребителей, если из‑за них игроку сложно понять реальную цену.

Читать далее
1
23 ...