Pull to refresh
76
Новгородов Игорь@blind_oracle

Инженер, разработчик

0,4
Rating
65
Subscribers
Send message

Реки все уже и так перегородили условно. А лишняя генерация есть от других источников, типа ветра и солнца.

Ну, кому то быстро но недолго. Кому-то медленно, но верно.

Хороший баланс - E-Foil, но там свои приколы.

А он и не помрёт, ибо дофига легаси. И даже новые проекты активно появляются. Плюс весь геймдев.

Но ниша его сужается активно. Го вытеснил из сервисов всяких и веба, Раст из системного программирования потихоньку давит.

До всего этого в результате всё равно доходят. В том же Расте раз строки в std на хипе - появляются всякие smallvec с векторами и строками на стеке, например (не совсем то же самое, но тем не менее).

Ну и Vec там, вокруг которого строятся и строки, один фиг имеет поле длины usize, что 64 бита обычно. Для всех практических целей этого достаточно.

pub struct Vec<T, A: Allocator = Global> {
    buf: RawVec<T, A>,
    len: usize,
}

Ну, графемы порежутся, да.

Но, очень часто, на это пофиг - хочется, например, просто обрезать длинную строку текста какой-нибудь ошибки до Х байт, чтобы логгировать например. И, чтобы при этой простой операции ничего не взрывалось :)

Я думаю тут имелось в виду, что мозг потребляет столько же в абсолюте и у офисного планктона и у батрака.

Но у батрака физ-затрат сильно больше, чем у просиживателя штанов - поэтому в % затраты мозга ниже.

Ещё больше Чебурнетии... Расщепление Certificate Authority на скрепный и все остальные.

Их бессовестная вражеская цензура.

Наши скрепные, родные, по многочисленным письмам трудящихся, блокировки для защиты неокрепших умов граждан.

Надо понимать разницу!

Факты? Факты будут когда покажут что это ИИ-поделие работает, его легко поддерживать и так далее. А не просто куча `unsafe {}` блоков повсюду.

Угу, сжечь токенов но 100 миллионов долларов и получить в конце кусок говна :)

Тут одни уже Bun переписывали на Расте...

В Си никаких уникодов нет и не было, особенно когда эти null-terminated изобретались.

А сейчас да, до сих пор умудряются проблемы не этом получать. К примеру в Расте есть у String (который хранит UTF-8) безобидный метод truncate(n), который работает не по кодовым точкам, а блин по байтам (чтобы быть O(1)) и если ему указать байт посреди кодовой точки - просто паникует.

Хотя могли бы сделать вот что-нибудь такое и оно было бы тоже O(1):

pub fn truncate(s: &str, n: usize) -> &str {
    let n = s.len().min(n);
    let m = (0..=n)
        .rfind(|m| s.is_char_boundary(*m))
        .unwrap_or_default();
    &s[..m]
}

Резало бы по ближайшей кодовой точке.

Ничего там не переписывается. Добавили тулчейн чтобы можно было писать что-то в ядре на Расте да и всё.

Переписать всё ядро - понадобится, небось, миллион человеко-лет.

Мне кажется кодировка тут ортогональна.

Различия просто в том как делать: length-value или null-terminated.

Да, когда памяти кот наплакал - хочется сэкономить. Но, как и с nil-ами, кроилово ведёт к попадалову. Вместо того, чтобы сделать заголовок из пары байт - получили вот это, с нулём в конце... и все проблемы с этим связанные.

В книгах про Эндера у Карда была концепция, что деревья на какой-то планете - это следующая форма существования местных живых существ. И думали они медленно, но как-то с ними там можно было общаться :)

А разбирать проблемы с тучей библиотек, реализующих HTTP, но не знающих про QUERY - лучше?

Ну, я тоже "не местный" давно, но у меня есть друзья и родственники, которых всё это касается.

Так что приходится держать руку на пульсе...

Там, в приведённой цитате написано даже, что это прокси для Телеграма.

В наше, изнасилованное РКН и прочими чекистами, время даже моя мама знает что такое прокси для Телеграма и зачем он нужен.

А уж аудитория Хабра и подавно должна. А если не знает - может потратить 5 минут на изучение вопроса, а не писать комментарии.

1
23 ...

Information

Rating
2,695-th
Location
Zürich, Швейцария
Date of birth
Registered
Activity