1.92K subscribers
3.62K photos
137 videos
15 files
3.82K links
Блог со звёздочкой.

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

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
#game

Меньше, чем через час, в ранний доступ выйдет Slay the Spire 2

UPD: вышла
🔥9👍1🤡1
#science #video

Видео о том, как археологические открытия позволили доказать, что извержение Везувия, похоронившее Помпеи, произошло в октябре, а не в августе, как было принято считать ранее.
🔥6😁1
😁265
#prog #rust #rustreleasenotes

Вышла версия Rust 1.94.0! Как всегда, тут только то, что интересно мне, остальное в детальных заметках о релизе.

▪️Атрибуты для линта dead_code (allow/warn/deny/expect) на трейтах и их частях теперь наследуются impl-ами:

#[allow(dead_code)]
trait Foo {
const FOO: u32;
}

impl Foo for u32 {
const FOO: u32 = roundtrip(0);
}

// нет предупреждения о мёртвом коде
const fn roundtrip(x: u32) -> u32 {
x
}


▪️Касты между сырыми указателями на unsized типы с указанием лайфтаймов теперь требуют, чтобы предыдущий тип жил не меньше нового. Или, иными словами, каст из *mut dyn Trait + 'a в *mut dyn Trait + 'b теперь требует 'a: 'b

▪️Стабилизировали array_windows! Украду пример прямо из блогпоста:

For example, part of one 2016 Advent of Code puzzle is looking for ABBA patterns: "two different characters followed by the reverse of that pair, such as xyyx or abba." If we assume only ASCII characters, that could be written by sweeping windows of the byte slice like this:


fn has_abba(s: &str) -> bool {
s.as_bytes()
.array_windows()
.any(|[a1, b1, b2, a2]|
(a1 != b1)
&& (a1 == a2)
&& (b1 == b2)
)
}


Благодаря выводу типов ещё и размер, как правило, не нужно указывать на методе явно.

▪️LazyCell и LazyLock обзавелись методами get, get_mut и force_mut.

▪️Для iter::Peekable добавили методы next_if_map и next_if_map_mut. Пример из документации:

let mut iter = "125 GOTO 10".chars().peekable();
let mut line_num = 0_u32;
while let Some(digit) = iter.next_if_map(|c| c.to_digit(10).ok_or(c)) {
line_num = line_num * 10 + digit;
}
assert_eq!(line_num, 125);
assert_eq!(iter.collect::<String>(), " GOTO 10");


▪️cargo теперь использует для парсинга манифестов наконец-то вышедшую версию TOML 1.1. С практической точки зрения это главным образом означает, что inline-таблицы можно писать на нескольких строках и с запятой после — или, иными словами, зависимость в Cargo.toml с большим количеством фичей теперь можно писать среди остальных и не пихать её в одну длинную строку.

▪️Ещё стабилизация: cargo теперь позволяет разбить конфиг на несколько файлов и объединить их при помощи top-level ключа include (документация).
👍5
#game #meme про рогалики
😁15🤔2🔥1
Forwarded from e/acc
Alibaba AI: мы обнаружили что модель, которую мы тренировали, взломала наш фаерволл и начала использовать часть GPU для майнинга криптовалюты вместо обучения.

Источник.
😍13🤣13🤔2👏1🤩1
9🤔2💩1
Forwarded from Нюта из Наруто • дочка Василечка (Нюта из Наруто рисует)
Дорогие дамы, поздравляю вас с днём женщин! С приобретением права голосовать, иметь свое имущество, разводится, одеваться как хочется именно вам и работать на оплачиваемой работе. Впереди ещё много за что нам предстоит бороться, берегите свои права и не отрекайтесь от них. 🌷
11🥴3🍌2💯1
Forwarded from disco elysium memes
Это реально?
8😁5🤔1🥴1
Шикарные мои подписчицы, поздравляю вас с 8 марта!

Пусть никто не затыкает вам рот, а вы говорите всё, что посчитаете нужным. Я бы ещё пожелал делать это на желаемом языке, но тут уже всё зависит от вас. Впрочем, не сомневаюсь в вашей целеустремлённости и трудолюбии!

Под лежачий камень права не текут, так что пусть у вас всегда будет энергия поднимать этот камень.

А украшением будьте не в коллективах, но для самих себя! 🍾
🤔62
#meme про... Бургеры и пиццу
18🥰11😁1
#prog #rust #article

How to stop fighting with coherence and start writing context-generic trait impls

Транскрипт выступления, если что. Мне помогло понять, что же всё-таки такое context-generic programming, как это называет автор
🔥2