Forwarded from 🇺🇦 Go performance channel (Oleg Kovalov)
Very nice trick for @code #golang users to see what is escaped to the heap or not inlined.
In most cases you don't need to see this all the time but nice thing to have in your toolbox.
CC: @GoLandIDE
https://twitter.com/_josephwoodward/status/1455522831190663173
In most cases you don't need to see this all the time but nice thing to have in your toolbox.
CC: @GoLandIDE
https://twitter.com/_josephwoodward/status/1455522831190663173
Twitter
Joseph Woodward
@felixge I know VS Code enables you to run > "Go: Toggle gc details" to see some more details, but nothing like this - though it would be cool!
Forwarded from Проценко
Telegraph
Разбор статистики COVID 19 в зависимости от % вакцинированных по странам
Третий год пандемии COVID19, по всему миру встречаются вспышки нового штамма "дельта", более заразного, а значит - более опасного. В странах СНГ творится полный хаос: больницы забиты, нередки случаи "сортировки" (отключения от аппарата безперспективных пациентов…
Хороший, годный выпуск Подлодки про 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
Кстати, одно из ее применений - алюминиевые банки с напитками, которые обычно деформируются при открытии и теряют жесткость. В случае привнесения в структуру этого паттерна - банка остается жесткой и ее даже удобнее держать в руке.
Кстати, одно из ее применений - алюминиевые банки с напитками, которые обычно деформируются при открытии и теряют жесткость. В случае привнесения в структуру этого паттерна - банка остается жесткой и ее даже удобнее держать в руке.
Wikipedia
Miura fold
origami folding pattern
не дежурить по выходным/по ночам > получать двойную ставку за дежурства
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
Wikipedia
Тирания большинства
«Тирания большинства» (или «тирания масс») — выражение, используемое в дискуссиях о демократических системах и праве большинства, означающее критику модели, в которой решения, принимающиеся большинством сообщества, ставят интересы большинства выше интересов…
☕️ Мерлин заваривает τσάι 🐌
Наткнулся на любопытную идею квадратичного голосования. Суть в следующем: при прямой демократии работает эффект "тирании большинства". Суть эффекта примерно состоит в следующем: идёт голосование по безразличному для большинства, но важному для небольшой доли…
В комментах поделились выпуском базового блока с обсуждением книги 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: обзор книги «Радикальные рынки»
Книгу «Радикальные рынки» Глена Вейла и Эрика Поснера в своё время бурно обсуждали в эфириум-сообществе. Авторы предлагают пять механизмов улучшения эффективности экономики, от новых принципов работы аукционов и голосования…
Книгу «Радикальные рынки» Глена Вейла и Эрика Поснера в своё время бурно обсуждали в эфириум-сообществе. Авторы предлагают пять механизмов улучшения эффективности экономики, от новых принципов работы аукционов и голосования…