Блог*
Ir al canal en Telegram
Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here
Mostrar más1 926
Suscriptores
+224 horas
-47 días
+130 días
Archivo de publicaciones
1 926
#прекрасныепапищеки
Небезызвестный Влад (@vlad20012), который уже девять лет делает этот ваш RustRover
1 926
На форуме DIYaudio чел решил провести тест. Он записал множество семплов, пропущенных через несколько проводников: 180 сантиметров профессионального медного аудиокабеля, 20 сантиметров мокрой грязи и... Банан. Затем он поделился четвёрками записей (включая оригиналы), порядок в каждой из которых был перемешан случайным образом. Задачей других членов форума было попытаться отличить, через что были пропущены сигналы, полагаясь на свой слух.
TL;DR: результаты показали, что участники были не в состоянии отличить различные варианты записей и их догадки были, по факту, случайными.
1 926
#prog #article
BTW PVS-Studio развивают версию своего анализатора для #go, и хотя для широкой публики анализатор ещё не доступен (в апреле будет бета-версия), он уже находит множество ошибок, которые не находит
go vet. Все найденные ошибки при этом на Go не завязаны, так что, возможно, в будущем анализатор станет ещё полезнее конкретно для Go.1 926
#prog
В #go тесты работают таким образом: программист делает файлы, имя которых оканчивается на костыль способ заставить программы на Go (скомпилированные!) использовать поведение из более старой версии. В данном случае предлагают добавить настройку
_test.go, и внутри пишет функции вида:
func TestXxx(*testing.T)
(префикс Test обязателен), а команда go test автоматически эти тесты подхватывает и исполняет. Тип testing.T позволяет организовывать тесты: логгировать, запускать подтесты и досрочно прерывать тесты, как ошибочные.
К чему я это? В последней версии Go — Go 1.26.0, вышедшей 10 февраля, есть несколько изменений. Одно из них — у кучи функций из подпакетов пакета crypto описаны изменения в духе "функция для генерации ключей теперь игнорирует аргумент, переданный для генерации случайности, и использует криптографически безопасный источник случайности". Разумеется, для тестов желательна воспроизводимость. Но как этого добиться, если источник случайности игнорируется?
Для решения этого вопроса Go предлагает два решения.
Первое — это GODEBUG, cryptocustomrand=1. Настройки через GODEBUG не вечные и могут быть убраны в одном из будущих релизов. По этой причине этот способ выглядит не особо привлекательным.
Второе — это использовать новую функцию testing/cryptotest.SetGlobalRandom. Она устанавливает сид для источника случайности, который будет использоваться для всех криптографических функций из пакета crypto, полагающихся на случайные данные. Эти изменения действуют в пределах одного теста, запускаемого testing.T. Соответственно, для каждого теста, который желает воспроизводимости, эту функцию нужно вызывать явно в начале. Разумеется, как справедливо отмечено в документации,
Because SetGlobalRandom affects the whole process, it cannot be used in parallel tests or tests with parallel ancestors.Воистину concurrent programming language!
1 926
Repost from Kelly_Dusk 🇺🇦
забавный факт: именно этот палм использовал Джон Коннор во втором терминаторе чтобы взломать банкомат
1 926
Repost from Kelly_Dusk 🇺🇦
гайс, кто шарит в компьютерах подскажите, мой новый ноутбук потянет гта 6?
1 926
Repost from Технологический Болт Генона
> В Max разрешили создавать свои каналы всем пользователям
> По случайному совпадению скорость скачивания в Телеге режется до ~150Кб, скорость аплоада до ~0Кб
> Акции МКПАО «ВК» подскочили на фоне известий об ограничении работы Telegram
> В ВК пользователи выражают благодарность РКН в комментариях - https://vk.com/wall-76229642_469593
1 926
#prog #моё
У метода Iterator::all — который возвращает, удовлетворяют ли все элементы в итераторе переданному предикату — есть вот такая строчка в документации:
An empty iterator returns true.Более того, аналогичное утверждение есть и в документации метода allMatch на Java Stream API, и в документации встроенной функции all в Python, и в документации IEnumerable.All в C#. Некоторые странные люди утверждают, что
all на пустой последовательности должен возвращать false — дескать, нет значений — не возможности определить значения.
Я здесь для того, чтобы сказать, что эти люди неправы.
Условный all(seq, pred), где seq — это последовательность a1, a2, ..., an, вычисляет значение pred(a1)∧ pred(a2) ∧ ... ∧ pred(an) (∧ — символ коньюкции, который в ЯП часто называют &&). Коньюкция — операция коммутативная и ассоциативная, поэтому если последовательность s является конкатенацией последовательностей a = a1, a2, ..., an и b = b1, b2, ..., bn, то мы можем переставить скобки и посчитать
all(s, pred) = pred(a1) ∧ ... pred(an) ∧ pred(b1) ∧ ... ∧ pred(bn)
как
(pred(a1) ∧ ... pred(an)) ∧ (pred(b1) ∧ ... ∧ pred(bn)) = all(a, pred) ∧ all(a, pred)
Или, иными словами и в синтаксисе Rust, если x и y — итераторы, то логично ожидать, что x.chain(y).all(p) вернёт тот же результат, что и x.all(p) && y.all(p).
Это свойство должно работать для любых последовательностей, включая пустые. С другой стороны, любую последовательность можно представить, как конкатенацию этой же последовательности с пустой. Или, в синтаксисе Rust, с поправкой на типы x и x.chain(iter::empty()) ведут себя одинаково. Подставив это в свойство выше, мы получаем, что x.all(p) && iter::empty().all(p), x.chain(iter::empty()).all(p) и x.all(p) должны возвращать один и тот же результат. Для произвольного итератора x это возможно только в том случае, если iter::empty().all(p) возвращает значений, нейтральное для коньюкции, то есть true. Иными словами, Iterator::all должен возвращать true на пустом итераторе, ч. и т. д.
Аналогичные соображения показывают, почему Iterator::any должен возвращать false.1 926
Repost from Технологический Болт Генона
Discord: с марта все аккаунты в мире автоматически сделают «детскими», пока пользователи не подтвердят возраст
https://habr.com/ru/news/994528/
С начала марта 2026 года все аккаунты пользователей в мире автоматически сделают «детскими», пока их пользователи не подтвердят свой возраст. Без подтверждения нельзя заходить на сервера 18+, а если пользователь уже состоит в таких серверах, доступ к ним заблокируют. Личные сообщения для незнакомых пользователей также будут закрыты. Подтвердить свой возраст можно только паспортом и видеосканом лица, причём других способов получения доступа к информации 18+ не будет.
Без подтверждения возраста на платформе также нельзя будет смотреть большинство контента — он будет скрыт цензурой.
Что будет закрыто/ограничено на Discord для «детских» аккаунтов:
- фильтрация чувствительного контента: графические или «взрослые» материалы по умолчанию размываются, пока пользователь не подтвердит, что он взрослый;
- ограниченный доступ к возрастным чатам/сервером — доступ к серверам/командам, помеченным как для взрослых, возможен только после подтверждения возраста;
- личные сообщения в отдельный запрос‑ящик — сообщения от людей, которых вы не знаете, по умолчанию идут не в основной чат, а в отдельную папку;
- предупреждения при запросах дружбы — если кто‑то, кто вам не знаком, отправляет запрос, вы получите предупреждение;
- ограничения на «Stage» каналы — говорить в комнатах Stage могут пользователи, которые подтвердили, что они взрослые.
Оригинал
Discord Launches Teen-by-Default Settings Globally
https://discord.com/press-releases/discord-launches-teen-by-default-settings-globally
База паспортов и лиц точно никуда не утечёт.
1 926
PSA: Did you know that it’s unsafe to put code diffs into your commit messages? Like https://github.com/i3/i3/pull/6564 for example Such diffs will be applied by patch(1) (also git-am(1)) as part of the code change! This is how a sleep(1) made it into i3 4.25-2 in Debian unstable. Source (thanks @itpgchannel)
1 926
Repost from Kedr to Earth | Земля, я Кедр
Коллеги! Прошу коллективный разум совета по дальнейшему prompt injection.
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
