Random Rust Dev
365 subscribers
73 photos
41 videos
1 file
28 links
Разработка на языке Rust.
Пишу простыни со своими мыслями о Rust и проектах на нем.
Download Telegram
Как объяснить картинкогенератору, что во время прямого удара ногой в живот подошву не видно?

Я сколько не уговаривал, все равно разворачивает ногу подошвой к зрителю.
😁7
😁2😐2
🔥16🫡31👏1
Для тех кто рос в 90е
🔥14😁6
Теперь можно на целый день убежать от семьи в свой "офис" :)
😁52
Класть разные замыкания во враппер без аллокаций это конечно круто.

Но еще круче, когда в сигнатурах могут быть лайфтаймы и и высокоранковые лайфтаймы.
🤯13👍4😱1
Кстати говоря,
бесцветные зеленые идеи спят яростно.

А я тем временем пробую chumsky для написания парсера моего игрушечного языка.
👍4
Попробовал Codex от OpenAI.

Плюсы:
Он нашел в одном месте баг, где я вместо min написал max. И добавил юнит тест на этот код.

Минусы:
Попросил его написать за меня парсер.
Он написал игрушечный нерабочий парсер, где Expr это просто SmolStr, а Operators ограничивается вариантом Add, и вообще все не то, как я описал синтаксис.
Попросил переделать - ответил, что ему слишком сложно.

Вывод:
Можно время от времени просить найти баги в репе. Найдет - хорошо. Не найдет - ну и ладно.
В обучающем датасете слишком много кода из туториалов.
👍6💯1
Как почувствовать себя хакером. Пошаговая инструкция:

1. Зайдите в кафе или заправку, где посетитель сам использует кофе-машину.

2. Получите сообщение об ошибке.

3. Нажмите на незаметную кнопочку на сенсорном экране, что бы открыть админское меню.

4. Угадайте пин с первого раза. Например 1111.

5. Перезагрузите кофе-машину.

6. Сделайте себе кофе.

7. Наслаждайся своим кофе, хакерман. (Или хакервуман. Но есть ли такие у меня в подписчиках, даже не знаю.)
7🔥2👨‍💻1😎1
Не могу понять прикола.

Работаю потихоньку над арканой, но как только надо делать импорт ассетов начинаю забивать.

Потом снова берусь делать что-то другое. И опять, сел делать ассеты, потупил 10 минут и переключился на поиграть.
9
Статическая типизация?
Динамическая типизация?
Галюцинатическая типизация!
😁182👍2🙈2🔥1🦄1
Немного юморов в... пустоту
3👍1
Немного ужасов С++ в ленту.

В std есть шаблон std::common_type<T...>, в который можно передать список типов, и в ассоциированном типе type взять общий из них.

Разумно предположить, что если в списке типов только 1 тип, то он и будет в type,
т.е. std::common_type<T>::type == T.
При условии, что нет перегрузки для списка из одного T.
😱3😭1
Мысли вслух:

Кощей не бессмертный, он просто глюканул и его хитбокс прилепился к игле, вместо его тела.
11😁1
Я иногда спрашиваю GPT всякую чушь.

Сегодня я спросил какое самое лучшее аниме всех времен и какое бы оно хотело "посмотреть" - в данных для обучения.

Адаптированная под меня версия отказалась давать свое мнение, но перечислила несколько культовых тайтлов, втч оригинальную Еву и Алхимика: Братство. А без логина сразу выбрало Алхимика лучшим.

Но "посмотреть" выбрало Еву в обоих случаях.
Вот я тут думаю про компрессию текстур в ключе юзкейсов.
В какой момент в пайплайне нужно принимать решение о том, как она будет заэнкожена в рантайме?
Во время импорта из image файла? Или во время загрузки текстуры из файла ассета в движок?

С одной стороны, во время импорта мы и не знаем, какие форматы будет поддерживаться GPU, на которой будет использовать текстура.
С другой стороны в рантайме мы не знаем, а можно ли вообще жать ее?

Получается что надо придумать какую-то метаинформацию о сжатии, которую бы пользователь выставлял во время импорта и это бы позволяло выбрать в рантайме подходящий формат.

Скорее всего это будет enum с несколькими вариантами и флагами в них и/или отдельно.

Но на самом деле надо отложить этот вопрос в дальний ящик и сделать один вариант “нежать” пока что.
Небольшой quiz для настоящих экспертов в Rust.

Вы делаете derive macro.
Сгенерированный код должен создать значение для поля из строки.
Тип поля может быть реализует FromStr. А может быть он реализует serde::Deserialize и строка это JSON.
Нужно что бы сгенерированный код воспользовался тем что есть. А если ничего нет, то сгенерированный код не должен компилироваться вовсе.

Задача со звёздочкой. Читать только если знаешь как решить без звёдочки.
Найти решение без использования атрибутов
Тот факт, что большая часть кода на гитхабе это JS имеет огромный минус для обучения LLM.
Худшие практики программирования из JS оно тащит во все языки.
Сегодня хохмы ради предложил агенту копилота написать за меня библиотеку для конфигов по имеющемуся README.

Результат - полное пренебрежение временем выполнения, пытается всё туда-сюда в JSON конвертить.
Например оно написало функцию, которая создаёт значение конфига с помощью Default, а потом сериализует в JSON и идет по ключам объекта, что бы прочитать их из абстрактного типа, который по ключу тоже JSON отдаст.
Заменяет, а потом десериализует JSON в структуру.
Env var парсит в JSON, потому что надо же все в JSON.
Ну и так далее.

Короче, обучать копилотов надо на целевом языке, а JS код не показывать вообще.
😁18👍2💯2
This media is not supported in your browser
VIEW IN TELEGRAM
Для таких же фанатов
❤‍🔥53👍1🔥1🤯1