1.92K subscribers
3.63K photos
138 videos
15 files
3.83K links
Блог со звёздочкой.

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

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
Forwarded from Viper's Meme Treasury (NSFW) (Viperious the meme king red panda It's no longer my birthday)
😍222😁2
Из заметок к патчу Slay the Spire 2

#game
😭12🫡4😁1
Вы могли бы подумать, что многомиллионная корпорация сможет сделать приложение с консистентными иконками.

И вы были бы неправы
😁244
😁211🤩1
Любым отключателям интернета далеко до армянской бабушки Айастан Шакарян 🇦🇲

В 2011-м году 75-летняя Айастан пошла искать медь. Копнула не там — и ХУЯКС... повредила магистральный кабель, через который в Армению шёл интернет.

В итоге страна на несколько часов осталась почти без сети. Заодно задело и соседей — Грузию и Азербайджан. Айастан в СМИ начали называть "хакер с лопатой". Сама бабуля оправдывалась тем, что "понятия не имеет, что такое интернет". Ей, конечно, грозило наказание, но в итоге медную армянку отпустили с миром.

Кстати, её имя — говорящее. Айастан (Հայաստան) — это самоназвание страны, а "шакар" (շաքար) — "сахар" по-армянски. То есть звали бабушку Армения Сахарова 😅

Забавно, что нынешнему борцу с интернетом тоже под 75 годиков, и он тоже не особо понимает, что такое интернет...
Please open Telegram to view this post
VIEW IN TELEGRAM
😁36🤯2
#prog #rust #rustlib #article

🦀Building Rust Procedural Macros Without quote!: Introducing zyn

I've been writing proc macros for a while now. Derive macros for internal tools, attribute macros for instrumentation. And every time, the same two problems: quote! doesn't compose (you end up passing TokenStream fragments through five layers of helper functions and writing hundreds of let statements), and debugging generated code means cargo expand and then squinting at unformatted token output hoping something jumps out.

Because of this I ended up writing the same helper methods, composite AST parsing and tokenizing types, extractors etc. I would have to copy these from project to project as needed, and eventually just decided to publish a crate so I never have to do it again.

So I built zyn — a proc macro framework with a template language, composable components, and compile-time diagnostics.


I wrote the debug system after spending two days on a bug where a generated impl block was missing a lifetime bound. cargo expand spat out 400 lines of tokens and I couldn't find it, so I built a debug system.
🤔51👍1🤡1
Вас не смущает, что женское тело ебануто красивое? Причем от природы, да спорт может сделать женское тело еще красивее, но оно и так прекрасно.
В то же время мужское тело это просто пиздец, там нужно годами в зале помирать, чтобы было норм.

Хорошо, что девушки любят нас за пустые обещания и посмотрим.
💯23🤡7🌚5👎2😁1🤔1
#meme про истинное предназначение полиамории
11😁8
Ещё 24 февраля я написал в чате MIT'а

> Будем читать с 1 марта как "мах", от слова "махать"

https://xn--r1a.website/MIT_union/56150/124139

Опередил время получается

Теперь название платформы нужно произносить с русской «Х». На английском языке наименование пишется так же, но звучит по-другому — «МAКС», говорится в выписке из ЕГРЮЛ.

Полное официальное название мессенджера на русском языке — общество с ограниченной ответственностью «МАХ», на английском — «MAX Limited Liability Company».

Вероятно, компания не смогла использовать «ООО Макс», поскольку в России уже существует с 2022 года организация с таким названием. У нее, как и у юридического лица мессенджера, основная деятельность — «разработка компьютерного программного обеспечения».


https://xn--r1a.website/RU66RU/77793
😁14🥴3🤩1
Forwarded from Добрый вечер, я диспетчер
💯9😢6😁2🤔1🤡1
#meme про бисексуалов

и совершенно точно не жиза, не выдумывайте
😁25🫡43😢2👌2💔2🌚1😭1
😁20🫡4❤‍🔥3🤯2
#prog #rust #rustlib

bnum — библиотека для работы с обобщёнными числами, для которых на уровне типов зафиксированы: знаковость, число байт под хранение, битовая ширина и поведение при переполнении.

use bnum::prelude::*;
// imports common use items
// including the `Integer` type and the `n!` macro

// say we want to write a polynomial function
// which takes any unsigned or signed integer
// of any bit width and with any overflow behaviour
// for example, the polynomial could be p(x) = 2x^3 + 3x^2 + 5x + 7

fn p<const S: bool, const N: usize, const B: usize, const OM: u8>(x: Integer<S, N, B, OM>) -> Integer<S, N, B, OM> {
n!(2)*x.pow(3) + n!(3)*x.pow(2) + n!(5)*x + n!(7)
// type inference means we don't need to specify the width of the integers in the n! macro
}

// 2*10^3 + 3*10^2 + 5*10 + 7 = 2357
assert_eq!(p(n!(10U256)), n!(2357));
// evaluates p(10) as a 256-bit unsigned integer

type U24w = t!(U24w);
// 24-bit unsigned integer with wrapping arithmetic
type I1044s = t!(I1044s);
// 1044-bit signed integer with saturating arithmetic
type U753p = t!(U753p);
// 753-bit unsigned integer that panics on arithmetic overflow

let a = p(U24w::MAX); // result wraps around and doesn't panic
let b = p(I1044s::MAX); // result is too large to be represented by the type, so saturates to I044s::MAX
// let c = p(U753p::MAX); // this would result in panic due to overflow
🫡9🤔21
Случился мем с блокировками
💩23😁18🌚1
😁24🌚7🤣2🤯1