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

Пользователь

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

Rust 1.57.0: константный panic!, пользовательские профили в Cargo и обработка ошибок выделения памяти

Время на прочтение3 мин
Количество просмотров5.5K

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


Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.57.0 вам достаточно выполнить следующую команду:


rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.


Что стабилизировано в 1.57.0


Rust 1.57 привносит panic! в константные контексты, добавляет поддержку настраиваемых профилей в Cargo и стабилизирует API, позволяющие обработать ошибки резервирования памяти.

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

Выпуск Rust 1.56.0 и 2021 редакция

Время на прочтение4 мин
Количество просмотров9.7K

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


Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.56.0 вам достаточно выполнить следующую команду:


rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.

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

Rust 1.55: обновление `std::io::ErrorKind`, изменение алгоритма разбора чисел с плавающей точкой

Время на прочтение4 мин
Количество просмотров5K

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


Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.55.0 вам достаточно выполнить следующую команду:


rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.

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

Слегка ржавое EFI-приложение

Время на прочтение11 мин
Количество просмотров12K
После двух твитов, оставленных на прошлой неделе, про мои игры с UEFI и Rust, несколько человек попросили опубликовать заметку, объясняющую как создать UEFI-приложение, полностью написанное на Расте и продемонстрировать тестовое окружение.

Так что сегодняшняя цель — это создание UEFI-приложения на Расте, которое распечатывает карту памяти, отфильтрованную по доступности для использования (такая память называется традиционной памятью в описании UEFI-спецификаций):

Читать дальше →
Всего голосов 56: ↑55 и ↓1+54
Комментарии3

WireGuard заработал в режиме ядра WindowsNT

Время на прочтение3 мин
Количество просмотров12K


Разработчик WireGuard VPN Джейсон Доненфельд выпустил новую версию WireGuardNT, которая работает в режиме ядра WindowsNT (7, 8.1, 10, 11, 2012, 2016, 2019, 2022). Перенос всего кода в ядро значительно повышает пропускную способность туннеля практически на любых соединениях, особенно по WiFi.

Примечание. Чтобы запустить свою программу на уровне ядра Windows и не иметь проблем с Microsoft SmartScreen, разработчику требуется приобрести сертификат подписи кода типа EV, который стоит намного дороже, чем обычный сертификат подписи кода — примерно $2000 за трёхлетний. Хорошо, что у опенсорсного некоммерческого проекта WireGuard есть спонсоры.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии32

Rust 1.53.0: IntoIterator для массивов, "|" в шаблонах, Unicode-идентификаторы, поддержка имени HEAD-ветки в Cargo

Время на прочтение4 мин
Количество просмотров4K

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


Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.53.0 вам достаточно выполнить следующую команду:


rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.


Что было стабилизировано в 1.53.0


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

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

Марсоход «Настойчивость» высадился на Марс! [Дополняется...]

Время на прочтение2 мин
Количество просмотров33K

Первое изображение, полученное от «Настойчивости» после высадки
Несколько минут назад появилась информация о том, что высадка на Красную планету прошла успешно! Как и сообщалось, информация об этом поступила на Землю через 11 минут после начала процесса посадки. Сейчас ровер начинает проверять свои системы, а чуть позже — начнет основную миссию по изучению поверхности Красной планеты.

Вскоре (наверное, спустя несколько дней) посадку аппарата мы сможем увидеть во всей красе и даже услышать благодаря большому количеству камер и микрофонов, которыми оснащен ровер. Данные обработают и только после этого представят миру.
Всего голосов 89: ↑88 и ↓1+87
Комментарии131

Размышления о Rust

Время на прочтение4 мин
Количество просмотров10K

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

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

Ржавеем дальше. Как появился Rust и можно ли на нём WEB?

Время на прочтение20 мин
Количество просмотров18K

Моя предыдущая статья про rust вызвала положительную реакцию и большое количество обсуждений о том что да как с rust. Мне исключительно приятно видеть что вам понравился этот материал.

В комментариях я встретил много вопросов типа «А можно ли использовать rust для WEB?» Лаконичный ответ таков: «Можно». Можно и brainfuck использовать, если хочется. Нужно ли? Скажем так, brainfuck для WEB использовать категорически не стоит. А вот rust – тут надо понимать что именно делает rust и каковы его цели. Для того чтобы это понять мы должны погрузиться в компилятор и разобраться в устройстве процессоров. Под катом вы найдёте глубокий заныр в историю того как появился rust и поймёте что это такое и когда его нужно использовать а когда можно и на «ноде запилить».

Ржавеем дальше и глубже...
Всего голосов 39: ↑34 и ↓5+29
Комментарии88

Как мы ржавели. История внедрения и обучения

Время на прочтение12 мин
Количество просмотров35K

Все говорили – переходи на rust! Начинай пользоваться самым-самым языком, который самый любимый язык на stackoverflow и всё такое.

Я тяжело вздохнул и огляделся. Ну опять двадцать-пять. Ладно, давайте разбираться, как правильно покрывать всё ржавчиной.

