ar
Feedback
Блог*

Блог*

الذهاب إلى القناة على Telegram

Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here

إظهار المزيد
1 963
المشتركون
-124 ساعات
-27 أيام
-230 أيام
أرشيف المشاركات
photo content

#article Some thoughts on writing (от Dan Luu)
I see a lot of essays framed as writing advice which are actually thinly veiled descriptions of how someone writes that basically say "you should write how I write" <...>
<...> if you're trying to figure out what stylistic choices are right for you, you should start from your goals and what you're good at and go from there, not listen to somebody who's going to tell you to write like them. Besides being unlikely to work for you even if someone is able to describe what makes their writing tick, most advice is written by people who don't understand how their writing works.
Как это часто у Dan Luu бывает, у эссе несколько дополнений, некоторые из которых с основной темой связаны несколько косвенно.

Отвратительно
Отвратительно

Я посмотрел это #video, так что вы теперь тоже должны youtu.be/_E9JIuZHQyM

👁👄👁
👁👄👁

#prog #rust Call for testing: Restricting trait implementability and field mutability Две фичи на nightly. impl_restriction позволяет указать на определении трейта, в каких модулях можно писать его реализацию.
pub mod foo {
    pub mod bar {
        pub(crate) impl(super) trait Foo {}
    }

    // `Foo` may be implemented here.
    impl bar::Foo for i8 {}
}

// Error: `Foo` cannot be implemented here.
impl foo::bar::Foo for u8 {}
`mut_restriction позволяет указывать на полях, в каких модулях его можно изменять: ``rust pub mod foo { pub struct Bar { pub mut(self) alpha: &'static str, } impl Bar { pub fn mutate_inner(&mut self) { // alpha may be mutated here. self.alpha = "inner"; } } } impl foo::Bar { pub fn mutate_outer(&mut self) { // Error: alpha cannot be mutated here. self.alpha = "outer"; } } ` Первая фича с `impl(crate)` позволяет выразить паттерн sealed trait напрямую.

Another interesting tool that I found in the Rust Ukrainian Community chat: https://niche.rs/
Rust type layout & niche optimization visualizer.
You type any Rust type and it will visualize that type layout. Pretty interesting to watch and experiment. If I had known about the niche earlier, I would have used it to teach students about structure layout, padding, and related optimizations.

#prog #rust #meme r/rustjerk, откуда ж ещё
#prog #rust #meme r/rustjerk, откуда ж ещё

OOP stands for "Overly obfuscated programming"

photo content

😐
+1
😐

Бесит, когда игроки отказываются приходить на ролёвки по надуманным поводам. Типа "у меня завал по работе", или "я не в стране", или вообще "у нас в семье новый ребёнок"

photo content

💅

#science #video Немного о том, насколько странно вибрируют струны музыкальных инструментов youtu.be/sYdXa_yp0fc

Кто там жаловался на инсталляцию вида curl https://... | sh? Вот вам вариант получше > SQL interface for Ghidra program datab
Кто там жаловался на инсталляцию вида curl https://... | sh? Вот вам вариант получше > SQL interface for Ghidra program databases. Query functions, cross-references, types, decompilation output, and more using standard SQL. https://github.com/0xeb/ghidrasql
Install with an AI agent (recommended) The fastest way to get ghidrasql running end-to-end is to point an AI coding agent (Claude Code, Cursor, Codex, Aider, etc.) at the bundled installer prompt: install-prompt.md

Repost from N/a
Снова порадовался тому, что Safari хранит историю в SQLite, хоть и добраться до файла не так уж и просто из-за огораживания macOS. У меня отключена очистка истории в настройках браузера, уж и не помню с каких пор. И когда я перключаю настройку в "забывать всё, спустя год", Safari говорит, мол, ты точно хочешь удалить 100000 записей? При этом сам Safari колдобится от такого объёма истории, но продолжает терпеть, раз я решил хранить всё 🤪 Короче говоря, я периодически хожу и грохаю поиски, ссылки на youtube, на Gmail. Последний вообще любит намусорить в историю, хотя сама идея вынести состояние в URL и неплохая. Вот и сегодня я сходил, для разнообразия с помощью duckdb, вспомнил схему, прогнал парочку "DELETE FROM ... WHERE url LIKE ...", а потом полирнул с помощью VACUUM. Прямо приятно стало от такой мощи в моих ручищах!