1.83K subscribers
3.3K photos
132 videos
15 files
3.58K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
Может ли человек генерировать случайные числа независимо и равновероятно?

Попробуйте Aaronson Oracle. Его суть проста: надо нажимать случайно на клавиатуре буквы f и d. А далее простая модель (про ее работу можно почитать здесь) будет пытаться предсказывать вашу следующую букву.

Если вы набираете буквы равновероятно и независимо, то модель будет угадывать примерно в 50% случаев. Если нет — то ваш паттерн набора, скорее всего, все еще будет случайным, но явно не будет похож на последовательность независимых случайных событий.

Можете считать этот сайт наглядной демнострацией того, что люди не понимают интуитивно, как должна выглядеть последовательность испытаний Бернулли (т.е. бросков монетки, после которых фиксируется, упала ли монета орлом или решкой)
👍5💩1
Я довольно неплохо знаю свою аудиторию, а потому запускаю второй публичный канал, который, я надеюсь, зайдёт бОльшей части моих подписчиков. Присоединяйтесь, репостите.

t.iss.one/only_traps
😁29👍8💩6🔥53🖕2
Блог* pinned «Я довольно неплохо знаю свою аудиторию, а потому запускаю второй публичный канал, который, я надеюсь, зайдёт бОльшей части моих подписчиков. Присоединяйтесь, репостите. t.iss.one/only_traps»
💩1
Forwarded from THINGS PROGRAMMERS DO
😁23💩1
То есть когда компилятор делает name mangling — это абсолютно нормально и не вызывает вопросов, но когда я пишу такой код напрямую — это сразу обфускация и грубое нарушение хороших практик?! 😤
😁18🌚3👎2💩1🤡1
Сдавая кровь на анализы в поликлиннике, произвёл небольшой фурор своими ноготочками и получил шоколадку.
😁123👍2❤‍🔥1💩1
#prog #rust

Если вам вдруг потребовалось сделать набор взаимоисключающих фичи, то вместо квадратичного бойлерплейта с перечислением каждой пары фич и использованием compile_error! можно сделать так:

// `foo`, `bar` и `baz` взаимно исключают друг друга

// #[deny(const_err)] для Rust
до версии 1.66
#[rustfmt::skip]
const _USE_ONLY_ONE_OF_FOO_BAR_BAZ: [(); 1] = [
();
0
+ cfg!(foo) as usize
+ cfg!(bar) as usize
+ cfg!(baz) as usize
];

Ошибка не столь ясная, как в случае с compile_error!, но этот паттерн тривиально масштабируется на любое количество фичей.
👍10🤔3💩1
Блог*
#prog #rust Если вам вдруг потребовалось сделать набор взаимоисключающих фичи, то вместо квадратичного бойлерплейта с перечислением каждой пары фич и использованием compile_error! можно сделать так: // `foo`, `bar` и `baz` взаимно исключают друг друга //…
@tyranron совершенно справедливо добавил, что ошибку можно сделать и более читаемой:

#[deny(const_err)]
const _: () = {
let n_activated = cfg!(foo) as usize + cfg!(bar) as usize + cfg!(baz) as usize;
if n_activated != 1 {
panic!("Only one of `foo`, `bar` or `baz` can be used")
}
};

Но это требует наличия паники в const-контексте, что доступно только с версии 1.57, в то время как вариант с длинной массива работает даже на Rust 1.0.
👍4💩1
Forwarded from ozkriff.games 🦀 (ozkriff🇺🇦)
# godbolt.org's LLVM Opt Pipeline View

Not exactly fresh news but it turns out that Compiler Explorer got an amazing feature last year: ability to step through the individual LLVM optimization passes and see what exact effect it has on your code sample. 🤯

Example: https://rust.godbolt.org/z/46P8MP3x1
👍12🔥3🤯1💩1
#prog #meme

GNU-стиль — это вообще мем. Тип, зачем люди вообще так пишут, да ещё и добровольно?
💩1