Как стать автором
Обновить
0
0

web-dev

Отправить сообщение

Учимся летать: симуляция эволюции на Rust. 2/5

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров3.7K



Это вторая часть серии статей по разработке симуляции эволюции с помощью нейронной сети и генетического алгоритма.



В этой статье мы заложим основы нашего проекта и реализуем простую FFNN (feedforward neural network — нейронная сеть прямого распространения), которая впоследствии станет мозгом. Мы также рассмотрим множество тонкостей и идиом, которые встречаются в коде Rust, включая тесты.


Готовы? Тогда поехали.

Читать дальше →
Всего голосов 27: ↑27 и ↓0+37
Комментарии1

Рисуем фракталы на Rust и CUDA

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров6.2K

Фракталы — это бесконечные самоподобные фигуры. Они определяются простыми математическими формулами, которые создают удивительную красоту!

В этой статье мы рассмотрим алгоритм визуализации одного из самых известных фракталов на языке Rust с аппаратным ускорением NVIDIA, масштабированием, сглаживанием и многопоточностью.

Читать далее
Всего голосов 28: ↑28 и ↓0+33
Комментарии65

Первый год в Rust — история любви

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.1K

Много лет назад я учился в Политехническом университете и уже думал о том, чем хочу заниматься, но не знал, чем именно. Поковырялся в html, css и js, написал несколько простых телеграм-ботов на питоне (с тех пор они канули в Лету), потом сделал то же самое на Java.

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

Но во время пандемии 2020 года я оказался в информационном поле Linux и с тех пор сильно вник в Linux. В этом году ради общности и системности, чтобы делать задачи, а не придумывать их, потому что та или иная ответственность, я искал «веб-разработку для начинающих» и нашел наставника. Сначала мы обсуждали варианты реактивного кодирования, но затем наставник спросил, что меня интересует, и я сказал, что в целом интересуюсь разработкой программного обеспечения, а мысли о ржавчине/++ отложил в долгий ящик. Итак, я начал писать Rust для проекта Retina в Norcivilian Labs.

Retina — сервис для выявления на изображениях ретинопатии — заболевания глаз. Бэкенд, на котором работает сверточная нейронная сеть, уже реализован, но мы пишем для него десктопный и мобильный клиент.

Сначала мы работали с Nix и Linux. Для того, чтобы начать участвовать в проекте, нам нужно было всё настроить. Я установил NixOS, настроил его и зарегистрировался в нашем проекте на GitLab. Мы сразу же столкнулись с ошибками и добавили сопоставление с образцом в Nix flake для запуска оболочки кроссплатформенной разработки.

Читать далее
Всего голосов 11: ↑6 и ↓5+4
Комментарии4

Введение в gRPC: Основы, применение, плюсы и минусы. Часть I

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров9.8K

Эта статья содержит краткую теорию о gRPC, обсудит преимущества и особенности использования данной технологии для создания высокопроизводительных и масштабируемых микросервисов.

Читать далее
Всего голосов 9: ↑4 и ↓5+3
Комментарии4

Учимся летать: симуляция эволюции на Rust. 1/5

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров6.4K



В этой серии статей мы создадим симуляцию эволюции с помощью нейронной сети и генетического алгоритма.


Я расскажу вам, как работают простая нейронная сеть и генетический алгоритм, затем мы реализуем их на Rust и скомпилируем приложение в WebAssembly.


Предполагается, что вы немного знакомы с Rust, остальное я постараюсь объяснить.

Эта серия состоит из нескольких статей:


  1. Введение (что мы будем симулировать, как работает нейронная сеть и генетический алгоритм).
  2. Реализация нейронной сети.
  3. Реализация генетического алгоритма.
  4. Реализация глаз, мозга и самой симуляции (в двух частях).

Интересно? Тогда поехали.

Читать дальше →
Всего голосов 23: ↑23 и ↓0+32
Комментарии3

Книга рецептов Rust. 2/2

Уровень сложностиСредний
Время на прочтение41 мин
Количество просмотров3.7K



Hello world!


Книга рецептов — это коллекция простых примеров, демонстрирующих хорошие практики решения распространенных задач программирования с помощью крейтов экосистемы Rust.


Читать дальше →
Всего голосов 19: ↑18 и ↓1+27
Комментарии0

Rust: за пределами синтаксиса. Обретение просветления в неожиданных местах

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров5.9K

Я ненавижу C++. Обычно мне нравится программировать, но каждый проект на C++, за который я брался, казался мне утомительной рутиной. В январе 2023 года я решил изучить Rust, чтобы иметь возможность сказать, что знаю язык системного программирования, который мне действительно хотелось бы использовать.

Первая стабильная версия Rust вышла в 2015 году, и с тех пор, начиная с 2016 года, он ежегодно признается самым любимым языком в ежегодном опросе разработчиков на Stack Overflow (теперь, в 2023 году, это называется "Востребованный"). Почему же разработчики, попробовав Rust, не могут перестать его использовать? В мире разрекламированных преемников C/C++ Rust, похоже, выходит на первое место. Как получилось, что язык, который появился на основной сцене всего в прошлом десятилетии, стал таким популярным?

Читать далее
Всего голосов 17: ↑11 и ↓6+5
Комментарии31

Туториал по Tokio. 2/2

Уровень сложностиСредний
Время на прочтение38 мин
Количество просмотров2.5K



Hello world!


Представляю вашему вниманию вторую часть туториала по Tokio.



Tokio — это асинхронная среда выполнения (runtime) кода Rust. Она предоставляет строительные блоки, необходимые для разработки сетевых приложений любого размера.

Читать дальше →
Всего голосов 19: ↑19 и ↓0+26
Комментарии0

Туториал по Tokio. 1/2

Уровень сложностиСредний
Время на прочтение35 мин
Количество просмотров6.4K



Hello world!


Представляю вашему вниманию первую часть туториала по Tokio.



Tokio — это асинхронная среда выполнения (runtime) кода Rust. Она предоставляет строительные блоки, необходимые для разработки сетевых приложений любого размера.

Читать дальше →
Всего голосов 27: ↑27 и ↓0+37
Комментарии2

Готовимся к собеседованию по Rust: 4 самых частых вопросов. Часть 1

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров6.4K

Привет, Хабр!

Rust — язык программирования с акцентом на безопасность, скорость и параллелизм. Rust решает многие проблемы, с которыми сталкиваются на других ЯП, например, управление памятью без сборщика мусора.

Очевидно из-за многих преимуществ Rust выбирают все большей компаний. В этой статье рассмотрим пять часто задаваемых вопросов на собеседованиях, которые помогут подготовиться к собеседованию по части Rust.

Читать далее
Всего голосов 23: ↑13 и ↓10+6
Комментарии7

Кратко про юнит-тесты в Rust

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3K

Привет!

Юнит-тесты позволяют предотвратить ошибки и значительно упростить процессы рефакторинга и поддержки кода. Их реализация существует во всех языках программирования и Rust - не исключение.

Юнит-тесты в Rust обычно располагаются в том же файле, что и тестируемый код, в специальном модуле с именем tests, аннотированном #[cfg(test)]. Внутри этого модуля размещаются функции тестирования, каждая из которых также аннотируется как #[test].

Читать далее
Всего голосов 13: ↑10 и ↓3+11
Комментарии9

Как я снизил время инкрементальных сборок Rust на 40%

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров3.4K

Я форкнул и модифицировал компилятор Rust rustc. Одна фича — кэширование раскрытия процедурных макросов — привела к снижению времени инкрементальных сборок на 11-40% в различных реальных крейтах. Благодаря этому ускорились dev-сборки и меньше стал тормозить rust-analyzer (IDE IntelliSense).

Если вы специалист в повышении производительности компилятора Rust, то можете сразу перейти к разделу «Кэширование раскрытия макросов: ускорение инкрементальных сборок Rust на 40%».

Читать далее
Всего голосов 18: ↑18 и ↓0+21
Комментарии5

Кратко про Serde в Rust

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров4.5K

Serde — это высокопроизводительная библиотека для сериализации и десериализации данных в Rust. Она поддерживает различные форматы данных, включая JSON, YAML, TOML, BSON и многие другие.

В этой статье рассмотрим основы Serde в Rust.

Читать далее
Всего голосов 14: ↑9 и ↓5+8
Комментарии6

Pet-проект на Rust нуждается в конструктивной критике

Уровень сложностиСредний
Время на прочтение1 мин
Количество просмотров5.6K

Примерно 8 месяцев назад я написал на Rust pet-проект, который пытается быть подобием Hibernate в экосистеме Java. Я даже опубликовал его в качестве Open Source, но получил негативный отзыв и удалил его с GitHub.

