vt
геи vs проститутки Golang Rust говно и не говно Работаю работу — нужно собрать говнокод на Расте под андроид, и говнокод на Го — тоже под андроид, встроить в андроид-приложение. На С и С++ все происходит автоматически вообще: gradle видит в проекте код и сразу собирает его в четырех вариантах — x86, x86_64, armv7, arm64.
Я сначала начал собирать растоговно, выяснилось, что есть gradle-плагин от самой Мозиллы, и он как бы должен был сделать все так же автоматически, но разработчика его видимо уволили за то, что он грязная цисгендерная свинья, плагин три года не обновлялся и в результате срал ошибками. Ошибки удалось устранить и все собралось, только не легло куда надо, ну руками переложил и все ок!
Дальше я пробовал собирать голанг-говно, вот тут-то началось. Плагинов никаких нет, надо вручную скачать android NDK, и танцевать с передачей go build переменных GOOS, GOARCH, GOARM, CGO_ENABLED (блять), СC (пиздец), CGO_CFLAGS (ебать) и внутри которого правильно указать --sysroot (ахуеть) и -isystem (нахуй). И так 4 раза, сука! Ведь по местоположению NDK все это автоматически никак нельзя вычислить, ага.
Что ни говори, но даже зеленоволосые одноногие трансгендеры из мозиллы переиграли и уничтожили голанг-долбоебов.
Подозреваю, что наверняка у голанг-долбоебов есть специальные отмазки. Ну как обычно красноглазые долбоебы придумывают. Ну типа, это специально, чтоб повысить порог входа, нормальные люди им не нужны!
Strephil
Linux Rust rust постепенно затягивают в ядро. И Линус говорил, что так и будет. надо бы учить уже вовсю, а то я как дурак всё в сишечку пердолюсь, но я и в ядро толком не умею.
janPona
nim Rust Go Короче, Go немного наскучил. Потому что я его уже вдоль и поперёк освоил, и стали видны принципиальные косяки. Они не мешают, но просто уже разрушен шарм.

В поисках чего-то нового погулял я по языкам программирования — "убийцам C[++]".

Ну шо.
Nim — переусложненное говно без null safety. Можно, в принципе, поиграться, но оно того не стоит.
D — я хз, если честно. Создаётся впечатление, что оно мейнтейнится одним человеком.
V — ОЧЕНЬ многообещающий язык, с Go-подобным синтаксисом, но со всеми штуками, которых в Go не хватает. В том числе с null-safety, иммутабельностью, макросами итд. Одно плохо — у языка репутация сырого и плохо протестированного.
Zig — наверное, тоже хорош, но маргинален.
Haxe — какой-то джаваскрипт на максималках. Тоже видится как маргинальная ниша.

Остаётся, короче, Rust родимый. Да, сложно, коряво, но надо изучать. Ибо имеет большое коммьюнити, раскручен и востребован на рынке труда.

Один раз я его как-то начал его изучать, но бросил, психанув на отсутствие асинхронных трейтов, которые не позволили мне запилить IoC по всем правилам. А там началась война, и стало не до раста.
L29Ah
Rust ? Haskell github.com
Почему хаскелисты могут въебать сигнатуру где хотят (или вообще не въёбывать чтобы компилятор вывел всё сам), а у раста всегда с этим какие-то сложности? Вон, уже дошло до выпиливания однозначно полезных фичей из языка.
Ilya-S-Zharskiy
Кропива Rust telegra.ph

основных цели две:

1. Реверс-инжиниринг и анализ программ, которые использует ВСУ, а также приложений артиллерийских калькуляторов и тактических карт.

2. С учетом анализа из предыдущего пункта, разработка кроссплатформенных модулей на rust с открытым исходным кодом, на базе которых можно будет делать различные приложения для русской армии, добровольцев и ЧВК.
Реверс-инжиниринг

На данный момент здесь есть автоматически декомпилированный код следующих приложений, требующий доработок:

Система Кропива:

Мапа (ua.milarmysos.android_2.7.3)
Тенета (ua.mil.armysos.network.networkbridge_2.2.8)
Тенета Группы (ua.mil.tenetagroups_1.2.23)
Обновление ресурсов (ua.kmd.resourceclient-1.2.0)
Метео (com.idepositbox.btspp-1.2.5)
Быстрое удаление (ua.logika.fastdelete_1.5)
FireFly (video.zhuker.sancho_1.5.1)

Код доступен по любому из этих адресов, но в любой момент эти сервисы могут его удалить:

0xacab.org

codeberg.org

notabug.org

gitlab.com

bitbucket.org


Разработка

Примеры модулей, разработка которых имеет смысл:

