Начались майские праздники, но это не значит, что дайджест новостей из мира программирования ушёл на второй план. В этой подборке пройдёмся по важным новостям IT-мира за прошедшую неделю: разработчики Arduino выпустили обновление Arduino IDE 2.1, команда Flipper Zero добавила режим сна для своего устройства, а проект Prossimo начал переписывать sudo
и su
на Rust.
Рубрика «Rust» - 5
Дайджест новостей из мира программирования #2
2023-04-30 в 20:35, admin, рубрики: arduino, flipper, flipper zero, jetbrains, kotlin, Rust, sudo, дайджест, Программирование, разработкаУскоряем Python в сто раз при помощи менее чем ста строк на Rust
2023-04-30 в 14:15, admin, рубрики: numpy, pyo3, python, Rust, ruvds_перевод, библиотеки python, Блог компании RUVDS.com, оптимизация производительностиОднажды на работе у нас возникла проблема с производительностью одной из наших основных Python-библиотек.
Эта библиотека формирует фундамент нашего конвейера 3D-обработки. Это довольно большая и сложная библиотека, использующая NumPy и другие научные пакеты Python для выполнения широкого спектра математических и геометрических операций.
Кроме того, наша система должна работать на мощностях компании с ограниченными ресурсами CPU, и хотя поначалу она справлялась хорошо, с ростом количества одновременных физических пользователей у нас начали возникать проблемы, а наша система едва выдерживала нагрузку.
Мы пришли к выводу, что для работы с увеличившейся нагрузкой нужно сделать систему, по крайней мере, в пятьдесят раз быстрее, и решили, что помочь в этом нам может Rust.
Так как проблемы производительности, с которыми мы столкнулись, встречаются довольно часто, мы можем воссоздать и решить их прямо здесь, в (не такой уж короткой) статье.
Так что заварите себе чаю (или кофе) и я расскажу вам (а) о самой проблеме и (б) о нескольких итерациях оптимизаций, которые мы смогли применить для решения этой проблемы.
Если вы хотите сразу перейти к получившемуся коду, то читайте раздел «Подведение итогов».
Читать полностью »
Microsoft переписывает код ядра и некоторых библиотек Windows на языке Rust. Но зачем?
2023-04-29 в 12:34, admin, рубрики: Rust, windows, Блог компании Selectel, разработка под windows, Софт, языкиНедавно стало известно о том, что команда разработчиков Windows 11 занимается новым типом работы — переписывает ряд модулей ядра и системных библиотек операционной системы на Rust. При этом работа уже в разгаре, это не просто анонс проекта или планы на будущее — реализация идет полным ходом. Зачем корпорации все это понадобилось?
Читать полностью »
Самая маленькая хеш-таблица в мире
2023-03-20 в 10:05, admin, рубрики: Rust, Алгоритмы, Блог компании Wunder Fund, Программирование, разработка1 декабря я в очередной раз поучаствовал в Advent of Code, написав программу на Rust. Если интересно — код можно найти на GitHub. Тут мне хотелось бы рассказать о моём решении задачи, предлагавшейся во 2 день мероприятияЧитать полностью »
Использовать unwrap() в Rust — это нормально
2023-03-19 в 18:51, admin, рубрики: Rust, обработка ошибок, паника, ПрограммированиеПредисловие
Сравнительно недавно на Хабре была опубликована статья «Rust: ни в коем случае не используйте unwrap() в продакшене». Мягко говоря, тезисы, высказываемые в данной статье, спорны и содержат мало обоснования. Предлагаю читателям взглянуть на альтернативную точку зрения: почему использовать unwrap()
в Rust — это нормально (в том числе и в продакшене). Автор оригинальной статьи — Эндрю Галлант.
Использовать unwrap() в Rust — это нормально
За день до выпуска Rust 1.0 я опубликовал запись в блоге, посвященную Читать полностью »
Пишем игру от первого лица в 2КБ на Rust
2023-03-10 в 7:34, admin, рубрики: raycasting, Rust, webassembly, Wolfenstein 3D, Алгоритмы, математика, разработка игр, рейкастингВведение
Поначалу кажется, что создать игру от первого лица без движка или графического API практические невозможно. В этом посте я расскажу, как это сделать при помощи алгоритма под названием ray casting.
Моя цель — показать, что сложную задачу можно разбить на более простые части, и если я всё сделаю правильно, то у вас появится ощущение, что вы сами открыли, как работает игра.
Для начала разберёмся, как работает алгоритм, а затем построчно напишем его. Затем мы пересмотрим код, добавим несколько возможностей и оптимизируем его размер. Я постарался сделать пост максимально доступным и дружелюбным, но вам поможет приличное знание программирования, Rust и основ геометрии.
Читать полностью »
Как сломанный лифт привел к появлению одного из самых популярных языков программирования
2023-02-27 в 12:12, admin, рубрики: getmatch, Rust, Блог компании getmatch, ПрограммированиеТо, что начиналось как маленький побочный проект на ноутбуке одного разработчика — сегодня стало одним из самых успешных языков программирования с открытым исходным кодом, которым пользуются Microsoft, Amazon, Google, Tesla, Discord и многие другие.
Если кто не знает эту историю — велком.Читать полностью »
Создание модуля WebAssembly с помощью Emscripten, AssemblyScript и Rust
2023-02-24 в 16:58, admin, рубрики: AssemblyScript, c++, Emscripten, python, Rust, wasmer, webassemblyВ этой небольшой заметке предлагается рассмотреть несколько способов компиляции модуля для WebAssembly, используя три разных подхода. Мы реализуем решение одной и той же задачки на трёх языках и скомпилируем полученный код в модуль WebAssembly. Будем использовать:
-
Emscripten для компиляции кода, написанного на c++
-
AssemblyScript для компиляции кода, написанного на, собственно, AssemblyScript
-
wasm-pack для компиляции кода, написанного на Rust
План такой:
-
Во введении мы обсудим постановку задачи и немножко поговорим о технологии WebAssembly
Rust vs C#: два способа решить проблему ссылок в структурах
2023-02-23 в 9:55, admin, рубрики: .net, C#, RustВозврат ссылки на структуру из метода, объявленную в этом самом методе, является одним из самых классических примеров "висячих ссылок". Но что если возвращается не ссылка, а структура, содержащая ссылку? И не явно, а через вызов другого метода? Как понять, где у нас явный "провис ссылки", а где нормальный код? Звучит как какая то "дичь", но подобный кейс - вполне реальная боль для авторов языков программирования.
Давайте посмотрим на примере Rust и C# как авторы решают эту неоднозначную проблему.
Постановка задачи
Git scraping: методика бесплатного хостинга не совсем статических сайтов
2023-02-04 в 1:42, admin, рубрики: beatport, etl, github, github actions, github pages, python, Rust, yaml, Программирование, Разработка веб-сайтов, хостинг, шаблонизаторНи для кого не секрет, что, используя GitHub Pages, вы можете бесплатно разместить свой статический веб-сайт в сети Интернет. 1 Гбайт доступного пространства, SSL-сертификат, возможность привязать собственный домен — разве не сказка? Но что делать, если вам необходимо, чтобы содержимое вашего статического ресурса периодически обновлялось? Допустим, несколько раз в час.