Блог*
Відкрити в Telegram
Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here
Показати більше1 982
Підписники
Немає даних24 години
+17 днів
+2030 днів
Триває завантаження даних...
Схожі канали
Хмара тегів
Вхідні та вихідні згадування
---
---
---
---
---
---
Залучення підписників
жовтень '26жовт '26
жовтень '26
+7
в 2 каналах
вересень '26
+41
в 1 каналах
Get PRO
серпень '26
+48
в 4 каналах
Get PRO
липень '26
+78
в 2 каналах
Get PRO
червень '26
+29
в 2 каналах
Get PRO
травень '26
+45
в 4 каналах
Get PRO
квітень '26
+51
в 3 каналах
Get PRO
березень '26
+31
в 4 каналах
Get PRO
лютий '26
+34
в 3 каналах
Get PRO
січень '26
+56
в 9 каналах
Get PRO
грудень '25
+76
в 11 каналах
Get PRO
листопад '25
+106
в 7 каналах
Get PRO
жовтень '25
+56
в 10 каналах
Get PRO
вересень '25
+46
в 6 каналах
Get PRO
серпень '25
+44
в 5 каналах
Get PRO
липень '25
+62
в 9 каналах
Get PRO
червень '25
+42
в 2 каналах
Get PRO
травень '25
+85
в 6 каналах
Get PRO
квітень '25
+52
в 5 каналах
Get PRO
березень '25
+62
в 3 каналах
Get PRO
лютий '25
+57
в 4 каналах
Get PRO
січень '25
+90
в 6 каналах
Get PRO
грудень '24
+61
в 4 каналах
Get PRO
листопад '24
+167
в 5 каналах
Get PRO
жовтень '24
+95
в 5 каналах
Get PRO
вересень '24
+84
в 4 каналах
Get PRO
серпень '24
+98
в 9 каналах
Get PRO
липень '24
+66
в 8 каналах
Get PRO
червень '24
+59
в 3 каналах
Get PRO
травень '24
+47
в 4 каналах
Get PRO
квітень '24
+73
в 10 каналах
Get PRO
березень '24
+65
в 7 каналах
Get PRO
лютий '24
+88
в 1 каналах
Get PRO
січень '24
+80
в 3 каналах
Get PRO
грудень '23
+88
в 5 каналах
Get PRO
листопад '23
+59
в 2 каналах
Get PRO
жовтень '23
+46
в 2 каналах
Get PRO
вересень '23
+93
в 0 каналах
Get PRO
серпень '23
+78
в 0 каналах
Get PRO
липень '23
+59
в 0 каналах
Get PRO
червень '23
+57
в 0 каналах
Get PRO
травень '23
+41
в 0 каналах
Get PRO
квітень '23
+55
в 0 каналах
Get PRO
березень '23
+39
в 0 каналах
Get PRO
лютий '23
+36
в 0 каналах
Get PRO
січень '23
+118
в 0 каналах
Get PRO
грудень '22
+56
в 0 каналах
Get PRO
листопад '22
+48
в 0 каналах
Get PRO
жовтень '22
+62
в 0 каналах
Get PRO
вересень '22
+24
в 0 каналах
Get PRO
серпень '22
+46
в 0 каналах
Get PRO
липень '22
+34
в 0 каналах
Get PRO
червень '22
+34
в 0 каналах
Get PRO
травень '22
+36
в 0 каналах
Get PRO
квітень '22
+49
в 0 каналах
Get PRO
березень '22
+19
в 0 каналах
Get PRO
лютий '22
+41
в 0 каналах
Get PRO
січень '22
+49
в 0 каналах
Get PRO
грудень '21
+88
в 0 каналах
Get PRO
листопад '21
+75
в 0 каналах
Get PRO
жовтень '21
+172
в 0 каналах
Get PRO
вересень '21
+63
в 0 каналах
Get PRO
серпень '21
+130
в 0 каналах
Get PRO
липень '21
+74
в 0 каналах
Get PRO
червень '21
+79
в 0 каналах
Get PRO
травень '21
+66
в 0 каналах
Get PRO
квітень '21
+100
в 0 каналах
Get PRO
березень '21
+81
в 0 каналах
Get PRO
лютий '21
+42
в 0 каналах
Get PRO
січень '21
+103
в 0 каналах
Get PRO
грудень '20
+663
в 0 каналах
| Дата | Залучення підписників | Згадування | Канали | |
| 07 жовтня | +2 | |||
| 06 жовтня | +1 | |||
| 05 жовтня | +1 | |||
| 04 жовтня | 0 | |||
| 03 жовтня | +3 | |||
| 02 жовтня | 0 | |||
| 01 жовтня | 0 |
Дописи каналу
| 2 | "Famous car" | 440 |
| 3 | Немає тексту... | 517 |
| 4 | Во избежание оффтопа под постом о поиске работы срач дискуссию о криптовалютах обсуждайте в комментариях под этим постом | 493 |
| 5 | ^Папищеки, обращаюсь к вам за помощью: поделитесь, пожалуйста, особенно если вы знаете, что у вас на работе есть открытая вакансия. Буду признателен за помощь | 489 |
| 6 | Меня зовут Антон, и в настоящий момент я ищу работу.
У меня 5 лет опыта в программировании. Коллеги говорят, что я мидл по уровню знаний.
Я знаю английский на достаточном уровне, чтобы читать технические тексты и общаться с коллегами насчёт рабочих решений.
Rust — язык программирования, который я знаю лучше всего, но я также разбираюсь в C и C++.
Касательно моей квалификации:
* Я провёл доклад на конференции Rustcon 2021.
* Я вносил вклад в репозиторий Rust, включая добавление новой минорной языковой фичи.
* Я периодически пишу в этом блоге на технические темы. В число этих постов входит:
- Compile-time Fizzbuzz (+продолжение, где искомая строка превращается в одну константу в .rodata).
- Хэш-таблица для хранения коллбеков, индексируемая типом аргумента коллбека.
- Пул строк, позволяющий переиспользовать память и выдающий токены, по которым можно получить доступ к содержимому строки без обращения к самому пулу.
- Реализация match по префиксам строк и по строкам с игнорированием регистра символов.
В настоящий момент я живу в Армении и потому ищу работу преимущественно на удалёнке, но варианты с релокацией тоже рассматриваю. Я ищу вакансию, которая позволит мне работать с Rust или преимущественно с Rust, которая позволит принимать решения касательно системы целиком и которая приносит непосредственную пользу реальным людям.
Я не заинтересован в вакансиях, связанных с криптовалютами и блокчейном.
По предложениям обращайтесь мне в личку в Telegram, это мой предпочтительный способ связи: @insert_reference_here. | 540 |
| 7 | Немає тексту... | 508 |
| 8 | The most important thing in IT is | 587 |
| 9 | Немає тексту... | 572 |
| 10 | https://ayles.github.io/doom-in-kernel/
Коллеги (на этот раз действительно коллеги!) подогнали прекрасное - Doom, на #eBPF, в ядре Linux.
"Прекрасное" потому что идет наперекор тому, как пытается работать eBPF.
eBPF, для каждой загружаемой программы, пытается доказать, что программа не зависнет, и что программа не ездит по памяти.
Второе, допустим, просто, поколения программистов вычистили исходники Doom так, что игра работает и без проездов.
Первое - сложно, и чуваки поступили, на мой вкус, весьма #изящно!
Они запилили свой компилятор поверх LLVM.
Он режет обычный C-код на "регионы" - куски без сложных циклов и вызовов. Регион обрывается на каждом вызове функции, возврате, неудобном обратном ребре цикла или yield. В конце он сохраняет state в память, и возвращает номер следующего региона.
Регионы гоняет маленький диспетчер из трёх вложенных ограниченных циклов: 32x2048x64, около 4*10^6 регионов за один вызов. Если бюджет кончился, программа возвращает "не доделано" с номером продолжения, и userspace вызывает её снова.
Ну а верификатор доказывает завершение не DOOM, а очередного региона и диспетчера.
И он может это сделать, потому что видит набор кусков, каждый из которых заканчивается обычным return, плюс цикл с константной границей. Прыжков "регион 18 -> регион 42" в графе управления нет: это число, записанное в память. Рекурсия, глубокие вызовы и длинные циклы существуют только во время исполнения, как последовательность этих чисел.
Я бы тут поинтересовался у коллег, почему того же самого нельзя было добиться source трансформацией кода, превратив его в async код через с++ корутины, трансформация ровно та же самая получается - куча блоков с return, и цикл dispatch над ними сверху, но сути это не меняет. | 402 |
| 11 | Немає тексту... | 657 |
| 12 | Немає тексту... | 691 |
| 13 | Re: I spent $220 on Google app ads and 60% of the installs were robots
My favorite story:
1. Dev publishes app with Google Admob integration to the Play Store.
2. Buys Google Ads to drive traffic to the app.
3. Google Admob bans his account for invalid traffic.
https://www.reddit.com/r/admob/comments/1vzg3fu/i_paid_googl...
yunusabd, 5 hours ago | 748 |
| 14 | Немає тексту... | 749 |
| 15 | Source | 767 |
| 16 | Немає тексту... | 674 |
| 17 | Немає тексту... | 1 426 |
| 18 | #prog #rust #article
Generic Const Args and You
Статья о текущем состоянии экспериментальной поддержки констант в типовой системе Rust. | 828 |
| 19 | #prog #rust #rustreleasenotes
Вышел Rust 1.99.0! Бла-бла-бла, детали.
▪️В Rust добавили вариадики! ...Сишные. Раньше эти функции можно было декларировать, а теперь можно и определять:
/// SAFETY: must be called with (at least) 2 i32 arguments.
unsafe extern "C" fn sum(mut args: ...) -> i32 {
// SAFETY: guaranteed by the caller.
let a = unsafe { args.next_arg::<i32>() };
let b = unsafe { args.next_arg::<i32>() };
a + b
}
fn foo() -> i32 {
unsafe { sum(0i32, 2i32) }
}
Список типов, значения которых можно доставать через next_arg, ограничен sealed трейтом VaArgSafe. Связано это с тем, что в C значения некоторых типов при передаче в вариадическую функцию кастуются в более крупные типы, поэтому их по определению из VaList достать нельзя. Кстати, сам VaList, если сильно нужно, можно передавать явно и даже клонировать.
Также такие функции могут быть #[naked], и по очевидным причинам их нужно писать на ассемблере.
▪️Пачка линтов unused теперь включает в себя unreachable_cfg_select_predicates.
▪️Теперь гарантируется, что получить доступ к содержимому UnsafeCell<T> можно через каст сырого указателя в указатель на T, использовать UnsafeCell::get необязательно. Общие правила насчёт unsafe, соблюдающего правила языка, остаются в силе.
▪️RangeInclusive исторически плохо оптимизировался из-за того, что последняя итерация должна была обрабатываться отдельно. Это в какой-то мере исправили, добавив в трейт Step, на который опираются диапазоны, методы для итерации с возвратом флага переполнения.
▪️Если имя метода неправильное (несуществующее), но является именем из #[doc(alias)] на существующем методе, то этот метод будет предложен в первую очередь, выше имён со схожим написанием.
▪️Стабилизировали API, включая:
🔸IntoIterator на Box<[T; N]>, &Box<[T; N]> и &mut Box<[T; N]>.
🔸VecDeque::retain_back: выкинуть из деки все элементы, кроме указанного числа последних.
🔸Box::into_non_null и Box::from_non_null.
🔸Vec::into_parts и Vec::from_parts, где parts — это тройка из NonNull указателя на аллокацию, длины и ёмкости.
🔸core::mem::{size_of_val_raw, align_of_val_raw} и core::alloc::Layout::for_value_raw, аналогичные существующим функциям без *_raw, но работающие на сырых указателях. Разумеется, unsafe.
🔸std::fs::{set_times, set_times_nofollow} для установки временных отметок на файлах. На всех OS можно менять время доступа и модификации. Дополнительно на Windows и OS от Apple можно менять время создания. *_nofollow вариант при использовании на символической ссылке меняет атрибуты самой ссылки, а не файла, на который она указывает (довольно кривой дизайн, кмк: что, если потом нужно расширить набор флагов? Не делать же по функции на каждую комбинацию).
▪️В rustdoc добавили линт, предупреждающий о неиспользованных сносках в документации. | 907 |
| 20 | Что, простите? | 796 |
