1.84K subscribers
3.26K photos
129 videos
15 files
3.54K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
Forwarded from Life of Tau
15👍3
Forwarded from flexagoon
Есть Worlde с названиями библиотек в js

Это просто обычный wordle

Потому что на любое слово есть библиотека для js
😁10
Молодой динамично развивающийся блокчейн-стартап starter pack:

* "Мы строим будущее"
* претенциозное название, опционально включающее в себя "De" или ".io"
* команда — все, как один, passionate developer with big experience
* сайт — одностраничный лендинг, с отдельными секциями, которые появляются с анимациями при прокрутке
* продукт обязательно простой в использовании, автоматизируемый и работающий между различными чейнами
* в дорожной карте пункт реализации протокола отмечен, как запланированный, но деньги от инвесторов уже есть
* разработка ведётся на Rust поверх Substrate/Solana
* "Если не идёте к нам, то расскажите о нас друзьям, ну пжалста 🥺"
14🤮10👍3😁3
Блог* pinned a photo
#prog #rust #article

A Rust match made in hell

Или о крайне неочевидном способе получить ошибку в коде на Rust, против которого пока не ограждают ни компилятор, ни линтер.
👎1
Блог*
#prog #rust #amazingopensource diffstatic — инструмент для определения разницы между исходниками, который понимает синтаксис и потому отображает более адекватный дифф (см. пример). (thanks @rustawesome)
#prog #rust #rustlib

Dissimilar: diff library with semantic cleanup

This library is a port of the Diff component of Diff Match Patch to Rust. The diff implementation is based on Myers' diff algorithm but includes some semantic cleanups to increase human readability by factoring out commonalities which are likely to be coincidental.
#prog #rust #rustlib

halfbrown — библиотека, реализующая хэш-таблицу с гибридным бекендом: вектор для малого количества ключей и полноценная hashbrown для бо́льшего числа ключей
Заметил, что сложно искать посты с библиотеками для Rust, так что теперь под это дело есть отдельный хештег rustlib
🔥3
#prog #rust #rustlib

assay — более мощный тест-раннер для Rust. В частности, позволяет запускать каждый тест в отдельном процессе
#prog #rust

cargo-nextest

Features

* Clean, beautiful user interface. nextest presents its results concisely so you can see which tests passed and failed at a glance.
* Up to 60% faster than cargo test. Nextest uses a state-of-the-art execution model for faster, more reliable test runs.
* Detect flaky tests. Nextest can automatically retry failing tests for you, and if they pass later nextest will mark them as flaky.
* Partition test runs across several CI jobs. If your tests take too long to run in CI, nextest can automatically split them up for you across several jobs.
* Cross-platform. nextest works on Unix, Mac and Windows, so you get the benefits of faster test runs no matter what platform you use.
🔥2🤔1
Forwarded from Санечка Ъысь (Anna Weiss)
Ребята, всем привет!

В эти непростые времена мы решили поддержать сообщество rust-разработчиков и выложить видеозаписи всех докладов с RustCon 2021 раньше, чем обещали. Смотрите их тут, делитесь с друзьями.

Любим вас, до встречи на наших конференциях ❤️
22👍3😁2
Блог* pinned «Ребята, всем привет! В эти непростые времена мы решили поддержать сообщество rust-разработчиков и выложить видеозаписи всех докладов с RustCon 2021 раньше, чем обещали. Смотрите их тут, делитесь с друзьями. Любим вас, до встречи на наших конференциях ❤️»
Forwarded from PLComp (Alexander Chichigin)
https://arxiv.org/pdf/1810.07951.pdf
Don't Unroll Adjoint: Differentiating SSA-form Programs
Michael J Innes, 2019

https://proceedings.neurips.cc/paper/2020/file/9332c513ef44b682e9347822c2e457ac-Paper.pdf
Instead of Rewriting Foreign Code for Machine Learning, Automatically Synthesize Fast Gradients
William S. Moses and Valentin Churavy, NeurIPS 2020

Обе статьи посвящены (обратному aka reverse-mode) автоматическому (или алгоритмическому) дифференцированию функций, представленных в форме Single Static Assignment aka SSA. И тем не менее, они описывают существенно различные подходы.

Первая статья даёт краткое введение в обратное дифференцирование и распространённый подход на основе Wengert Lists. Чтобы перейти к SSA форме, к Wengert Lists необходимо добавить метки, условные и безусловные переходы и фи-узлы (φ nodes). Соответственно, статья вводит правила дифференцирования этих управляющих конструкций (control flow constructs). Дополнительно вводятся правила дифференцирования для чтения и записи в ячейки памяти, поскольку основной прицел статьи — императивные языки (и Julia в особенности). Забавно, что на практике (на текущий момент) основанная на описанном подходе библиотека Zygote не поддерживает деструктивную модификацию массивов, несмотря на её (библиотеки) широкое использование, в особенности во фреймворке для машинного обучения Flux. 😊

Несмотря на использование SSA-формы, первая статья подразумевает сравнительно высокоуровневое представление, близкое к исходному языку, до проведения оптимизаций. Вторая же статья рассматривает внедрение автоматического дифференцирования непосредственно в фреймворк LLVM в виде одного из проходов компиляции, выполняемого над низкоуровневым SSA-представлением, не зависящим от исходного языка и прошедшего ряд оптимизаций. Поэтому основное внимание она уделяет низкоуровневым аспектам: теневой памяти (shadow memory), кешам, обработке указателей, в том числе — вызовам функций по указателю, и переиспользованию информации с других проходов, таких как type-based alias analysis.

Стремление проводить автоматическое дифференцирование настолько низкоуровневого представления продиктовано двумя соображениями. Во-первых, немедленная применимость к большому количеству промышленных языков — C, C++, Rust, Julia — без каких-либо изменений в самом языке. Во-вторых, оптимизация исходного кода может сильно упростить и ускорить порождаемый код расчёта градиента функции, в некоторых случаях — понизить сложность с квадратичной до линейной после применения loop-invariant code motion к исходному коду.

Для подтверждения ускорения, авторы провели замеры производительности и сравнения с традиционными подходами на задачах ADBench от Microsoft и нескольких сторонних реализациях численного решателя дифференциальных уравнений. Результаты и графики приведены в статье. 😊

В любом случае, обе работы полагаются на "классические компиляторные техники", такие как dataflow analysis, alias analysis, abstract interpretation, и оптимизации. И потому представляют собой интереснейшее расширение "поля деятельности компиляторщиков" в сравнительно новую, но стремительно набирающую популярность, область.
👍6
Дежурное напоминание, что 8 марта — это не праздник весны, красоты и женственности
10
Сегодня 8 марта, буду банален: желаю равных прав, равных зарплат, чтобы вещи и пространства были спроектированы с мыслями о вас, поменьше сексизма и побольше безопасности, побольше сил чтобы бороться с ужасами реальности и поменьше ужасов реальности с которыми нужно бороться. Ну и конечно, хоть это и не относится напрямую к феминизму, желаю чтобы война закончилась, желаю чтобы вы и ваши близкие были в порядке, на столько, на сколько это теперь возможно.

/в общем да, вафель как обычно за всё хорошее против всего плохого/

Хотелось бы верить, что всё это близко, но верится с трудом...

Берегите себя, всего хорошего <3
26
А о том, куда всё летит, нам расскажет Егор Летов
😢152
А помните, был такой коронавирус?
😢20😁6👍1