Блог*
رفتن به کانال در Telegram
Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here
نمایش بیشتر1 963
مشترکین
-124 ساعت
-27 روز
-230 روز
آرشیو پست ها
1 964
#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 бывает, у эссе несколько дополнений, некоторые из которых с основной темой связаны несколько косвенно.
1 964
#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 напрямую.1 964
Repost from trace!("TheBestTvarynka")
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.1 964
Бесит, когда игроки отказываются приходить на ролёвки по надуманным поводам. Типа "у меня завал по работе", или "я не в стране", или вообще "у нас в семье новый ребёнок"
1 964
#science #video
Немного о том, насколько странно вибрируют струны музыкальных инструментов
youtu.be/sYdXa_yp0fc
1 964
Repost from Технологический Болт Генона
Кто там жаловался на инсталляцию вида
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
1 964
Repost from N/a
Снова порадовался тому, что Safari хранит историю в SQLite, хоть и добраться до файла не так уж и просто из-за огораживания macOS.
У меня отключена очистка истории в настройках браузера, уж и не помню с каких пор. И когда я перключаю настройку в "забывать всё, спустя год", Safari говорит, мол, ты точно хочешь удалить 100000 записей? При этом сам Safari колдобится от такого объёма истории, но продолжает терпеть, раз я решил хранить всё 🤪
Короче говоря, я периодически хожу и грохаю поиски, ссылки на youtube, на Gmail. Последний вообще любит намусорить в историю, хотя сама идея вынести состояние в URL и неплохая. Вот и сегодня я сходил, для разнообразия с помощью duckdb, вспомнил схему, прогнал парочку "
DELETE FROM ... WHERE url LIKE ...", а потом полирнул с помощью VACUUM. Прямо приятно стало от такой мощи в моих ручищах!