Forwarded from мне не нравится реальность (вафель 🧇🍓)
Forwarded from Сингулярити 🎉
This media is not supported in your browser
VIEW IN TELEGRAM
Snorriсam – устройство для крепления камеры на актере.
По классике камера направлена на самого актера, что создает яркий и динамичный художественный эффект: дезориентация, измененное состояние сознания, рушащийся мир.
Не буду приводить примеры, вы сами их помните.
Как и гоупрохи, устройство именуется по названию бренда. А оно основано на фамилии двух братьев режиссеров/фотографов Эйнара и Эйдура Снорри (Einar & Eiður Snorri).
Недавно братишки показали прототип нового сноррикама с ориентацией на объекте в руке актера. Ракурс камеры управляется движением объекта – шикардос :3
Жду новых фильмов с этим ригом.
https://www.instagram.com/snorribros/
По классике камера направлена на самого актера, что создает яркий и динамичный художественный эффект: дезориентация, измененное состояние сознания, рушащийся мир.
Не буду приводить примеры, вы сами их помните.
Как и гоупрохи, устройство именуется по названию бренда. А оно основано на фамилии двух братьев режиссеров/фотографов Эйнара и Эйдура Снорри (Einar & Eiður Snorri).
Недавно братишки показали прототип нового сноррикама с ориентацией на объекте в руке актера. Ракурс камеры управляется движением объекта – шикардос :3
Жду новых фильмов с этим ригом.
https://www.instagram.com/snorribros/
Forwarded from мне не нравится реальность (вафель 🧇🍓)
Недавно приняли RFC "Pointer metadata & VTable" которое добавляет новый
По сути так было и раньше, но до этого RFC было не возможно записать эти правила средствами языка. Нельзя было узнать из чего состоит
Это позволяет очень многое, например:
—
— Специализированные структуры для хранения
— Нормально/честно/звучно работать с
Так же это первый шаг к поддержке полноценных CDST.
Я очень давно ждал эту фичу (какой это по счёту RFC на тему? 3-й?) и невероятно рад видеть что PR который её добавляет уже готов
#[lang_item]
— trait Pointee { type Metadata: ...; }
.Pointee
реализован для всех типов. Metadata
отвечает за тип метаданных (вау) в указателе (/ссылке) на этот тип. Для :Sized
и extern
типов Metadata = ()
, для str и [_]
Metadata = usize
, для dyn Trait
Metadata = DynMetadata<dyn Trait>
. Это значит что, например, &str
состоит из (*const (), usize)
.По сути так было и раньше, но до этого RFC было не возможно записать эти правила средствами языка. Нельзя было узнать из чего состоит
&T
(T: ?Sized
). Теперь можно — (*const (), <T as Pointee>::Metadata)
[0]Это позволяет очень многое, например:
—
ThinBox
, аналог Box
, но хранит метадату в куче— Специализированные структуры для хранения
?Sized
типов (у меня была идея что-то подобное написать, но на тот момент это было не возможно)— Нормально/честно/звучно работать с
dyn Trait
, а не то как делали раньше (через transmute
безопасность которого не гарантированна)Так же это первый шаг к поддержке полноценных CDST.
Я очень давно ждал эту фичу (какой это по счёту RFC на тему? 3-й?) и невероятно рад видеть что PR который её добавляет уже готов
GitHub
RFC: Pointer metadata & VTable by SimonSapin · Pull Request #2580 · rust-lang/rfcs
Add generic APIs that allow manipulating the metadata of fat pointers:
Naming the metadata’s type (as an associated type)
Extracting metadata from a pointer
Reconstructing a pointer from a data p...
Naming the metadata’s type (as an associated type)
Extracting metadata from a pointer
Reconstructing a pointer from a data p...
Так как хештег #mood себя замарал [1], введу новый хештег тупо для музыки, без какой-либо инфы. И назову его #music. Да.
А чтобы это не был пост ради поста — держите музон.
[1]: @dereference_pointer_there/572
А чтобы это не был пост ради поста — держите музон.
[1]: @dereference_pointer_there/572
YouTube
CYBERPUNK 2077 - RESIST AND DISORDER by Rezodrone (Jason Charles Miller & Jamison Boaz)
Buy Cyberpunk 2077: https://www.cyberpunk.net/us/en/buy
Get Cyberpunk 2077: Radio Vol 1: https://lnk.to/cp2077radio1
Get Cyberpunk 2077: Radio Vol 2: https://lnk.to/cp2077radio2
CYBERPUNK 2077 - RESIST AND DISORDER by Rezodrone (Jason Charles Miller & Jamison…
Get Cyberpunk 2077: Radio Vol 1: https://lnk.to/cp2077radio1
Get Cyberpunk 2077: Radio Vol 2: https://lnk.to/cp2077radio2
CYBERPUNK 2077 - RESIST AND DISORDER by Rezodrone (Jason Charles Miller & Jamison…
Forwarded from <илья as Человек> (илья шепрут)
YouTube
Crab amputates own limb
Crab attacked by Boobies is forced to amputate its own limb due to injury. Luckily, it has regenerative powers.
Courtesy of Mr J Cousteau.
Taken from 'Clipperton: The Island Time Forgot', an episode from Jacques Cousteau's Odyssey series.
Courtesy of Mr J Cousteau.
Taken from 'Clipperton: The Island Time Forgot', an episode from Jacques Cousteau's Odyssey series.
Что-то на канале в последнее время один сплошной шитпостинг. Надо уже что-то своё постить
Forwarded from мне не нравится реальность (вафель 🧇🍓)
Привет девочки!!
Мой PR в
tl;dr:
— Этот метод был предложен в RFC pr #2714
— Этот метод используется в разных крейтах и раньше его неправильные реализации приводили к UB
— Метод позволяет скопировать (склонировать) данные из вектора и добавить их в его же конец
Мой PR в
std
(alloc
) добавляющий Vec::extend_from_within
наконец-то смерджили (tracking issue)!tl;dr:
— Этот метод был предложен в RFC pr #2714
— Этот метод используется в разных крейтах и раньше его неправильные реализации приводили к UB
— Метод позволяет скопировать (склонировать) данные из вектора и добавить их в его же конец
let mut vec = vec![0, 1, 2, 3, 4];
vec.extend_from_within(2..);
assert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4]);
GitHub
add `Vec::extend_from_within` method under `vec_extend_from_within` feature gate by WaffleLapkin · Pull Request #79015 · rust-lang/rust
Implement rust-lang/rfcs#2714
tl;dr
This PR adds a extend_from_within method to Vec which allows copying elements from a range to the end:
#![feature(vec_extend_from_within)]
let mut vec = vec![0,...
tl;dr
This PR adds a extend_from_within method to Vec which allows copying elements from a range to the end:
#![feature(vec_extend_from_within)]
let mut vec = vec![0,...
#prog #c #cpp #article
C-Reduce (GitHub) — C-Reduce is a tool that takes a large C, C++, or OpenCL file that has a property of interest (such as triggering a compiler bug) and automatically produces a much smaller C/C++ file that has the same property. It is intended for use by people who discover and report bugs in compilers and other tools that process source code.
В силу того, что принципиальный алгоритм для сокращения тестов, вопреки названию, не привязан к конкретному языку, на практике с успехом применяется и для сокращения тест-кейсов на других ЯП.
Также имеется статья в двух частях (первая, вторая) от создателя о дизайне C-Reduce (в частности, о том, как там можно применить многозадачность) и о том, как он работает на практике.
C-Reduce (GitHub) — C-Reduce is a tool that takes a large C, C++, or OpenCL file that has a property of interest (such as triggering a compiler bug) and automatically produces a much smaller C/C++ file that has the same property. It is intended for use by people who discover and report bugs in compilers and other tools that process source code.
В силу того, что принципиальный алгоритм для сокращения тестов, вопреки названию, не привязан к конкретному языку, на практике с успехом применяется и для сокращения тест-кейсов на других ЯП.
Также имеется статья в двух частях (первая, вторая) от создателя о дизайне C-Reduce (в частности, о том, как там можно применить многозадачность) и о том, как он работает на практике.
GitHub
GitHub - csmith-project/creduce: C-Reduce, a C and C++ program reducer
C-Reduce, a C and C++ program reducer. Contribute to csmith-project/creduce development by creating an account on GitHub.
Блог*
#prog #c #cpp #article C-Reduce (GitHub) — C-Reduce is a tool that takes a large C, C++, or OpenCL file that has a property of interest (such as triggering a compiler bug) and automatically produces a much smaller C/C++ file that has the same property. It…
#prog #article
Данная статья рассказывает о фреймворке Perses для сокращения тестовых программ, который оперирует над вариантом контекстно-свободных грамматик, и за счёт этого:
1) Генерирует лишь синтаксически валидные программы, за счёт чего не теряет время на отбрасывание заведомо некорректных программ.
2) Позволяет проводить более продвинутые изменения кода, чем те, на которые способны более простые (Hierarchical) Delta Debugging (они также определяются в самой статье, так что не переживайте, если этот термин вам ни о чём не говорит).
3) Не привязан к конкретному языку (авторы смогли успешно применить его как для программ на C, так и для программ на Java).
Разумеется, помимо прочих вариантов авторы сравнили свой фреймворк и с C-Reduce. В смысле эффективности сжатия тестовых кейсов C-Reduce работает более эффективно за счёт большего количества C/C++-специфичных эвристик, но Perses тратит меньше времени на минимизацию и делает меньше тестовых запусков. Как итог, авторы предлагают на практике сначала запускать свой фреймворк, а потом уже допиливать при помощи C-Reduce
Данная статья рассказывает о фреймворке Perses для сокращения тестовых программ, который оперирует над вариантом контекстно-свободных грамматик, и за счёт этого:
1) Генерирует лишь синтаксически валидные программы, за счёт чего не теряет время на отбрасывание заведомо некорректных программ.
2) Позволяет проводить более продвинутые изменения кода, чем те, на которые способны более простые (Hierarchical) Delta Debugging (они также определяются в самой статье, так что не переживайте, если этот термин вам ни о чём не говорит).
3) Не привязан к конкретному языку (авторы смогли успешно применить его как для программ на C, так и для программ на Java).
Разумеется, помимо прочих вариантов авторы сравнили свой фреймворк и с C-Reduce. В смысле эффективности сжатия тестовых кейсов C-Reduce работает более эффективно за счёт большего количества C/C++-специфичных эвристик, но Perses тратит меньше времени на минимизацию и делает меньше тестовых запусков. Как итог, авторы предлагают на практике сначала запускать свой фреймворк, а потом уже допиливать при помощи C-Reduce