Блог*
الذهاب إلى القناة على Telegram
Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here
إظهار المزيد1 927
المشتركون
+124 ساعات
+17 أيام
-530 أيام
أرشيف المشاركات
1 928
#prog #go
6 февраля вышла версия Go 1.22.
Среди прочего в стандартную библиотеку добавлен пакет math/rand/v2. Примечательно это по двум причинам.
Первая: это первый случай, когда в стандартную библиотеку Go добавляют вторую версию пакета. На мой взгляд, это вполне себе довод в пользу того, чтобы не делать std слишком богатой. (Конечно, тут ещё далеко до безобразия Python с urllib3, но кто знает, может, и до этого дойдёт).
Вторая: в proposal на этот пакет упомянуто следующее:
2. Remove Source.Seed, Rand.Seed, and top-level Seed. Top-level Seed is deprecated as of Go 1.20. Source.Seed and Rand.Seed assume that the underlying source can be seeded by a single int64, which is only true of a limited number of sources. Specific source implementations can provide Seed methods with appropriate signatures, or none at all for generators that cannot be reseeded; the details of seeding do not belong in the general interface. [выделение моё]
В оригинальном дизайне rand получение случайных значений действовало через тип
Rand, который оборачивал значение, реализующее интерфейс Source:
type Source interface {
Int63() int64
Seed(seed int64)
}
В v2 метод Seed убрали, а метод Int63 поменяли на Int64 — и совершенно верно, ибо в этом интерфейсе торчали уши конкретной дефолтной реализации Source. Однако заявление "the details of seeding do not belong in the general interface", как мне кажется, вызвано не общими соображениями, а ограничениями Go. Именно, в идеале у каждого источника случайности должен быть свой тип для сида — но в Go нельзя сделать тип, который является частью интерфейса и который может быть определён реализацией.
Для сравнения, в растовом rand инициализация из начального значения вынесена в отдельный трейт SeedableRng, где сид определяется через ассоциированный тип.
===========
Другая вещь, которая куда как более стрёмная — это тот факт, что тип Rand может запрашивать данные из Source только через метод Int64, а потому остальные методы не могут эксплуатировать тот факт, что они работают с конкретным типом источника случайности, и потому не могут использовать специфичные для этих типов оптимизации. В частности, реализация Rand.Int32 попросту зовёт Int64 на внутреннем Source и делает битовый сдвиг, отбрасывая младшие 33 бита. Если Rand.Int32 вызывается в цикле, то выходит, что где-то половина работы источника случайности уходит в никуда.1 928
#prog #rust #article
Rust web frameworks have subpar error reporting
Автор излагает свои требования к репорту и обработке ошибок (TL;DR: ошибки не должны теряться ни для клиента веб-сервера, ни для админа веб-сервера), показывает, как в этом отношении не работают ни axum, ни actix-web (хотя последний близок) и показывает, как эта проблема решается в его новом веб-фреймворке, pavex.
1 928
#prog #article
В этой статье лодочник ссылается на Futures aren't ersatz threads. Говорящее название.
Futures present a concurrent programming model that is appealing on its own [выделение моё]. They should not be seen as a poor-man’s version of threads.
1 928
#prog #rust #rustasync #article
Цитата из статьи лодочника Let futures be futures, в которой он аргументирует против попыток унифицировать синхронный и асинхронный код.
1 928
#prog #rust #rustlib
embedded-cli — CLI in Rust with autocompletion, subcommands, options, help and history for embedded systems (like Arduino or STM32)
По понятным причинам требует предоставления внешних буферов для обработки аргументов.
1 928
https://daily.afisha.ru/news/84557-sibirskie-aktivisty-usmotreli-propagandu-lgbt-v-duolingo-i-potrebovali-zablokirovat-prilozhenie/
Оригинальный источник — сайт vn . ru, но он у меня не открывается
1 928
Repost from 💞Gay Mems🔥 | Гей мемы 💪
Вы не поверите, но в России потребовали заблокировать Duolingo. Активисты нашли в приложении фразы, которые сочли пропагандой «нетрадиционных отношений». Например:
Бен и Питер любят друг друга. Они геи
Клара встретила свою жену Марию в гей-баре
Они думают, что мы друзья, но мы — гей-пара
У моей бабушки есть девушка
Питер и Макс счастливы в бракеПожаловались на зелёную сову родители уфимских школьников, которые якобы не знают, как пояснить эти фразы детям, не травмировав их психику
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
