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

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

Отправить сообщение

Довольно очевидно, что этот процесс можно запускать параллельно с загрузкой самой страницы, и работать оно должно быстрее, чем собственно загрузка средней страницы. Думаю, об этом подумали и инженеры Гугла :)

maintainer is usually one or more people who build source code into a binary package for distribution, [оr] commit patches, or organize code in a source repository

Ну я и сказал (:

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

Если бы вы хоть немного пытались читать, что вам пишут, а не искать возможности для самоутверждения, вы бы поняли, что вам пытаются указать на второй, вполне ходовой, способ использования слова maintainer в контексте OSS: разработчик, который постоянно работает над проектом, имеет право записи в upstream репозиторий, [не] принимает патчи и триажит баги.

5 минут и одна неправильная посылка (пытался использовать set как мультисет); переключился на Питон с традиционных плюсов — писать и правда удобнее (:

Код
class Solution:
    def closeStrings(self, word1: str, word2: str) -> bool:
        counts1 = Counter(word1)
        counts2 = Counter(word2)

        return set(counts1) == set(counts2) and Counter(counts1.values()) == Counter(counts2.values())

Автору большой респект! Бекраунд у всех разный (у меня, вот, есть 2 года муштры по алгоритмам на Физтехе) и важен именно твой прогресс. Рад, что получилось разобраться и проникнуться алгоритмическими задачками — сам недавно стал переоткрывать для себя этот мир. Ещё могу посоветовать попробовать Advent of Code, если он прошёл мимо.

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

Открывал на сервере в MacOS окно Emacs из докера с guix — всё отлично работало!

Картинку про троллейбус из буханки хлеба можно не присылать :)

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

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


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


В случае асимметричной криптографии возникают и более видимые проблемы. Скажем, в схеме Эль-Гамаля, стойкость обеспечивается (предполагаемои) трудностью задачи дискретного логарифмирования — буквально, нам сложно вычислить приватный ключ по публичному. Но задача-то эта решаема, и даже вполне очевидным способом — пусть и за долгое (на данном этапе развития технологий) время. Но ограниченное. И ключевую пару дольше этого времени использовать нельзя.

Спасибо за классный квест! Отличный повод отложить подготовку к экзаменам в институте :)
Для интересующихся — под спойлерами разбор задачек.

Начало
Итак, начинаем с леса, в котором нетрудно углядеть штрихкод. Собственно, используя какой-нибудь распознаватель, получаем адрес 159.69.211.35:3232.
Элементарно, Ватсон
По данному адресу висит изображение в JPEG:


Видимые артефакты намекают на стеганографию, а в названии файла Englishman_outguess_you.jpg присутствует довольно неожиданный перевод слова «перехитрить», который наводит на утилиту Outguess. С её помощью извлекаем закодированную в Base32 ссылку jbxbcjjz.gonchar.uk:7463/jbxbcjjz.

Кстати, тут есть небольшая пасхалка. Если зайти по дефолтному 80му порту на сайт с Ватсоном, тебе предложат послушать песню Wrong Way.
Позвони мне, позвони
По ссылке оказывается ogg-файл c песней «Позвони мне, позвони» в исполнении Ирины Муравьёвой. В метаданных призыв повторяется более конкретным образом:
      COMMENT         : RmxhbnQgTW9zY293IG51bWJlciBleHQgNQo=
      ALBUM           : RmxhbnQgTW9zY293IG51bWJlciBleHQgNQo=
      ZN              : 20468
      COMMENTS        : Позвони мне по телефону +7 8172 578 223 и узнай, что тебя ждет дальше
      TITLE           : Позвони мне, позвони
      ARTIST          : Муравьева Ирина
Впрочем, на Вологодском номере звонок сразу сбрасывают, зато в комментарии/названии альбома лежит закодированная уже Base64 строка «Flant Moscow number ext 5». Находим на сайте Фланта их номер +7 (495) 721-10-27, прожимаем пятёрку и слушаем сообщение.
Второе место и каналы
Криповый детский голос зачитывает:
Привет, рад что ты здесь. Венеция и Петербург славятся своими каналами. Запомните, редко кто знает имя того, кто занял втрое место. А теперь, следующая загадка.
После этого, более приятный мужской голос оглашает «affinity aqua snow type 2 0 2 0». С божьей помощью (вернее, подсказкой из комментариев) понимаем, что «второе место» отсылает к необходимости посмотреть на вторые буквы слов: fqny2020. При достаточной степени упоротости, каналы должны навести на мысли о Телеграме, где под таким ником обнаруживается канал.
Двоичный код
В канале опубликован график

