#prog #rust #article от Амоса (и чуток про #go)
Some mistakes Rust doesn't catch
(thanks @ihatereality)
Some mistakes Rust doesn't catch
(thanks @ihatereality)
fasterthanli.me
Some mistakes Rust doesn't catch
I still get excited about programming languages. But these days, it’s not so much because of what they let me do, but rather what they don’t let me do.
Ultimately, what you can with a programming l...
Ultimately, what you can with a programming l...
🎉2💩1
Forwarded from мне не нравится реальность
Наконец-то посмотрел более продвинутый доклад от того же автора:
— C++ and Beyond 2012: Herb Sutter - atomic Weapons 1 of 2
— C++ and Beyond 2012: Herb Sutter - atomic Weapons 2 of 2
Тоже очень интересный доклад, хоть и совсем не настолько beginner-friendly. Если вам интересно не только, как в общем работают атомики, но и почему они так работают и как использовать не
— C++ and Beyond 2012: Herb Sutter - atomic Weapons 1 of 2
— C++ and Beyond 2012: Herb Sutter - atomic Weapons 2 of 2
Тоже очень интересный доклад, хоть и совсем не настолько beginner-friendly. Если вам интересно не только, как в общем работают атомики, но и почему они так работают и как использовать не
SeqCst
ордеринги — рекомендую!YouTube
C++ and Beyond 2012: Herb Sutter - atomic Weapons 1 of 2
https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-1-of-2
Download the slides. https://1drv.ms/b/s!Aq0V7yDPsIZOgcI0y2P8R-VifbnTtw
Abstract:
This session in one word: Deep.
It's a session that includes topics I've…
Download the slides. https://1drv.ms/b/s!Aq0V7yDPsIZOgcI0y2P8R-VifbnTtw
Abstract:
This session in one word: Deep.
It's a session that includes topics I've…
Там Вафель стримит, как он пишет на расте Bimap
Twitch
wafflelapkin - Twitch
I do stuff; it/its
Где-то — увы, не помню уже, где — читал про критерий роста себя, как писателя. Мол, если ты читаешь свои старые тексты годичной давности и они не вызывают у тебя желания переписать их, то ты остановился в развитии.
С применением этого принципа к себе у меня есть затруднения. С кодом это более-менее работает, а вот с текстами авторских постов — нет. Когда я перечитываю старые посты, у меня, бывает, возникает желание переписать некоторые корявые формулировки (а они бывают в силу того, что я пишу сразу начисто), но никогда не бывает желания переписать с нуля.
В предположении об истинности этого принципа возможны два случая. Первый — выглядящий крайне нереалистичным — то, что я уже пишу практически идеально. Второй — я действительно не развиваюсь и слеп к собственным недостаткам. В связи с этим я бы хотел узнать ваше мнение.
Что вы думаете о том, как я пишу? Что есть хорошего, а что стоит поменять? Хочу отметить, что я спрашиваю именно о слоге, а не о тематике.
С применением этого принципа к себе у меня есть затруднения. С кодом это более-менее работает, а вот с текстами авторских постов — нет. Когда я перечитываю старые посты, у меня, бывает, возникает желание переписать некоторые корявые формулировки (а они бывают в силу того, что я пишу сразу начисто), но никогда не бывает желания переписать с нуля.
В предположении об истинности этого принципа возможны два случая. Первый — выглядящий крайне нереалистичным — то, что я уже пишу практически идеально. Второй — я действительно не развиваюсь и слеп к собственным недостаткам. В связи с этим я бы хотел узнать ваше мнение.
Что вы думаете о том, как я пишу? Что есть хорошего, а что стоит поменять? Хочу отметить, что я спрашиваю именно о слоге, а не о тематике.
❤6
Forwarded from мне не нравится реальность
Вчера я провёл стрим, где начал писать двухсторонюю хэшмапу. Т.е. если в обычной
Всё пошло не так, как бы хотелось (я это ожидал и поэтому не публиковал тут ссылку на стрим), но в итоге я смог написать
Вот тут можно посмотреть запись с вырезанными попытками починить стрим.
Я вроде смог настроить obs так, чтобы стрим больше не лагал, так что завтра продолжу писать
— Перейти с
— Дописать остальные методы, только с
— Написать итераторы
— etc
Завтра, вс, 2022-02-13, ~16:00 @ twitch.tv/wafflelapkin
HashMap
отношение K -> V
, то в BiHashMap
отношение K <-> K'
.
Всё пошло не так, как бы хотелось (я это ожидал и поэтому не публиковал тут ссылку на стрим), но в итоге я смог написать
BiHashMap
с парой самых базовых методов вроде insert
и lget
.Вот тут можно посмотреть запись с вырезанными попытками починить стрим.
Я вроде смог настроить obs так, чтобы стрим больше не лагал, так что завтра продолжу писать
BiHashMap
, там ещё много чего надо сделать:— Перейти с
StaticRc
на что-то другое (на стриме объясню почему)— Дописать остальные методы, только с
new
, insert
и lget
в этом всём нет смысла— Написать итераторы
— etc
Завтра, вс, 2022-02-13, ~16:00 @ twitch.tv/wafflelapkin
Twitch
wafflelapkin - Twitch
I do stuff; it/its
Блин, нахрена я решил решать задачи с Leetcode на C++. Очень больно из-за тупо отсутствующих возможностей и стандартной библиотеки версии C++17. span-ов нету, range-ей нету. И кто, блин, вообще придумал, что
pop_{front, back}
возвращает void
вместо T
, да ещё и с UB на пустом контейнере?
мне не нравится реальность
Вчера я провёл стрим, где начал писать двухсторонюю хэшмапу. Т.е. если в обычной HashMap отношение K -> V, то в BiHashMap отношение K <-> K'. Всё пошло не так, как бы хотелось (я это ожидал и поэтому не публиковал тут ссылку на стрим), но в итоге я смог…
remove_убешки
#[deny(PartialEq)]"Это так раздражает, что insert ничего не меняет"
"Нам просто нужен entry API"
"Формат убил мои комментарии"
#wafflecontext
👎8
Forwarded from мне не нравится реальность
TL;DR того, что случилось за 3 часа стрима:
— Кратко рассказал о том, что было на предыдущем стриме
— Написал небольшой типчик
— Переписал крейт с использования
— Написал метод
— Придумал как правильно и просто написать проверки корнер кейсов в
Итоговая реализация
— Кратко рассказал о том, что было на предыдущем стриме
— Написал небольшой типчик
Mrc<_>
, который по сути немного-более-безопасный указатель— Переписал крейт с использования
StaticRc
, на Mrc
— Попытался написать {l,r}get_mut
, понял что для BiHashMap
такие методы не имеют смысла, разочаровался в жизни и впал в уныние— Написал метод
lreplace
— Неудачно попытался добавить проверки корнер кейсов в insert
— Долго пытался исправить проверки и избавиться от UB— Придумал как правильно и просто написать проверки корнер кейсов в
insert
(оказалось почти совсем просто)Итоговая реализация
insert
греет мне душу :)#prog #python #rust #article
Статья про оптимизацию одной симуляции. Несмотря на (очевидное) переписывание на расте, автор смог добиться четырёхкратного ускорения исключительно за счёт правок в коде на питоне.
Статья про оптимизацию одной симуляции. Несмотря на (очевидное) переписывание на расте, автор смог добиться четырёхкратного ускорения исключительно за счёт правок в коде на питоне.
Tinkering
Optimization story - quantum mechanics simulation speedup
As part of my PhD I do computational modeling of quantum-biological systems. One of my simulations was misbehaving and in certain cases could take 8 hours to complete. That's really bad when you're trying to iterate quickly. This post describes how I made…
👍3
#prog #rust #rustlib
document-features — макрос для генерирования документации по фичам крейта. Фактически реализует док-комментарии для фич в Cargo.toml:
document-features — макрос для генерирования документации по фичам крейта. Фактически реализует док-комментарии для фич в Cargo.toml:
[dependencies]
document-features = "0.1"
## ...
[features]
## The foo feature enables the `foo` functions
foo = []
## The bar feature enables the [`bar`] module
bar = []
#! ### Experimental features
#! The following features are experimental
## Activate the fusion reactor
fusion = []
...И всё это в итоге преобразовывается макросом document_features::document_features!
в строку, которую можно вставить в #[doc]