Блог*
#music Извините, я не буду ждать до 26 апреля. youtube.com/watch?v=C3KPlowsyJs
YouTube
I kissed a girl (but from the other girl's pov)
hello beautiful people!
this message is for all the weirdos who read the description box (aka people like me):
HAPPY NEW YEAR’S EVE!!
ugh i’m so glad to have finally posted a new cover for you guys! it’s been WAY too long, but i hope you all enjoy this…
this message is for all the weirdos who read the description box (aka people like me):
HAPPY NEW YEAR’S EVE!!
ugh i’m so glad to have finally posted a new cover for you guys! it’s been WAY too long, but i hope you all enjoy this…
Forwarded from Neural Machine
Мне так надоело быть милашкой, но мужчина должен это делать.
🫡11❤4😐3👍1🥰1
Forwarded from Не баг, а фича
This media is not supported in your browser
VIEW IN TELEGRAM
Суровые зимы никого не щадят: в Reddit вирусится видео с участием внедорожника Cybertruck, который ЗАБУКСОВАЛ в снегу.
Ситуация – сюр: в крупном городе Канады, Монреал, мимо проходящий чел записал на видео, как Cybertruck с тяжестью пытается осилить несколько сантиметров снега.
Комментаторы придумали тачке УГАРНЫЙ слоган: «Создано для любой планеты, если только на ней нет снега».
@bugfeature | #cybertruck
Ситуация – сюр: в крупном городе Канады, Монреал, мимо проходящий чел записал на видео, как Cybertruck с тяжестью пытается осилить несколько сантиметров снега.
Комментаторы придумали тачке УГАРНЫЙ слоган: «Создано для любой планеты, если только на ней нет снега».
@bugfeature | #cybertruck
❤8😐2
В этот день лицемерия и шовинизма желаю всем своим папищекам-мужчинам категорию "Д" в военном билете
👍49🤡16🙏8❤4❤🔥1👎1😁1
Три года назад Путин объявил войну Украине.
Война, которая унесла множество жизней.
Война, внятной причины которой не было ни тогда, ни сейчас.
Война, которая могла бы давно закончиться, если бы другие государства не тянули с военной помощью Украине и если бы не строили иллюзии насчёт того, что Путин является кем-то помимо поехавшего деда у власти.
Путин ведёт себя, как Гитлер, и в будущих учебниках истории встанет в один с ним ряд. С одной большой разницей: Путина осудят за преступления, ибо у него явно не хватит духа покончить с собой.
Украина была, есть и будет. А Путин просто сдохнет.
Война, которая унесла множество жизней.
Война, внятной причины которой не было ни тогда, ни сейчас.
Война, которая могла бы давно закончиться, если бы другие государства не тянули с военной помощью Украине и если бы не строили иллюзии насчёт того, что Путин является кем-то помимо поехавшего деда у власти.
Путин ведёт себя, как Гитлер, и в будущих учебниках истории встанет в один с ним ряд. С одной большой разницей: Путина осудят за преступления, ибо у него явно не хватит духа покончить с собой.
Украина была, есть и будет. А Путин просто сдохнет.
👍64🤡64🤣44❤33💩16😢7👎3🎉3😁2🤔1🌚1
Forwarded from Plot
Комитет по охране памятников организовал экспертизу, чтобы определить, как звали убийцу Пушкина
Привет, это Софья. Смешная бюрократическая история развивается в Санкт-Петербурге.
Юристка Юлия Коновалова уже два года просит Минкульт и КГИОП* исправить ошибку в документах, которая закралась туда в 2001 году. В реестре объектов культурного наследия место дуэли Александра Пушкина на Коломяжском проспекте, в сквере у станции «Новая деревня», указано как «Место, где 27 января 1837 г. состоялась дуэль поэта Пушкина А.С. с Дантесом Э.».
Но Дантес — не Э., а Ж.Ш.! Жорж Шарль, французский офицер. Эдмон Дантес — это граф Монте-Кристо, главный герой романа Александра Дюма.
По словам Коноваловой, у нее нет никаких дел, связанных с Минкультом и КГИОП — и интерес к этому вопросу не связан с ее профессиональной деятельностью. Просто она хорошо училась в школе, любила Дюма — и точно знает, что Эдмон в этой истории не замешан. Опечатку, по ее словам, она увидела случайно. И из интереса обратилась в инстанции с просьбой ее исправить. Переписка длится с января 2023 года — опечатка все еще в реестре. КГИОП при этом ошибку признает — и обещает исправить, но только после вмешательства Минкульта. Минкульт кивает на КГИОП. Получается замкнутый круг. Все акты этой истории Коновалова описала здесь.
«Фонтанка» обратилась в КГИОП за комментарием — изданию тоже подтвердили ошибку. Чтобы исправить опечатку в постановлении правительства РФ, комитет огранизовал государственную историко-культурную экспертизу. Видимо, чтобы определить, что в Пушкина стрелял именно Жорж Шарль, а не вымышленный Эдмон. Или чтобы точно установить, что соперника Пушкина звали именно так — и никак иначе. Проверка идет, по информации издания, «за внебюджетный счет».
___
КГИОП — Комитет по государственному контролю, использованию и охране памятников истории и культуры
Иллюстрации: слева — Эдмон Дантес, граф Монте-Кристо. Справа — Жорж Шарль Дантес, соперник Пушкина.
Привет, это Софья. Смешная бюрократическая история развивается в Санкт-Петербурге.
Юристка Юлия Коновалова уже два года просит Минкульт и КГИОП* исправить ошибку в документах, которая закралась туда в 2001 году. В реестре объектов культурного наследия место дуэли Александра Пушкина на Коломяжском проспекте, в сквере у станции «Новая деревня», указано как «Место, где 27 января 1837 г. состоялась дуэль поэта Пушкина А.С. с Дантесом Э.».
Но Дантес — не Э., а Ж.Ш.! Жорж Шарль, французский офицер. Эдмон Дантес — это граф Монте-Кристо, главный герой романа Александра Дюма.
По словам Коноваловой, у нее нет никаких дел, связанных с Минкультом и КГИОП — и интерес к этому вопросу не связан с ее профессиональной деятельностью. Просто она хорошо училась в школе, любила Дюма — и точно знает, что Эдмон в этой истории не замешан. Опечатку, по ее словам, она увидела случайно. И из интереса обратилась в инстанции с просьбой ее исправить. Переписка длится с января 2023 года — опечатка все еще в реестре. КГИОП при этом ошибку признает — и обещает исправить, но только после вмешательства Минкульта. Минкульт кивает на КГИОП. Получается замкнутый круг. Все акты этой истории Коновалова описала здесь.
«Фонтанка» обратилась в КГИОП за комментарием — изданию тоже подтвердили ошибку. Чтобы исправить опечатку в постановлении правительства РФ, комитет огранизовал государственную историко-культурную экспертизу. Видимо, чтобы определить, что в Пушкина стрелял именно Жорж Шарль, а не вымышленный Эдмон. Или чтобы точно установить, что соперника Пушкина звали именно так — и никак иначе. Проверка идет, по информации издания, «за внебюджетный счет».
___
КГИОП — Комитет по государственному контролю, использованию и охране памятников истории и культуры
Иллюстрации: слева — Эдмон Дантес, граф Монте-Кристо. Справа — Жорж Шарль Дантес, соперник Пушкина.
😁22🥴4
Блог*
В const-контекстах теперь можно использовать &mut-ссылки
Я, кстати, пробовал свой compile-time fizzbuzz переписать, используя мутабельность, но короче или яснее он от этого не стал :/
Telegram
Блог*
#prog #rust #моё
(этот текст является логическим продолжением моей статьи о compile time Fizzbuzz, так что если вы её ещё не читали — настоятельно рекомендую начать с неё)
Кое-что при реализации всего этого дела я упустил: конечным продуктом всех этих type…
(этот текст является логическим продолжением моей статьи о compile time Fizzbuzz, так что если вы её ещё не читали — настоятельно рекомендую начать с неё)
Кое-что при реализации всего этого дела я упустил: конечным продуктом всех этих type…
😢2🤔1
#prog #rust #rustreleasenotes
(да, я пишу с опозданием почти в неделю, и что?)
Вышла версия Rust 1.85.0! Как всегда, тут только интересные мне части, остальное в полных заметках о релизе.
▪️Релизнули новую редакцию Rust 2024 edition! К сожалению, новая версия диапазонов не попала в эту версию.
🔸в
🔸также временные значения из последнего выражения в блоке теперь дропаются в конце блока, а не продолжают жить после него. Без этого изменения некоторый вполне нормально выглядящий код не компилировался:
🔸запрещены некоторые паттерны, которые крайне неочевидным образом взаимодействуют с pattern match ergonomics. Посмотрите по ссылке, там действительно странные вещи.
🔸
🔸cargo теперь по умолчанию учитывает MSRV при выборе версии зависимости.
Пачка изменений, связанных с unsafe кодом:
🔸
🔸атрибуты
🔸unsafe_op_in_unsafe_fn warn по умолчанию.
🔸ссылки на
🔸если компилятор не может вывести тип, к которому нужно привести выражение типа
▪️Теперь замыкания могут быть
В отличие от замыканий, возвращающих
▪️
▪️Для беззнаковых чисел, соответствующих
▪️В
▪️
(да, я пишу с опозданием почти в неделю, и что?)
Вышла версия Rust 1.85.0! Как всегда, тут только интересные мне части, остальное в полных заметках о релизе.
▪️Релизнули новую редакцию Rust 2024 edition! К сожалению, новая версия диапазонов не попала в эту версию.
🔸в
if let
значение, по которому идёт сопоставление с образцом, теперь дропается перед входом в else ветку вместо после конца if let. Это позволило, в частности, избежать багов, когда guard из примитива синхронизации живёт дольше необходимого.🔸также временные значения из последнего выражения в блоке теперь дропаются в конце блока, а не продолжают жить после него. Без этого изменения некоторый вполне нормально выглядящий код не компилировался:
// не компилируется до Rust 2024, компилируется после
fn f() -> usize {
let c = RefCell::new("..");
c.borrow().len()
}
🔸запрещены некоторые паттерны, которые крайне неочевидным образом взаимодействуют с pattern match ergonomics. Посмотрите по ссылке, там действительно странные вещи.
🔸
std::env::set_var
, std::env::remove_var
и std::os::unix::process::CommandExt::before_exec
теперь являются unsafe функциями. Сделать их unsafe
во всех редакциях, увы, мешает обратная совместимость.🔸cargo теперь по умолчанию учитывает MSRV при выборе версии зависимости.
Пачка изменений, связанных с unsafe кодом:
🔸
extern
-блоки теперь должны быть объявлены с unsafe, чтобы показать, что ответственность за корректность определений лежит на том, кто пишет extern
блок. Дополнительно определения внутри extern
-блока теперь могут быть помечены safe
. В этом случае компилятор будет предполагать, что для доступа и использования этих определений не нужны специальные предусловия, и их можно использовать вне unsafe
-блоков. В качестве примера можно привести sqrt
из стандартной библиотеки C: не смотря на то, что это внешняя функция, её можно вызвать с любым значением, не вызывая UB.🔸атрибуты
no_mangle
, export_name
и link_section
теперь должны быть записаны через #[unsafe(...)]. С этими атрибутами можно сломать гарантии, которые даёт компилятор, и компилятор не может проверить, что их использование корректно.🔸unsafe_op_in_unsafe_fn warn по умолчанию.
🔸ссылки на
static mut
являются по умолчанию ошибкой компиляции.🔸если компилятор не может вывести тип, к которому нужно привести выражение типа
!
, то он использует т. н. fallback. До Rust 2024 это был ()
, теперь это !
. Так как это может сломать существующий unsafe
-код, компилятор теперь по умолчанию даёт ошибку компиляции, если такое приведение происходит в unsafe-коде.▪️Теперь замыкания могут быть
async
!let mut vec: Vec<String> = vec![];
let closure = async || {
vec.push(ready(String::from("")).await);
};
В отличие от замыканий, возвращающих
async
-блок, футуры, возвращаемые этими замыканиями, могут использовать ссылки на то, что замыкание захватывает. В типах это выражается тем, что возвращаемые async
-замыканиями футуры связаны временем жизни с самим замыканием. Из-за того, что эту связь пока что невозможно выразить с обычными Fn*
-трейтами, в core::ops
добавили AsyncFnOnce, AsyncFnMut и AsyncFn. Как и обычные Fn*
-трейты, в ограничениях их можно использовать лишь в засахаренном виде.▪️
FromIterator
и Extend
теперь реализованы для всех кортежей до арности 12 включительно и имеют семантику, аналогичную Iterator::unzip
.▪️Для беззнаковых чисел, соответствующих
NonZero
и чисел с плавающей точкой добавили метод midpoint. Тривиальная вещь, но из-за переполнения её очень легко реализовать неправильно.▪️В
const
-контексте теперь можно использовать, помимо прочего, несколько простых арифметических функций на числах с плавающей точкой и swap
, как на ссылках, так и на сырых указателях.▪️
macro_rules
, объявленные макросами, теперь используют редакцию кода, в котором они раскрываются, вместо редакции кода, в котором определён внешний макрос.🎉12❤🔥2👍1