Хороший, годный выпуск Подлодки про golang, Алексей затащил (невзирая на миллион шуток про дженерики)
#подкаст #podcast
https://xn--r1a.website/podlodkanews/792
#подкаст #podcast
https://xn--r1a.website/podlodkanews/792
Telegram
Podlodka Podcast – анонсы и новости подкаста про IT
Podlodka #240 – Golang
Пополняем золотую коллекцию языковых выпусков Podlodka долгожданным эпизодом про Golang! Все, как вы любите — история развития, области применения, ключевые фичи, экосистема, и немного холивара про сильные и слабые стороны. Погрузил…
Пополняем золотую коллекцию языковых выпусков Podlodka долгожданным эпизодом про Golang! Все, как вы любите — история развития, области применения, ключевые фичи, экосистема, и немного холивара про сильные и слабые стороны. Погрузил…
WTF
В кодовую базу Chromium добавлена возможность блокировки открытия встроенного в браузер интерфейса для просмотра исходных текстов текущей страницы. Блокировка производится на уровне локальных политик, заданных администратором, через добавление маски "view-source:*" в список запрещённых URL, настраиваемый при помощи параметра URLBlocklist. Изменение дополняет ранее присутствующую опцию DeveloperToolsDisabled, позволяющую закрыть доступ к инструментам для web-разработчиков.
https://www.opennet.ru/opennews/art.shtml?num=56130
В кодовую базу Chromium добавлена возможность блокировки открытия встроенного в браузер интерфейса для просмотра исходных текстов текущей страницы. Блокировка производится на уровне локальных политик, заданных администратором, через добавление маски "view-source:*" в список запрещённых URL, настраиваемый при помощи параметра URLBlocklist. Изменение дополняет ранее присутствующую опцию DeveloperToolsDisabled, позволяющую закрыть доступ к инструментам для web-разработчиков.
https://www.opennet.ru/opennews/art.shtml?num=56130
www.opennet.ru
В Chromium добавлена возможность локального запрета просмотра кода web-страниц
В кодовую базу Chromium добавлена возможность блокировки открытия встроенного в браузер интерфейса для просмотра исходных текстов текущей страницы. Блокировка производится на уровне локальных политик, заданных администратором, через добавление маски "view…
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
В чем особенности сервера:
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 можно накатывать ограничения только для новых записей
https://hakibenita.com/postgresql-unknown-features#add-constraints-without-validating-immediately
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
Hakibenita
Lesser Known PostgreSQL Features
Features you already have but may not know about!
Forwarded from Берлога Зануды
Одна из интересных вещей, о которых не так давно прочитал - это система складывания, которая применялась при развертке панелей космических аппаратов, а сейчас используется, например, при складывании бумажных карт и схем. Называется она "Миура-ори" и, среди прочего, раскладывается одним движением руки. https://en.wikipedia.org/wiki/Miura_fold
Кстати, одно из ее применений - алюминиевые банки с напитками, которые обычно деформируются при открытии и теряют жесткость. В случае привнесения в структуру этого паттерна - банка остается жесткой и ее даже удобнее держать в руке.
Кстати, одно из ее применений - алюминиевые банки с напитками, которые обычно деформируются при открытии и теряют жесткость. В случае привнесения в структуру этого паттерна - банка остается жесткой и ее даже удобнее держать в руке.
не дежурить по выходным/по ночам > получать двойную ставку за дежурства
change my mind
change my mind
Наткнулся на любопытную идею квадратичного голосования.
Суть в следующем: при прямой демократии работает эффект "тирании большинства". Суть эффекта примерно состоит в следующем: идёт голосование по безразличному для большинства, но важному для небольшой доли людей вопросу, и в большом количестве случаев решение будет приниматься не заинтересованным меньшинством, а безразличным большинством (надо понимать, что роли меньшинства и большинства людей постоянно меняются в разных обстоятельствах).
Грубо говоря, голосуют люди района Кукушкино за постройку детских качелек в сквере имени Девяткина — и большинство проголосуют под действием случайного импульса, они в этот сквер не ходят. Посетители сквера и рады бы решить этот вопрос между собой — но, скажем, по историческим причинам, такие вопросы решаются на уровне района.
А через месяц голосование насчёт сноса гаражей на другом конце Кукушкино.
Квадратичное голосование -- это вариант голосования с покупкой голосов. При этом цена голосов растёт как квадрат их количества: если для на выборах тебе хочется купить 1 голос, то ты платишь 1 условный рубль (можно сделать так, что один голос тебе всегда достаётся бесплатно), если 2 голоса -- то платишь 4 рубля, если 1000 -- то миллион и т.д.
В такой схеме наибольший вес в голосовании имели бы посетители сквера -- Васе из соседнего квартала нет смысла платить лишние сто рублей из-за качелей. И получается, что по сути соревноваться голосами будут именно те, кому вопрос важен.
С другой стороны, просто купить голосование не получится -- да, условный богатенький буратино может купить 10к голосов, но они обойдутся ему в 100 млн рублей, в то время как чуть более чем 1000 вась с 256 рублями могут его опрокинуть.
Я не знаю, насколько жизнеспособен этот механизм, но меня заинтересовали две штуки:
1. Необычный подход к взвешиванию голосов
2. Попытки верификации подхода -- я привык, что в обсуждении подобных штук аргументы обычно берутся с потолка
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2343956
Суть в следующем: при прямой демократии работает эффект "тирании большинства". Суть эффекта примерно состоит в следующем: идёт голосование по безразличному для большинства, но важному для небольшой доли людей вопросу, и в большом количестве случаев решение будет приниматься не заинтересованным меньшинством, а безразличным большинством (надо понимать, что роли меньшинства и большинства людей постоянно меняются в разных обстоятельствах).
Грубо говоря, голосуют люди района Кукушкино за постройку детских качелек в сквере имени Девяткина — и большинство проголосуют под действием случайного импульса, они в этот сквер не ходят. Посетители сквера и рады бы решить этот вопрос между собой — но, скажем, по историческим причинам, такие вопросы решаются на уровне района.
А через месяц голосование насчёт сноса гаражей на другом конце Кукушкино.
Квадратичное голосование -- это вариант голосования с покупкой голосов. При этом цена голосов растёт как квадрат их количества: если для на выборах тебе хочется купить 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 — там затрагивается тема квадратичного голосования
Так же в шоунотах есть статья Виталика Бутерина с обзором книги авторов статьи https://vitalik.ca/general/2018/04/20/radical_markets.html — там затрагивается тема квадратичного голосования
Telegram
Базовый Блок
ББ-147: обзор книги «Радикальные рынки»
Книгу «Радикальные рынки» Глена Вейла и Эрика Поснера в своё время бурно обсуждали в эфириум-сообществе. Авторы предлагают пять механизмов улучшения эффективности экономики, от новых принципов работы аукционов и голосования…
Книгу «Радикальные рынки» Глена Вейла и Эрика Поснера в своё время бурно обсуждали в эфириум-сообществе. Авторы предлагают пять механизмов улучшения эффективности экономики, от новых принципов работы аукционов и голосования…
Раз пошла такая пьянка, решил вытащить из стола свою старую библиотеку для батчинга. Старую версию (на
Конечно, это в первую очередь для личного пользования, но вдруг кому-то понадобится что-то подобное
https://github.com/ninedraft/batch
interface{} и капле рефлексии) я использовал в нескольких домашних проектах.Конечно, это в первую очередь для личного пользования, но вдруг кому-то понадобится что-то подобное
https://github.com/ninedraft/batch
GitHub
GitHub - ninedraft/batch: Generic batches for go
Generic batches for go. Contribute to ninedraft/batch development by creating an account on GitHub.
Ушла эпоха
⚠️ The Gorilla Toolkit is Looking for a New Maintainer #659
https://github.com/gorilla/mux/issues/659
⚠️ The Gorilla Toolkit is Looking for a New Maintainer #659
https://github.com/gorilla/mux/issues/659
GitHub
⚠️ The Gorilla Toolkit is Looking for a New Maintainer · Issue #659 · gorilla/mux
The Gorilla Toolkit is looking for a new maintainer (or maintainers, plural). As the last standing maintainer of the project, I no longer have time to fully dedicate to maintaining the libraries ac...