Профессионально я программирую уже 17 лет. В далёкие-предалёкие времена я начал изучать программирование с x86 Assembly. Такой жестокий подход к изучению компьютера дал мне глубокое понимание того как работает процессор и что делают другие языки программирования. Учить новые языки для меня никогда не было проблемой. Я их просто учил. C, C++, шарпы, ГО, тысячи разных скриптов и фреймворков. Чего уж там, ещё один язык, можно и выучить.

Ага.

Только вот не с этой ржавой развалюхой. Я просидел две недели над официальным руководством, пялился в VSCode и не мог выдавить из себя больше чем fn main() {}. Ну какого же чёрта? Я просто закрыл глаза, открыл руководство на рандомной странице и начал его читать. И прикол в том, что я понял о чём там говориться. И тут до меня дошло… Руководство написано наизнанку. Начало и конец ничуть не лучше чем в Мементо Кристофера Нолана. Они как-то умудрились запутать в общем-то нормальное руководство. После этого всё пошло получше.

Ржавые шестерёнки заскрипели и начали крутиться. Программа пошла-поехала. Если хотите знать как я внедрил rust в продакшин, как я ему научился и что из этого вышло – добро пожаловать под кат. Реальные люди, коммиты, примеры и никаких todo-list и хеллоу-ворлдов.

Ржаветь так ржаветь.
Всего голосов 142: ↑138 и ↓4+134
Комментарии315

Опубликован релиз Sequoia 1.0, реализации OpenPGP на языке Rust

Время на прочтение3 мин
Количество просмотров2.4K

Спустя три года после начала разработки опубликован релиз Sequoia 1.0. Это реализация OpenPGP на языке Rust, содержащая обширную библиотеку функций и инструментарий командной строки. Релиз опубликован после того, как разработчики закончили работу над низкоуровневым API — в нем как раз и реализован в полной мере стандарт OpenPGP.

Написано все это на Rust, а распространяется пакет под лицензией GPLv2+. Есть версии для всех основных платформ — Linux, FreeBSD, Windows, macOS, Android и iOS. Команда разработчиков небольшая, ее основа — три участника разработки GnuPG из компании g10code. Эта же команда создала и сервис ключей Hagrid, который применяется в сервисе keys.openpgp.org. О том, что представляет из себя пакет — под катом.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии0

Фантастическая эклектика: романы, написанные на невероятном стыке жанров

Время на прочтение8 мин
Количество просмотров20K


В мире постмодерна и постиронии, где мы живем сегодня, многие рамки становятся все более хрупкими и условными. Так в литературе авторы все более и более смело обходятся с понятиями жанра, комбинируя их или работая на тонкой грани между двумя, тремя и более направлениями. Если несколько лет назад шутка про «кибер-утопический-порно-триллер» казалась только шуткой, то сейчас нет ничего невозможного! Главное — иметь в запасе смелость и чувство вкуса. И, желательно, представление о том, какой именно цели служит тот или иной эксперимент.

И вот несколько примеров подобных книг, не укладывающихся в прокрустово ложе привычных жанров.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии11

Роботы. Часть два. Крылатые качели

Время на прочтение9 мин
Количество просмотров8.7K
Дисклаймер. Роботы — очень надёжные парни. Среднестатистический роберт нормального бренда может как проклятый работать годами без перерыва, требуя только коротких перерывов для обслуживания и проверки калибровки. Все нижесказанное — исключительно следствие того, что мы пытаемся этих парней заставить делать то, к чему они не привыкли. Конечно, нельзя не отметить, что мы пытаемся это сделать в рамках мануалов, но, видимо, лезем в такие дебри, где функция вроде как написана, но при этом не до конца проработана. В связи с чем и выхватываем всю ту радость, о которой пойдёт далее речь в тексте. Лонгрид.

image
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии75

Что под капотом чипа DRAM, этапы развития технологии

Время на прочтение10 мин
Количество просмотров11K
“Всем знаком закон Мура, описывающий уменьшение размеров транзисторов в логических схемах. Для того, чтобы он продолжал работать, технологам приходится идти на все новые и новые ухищрения, однако их работу несколько усложняет то, что все чипы очень разные по структуре. А что было бы, если бы можно было оптимизировать технологию под конкретный дизайн микросхемы? Ответ на этот вопрос может дать динамическая память.”

Классический пример работы закона Мура — ячейка статической памяти. Ее схема давно известна и широко используется, занимая десятки процентов площади современных микропроцессоров и систем на кристалле. Именно площадь ячейки статической памяти стали использовать как мерило плотности упаковки новых технологий, когда стало понятно, что длина канала транзистора больше не может быть эталоном проектных норм. Учитывая важность статической памяти, технологи стараются подбирать параметры процессов так, чтобы не только в принципе увеличивать плотность упаковки элементов на кристалле, но и заботиться конкретно о статической памяти. Однако, на чипе всегда есть множество других схем, и если очень сильно упираться в оптимизацию именно памяти, это может выйти боком. Но что было бы, если бы технологию можно было полностью подчинить нуждам схемотехники? Ответ на этот вопрос может дать динамическая память.

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