Сейчас я решил вернуться к этому проекту, но подойти к нему с другой стороны. Я бы хотел услышать идеи по проекту от опытных разработчиков на Rust. Что в моем проекте сделано не в идиоматическом стиле Rust и т.д. и т.п. В общем, хочется получить чек-лист того, что в проекте не так и как это исправить.

Читать далее
Всего голосов 24: ↑10 и ↓14+4
Комментарии15

Rust — это не «memory safe C»

Уровень сложностиСредний
Время на прочтение27 мин
Количество просмотров48K

TL;DR:
— в Rust намного больше достоинств, чем просто скорость и безопасность
— в Rust по умолчанию CDD (compiler-driven development, разработка через компилирование). Это как TDD, только CDD
— Rust — не сложный язык, особенно если не гнаться за максимальной производительностью

В этой статье я бы хотел рассказать:
— почему взгляд на Rust как на "memory safe C" очень сильно сужает область его возможного применения
— почему я смотрю на Rust как на очень удобный в разработке язык высокого уровня, которому просто случайно повезло оказаться невероятно быстрым
— почему разработка на Rust быстрее, чем многие думают
— почему Rust — это один из лучших языков общего назначения

Читать далее
Всего голосов 155: ↑149 и ↓6+168
Комментарии555

Пишем калькулятор на Rust с GUI

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров13K

Зачем еще один калькулятор? Да незачем, просто как тестовый проект для рассмотрения GUI-библиотеки.

Изначально я хотел попробовать такие крейты, как GPUI, Floem и Xilem, но первая, кажется, пока работает только под MacOS и Linux, вторая не позволяет установить иконку окну и кушает оперативы побольше Webview в Tauri, а до третьей я так и не добрался, узнав об Slint.

Об Slint есть всего несколько новостных постов на Хабре, поэтому, возможно, вам будет интересно посмотреть, что это такое.

Читать далее
Всего голосов 23: ↑22 и ↓1+26
Комментарии84

9 полезных крейтов в Rust

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров6.5K

Привет, Хабр!

Rust, как любимый многими разработчиками знаменит своей скоростью и безопасностью. Но его истинная сила заключается в экосистеме крейтов — библиотек и инструментов, которые могут превратить сложные и трудоёмкие задачи в удивительно простые и приятные процессы.

Крейты в Rust – это пакеты, которые можно использовать для расширения функциональности проектов.

Читать далее
Всего голосов 21: ↑15 и ↓6+11
Комментарии15

Как мы делаем опенсорс курсы для программистов от программистов

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров35K
Мы разочаровались в курсах по программированию и поэтому сделали свои собственные. Не для вайтишников, а для типичных разрабов. В процессе нас хакнул инфлюенсер и забанил сервер телеграма.

Покоцанные, но не сломленные, мы представляем проект, над которым работали полтора года по ночам. Курсы по программированию с задачами в online IDE и прагматичной теорией. Никаких сертификатов и гарантий трудоустройства. Сплошной хардкор и опенсорс!


Читать дальше →
Всего голосов 121: ↑120 и ↓1+137
Комментарии76

Вы должны перестать вручную писать Dockerfile'ы

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров54K

Вы тоже устали вручную заполнять Dockerfile и docker-compose.yaml под каждый новый проект?

Я всегда задумывался, применяю ли я известные best practices, когда пишу конфиг для Docker, и не занесу ли я случайно какие-нибудь уязвимости, вручную заполняя конфиг-файлы.

Что же, теперь мне больше не придется беспокоиться об этом, благодаря добрым людям из Docker, которые недавно реализовали инструмент для этого - docker init .

Интересно, как экономить время и быстро генерировать конфиги, даже если вы не профи в Docker? Прошу под кат.

Читать далее
Всего голосов 74: ↑71 и ↓3+76
Комментарии66

Библиотеки для реализации алгоритмов сжатия данных в Rust

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров3.5K

Привет, Хабр!

Сегодня мы рассмотрим хорошие библиотеки для реализации алгоритмов сжатия данных на ЯП Rust. Сжатие данных позволяет уменьшать объемы данных без потери качества или с минимальными потерями. Различают две основные категории методов сжатия: с потерями и без потерь.

Читать далее
Всего голосов 12: ↑10 и ↓2+12
Комментарии10
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Донецкая обл., Украина
Зарегистрирован
Активность