— Геопространственный модуль — системы координат, конверсии между ними, решение геодезических задач. К примеру, вот названия классов с различными способами ввода координат в "Кропиве" — WSGInput, UTMInput, SK42Input, PolarInput, PairedCalcInput, NotchCalcInput, MgrsInput, InverseNotchOrientedInput, InverseNotchNotOrientedInput, InputByTimer, InputByTarget, InputByLandmark, InputByImpact, InputByEntity, InputByEmplacement, InputByCop, InputByBaseEntity, InputByAverage, Graphical, FromBOObjectInput, CoddedInput.

— Модуль шифрования. Здесь могут быть реализованы алгоритмы ГОСТ, AES, ECC и протоколы обмена ключами. Такой модуль должен пройти аудит, и его использование должно быть максимально простым и не требовать глубоких знаний по криптографии для достижения криптобезопасности.

— Артиллерийский модуль. Здесь содержатся все расчеты и данные по орудиям и боеприпасам в определенном формате, чтобы было легко добавлять новые.

— Общий модуль передачи данных. Этот модуль подключают потребители, и им не нужно вникать в работу протоколов и методы передачи данных. Здесь должны быть определены структуры данных "Группа контактов" и "Контакт". Внутри контакта указан один или несколько его адресов в доступных системах и протоколах свзяи. Адрес — текстовая строка типа URI, которая включает в себя протокол и идентификатор абонента (к примеру, IP-адрес или его открытый ключ), к примеру, "ax25:afsk1200@400mhz/44.136.8.5" или "dmr@800mhz/Gost3410/6202c2b5ce9a7a35515e".

— Отдельные модули по протоколам и методам передачи данных, сюда относится взаимодействие с конктретными радиостанциями по Bluetooth, аудиомодемы, протоколы типа AX.25.

— Общий модуль кодирования данных. Здесь определены типы данных — голос, текст, изображение, структурированное сообщение в различных форматах.

— Отдельные модули по форматам структуры сообщений. Как, к примеру J-Series или протокол "карма" из кропивы. В них могут определяться такие типы данных, как координаты, виды целей, типовые приказы, тактические символы для карты, и так далее.
Как поучаствовать

— Присылайте сслыки на программы (или сами программы), которые имеет смысл подвергнуть реверс-инжинирингу.

— Если вы умеете читать Java, либо имеете опыт разработки под андроид, либо имеете опыт реверс-ижиниринга — помогайте приводить код в порядок и описывать логику алгоритмов, которые могут пригодиться.
vt
нолег Rust повесточка blog.rust-lang.org
If you have a previous version of Rust installed via rustup, you can get 1.65.0 with:
rustup update stable

То есть 98 процентов Mac-быдла и Windows-зетников отбрасываются сразу! Какова 5d-многоходовочка! Только лудшие, нитакиекаквсе умы человечества с правильным чорвонiм цветом глаз смогут прикоснуться к &'vect<mut>'''' иероглифам уважаемых думающих людей!
Ilya-S-Zharskiy
Линупс Linux Rust youtu.be

компания Google объявила о намерении профинансировать проект по повышению безопасности Linux путём написания отдельных частей ядра операционной системы на языке программирования Rust. Такое изменение означало бы серьёзный технологический и культурный сдвиг для проекта программного обеспечения с открытым исходным кодом, ставшего основой для обширных областей Интернета и операционных систем, в том числе Android.

написанием частей ядра Linux на Rust будет заниматься Мигель Охеда (Miguel Ojeda), являющийся автором программного обеспечения для ускорителя частиц Большого адронного коллайдера и работавший над безопасностью для языков программирования. Оплату контракта возьмёт на себя Google через некоммерческую организацию Internet Security Research Group.

Предполагается, что добавление в ядро Linux написанных на языке Rust модулей снизит вероятность возникновения уязвимостей, вызванных небезопасной работой с памятью. На момент выхода в 1991 году Linux был написан на языке C, который более уязвим по сравнению с современными языками программирования.
Strephil
Linux Rust Линус Торвальдс не исключил возможность интеграции поддержки Rust в ядро 5.20
Что ж, будем надеяться, что после 5.19 выйдет 6.0
janPona
Rust is great again. Всё-таки я вчера не до конца вкурил, в чём прелесть ссылок, и чем заимствование отличается от перемещения. А теперь, когда вкурил, кодить становится проще.
janPona
Rust программирование Начал изучать язык Rust. В прошлый раз было как-то боязно начинать из-за его низкоуровневости и концепции владения. А сейчас как-то сравнительно легко вкурил её, потому что понял, для чего она нужна.

Дико зашли растовские enum-ы и паттерн матчинг, напомнило функциональщину (я такое ещё помню из Elm). Очень в тайпскрипте этого дела не хватает.

На редкость приятное ощущение изучения нового языка, когда гордишься собственноручно написанной консольной программой уровня лабораторки для 1 курса.
lex2d
Rust Android Забавная новость с полей С++замещения.

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

Нынче блютус стек еще раз переписывают на раст news.ycombinator.com
lex2d
Rust Android
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
Rust Microsoft 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?