Rust 1.47.0: const generics для массивов, LLVM 11, Control Flow Guard и сокращение трассировок

Время на прочтение5 мин
Количество просмотров4.5K

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


Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.47.0 вам достаточно выполнить следующую команду:


rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.


Что вошло в стабильную версию 1.47.0


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

Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии2

OpenPGP переписывают на Rust: проект Sequoia

Время на прочтение8 мин
Количество просмотров7.7K

Секвойя Стагг в роще Олдер-Крик, Калифорния

В 2018 году три бывших разработчика GnuPG начали работу над проектом Sequoia — реализацией OpenPGP на Rust. Как известно, OpenPGP — это открытый стандарт шифрования данных, часто используемый для защищённой электронной почты; а GnuPG — эталонная реализация этого стандарта.

Сами разработчики так изложили мотивацию за создание новой библиотеки OpenPGP:

  • GnuPG трудно модифицировать. Код и API накапливались в течение 21 года. Модульные тесты отсутствуют. Компоненты тесно связаны друг с другом. Архитектура оставляет желать лучшего, и простой рефакторинг уже не поможет.
  • Многие разработчики недовольны программными интерфейсами GnuPG. У инструмента командной строки GnuPG и соответствующих программных библиотек разная функциональность: некоторые команды доступны только из командной строки.
  • Rust — безопасный для памяти язык, что автоматически исключает целый класс багов.
  • GnuPG невозможно использовать под iOS из-за ограничений GPL.
Читать дальше →
Всего голосов 47: ↑46 и ↓1+45
Комментарии16

Rust 1.46.0: track_caller и улучшения const fn

Время на прочтение2 мин
Количество просмотров4.3K

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


Если у вас установлена предыдущая версия Rust через rustup, получить Rust 1.46.0 так же просто, как:


rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта и ознакомиться с подробными примечаниями к выпуску 1.46.0 на GitHub.


Что вошло в стабильную версию 1.46.0


Этот выпуск достаточно небольшой, с улучшениями в const fn, стабилизацией двух новых API в стандартной библиотеке и одной опции, удобной для авторов библиотек. Смотрите подробные примечания к выпуску чтобы узнать о других изменениях, не представленных в данном анонсе.

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

Кто такие шизоиды, где они обитают, и почему вам может быть полезно о них узнать

Время на прочтение35 мин
Количество просмотров144K

Основные стереотипы о шизоидах в одной картинке

Synopsis: шизоид — не диагноз, это тип характера. Существуют шизоиды, имеющие психические заболевания (как существуют истероиды, эпилептоиды, сварщики, мужчины и женщины, дети и бухгалтеры, имеющие диагнозы из области психиатрии), но далеко не каждый шизоид (мужчина, бухгалтер, сварщик и т.д.) — болен.

Сам этот характер довольно тяжело описать одновременно коротко и корректно. Некоторые называют их «гиками», «интровертами», «чудаками», «ботаниками», «хикканами», «эксцентричными», «нердами», «компьютерными гениями»[1, стр. 231], и все эти характеристики в той или иной мере имеют отношение к, собственно, шизоидам, но ни одна из них не является определяющей.

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

Большая часть литературы, посвящённой шизоидам, имеет клиническую направленность и описывает достаточно тяжёлые случаи шизоидизации, а в рамках этого текста я хотел бы рассказать о здоровых шизоидах, коих среди нас присутствует достаточно для того, чтобы их особенности имели значение в контексте трудовых отношений, управления и маркетинга.
Читать дальше →
Всего голосов 170: ↑163 и ↓7+156
Комментарии351

ИИ снова победил пилота F-16 в воздушном бою

Время на прочтение4 мин
Количество просмотров19K


В истории о машинах, побеждающих людей, появилась новая глава: ИИ снова победил пилота-человека в виртуальном воздушном бою. Соревнование AlphaDogfight стало финалом испытаний нейросетевых алгоритмов, разработанных для американских вооруженных сил. И наилучшей демонстрацией возможностей интеллектуальных автономных агентов, способных победить вражеские самолеты в воздушном бою. Подробнее — в материале Cloud4Y.
Всего голосов 27: ↑26 и ↓1+25
Комментарии82

Опыт конвертирования кода C# в код Rust

Время на прочтение14 мин
Количество просмотров9.7K

Постановка задачи


Код на языке C# нужно перевести в код на Rust. Точнее, требуется такая процедура перевода (разработка продолжается на C#), чтобы в любой момент можно было получить работающий код на Rust. Эту задачу я решал для языков Java, Python, JavaScript и PHP, написав конвертер из C# в эти языки. Концепция такого конвертирования была изложена в статье UniSharping пару лет назад. Я разрабатывал этот конвертер, чтобы переводить код своего проекта SDK Pullenti (лингвистический анализ текста). И подумалось мне: а не замахнуться ли на Rust? Да, слышал разные отзывы, что язык необычный и пр., но попытка же не пытка… Тем более, что у одного из заказчиков группа программистов увлечённо пишет на нём.

Читать дальше →
Всего голосов 34: ↑27 и ↓7+20
Комментарии62

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность