← All posts tagged rust

ermine

Дочитала наконец книжку Rust-embedded/book. Ничо так, слегка непонятно, для чего им нужно было городить защиту железа от тупого программера, прикрываясь при этом проблемами с правами владения на периферию железки. Подумалось — запланировать почитать через год туториал на thumbv7, ибо они советуют не доверять оптимизатору компилятора и проверять через дизассемблер, что компилятор там написал.

ermine

Бету Руста перестали апдейтить. Говорят, она должна апдейтиться каждую неделю. Так нет, сегодня уже 15-е, а последний апдейт был 5-го. Ужас, руст уэе начал загнивать!

ermine

А что местные зубоскалы знают про сочетание этих двух тэгов? Поиск по ним в гугле выдают столь же ржавые посты 2015-2016 годов, неужели тема бесперспективная?

ermine

Страдаю фигней на ночь — рисую квадраты и смотрю, что с ними игра "Жизнь" на вебассемблере творит. Приятно, что сафари умеет такое новшество, как вебассемблер, а уж тем более приятно Rust страдать фигней на ночь.

ermine

Пошла в Гугль искать туториал по растовым футурам (future) и набрела на туториал snoyman.com Первый же пример оттуда ну просто напугал

fn main() {
let i: isize = 1;
let j: isize = foo(i);
println!("{}", j);
}

fn foo(mut i: isize) -> isize {
i += 1;
i
Ну ок, придется все сериб постов прочитать!

ermine

Беру из хтмлки, которую сгенерил Nginx (autoindex), собираю оттуда все ссылки, парню и руст падает на первой же ссылке, которая "../". Что я не так делаю? Библиотека http::uri::Uri.

ermine

Попробовала склеить два разных примера для работы с http и https (client) в одном коде, минимизируя повторяющийся код. Сначала это получилось, потом все сломалось, когда начала обрабатывать 302 редирект — так и не смогла догнать, как типизировать разные вещества из hyper и hyper-tls. Завтра буду пробовать другую библиотеку, request, согласно доке она "на батарейках". Надеюсь, с ней будет сильно поменьше рукописного кода, как это было в golang.

ermine

Получила первое задание на простенькую программку для железки — получить через последовательный порт два байтика и записать их как коды к АЦП и дальше считывать какие-то данные оттуда и отдавать в этот порт. Ну ОК. Два дня пыталась найти в макбуке этот самый последовательный порт к железке, который должен был выглядеть как /dev/cu.usbserialXXX. А его нету. На линуксе видится как /dev/ttyACM0, что это за хрень и чем хуже обычного последовательного порта — непонятно, но линукс мне не очень нужен. Взяла на пробу другую железку — /dev/cu.usbserialXXXX появился в макбуке. Муш недоволен — он с той первой железкой под своей виндой нормально контачит через последовательный порт. Спасибо, дядя Джобс!

ermine

Полмесяца читала всякую хрень из гугла про то, как это просто — программно включить светодиод на плате. Два дня компиляла код на расте — всего три строчки кода. Сегодня лампочка включилась. Ура!

ermine

В линюхе плата тоже не увиделась, подергавшись немного, добыла другой кабель — плата увиделась и openocd заработал! Тот кабель, с которой плата не работала, побывала в руках дочки ранее. Не доверяйте сложную электронику детям :)

ermine

Вчера понаставила на макбук всякого хлама для разработки кода на rust для Cortex M. Первым делом — бета раста с какими-то там хитрыми компонентами, потом gcc-arm-embeded, потом qemu и наконец openocd. Руками ничего не пришлось ставить — ну прям по инструкции для кухарки. С замиранием сердца подключаю отладочную плату Nuckeo (она в отличие от других плат не требует пайки) к хабу. Запускаю openocd с нужными конфигами — не подключается к плате. Лезу в сислог макбука — непонятно, как там искать usb. В общем вот такое вот радухное начало великой карьеры.

ermine

Вчера во исполнение учебного плана выполняла упражнение "а теперь получить имя файла из командной строки"Г Оно почти выполнено, только прога не компилируя, и вовсе не из-за драки за права владения переменными.
Я подключила к своей программе первую попавшуюся в гугле библиотеку clap для Парсинга командной строки, всю из беся крутую и распальцованную. Она позволяет вынести описание опций командной строки в файл yaml и сама парсит его через макрос load_yaml!. Программа не компилируя, потому что не находит этот долбанный макрос. Думаю, что надо подключить библиотеку yaml. Ставлю, а она не компилируя — ей нужен какой-то yaml.h. Удивляюсь — н еужели до сих пор не переписали модную библиотеку на раст? Ставлю через brew libyaml. А макрос все равно не найден. Какой сложный язык rust.

ermine

Предлагают, точнее, есть возможность поиграться с написанием хелловорлда на расте для STM ARM Cortex M# и Nucleo. Предупреждают меня, что там порог входа в эту игрушку очень высокий. IDE все коммерческие с триалами. Ну ладно. А есть тут кто-нить, кто продвинулся дальше хелловорлда и строгает на расте под армы?

ermine

Вчера написала (скопипастила) несколько строчек кода, которые читают конфиг из строчки в формате toml и парит его в структуру. Сегодня порефакторила этот код, теперь он читает конфиг из файла, заодно появился первый геморрой из-за оберток в тип Result, случайно увидела в гугле хитрый вопросительный знак, который надо ставить после закрывающей скобки вызываемой функции. Вроде про эту штуковину не было в книжке. Код скомпилился и более-менее удовлетворяет меня. Завтра допишу что-нибудь, чтобы брало имя конфета из командной строки.

ermine

Начала писать, ну или пытаться писать код. За каждой строчкой кода лезу в Гугль, как будто не читала книжку. В Гугле кода — кот наплакал по сравнению с голангом. Документация к библиотекам минимальна, по крайней мере в ней нет тех примеров, которых мне нужно копипастить в свой. На Яве, даже на колтуне, с копипастой куда проще. А тут — фиг найдешь минимальный пример, например, как считать томл конфиг из файла. Гугль по этому запросу выдает исходники самого раста или какого-то там Мега-редактора. Ужос.