с подписью
Привет! Тебе удалось пройти часть пути, но еще много впереди. Вот и следующая загадка. И помни: не важно, кем ты представишься!
Можно догадаться, что блоки O1-O4 (octet) и P (port) обозначают IP-адрес и порт, а 8 значений, отложенных по оси абсцисс, задают значения бит. В десятичной системе счисления всё это добро образует 95.216.220.159:110.
Почта
На 110м порту принято размещать POP3-сервера. подключившись по Telnet (к слову, мой провайдер почему-то РОСКОМНАДЗОР этот IP), можно обнаружить заветное приветствие почтового сервера. Вспоминая напутствие «не важно, кем ты представишься», вводим произвольное имя пользователя и пароль, чтобы обнаружить одно входящее письмо.
После масленицы
Письмо довольно большое и начинается следующим образом:
http://10.10.10.1:8080

client
dev tap
proto tcp
tun-mtu 1500
remote 159.69.211.35 5555
nobind
persist-key
persist-tun
Подсеть 10.0.0.0/8 зарезервирована для локальных нужд, а дальше как раз лежит файл конфигурации OpenVPN. Заводим VPN-клиент, открываем 10.10.10.1:8080 и получаем текст «I posle maslenitsy on, i v facebook razmeschen on, i suda im hodit' nado».

Сразу после Масленицы начинается Великий пост, посты постят в Facebook, а ещё в HTTP есть метод POST. Отправляя туда же POST-запрос, получаем «GET here ZZZZZZZ». С 10.10.10.1:8080/ZZZZZZZ скачивается файл.
Распаковка подарков
Скачанный файл оказывается gzip-архивом. Внутри него лежит tar-архив, с названием «tar -xf», внутри которого лежит gzip-архив с названием «tar -xzf» внутри которого лежит tar-архив с названием «tar -xf»… Потом ещё начинают появляться zip-архивы с названием «unzip -o», и спустя 2479 распаковок мы получаем два текстовых файла.
И снова Шерлок
Один из файлов небольшой, вот его начало:
 37 2 4941
 5 2 4941
 6 3 1255
 37 1 2034
 25 4 1408

 11 1 2034
 10 2 1408
 4 6 419
 26 1 3076

 19 1 3076
Во втором, без малого, 5000 строк длинных слов на латинице. Это книжный шифр, упоминавшийся у Дойля (и в бибисишной экранизации). Каждая непустая строка задаёт букву: третье число указывает строку в файле, второе — слово в этой строке, а первое — букву в слове. Пустые строки разделяют слова зашифрованного сообщения «MySQL USER quest PASS superquest BASE quest PORT default INSIDE VPN».
πоследний рывок
Подключаемся MySQL-клиентом по инструкции к 10.10.10.1, и находим таблицу под названием «pi»:
+------+----------+---------+
| id   | position | nexthop |
+------+----------+---------+
|    2 |        2 | .       |
|    7 |        1 | h       |
|    9 |        3 | a       |
|    6 |        1 | i       |
|    5 |        1 | g       |
|    5 |        2 | .       |
|    5 |        3 | o       |
|    3 |        1 | n       |
|    3 |        2 | g       |
|    3 |        3 | r       |
|    3 |        4 | u       |
|    1 |        1 | u       |
|    1 |        2 | o       |
|    2 |        1 | d       |
|    4 |        1 | p       |
|    9 |        1 | o       |
|    8 |        1 | n       |
|    8 |        2 | k       |
|    9 |        2 | c       |
+------+----------+---------+
Числа в колонке id совпадают с первыми девятнадцатью цифрами в десятичной записи числа Пи. Если переставить строки, сложив цифры в правильном порядке (position задаёт порядок вхождений для каждой цифры), колонка nexthop сложится в nupogodi.gonchar.uk.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность