Блог*
Kanalga Telegram’da o‘tish
Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here
Ko'proq ko'rsatish1 924
Obunachilar
+224 soatlar
+37 kunlar
+130 kunlar
Postlar arxiv
1 924
Repost from Generative Anton
Удар пришёл откуда не ждали: Cursor отказался генерировать код и попросил человека научиться программировать.
В очередной раз глупая машина оказалась умнее умного человека.
1 924
#rust #article
Rust in 2025: Targeting foundational software
This first post describes my general vision for how Rust fits into the computing landscape. The remaining posts will outline major focus areas that I think are needed to make this vision come to pass.
Одна из точек зрения, высказанная Нико в тексте, довольно неожиданна (но я с ней согласен): то, что инструмент низкоуровневый, не значит, что для него не важна эргономика — скорее наоборот, потому что эргономичность позволяет программисту тратить больше умственных усилий на саму задачу:
<...>the fact that foundational software needs control over low-level details only makes it more important to try and achieve good ergonomics. Anything you can do to help the developer focus on the details that matter most will make them more productive.
1 924
#prog #suckassstory
Один человек написал программу krep, для поиска слов (не регекспов) в текстовых файлах. Быстрая, с SIMD, многопоточностью и mmap. Написана на C.
Чел выложил новость об этом на Hackernews. Комментаторы начали разбирать и обнаружили паршивое поведение. В частности, один человек пишет:
So krep is: 1. Extremely fast 2. Extremely inaccurate 3. Not useful if you actually want to see what the lines actually are rather than just knowing how many there aren't Not to be facetious, but if the goal is to write a program that gives incorrect output as fast as possible I don't think you need to go as far as using AVX2.BurntSushi ожидаемо тоже засветился в ответах
1 924
Наконец-то, появилась ясность
1 924
Бедные гетеро
Бедные гомо
Никогда не поймут, какого это — быть би и получать ОТКАЗЫ ОТ ОБОИХ ПОЛОВ😏😭
1 924
Я опять умудрился пропустить годовщину своего блога — а она, между прочим, была 5 декабря. Ещё и дата довольно круглая — Блог*у 5 лет исполнилось
1 924
#prog #typescript
В Microsoft решили из-за проблем с производительностью переписать компилятор Typescript с Typescript на... #Go. Выбор языка аргументируют сочетанием контроля над раскладкой структур в памяти вкупе со сборщиком мусора и лёгкостью портирования уже имеющегося кода. На мой взгляд, очень странный выбор.
Производительность, впрочем, действительно улучшилась — прототип уже в состоянии компилировать реальные проекты на порядок быстрее.
1 924
Самая необходимая #prog-рамма на свете — uwuify (#amazingopensource?)
Hey, I think I really love you. Do you want a headpat?⬇️
hey, (ꈍᴗꈍ) i think i weawwy wuv you. ^•ﻌ•^ do y-you want a headpat?Пропускная способность считается в гигабайтах в секунду — отличное производительное решение, готовое для прода.
1 924
#prog #rust #rustlib
seq — a
seq! macro to repeat a fragment of source code and substitute into each repetition a sequential numeric counter.
use seq_macro::seq;
fn main() {
let tuple = (1000, 100, 10);
let mut sum = 0;
// Expands to:
//
// sum += tuple.0;
// sum += tuple.1;
// sum += tuple.2;
seq!(N in 0..=2 {
sum += tuple.N;
});
assert_eq!(sum, 1110);
}
Написано, конечно же, Толяном.1 924
#prog #rust #article #abnormalprogramming
Take a break: Rust match has fallthrough
One can (ab)use labelled breaks in Rust to support fallthrough-like behaviour in
match. Not at all pretty, not at all advisable, but it works, and sometimes that’s as much as we can hope for.
switch(len & 3)
{
case 3: k1 ^= tail[2] << 16;
case 2: k1 ^= tail[1] << 8;
case 1: k1 ^= tail[0];
k1 *= c1; k1 = ROTL32(k1,15); k1 *= c2; h1 ^= k1;
};
⬇️
'outer: {
'case1: {
'case2: {
'case3: {
match len & 3 {
3 => break 'case3,
2 => break 'case2,
1 => break 'case1,
_ => break 'outer,
}
} // 'case3:
k1 ^= (tail[2] as u32) << 16;
} // 'case2:
k1 ^= (tail[1] as u32) << 8;
} // case1:
k1 ^= tail[0] as u32;
k1 *= c1; k1 = k1.rotate_left(15); k1 *= c2; h1 ^= k1;
}1 924
#prog #rust #suckassstory
https://nitter.net/davidtolnay/status/1883906113428676938
TL;DR: serde_yaml от dtolnay более не поддерживается. Кто-то сделал форк под именем serde_yml и начал кидать туда коммиты, сгенерированые LLM. И этим говном при этом ещё и кто-то пользуется.
On top of this, the crate's documentation has been broken in docs·rs for the last 5 months because AI hallucinated a nonexistent rustdoc flag into the crate's configuration.(thanks @al_tch)
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
