lex2d
Android rust Забавная новость с полей С++замещения.

Когда-то в далекие времена андроида 4.2 линуксовый bluez выкинули на мороз и впилили bluedroid от бродкома. Не сказать, чтоб с блютусом в андроиде стало можно работать без выдергивая волос, но уже со следующей версии появилась поддержка ble — так что прогресс определено был.

Нынче блютус стек еще раз переписывают на раст news.ycombinator.com
lex2d
Android rust FYI. Keystore, being security critical, is one of the components that we develop in AOSP, which allows me to bring this to your attention. As you can see from the link below, Android Keystore is currently being rewritten in Rust.
schors
rust Решил бегло ознакомиться с языком Rust. Он забавный

— Это если бы кто-то захотел сделать язык как бы со "сборщиком мусора", но без "сборщика мусора"
— Чем-то напомнил мне Ruby — есть хотелка — втыкаем в язык
— Давно не видел такого мозголомного пёстрого синтаксиса
— С таким высоким порогом входа и чрезмерным дремучим охранительством, он в самых лучших ожиданиях не дотянет по популярности даже до какого-нибудь C++, побеждает всегда простота

Из интересных наблюдений:
— Многие статьи написаны лозунгами. Основные лозунги: "безопасность", "академичность", "написан гуру с мировым именем"
— Забавно, но академичность присуща многим языкам. У каждого своя школа
— Язык должен стать любимым языком программирования российских чиновников и законодателей — в его основе лежит принцип "как бы чего не случилось". Вероятно, он не стал пока таковым, потому что в нём это сделано красиво и системно, а не спорадически
— Видел смешное сравнение с Go: "один написан хипстерами, второй — учеными с мировым именем". Чувакиииии.... Вы давно в историю Rust смотрели?
— Видел в статьях приписывания Rust нового и необычного, что вообще на уровне 2013 года широко использовалось

Но язык интересен. И требует от фанов доклада "Почему Rust такой странный"
vt
Красноглазики rust wasm Truly cross platform, truly native. multiple backend GUI for rust
скриншот на котором кнопки наползают друг на друга на главной

Увидев скриншот, уже думал закрывать страницу. Но тут прочитал:
Suaron native extends the sauron web framework
Пошел смотреть на последнее чудо. Там расписана типовая белиберда про крутость web assembly и сразу после нее — картинка с бенчмарком этого веб-фреймворка. Так на их картинке их веб-фреймворк на крутой красноглазой херне в ДВА раза проигрывает мейнстримным жс-фреймворкам! Ну я не знаю как можно так сходу себя обосрать в собственной "рекламе"!
vt
Microsoft rust zdnet.com — менеджеров микрософта покусала @ermine. Теперь выделят отдел менеджеров по работе менеджеров с менеджерами мозиллы — последние хорошо поработали кстати и грамотно втюхали свое говно!
70% OF ALL MICROSOFT PATCHES ARE FOR MEMORY-RELATED BUGSНе очень понятно, что менеджеры хотели этим сказать. Что им перепишут винду на расте? Где они возьмут столько долбоебов, даже если они купят всех фанатов мозиллы, то даже к 2045 году не успеют!
На самом деле конечно же все закончится как и всегда — через пару лет микрософт признает, что опять наделал хуйни и распустит пацанов, которые с этим мучались (менеджеров конечно никуда не денет).
ermine
rust apteryx Что у нас там дальше по плану? SASL? А что у нас уже есть? Тоже наверное придется писать с нуля, реализуя не менее пяти-десятка механизмов шифрами. Ну-ко, пора сходить в магаз за спикером.
ermine
rust apteryx Я не забила на аптерыкса, я наконец дописала PRECIS и JID. До сих пор непонятно, как программировать на Rust, точнее, как экономить на копировании значений — чуть что, так компилятор сразу орет cannot move/borrow и так далее. Ну, если Rust соглашается везде с тем, чтобы я явно копировала эти гребенные значения, значит, я всё правильно делаю!
vt
Красноглазики пук rust kerkour.fr — тут это. Тяжелая форма заболевания. Пациенты возомнили, что сейчас напишут открытые Гугл Драйв, Гугл Фотос, Гугл Контактс, ну и еще по мелочи — на Расте за пять минут!

Избранные ржаки из этого проспекта:

GNU/Linux, a free and open source operating system that is used by the majority of servers and phones today.
Тут сложно понять, это троллинг тупостью, или просто тупость.

When Bob works on a proprietary project, the fruits of his work benefit his employer ... The day he changes job, he loses all the work done previously.
Расскажите долбоебам, что Бобу заплатили, в отличие от них!

простыня про швабодку
Discord chat for more informal communications

Непонятно, как настолько швабодные люди могут пользоваться пипиретарным(ц) дискордом!

you can contribute financially
А ВОТ МОЙ ЯНДЕКС-КОШЕЛЕК!
ermine
rust А почему на расте нет реализации PRECIS (RFCs 7613)? Как же без готовой реализации этой делать жиды (jids)? На js вон в npm болтается какая-то готовая библиотека даже, А КАК ПЕРЕГНАТЬ js в rust?
ermine
rust Как в этом долбанутом на всю больную голову безопасности этом вашем ресте понять, почему прога падает? Бэктрейсов на три экрана, но там ни одной ссылки на мой код! Этот ваш unwrap() из Options. Очень безопасно. А вот если говядина падает с паникой — по бэктрейсу все видно, где чинить надо. А тут — фиг. Зато безопасно.
ermine
rust apteryx Как-то дописала парсер земля для аптерыкса. Работает как-то. Даже компилируя. Теперь дописать генератор хмпп. Много узнала, как пишется код, и, видимо, еще много узнаю. Это интереснее, чем всякие джавы, джаваскрипты, тайпскрипты, даже камло (вчера пришлось почитать свой старый код на камне, чуток прослезилась от ностальгии — монады, iteratee чудные на камле!). Так-то. Кстати, зачем мне понадобился код на камле. Там у меня реализован алгоритм енкогдинга utf8. Во всем русте я не нашла, как без напряга читать данные из сокета и постепеннее конвертить в утфы, так, чтобы не потерять хвосты (а их образуется аж две штуки: первый хвост — когда считал из интернета неполный утф8 символ, и второй хвост, когда недопарсив строчку, возвращаешь токен). Есть чем гордиться как домохозяйка-рустистка.
ermine
rust Тесты на русте — это такая штука, которая позволяет отладить проект любого размера, ни разу не запустив его. Прям сказка для домохозяйки, которая бы умерла с тоски, отлаживая свой любимый проект, напичкав его принцами и запуская в реальном мире. Я в восторге.
ermine
rust Длина строчки кода на русте не должна превышать 90 символов. Мудрые расисты, сделали мудрый выбор между 80 и 132+ символами.
ermine
rust apteryx Пока жуйк в моем макбуке и моем айфоне глючат, написала уже первую тысячу строк кода, на которые компилятор не плюется. Теперь надо культово так писать тесты. Интересно, в vs Code есть для руста такая же крутая штука как для jest? Чтобы подмигивало лампочками и указывало ту строчку, где тест сбоит.
ermine
rust Расскажите, пожалуйста, как писать кодогенератор на Rust! Шоб по [#derive(XMPPCodec)] генерал мне код имплементации структуры.

@vt отвернись, ты не посоветуешь годного соложена, иди допиши сначала гейжуйк
ermine
rust Я теперь почти специалист по Rust — почти две недели боролась с Borrow check компилятора и наконец код аптерыкса начал компиляться. Из-за заморочек с борровсами, оказывается, надо писать много лишнего кода — просто так писать код как на сишечке или яваскрипте — низзя, ближе будет ырланковский код или на камне, причем борровчекер особо зверствует в match, не дает сразу маячить и делать изменения в одном и том же self. Не знаю, насколько это удобно, но наверняка всю ответственность за правильность кода можно спихнуть на Rust — я всегда любила парадигму "если код скомпилился — значит будет работать!"
@vt ты уже прочитал книжку по Rust?
ermine
rust apteryx Три дня пыталась скопились свой парсер иксемеля, борясь в основном с ошибкой cannot move out of borrowed content, потом сдалась и набрала сильно упрощенный пример и почти сразу удалось привести его в компилабельный вид. Вот, привожу этот пример с кучей ошибок:

enum S {
A,
B(String),
C(String)
}

struct X {
state: S
}

impl X {
fn parse(&mut self, s: String) {
for ch in s.chars() {
match &self.state {
S::A => {
let mut s = String::new();
self.state = S::B(s)
}

S::C(ref mut z) => {
z.push(ch);
self.state = S::C(*z);
}

S::B(ref mut word) => {
word.push(ch);
continue;
}
}
}
}
}

fn main() {
let mut x = X { state: S::A };
x.parse("abyr".to_string());
}

Ты читал книжку по Rust? Теперь скопили!
ermine
rust apteryx Второй день жру кактус с лайфтаймами раста. Проблемы с ними возникли когда засунула в hashmap в качестве ключа и значения тип &str и потом долго блудила с буковками типа 'a, 'b по коду, пока случайно в гугле не обнаружила хитрое замечание о том, что в некоторых коллекциях раста идиоматично будет использовать тип String. Это помогло. Ну и чудеса! Ведь лайфтаймы — это такая штука, на которых, как говорят, многие мужики сливают из раста. :)
ermine
rust apteryx Как правильно и православно делать кодек utf8 для Tokio, чтобы само автоматически из чанков делало utf8 строки или позволяло итератить массив байтов по utf8 символам? Готового кода не вижу!
ermine
rust Как в этом хитром расте импортную модуль в другой модуль? Скажем, структура src такова:
a.rs
b.rs
c.rs
lib.rs
Я хочу импортную a.rs во все остальные модули, в этом модуле, скажем, у меня enum, который везде нужен. Компилятор настаивает, чтобы этот модуль был в b/a.rs для b.rs и так для c.rs.
ndtimofeev
rust Представлена концепция закрепления объектов в определённой области памяти (Pinning), основанная на использовании типа std::pin::Pin‹P› и типажа (trait) std::marker::Unpin. Закрепление гарантирует, что объекты не будут перемещены и их размещение в памяти будет постоянным;Я чего-то не понимаю. Зачем пиннить память в rust'е? Там же нет moving gc чтобы перемещать объекты?
ermine
rust Посмотрела по диагонали три хмл парсера — xmlparser, quick_xml и xml5ever. Последний непонятно как парить, весь в макросах сидит. Проще читать код Quick_xml. А xmlparser видимо Фреймворк для строительства DOM, что не годится для меня. Но я хотела не об этом написать. Все эти партеры используют обычный fsф с енумерабельным State, хотя я почти два месяца читала о том, как это круто строить fsф на основе zero-cost abstraction, пишешь билдер, который рожает первую структуру начального состояния, в ней имплементишь функцию, которая рожает структуру следующего состояния и так далее. Ну что, завтра попробую пойти этим путем и создам три десятка структур-состояний партера иксемеля, вместо enum. Так. Небось никто не понял, о чем я. Ну, так вам и надо!
ermine
rust Кажется, вместо одного проекта будет куча проектов, по проекту на каждый компонент сервера. Вопрос — это куча отдельных репозиторий каждая со своим проектом или свалить все проекты в один каталог и делать одной репозиторием? Как там в расте принято?
ermine
rust Так, ща буду делать третий кормить в своем сервере — выделить вчера написанный код в main() в отдельный модуль. И сразу возник вопрос — а как на расте делается кластер? А еще я подумала (после советов крутого спеца @oxpa), что буду делать сервер по отдельным частям: c2s как прокси к бэкенду, чтобы пользователь не заметил, что бэкенд упал/обновился/перезагрузился. Трафик, разумеется, будет ходить через лекалхост по тцп (а разве можно иначе в 21 веке?). В Бэкенде (в 21 веке же!) обязательно нужен кластер! И неужели нет ничего круче, чем постгрес, для бэкенда?
ermine
rust Закоммитила первый кормит в сервер, о котором мечтала. Уже умеет слушать 127.0.0.1:5222 и отвечать как эхо. Вторым коммитом по идее должен быть выбор логгера. Кстати, какой логгер рулит?
ermine
rust Хура! Наконец дочитала длиннющей Rust Crash Course от хаскелиста, теперь можно писать новый сервак, посему архиважный вопрос: что почитать про reload Code on Fly? Не рассказывайте мне, что этого чуда, которое уже было в ирландке еще в том столетии, нету в русте и поэтому придется ребутить сервер на каждый чих или один раз в сто лет для апгрейдов.
ermine
rust Я уже говорила, что по golang читать почти нечего — там все очень просто — прочитал один небольшой туториал — и готово, можно писать целый сервер. По Java надо зубрить документацию по ее библиотекам. А по русту вот слишком много чтива по теории программирования на русте, когда ж блин программировать-то?
ermine
rust Дочитала наконец книжку Rust-embedded/book. Ничо так, слегка непонятно, для чего им нужно было городить защиту железа от тупого программера, прикрываясь при этом проблемами с правами владения на периферию железки. Подумалось — запланировать почитать через год туториал на thumbv7, ибо они советуют не доверять оптимизатору компилятора и проверять через дизассемблер, что компилятор там написал.