Упрощенный пример на Rust обучения нейронной сети на основе Candle Framework от Hugging Face
https://habr.com/ru/articles/758658/
https://habr.com/ru/articles/758658/
Хабр
Упрощенный пример на Rust обучения нейронной сети на основе Candle Framework от Hugging Face
Я недавно изучал примеры использования нейронных сетей из библиотеки Candle от Hugging Face и обратил внимание, что они довольно сложны для понимания людей, которые только начинают знакомство с...
👍13🤔2
Можно ли доверить компилятору оптимизацию вашего кода?
https://habr.com/ru/companies/timeweb/articles/759326/
https://habr.com/ru/companies/timeweb/articles/759326/
Хабр
Можно ли доверить компилятору оптимизацию вашего кода?
Существует три уровня понимания того, как работает SIMD (ну, по крайней мере, на данный момент я нахожусь на 3-м уровне): Компиляторы умны! Они автоматически векторизуют весь код! Компиляторы тупы,...
👍6❤1
🔥 Дайджест полезных материалов из мира : Rust за неделю
Почитать:
— Можно ли доверить компилятору оптимизацию вашего кода?
— Упрощенный пример на Rust обучения нейронной сети на основе Candle Framework от Hugging Face
— 9 лучших консольных файловых менеджеров Linux
— Идиоматический код на Rust для тех, кто перешел с других языков программирования
— Introducing PassMeRust: Advanced Password Strength Calculator in Rust
— Learning Rust 🦀: 13 - Pattern matching basics
— Fetching Bitcoin Mempool Data from the Terminal
— GreptimeDB Quickstart Guide - Seamlessly Launch Our Time-Series Database from the Ground Up
— Rust, Go, Rinha e I/O
— 🚀 Discover the Rust Revolution for Shell Scripts with Mush 🚀
— Why Rust Is the Optimal Choice for Deep Learning, and How to Start Your Journey with the Burn Deep Learning Framework
— ESP32 Standard Library Embedded Rust: GPIO Interrupts
— Moving from Typescript and Langchain to Rust and Loops
— 🚀 Mastering Integration Testing in Rust with Testcontainers 🧪
Посмотреть:
🌐 HTMX заменит Frontend?! WTF? (⏱ 12:12)
🌐 5+ CSS Features That Will Change How You Code (⏱ 17:58)
🌐 NEW Way To Create Variables In JavaScript (⏱ 01:00)
Хорошего дня!
@rust_code
Почитать:
— Можно ли доверить компилятору оптимизацию вашего кода?
— Упрощенный пример на Rust обучения нейронной сети на основе Candle Framework от Hugging Face
— 9 лучших консольных файловых менеджеров Linux
— Идиоматический код на Rust для тех, кто перешел с других языков программирования
— Introducing PassMeRust: Advanced Password Strength Calculator in Rust
— Learning Rust 🦀: 13 - Pattern matching basics
— Fetching Bitcoin Mempool Data from the Terminal
— GreptimeDB Quickstart Guide - Seamlessly Launch Our Time-Series Database from the Ground Up
— Rust, Go, Rinha e I/O
— 🚀 Discover the Rust Revolution for Shell Scripts with Mush 🚀
— Why Rust Is the Optimal Choice for Deep Learning, and How to Start Your Journey with the Burn Deep Learning Framework
— ESP32 Standard Library Embedded Rust: GPIO Interrupts
— Moving from Typescript and Langchain to Rust and Loops
— 🚀 Mastering Integration Testing in Rust with Testcontainers 🧪
Посмотреть:
🌐 HTMX заменит Frontend?! WTF? (⏱ 12:12)
🌐 5+ CSS Features That Will Change How You Code (⏱ 17:58)
🌐 NEW Way To Create Variables In JavaScript (⏱ 01:00)
Хорошего дня!
@rust_code
👍11🔥3❤2
Опытным программистам Rust режет глаз тот факт, что следующая функция возвращает кортеж, а не Result<>:
fn add_student() -> (Student, bool)
Данный подход не только не является идиоматическим, но и вводит в заблуждение читателя кода. Непонятно, что подразумевает логическое значение bool. В ответ на вывод этой функции придется написать что-то сложное, как показано ниже:
// Добавление студента на курс
let (st, err) = add_student();
// Проверка наличия ошибки. В случае ошибки продолжить цикл
if !err {
continue;
}
Получается 5 строк с комментариями, объясняющими код. Это считается плохой практикой, так же как и короткие имена переменных.
Сначала проведем рефакторинг этих фрагментов. То, что было:
fn add_student() -> (Student, bool) {
// ...
let mut st = Student {
name: "".to_string(),
age: 0,
};
// ...
if student_name.len() < 3 {
// ...
return (st, false);
}
// ...
(st, true)
}
преобразуем в более идиоматический и читаемый вариант:
fn add_student() -> Result<Student, &'static str> {
// ...
if student_name.len() < 3 {
// ...
return Err("Student's name too short");
}
// ...
let age = age.parse.map_err(|_| "Cannot parse student's age")?;
Ok(Student {
name: student_name,
age
})
}
Понятно, что возврат статических строк в качестве ошибок не относится к разряду привычных практик, но вполне подойдет для данного примера.
В этом случае объявленным типом является &'static str (эквивалент Rust для идиомы типа const char* в С), чем объясняется совпадение текстов в кавычках. Оператор ? — одна из лучших функциональностей Rust. Он проверяет стоящий перед ним экземпляр Result<>. Если значение равно Err(e), возвращает результат, в противном случае продолжает работу. В старом коде встречался макрос try!().
В итоге проверка ожидаемого вывода функции выглядит так:
let student = if let Ok(student) = add_student() {
student
} else {
continue;
}
student_db.push(student.clone());
Это неидеальное условие, поскольку оно фактически исключает любую ошибку. Действуя таким образом, мы исходим из предположения допустимости такого подхода, но предусматриваем обработку перечисления Err(e) на индивидуальной основе.
Читать
@rust_code
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤4👎4
Enum в стиле Rust-а в Python
https://habr.com/ru/articles/759978/
https://habr.com/ru/articles/759978/
Хабр
Enum в стиле Rust-а в Python
TL;DR Реализация энумов в стиле раста в питоне: rust_enum . Проблема Сегодня я работал над небольшим ИИ модулем для моего личного геймдев-проекта и повстречал проблему с магическими константами. Вот,...
🤮13🤡6👍4❤2
Каждому исследователю необходимо уметь разрабатывать собственные инструменты для фаззинга. В этом репозитории материалы для разработки средств фаззинга с нуля, чтобы исследователи могли использовать собственные фаззеры для обнаружения уязвимостей в открытых инструментах, библиотеках и коде, разрабатываемом внутри компаний.
• Github
@rust_code
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - raminfp/fuzzer-development-with-rust: Write fuzzer with rust
Write fuzzer with rust. Contribute to raminfp/fuzzer-development-with-rust development by creating an account on GitHub.
👍12🔥2❤1
🔥 Дайджест полезных материалов из мира : Rust за неделю
Почитать:
— Enum в стиле Rust-а в Python
— Learning Rust 🦀: 14 - Option Enum: An Enum and Pattern matching use case
— Next rust validator, should be ergonomics and functional
— The Embedded Rust ESP Development Ecosystem
— My Web3 Journey with Solana
— Introduction to graphs - BFS algorithm
— How Rust memory management work to beginners.
— Rust Tutorial 1: Writing Hello World
— Building a PinePhone App With React and Tauri
— Rust & MySQL: delete, insert data using crate sqlx.
— Using arti to Connect to TOR Network and query WHOIS information in Rust
Посмотреть:
🌐 Learning To Code Is Easy (⏱ 08:59)
🌐 NEW React Hooks Saves 1K+ Lines Of Code (⏱ 01:00)
Хорошего дня!
@rust_code
Почитать:
— Enum в стиле Rust-а в Python
— Learning Rust 🦀: 14 - Option Enum: An Enum and Pattern matching use case
— Next rust validator, should be ergonomics and functional
— The Embedded Rust ESP Development Ecosystem
— My Web3 Journey with Solana
— Introduction to graphs - BFS algorithm
— How Rust memory management work to beginners.
— Rust Tutorial 1: Writing Hello World
— Building a PinePhone App With React and Tauri
— Rust & MySQL: delete, insert data using crate sqlx.
— Using arti to Connect to TOR Network and query WHOIS information in Rust
Посмотреть:
🌐 Learning To Code Is Easy (⏱ 08:59)
🌐 NEW React Hooks Saves 1K+ Lines Of Code (⏱ 01:00)
Хорошего дня!
@rust_code
🔥6👍5❤2😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Yazi — молниеносный терминальный файловый менеджер, написанный на Rust.
• Встроенная поддержка нескольких протоколов изображений
• Полная асинхронная поддержка: все операции ввода-вывода являются асинхронными, задачи ЦП распределяются по нескольким потокам, что позволяет максимально эффективно использовать доступные ресурсы.
• Встроенная подсветка кода
• Интеграция с fd, rg, fzf, zoxy
• Vim-подобное управление
• Поддержка нескольких вкладок, предварительный просмотр с возможностью прокрутки (для видео, PDF-файлов, архивов, каталогов, кода и т. д.)
• Система тем, пользовательские макеты, корзина для мусора
и многое другое...
Совместим с GNU/Linux, Windows, macOS
• Github
@rust_code
• Встроенная поддержка нескольких протоколов изображений
• Полная асинхронная поддержка: все операции ввода-вывода являются асинхронными, задачи ЦП распределяются по нескольким потокам, что позволяет максимально эффективно использовать доступные ресурсы.
• Встроенная подсветка кода
• Интеграция с fd, rg, fzf, zoxy
• Vim-подобное управление
• Поддержка нескольких вкладок, предварительный просмотр с возможностью прокрутки (для видео, PDF-файлов, архивов, каталогов, кода и т. д.)
• Система тем, пользовательские макеты, корзина для мусора
и многое другое...
Совместим с GNU/Linux, Windows, macOS
• Github
@rust_code
⚡22🔥9❤5👍5
Собственный строковый тип на Rust
https://habr.com/ru/companies/ruvds/articles/761746/
https://habr.com/ru/companies/ruvds/articles/761746/
Хабр
Собственный строковый тип на Rust
Писать компиляторы — моё хобби, ничего не могу с собой поделать. Поэтому я пишу и много парсеров. В программировании систем обычно лучше попытаться сделать память общей, чем использовать её...
❤6🤔3🌚1
Реализуем на Rust пул потоков с балансировкой нагрузки, пользуясь только стандартной библиотекой
https://habr.com/ru/companies/timeweb/articles/761398/
https://habr.com/ru/companies/timeweb/articles/761398/
Хабр
Реализуем на Rust пул потоков с балансировкой нагрузки, пользуясь только стандартной библиотекой
В программировании «пулом потоков» (thread pool) называется паттерн проектирования, обеспечивающий конкурентное выполнение компьютерной программы. Эта модель также может именоваться «worker crew»...
👍17❤🔥4
JetBrains представили новую интегрированную среду разработки RustRover, ориентированную на написание приложений на языке Rust.
Среда RustRover предназначена для повышениея эффективности разработки на языке Rust, удовлетворение потребностей связанной с Rust экосистемы и первичную поддержку данного языка.
RustRover базируется на существующем открытом плагине intellij-rust, добавляющем поддержу Rust в IDE CLion и IntelliJ IDEA.
https://www.jetbrains.com/rust/
@rust_code
Среда RustRover предназначена для повышениея эффективности разработки на языке Rust, удовлетворение потребностей связанной с Rust экосистемы и первичную поддержку данного языка.
RustRover базируется на существующем открытом плагине intellij-rust, добавляющем поддержу Rust в IDE CLion и IntelliJ IDEA.
https://www.jetbrains.com/rust/
@rust_code
GitHub
GitHub - intellij-rust/intellij-rust: Rust plugin for the IntelliJ Platform
Rust plugin for the IntelliJ Platform. Contribute to intellij-rust/intellij-rust development by creating an account on GitHub.
👍21❤4👎4
🔥 Дайджест полезных материалов из мира Rust за неделю
Почитать:
— Реализуем на Rust пул потоков с балансировкой нагрузки, пользуясь только стандартной библиотекой
— Собственный строковый тип на Rust
— ESP Embedded Rust: Multithreading with FreeRTOS Bindings
— Managing Large DataList In Solana
— Macos M2交叉编译性能差问题
— Rust: The Future of Systems Programming?
— Writing Rust bindings for Node.js with Neon
— starting overview of my new project animal_game
— How to abstract away library interfaces working directly through syntax in Rust with procedural macros
— Rust Tutorial 2: Let's make a Guessing Game!
— Exploring Modding Systems: A Journey With Lua and Rust
— Managing Application Config in Rust
Посмотреть:
🌐 Экосистема React.js 2023 (⏱ 12:45)
🌐 The Best React State Management Solution Has Been There All Along (⏱ 05:38)
🌐 This CSS Feature Replaces CSS-In-JS (⏱ 01:00)
Хорошего дня!
@rust_code
Почитать:
— Реализуем на Rust пул потоков с балансировкой нагрузки, пользуясь только стандартной библиотекой
— Собственный строковый тип на Rust
— ESP Embedded Rust: Multithreading with FreeRTOS Bindings
— Managing Large DataList In Solana
— Macos M2交叉编译性能差问题
— Rust: The Future of Systems Programming?
— Writing Rust bindings for Node.js with Neon
— starting overview of my new project animal_game
— How to abstract away library interfaces working directly through syntax in Rust with procedural macros
— Rust Tutorial 2: Let's make a Guessing Game!
— Exploring Modding Systems: A Journey With Lua and Rust
— Managing Application Config in Rust
Посмотреть:
🌐 Экосистема React.js 2023 (⏱ 12:45)
🌐 The Best React State Management Solution Has Been There All Along (⏱ 05:38)
🌐 This CSS Feature Replaces CSS-In-JS (⏱ 01:00)
Хорошего дня!
@rust_code
👍8🔥4❤2🤬1
Платформа, позволяющая разрабатывать драйверы Windows на языке Rust. Разработана компанией Surface.
• Github
@rust_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍6❤3👎1
Rust против Go: практическое сравнение
https://habr.com/ru/articles/763990/
https://habr.com/ru/articles/763990/
👍7🤡5❤🔥3😁1🌚1
Eyra - это пакет, поддерживающий создание программ на языке Rust, полностью реализованных на нем.
Он использует Origin для запуска и завершения программ и потоков, а также c-gull для ABI-совместимых реализаций функций libc.
• Github
@rust_code
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - sunfishcode/eyra: Rust programs written entirely in Rust
Rust programs written entirely in Rust. Contribute to sunfishcode/eyra development by creating an account on GitHub.
❤4❤🔥3
Идиоматическая обработка ошибок в Rust
https://habr.com/ru/companies/piter/articles/764416/
https://habr.com/ru/companies/piter/articles/764416/
Хабр
Идиоматическая обработка ошибок в Rust
Вы забудете о необработанных исключениях, если научитесь обращаться с ошибками, как это принято в Rust Обработка ошибок – важнейшая часть любого языка программирования, а в Rust предлагается для этого...
👍6❤🔥3
🔥 Дайджест полезных материалов из мира Rust за неделю
Почитать:
— Идиоматическая обработка ошибок в Rust
— 15 лучших бесплатных курсов по Linux
— Rust против Go: практическое сравнение
— Rust Tutorial 3: Handling Errors and Other Concepts
— IoT with Rust on ESP: Connecting WiFi
— Unlocking the Power of Native Modules in JavaScript: An Introductory Guide
— Deprecated dispatchables removed from Polkadot SDK
— Side by Side Series: Rust & Go - The Builder
— AWS Lambda with Rust and SAM
— Writing a game engine in Rust and Vulkan
— Building a scheduler for a Rust application
— Boost Your Productivity and Write Better Code with AI Tools 🪄
— Rust vs. Zig: A Head-to-Head Comparison of Two Modern Systems Programming Languages
Посмотреть:
🌐 Лекция 0: введение и реклама Rust | Лекции о языка программирования Rust в ФТШ
🌐 CSS nth-child Just Got 100x Better (⏱ 00:56)
🌐 Clean Code Is Killing Your Projects (⏱ 09:20)
Хорошего дня!
@rust_code
Почитать:
— Идиоматическая обработка ошибок в Rust
— 15 лучших бесплатных курсов по Linux
— Rust против Go: практическое сравнение
— Rust Tutorial 3: Handling Errors and Other Concepts
— IoT with Rust on ESP: Connecting WiFi
— Unlocking the Power of Native Modules in JavaScript: An Introductory Guide
— Deprecated dispatchables removed from Polkadot SDK
— Side by Side Series: Rust & Go - The Builder
— AWS Lambda with Rust and SAM
— Writing a game engine in Rust and Vulkan
— Building a scheduler for a Rust application
— Boost Your Productivity and Write Better Code with AI Tools 🪄
— Rust vs. Zig: A Head-to-Head Comparison of Two Modern Systems Programming Languages
Посмотреть:
🌐 Лекция 0: введение и реклама Rust | Лекции о языка программирования Rust в ФТШ
🌐 CSS nth-child Just Got 100x Better (⏱ 00:56)
🌐 Clean Code Is Killing Your Projects (⏱ 09:20)
Хорошего дня!
@rust_code
👍7❤6🔥3
Rust — лучший язык для инфраструктуры данных
https://habr.com/ru/articles/764542/
https://habr.com/ru/articles/764542/
❤🔥14🤔6
Универсальный детектор кодировок на чистом Rust - порт версии для Python
https://github.com/nickspring/charset-normalizer-rs
@rust_code
https://github.com/nickspring/charset-normalizer-rs
@rust_code
GitHub
GitHub - nickspring/charset-normalizer-rs: Truly universal encoding detector in pure Rust - port of Python version
Truly universal encoding detector in pure Rust - port of Python version - nickspring/charset-normalizer-rs
👍9❤3🔥2👎1