☕️ Мерлин заваривает τσάι 🐌
1.08K subscribers
3.56K photos
66 videos
94 files
2.44K links
Merlin makes a slice
Merlin iterates it's twice
Happy compiling!
Download Telegram
произошло размещение информации
WTF

В кодовую базу Chromium добавлена возможность блокировки открытия встроенного в браузер интерфейса для просмотра исходных текстов текущей страницы. Блокировка производится на уровне локальных политик, заданных администратором, через добавление маски "view-source:*" в список запрещённых URL, настраиваемый при помощи параметра URLBlocklist. Изменение дополняет ранее присутствующую опцию DeveloperToolsDisabled, позволяющую закрыть доступ к инструментам для web-разработчиков.

https://www.opennet.ru/opennews/art.shtml?num=56130
Forwarded from Segment@tion fault
​​И первый публичный анонс нашего pub/sub-сервера. Сервер - PubSubRT, протокол - PSRT (IESG approved, port 2873)

В чем особенности сервера:

1) Минимально простая конфигурация. На производительность влияет только один параметр - data queue. Чем он меньше - тем меньше latency, но клиент может дольше ждать перед отправкой сообщения

2) Работает максимально быстро, даже с большими пейлоадами. И да, latency на хорошей сети редко поднимается выше 0,5 ms (для мелких пейлоадов - в пределах 30-40 микросекунд)

3) Это не "черный ящик". максимальный мониторинг всего, что происходит внутри

4) Жесткое слежение за latency, warnings в логи, как только превышается допустимый параметр

5) Никаких "таблиц подписки" - только b-trees. Клиенты могут задать миллионы подписок на разные топики, но если сообщения не ходят сразу в миллион клиентов бродкастом - сервер этого не замечает.

Latency между паблишером и конкретным подписчиком мы считаем, как время с момента получения от паблишера первого байта OP_PUBLISH и до ухода последнего байта в дата-сокет подписчика

В чем особенности протокола. Основная особенность одна - мы использовали два сокета (на один порт) и отказались от карусели OP-ACK. Аргумент против один: это усложняет написание надежного клиента, впрочем клиенты на Rust и Python уже вполне надежные. Теперь аргументы в пользу:

- В Pub/Sub пуши от сервера приходят только когда вы получаете сообщение. поэтому пусть себе и ходят по выделенному сокету данных

- По сокету управления все операции - атомарные. Карусель OP-ACK на клиенте тоже не нужна, что намного облегчает логику

- Благодаря двум сокетам, сервер может посылать ACK на операции контроля прямо в то время, пока клиент по второму сокету скачивает большой пейлоад

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

- Нет retains. На высоконагруженных Pub/Sub от них всё равно рано или поздно отказываются, потому что это обычно операции с диском

- Очень жесткий контроль таймаутов. Дохлый клиент будет с сервера немедленно выброшен. Дохлый сервер будет немедленно переподключен клиентом

- Максимально простой запуск TLS

- Репликация и HA из коробки. В сервере мы ее пока не открывали, но в будущем думаю да. Протокол репликации открыт

- Логическая совместимость с MQTT - те же топики, те же маски

Все это уже работает в продакшне у клиентов. Реальное ускорение с пейлдоадами >10kb на медленных каналах (нестабильный 1Mbit) - в 5-10 раз быстрее, чем MQTT. Наша EVA ICS уже получила поддержку PSRT в дополнение к MQTT, релиз выйдет примерно через месяц.

https://github.com/alttch/psrt
TIL в postgres можно накатывать ограничения только для новых записей

ALTER TABLE orders 
ADD CONSTRAINT check_price_gt_zero
CHECK (price >= 0) NOT VALID;

Вот это вот NOT VALID говорид постгре "падажжи, не проверяй старые записи, а вот новые валидируй"

https://hakibenita.com/postgresql-unknown-features#add-constraints-without-validating-immediately
Одна из интересных вещей, о которых не так давно прочитал - это система складывания, которая применялась при развертке панелей космических аппаратов, а сейчас используется, например, при складывании бумажных карт и схем. Называется она "Миура-ори" и, среди прочего, раскладывается одним движением руки. https://en.wikipedia.org/wiki/Miura_fold

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

change my mind
Наткнулся на любопытную идею квадратичного голосования.

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

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

А через месяц голосование насчёт сноса гаражей на другом конце Кукушкино.

Квадратичное голосование -- это вариант голосования с покупкой голосов. При этом цена голосов растёт как квадрат их количества: если для на выборах тебе хочется купить 1 голос, то ты платишь 1 условный рубль (можно сделать так, что один голос тебе всегда достаётся бесплатно), если 2 голоса -- то платишь 4 рубля, если 1000 -- то миллион и т.д.

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

С другой стороны, просто купить голосование не получится -- да, условный богатенький буратино может купить 10к голосов, но они обойдутся ему в 100 млн рублей, в то время как чуть более чем 1000 вась с 256 рублями могут его опрокинуть.

Я не знаю, насколько жизнеспособен этот механизм, но меня заинтересовали две штуки:

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

https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2343956
☕️ Мерлин заваривает τσάι 🐌
Наткнулся на любопытную идею квадратичного голосования. Суть в следующем: при прямой демократии работает эффект "тирании большинства". Суть эффекта примерно состоит в следующем: идёт голосование по безразличному для большинства, но важному для небольшой доли…
В комментах поделились выпуском базового блока с обсуждением книги https://xn--r1a.website/basicblockradio/431 #подкаст


Так же в шоунотах есть статья Виталика Бутерина с обзором книги авторов статьи https://vitalik.ca/general/2018/04/20/radical_markets.html — там затрагивается тема квадратичного голосования
Сообщество Go на следующий день после релиза 1.18 би лайк