Решил опять поиграться с локальным гитом — а он не работает, шельма. Пока выяснял, в чём беда, увидел, что ко мне раз в 5 секунд пытается ssh'ем присосаться какой-то чёрт китайский, логи засирает этим
😁7
Кресты на моей кукухе
Решил опять поиграться с локальным гитом — а он не работает, шельма. Пока выяснял, в чём беда, увидел, что ко мне раз в 5 секунд пытается ssh'ем присосаться какой-то чёрт китайский, логи засирает этим
Фан-факт: если в whois увидеть, что сурс айпи сидит в digitalocean, можно послать жалобу в формочку, и за несколько минут получить в ответ мейл "пиздык роздан". После этого перестать видеть ip-шник в логах
Надеюсь, я испортил день ребёнку, который играл в кулхацкера
Надеюсь, я испортил день ребёнку, который играл в кулхацкера
🔥6
ПАГАДИ, НЕ КЛАЦАЙ СПОЙЛЕР
Мне тут рассказали задачу прикольную:
Можно ли нанести на стороны двух к6 кубиков десятичные цифры так, чтобы из них можно было составить любое число от 01 до 31 (ведущие нули обязательны)
Далее ход моего решения
ЗАДАЧА — Можно ли подобрать цифры на двух кубиках так, чтобы из них составлялись числа от 01 до 31
ТЕХНИКА [Средне: Успех] — Не смотри на это "Можно ли"? Они всегда имеют в виду "Как".
ВНУТРЕННЯЯ ИМПЕРИЯ [Просто: Успех] — Ты уверен, это должно быть несложно.
ЗАДАЧА — Решение не приходит к тебе в голову сразу же. Тут не обойтись без листка и ручки.
АВТОРИТЕТ [Средне: Успех] — Тебя не пронять этими детскими загадками, хватай ручку и пиши верный ответ. Сразу.
ВНУТРЕННЯЯ ИМПЕРИЯ [Сложно: Провал] — Ты чувствуешь, что это не объять простой математикой. Тут нужно что-то иное, таинственное.
1. Рассматривать числа с 0.
ВИЗУАЛЬНЫЙ АНАЛИЗ [Средне: Успех] — Есть 9 чисел с ведущим нулём. Ты не можешь иметь его только на одном кубе. Придётся нарисовать его на двух. Остаётся по 5 свободных цифр на каждом кубе.
1. Что-то ещё обязательно на обоих кубах?
ЭНЦИКЛОПЕДИЯ [Просто: Успех] — Ещё есть числа 11 и 22. Это оставляет тебе всего 3 места под цифры на каждый куб. Радуйся, что 33 тебе не потребуется.
ЭЛЕКТРОХИМИЯ [Средне: Успех] — Чем ты занят, мужик? Слышал что-то про "без ста грамм не разобраться"? Это то, что тебе нужно. Налей себе. Сейчас.
СИЛА ВОЛИ [Легендарно: Провал]
ЛОГИКА [Сложно: Успех] — не слушай их, ты близко к разгадке. Пересчитай цифры.
1. Пересчитать... цифры?
ЭНЦИКЛОПЕДИЯ[Легко: Успех] — 3 цифры записаны на обоих кубах. По 3 места на каждом. Ты можешь записать всего 9 цифр. С таким набором не выразить всех нужных чисел. В задаче был подвох: в ней нет решения.
КОНЦЕПТУАЛИЗАЦИЯ[Сложно: Провал]
КИМ КИЦУРАГИ — "Всё в порядке, офицер?"
2. "Ким, осторожно! В этой задаче *подвох*."
КИМ КИЦУРАГИ — "Хм?"
1. "Нужно 10 цифр, а нанести получится всего 9!"
АВТОРИТЕТ [Легко: Успех] — Ты только что спас его от западни. Лейтенант должен быть восхищён
КИМ КИЦУРАГИ — "Вы же знаете, что можете перевернуть 6, да?"
АВТОРИТЕТ [Легендарно: Провал] — Тебя растоптали. Нужно реабилитироваться немедленно. Ты знаешь, что делать. Направь пистолет себе в голову.
ПАГАДИ, НЕ КЛАЦАЙ СПОЙЛЕР, читай сверху
Мне тут рассказали задачу прикольную:
Можно ли нанести на стороны двух к6 кубиков десятичные цифры так, чтобы из них можно было составить любое число от 01 до 31 (ведущие нули обязательны)
Далее ход моего решения
ТЕХНИКА [Средне: Успех] — Не смотри на это "Можно ли"? Они всегда имеют в виду "Как".
ВНУТРЕННЯЯ ИМПЕРИЯ [Просто: Успех] — Ты уверен, это должно быть несложно.
ЗАДАЧА — Решение не приходит к тебе в голову сразу же. Тут не обойтись без листка и ручки.
АВТОРИТЕТ [Средне: Успех] — Тебя не пронять этими детскими загадками, хватай ручку и пиши верный ответ. Сразу.
ВНУТРЕННЯЯ ИМПЕРИЯ [Сложно: Провал] — Ты чувствуешь, что это не объять простой математикой. Тут нужно что-то иное, таинственное.
1. Рассматривать числа с 0.
ВИЗУАЛЬНЫЙ АНАЛИЗ [Средне: Успех] — Есть 9 чисел с ведущим нулём. Ты не можешь иметь его только на одном кубе. Придётся нарисовать его на двух. Остаётся по 5 свободных цифр на каждом кубе.
1. Что-то ещё обязательно на обоих кубах?
ЭНЦИКЛОПЕДИЯ [Просто: Успех] — Ещё есть числа 11 и 22. Это оставляет тебе всего 3 места под цифры на каждый куб. Радуйся, что 33 тебе не потребуется.
ЭЛЕКТРОХИМИЯ [Средне: Успех] — Чем ты занят, мужик? Слышал что-то про "без ста грамм не разобраться"? Это то, что тебе нужно. Налей себе. Сейчас.
СИЛА ВОЛИ [Легендарно: Провал]
ЛОГИКА [Сложно: Успех] — не слушай их, ты близко к разгадке. Пересчитай цифры.
1. Пересчитать... цифры?
ЭНЦИКЛОПЕДИЯ[Легко: Успех] — 3 цифры записаны на обоих кубах. По 3 места на каждом. Ты можешь записать всего 9 цифр. С таким набором не выразить всех нужных чисел. В задаче был подвох: в ней нет решения.
КОНЦЕПТУАЛИЗАЦИЯ[Сложно: Провал]
КИМ КИЦУРАГИ — "Всё в порядке, офицер?"
2. "Ким, осторожно! В этой задаче *подвох*."
КИМ КИЦУРАГИ — "Хм?"
1. "Нужно 10 цифр, а нанести получится всего 9!"
АВТОРИТЕТ [Легко: Успех] — Ты только что спас его от западни. Лейтенант должен быть восхищён
КИМ КИЦУРАГИ — "Вы же знаете, что можете перевернуть 6, да?"
АВТОРИТЕТ [Легендарно: Провал] — Тебя растоптали. Нужно реабилитироваться немедленно. Ты знаешь, что делать. Направь пистолет себе в голову.
ПАГАДИ, НЕ КЛАЦАЙ СПОЙЛЕР, читай сверху
✍3🔥2😁2💯1🦄1
Кресты на моей кукухе
Воюю с очередями ваще не каждый день, часть N + 1 (измерительная) Что нам дало сидение на одной странице (на моём потенциально однобоком бенче) 1. Консьюмер стал дышать легче. Как выяснил раньше, консьюмер захлёбывается, если продьюсер крутит 1000 nop'ов…
Автор вспомнил, что это канал про lock-free очередь его мечты (ну не прям lock-free, честный lock-free сложно и не нужен)
Заимплементил-таки схему bitset + queue вместо queue + queue.Предварительный результат радует. График — гистограмма задержек на запись в очередь. Профит явно есть
Менее красивые графики заметены под ковёр до дальнейших разбирательств в том, что я вообще наделал
Заимплементил-таки схему bitset + queue вместо queue + queue.Предварительный результат радует. График — гистограмма задержек на запись в очередь. Профит явно есть
🤯5
Кресты на моей кукухе
Автор вспомнил, что это канал про lock-free очередь его мечты (ну не прям lock-free, честный lock-free сложно и не нужен) Заимплементил-таки схему bitset + queue вместо queue + queue.Предварительный результат радует. График — гистограмма задержек на запись…
Некрасивая метрика, проблему с которой я сходу (к своему стыду) не понял — время от отправки сообщения до его чтения. На старой очереди это было <1 мкс, на новой >40мкс в медиане. Ночью меня осенило: я же разогнал писателей. Читатель снова стал захлёбываться. Докинул nop'ов ~пропорционально уменьшению во времени прохождения бенча — метрика более-менее нормализовалась. С этим разобрался
Пишем быстрее! Получилось срезать ~ 70нс (~20%) в медиане и в среднем. Быстрее и на 99-м перцентиле, хоть и немного
С чтением неоднозначно(9( Чуть лучше в медиане, чуть хуже в среднем (~7% тудым/сюдым). Хуже на высоких перцентилях на 10-15%. В общем, скорее хуже
При том, что мне хочется минимально тормозить писателя, трейдофф приемлемый
Пишем быстрее! Получилось срезать ~ 70нс (~20%) в медиане и в среднем. Быстрее и на 99-м перцентиле, хоть и немного
С чтением неоднозначно(9( Чуть лучше в медиане, чуть хуже в среднем (~7% тудым/сюдым). Хуже на высоких перцентилях на 10-15%. В общем, скорее хуже
При том, что мне хочется минимально тормозить писателя, трейдофф приемлемый
Кресты на моей кукухе
Некрасивая метрика, проблему с которой я сходу (к своему стыду) не понял — время от отправки сообщения до его чтения. На старой очереди это было <1 мкс, на новой >40мкс в медиане. Ночью меня осенило: я же разогнал писателей. Читатель снова стал захлёбываться.…
В общем, схематоз:
Было: MPMC FAA-очередь занятых элементов + такая же очередь свободных элементов
Стало: MPMC FAA-очередь занятых элементов + битсет, отвечающий за свободные элементы
Битсет имеет операции
Выглядит как массив атомиков, в которых один битик соответствует одному индексу. Я хотел минимизировать контеншн, потому
1. массив побит на блоки по 16 атомиков (128 байт, 1024 элемента-битика)
2. каждый поток имеет свой "родной" блок
На
Есть у меня большие сомнения в линеаризуемости этого добра) Хотя пока читатель один, должно сходиться
Дальше буду смотреть, есть ли прок от замены MPMC очереди на MPSC, раз мне больше всё равно не надо
Было: MPMC FAA-очередь занятых элементов + такая же очередь свободных элементов
Стало: MPMC FAA-очередь занятых элементов + битсет, отвечающий за свободные элементы
Битсет имеет операции
push(index)
и take_any() -> optional<size_t>
Выглядит как массив атомиков, в которых один битик соответствует одному индексу. Я хотел минимизировать контеншн, потому
1. массив побит на блоки по 16 атомиков (128 байт, 1024 элемента-битика)
2. каждый поток имеет свой "родной" блок
На
take_any()
мы ищем битик в родном блоке. Если не нашли — начинаем проходить по чужим блокам. Прошли круг и ничего не нашли — очень жаль, вываливаемсяЕсть у меня большие сомнения в линеаризуемости этого добра) Хотя пока читатель один, должно сходиться
Дальше буду смотреть, есть ли прок от замены MPMC очереди на MPSC, раз мне больше всё равно не надо
🔥2
Как же я в рот ебал этот ваш лок фридом нахуй. Вот ты всё придумал, всё у тебя отлично складывается, ты обложен гарантиями, писатели не мешают друг другу примерно никогда, всё заебись, ты гений. И тут приходит читатель, гнида нахуй, и что были твои гарантии, что не было, у тебя лицо уже обоссано, все твои там идеи это маня-фантазии и полная поебота
😢2
Как же радостно встретить тред на 120 сообщений в багзилле кернела, где обсуждается твоя проблема
Как же горестно увидеть, что она закончилась ни на чём 2 года назад
Как же горестно увидеть, что она закончилась ни на чём 2 года назад
😢4💔1
Увидел настолку в магазине — купился на визуал и сеттинг. Наконец, опробовали. Довольно прикольно, красивенько. Играется интересно. А ещё в ней есть буквально я
Но когда выяснил, что есть и компьютерная игра, не мог понять, зачем нужен формат настолки, потому что играется довольно механически. Тем не менее, допройти хочется. А потом и компьютерную версию пройти. Интересно, насколько различаются механики
Но когда выяснил, что есть и компьютерная игра, не мог понять, зачем нужен формат настолки, потому что играется довольно механически. Тем не менее, допройти хочется. А потом и компьютерную версию пройти. Интересно, насколько различаются механики
❤4🤔2