Pull to refresh
94
0
Михаил @m03r

CTO Rusprofile.ru

Send message

Современная нотация фиксирует существенно больше, чем 88 вариантов высот, распределённых во времени...

Тот случай, когда комментарии полезнее статьи. По-моему, эта история может стать отличной статьёй

Здесь, на мой взгляд, есть два принципиально разных подхода. Первый, условно, заказная разработка: там есть место и торговле, и уступкам и т. п., короче говоря, разработка и заказчик по разные стороны. Второй вариант — когда заказчик и разработка "в одной лодке" и в конечном счёте ищут оптимальное по времени и качеству решение общих задач.

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

Насколько я понимаю, move-семантика в Rust как раз это и обеспечивает: мы просто даём фрагменту памяти другое имя. Во всяком случае, в godbolt мне не удалось увидеть перемещение данных в памяти при использовании into вместо transmute, даже с итерацией по вектору они скомпилировались в одинаковый код.

Насчёт unsafe и transmute: семантичнее было бы это делать с помощью derive автоматической реализации From. С точки зрения кода это чище и красивее (и короче): просто пишем let x: W = s.into(), а на выходе то же самое (то есть эффективное ничего). Или у предложенного способа с трансмутацией есть какие-то иные неочевидные преимущества?

Следует заметить, что статья 2007-го года, и с тех пор что-то могло поменяться... но не поменялось для конкретно этого синтетического регулярного выражения.

Код на PHP 8.1.9 работает быстро, но для n > 18 не находит матч. Код на Python 3.10 всё так же тормозит.

Из того, что было проверить под рукой, только крейт regex в Rust показал себя отлично, что, в общем неудивительно, учитывая, что под капотом в этом крейте есть несколько разных движков, включая и NFA Томпсона: про это недавно был отличный перевод. Впрочем, это неудивительно: эта серия статей и библиотека RE2 и вдохновили автора на написание этого крейта.

Реальная проблема для удержания (во всяком случае, в Москве, где масса альтернатив) — качество продукции и ассортимент. Ну и ещё несколько раз подряд привозили не совсем то без предупреждения. А в статье, извините, передвижение кроватей

Жаль, что автор не упомянул о фигурных числах вообще, хотя этим ещё античные математики занимались. По поводу «гексов» даже в русской вики есть отдельная статья.

http://cliffle.com/p/dangerust/

Автор сначала "переводит буквально" код с C на Rust, а потом превращает его в идиоматический Rust, попутно даже выигрывая немного в производительности

Это смотря какая хеш-функция. Формально это определено, как «семейство k хеш-функций, каждая из которых возвращает число от 1 до m, где m — количество разрядов в фильтре», но мне удобнее представлять это семейство как одну хеш-функцию, чьё бинарное значение разрядностью m никогда не содержит более k единиц.

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

Таким образом, насколько я понимаю, среди таблиц-кандидатов достаточно бинарным поиском посмотреть индекс (где ключи сортированы).

И объединение SSTable не требует пересортировки данных, потому что слияние индексов выполняется за линейное время.

Спасибо за отличное сравнение! Есть один вопрос-предложение: вроде как -Oz оптимизирует размер, а не производительность (как -O3). Может быть, если собрать с -O3, то Emscripten побыстрее будет?

Зачем нужен отдельный пакет, когда есть стандартный линуксовый perf?

Это для того, чтобы достигать пика Балмера

Две и одну. Общепринятого способа записать сокращённо чередование трёх нот не существует

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

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

Что касается педали, лиги и ферматы. Это три разные вещи.

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

Лига (точнее, та её разновидность, которая tie, а не slur) — для увеличения длины ноты, то есть чтобы она занимала больше долей. Это ваш случай. Та, которая slur обозначает слитную манеру исполнения (на струнных, например, не меняя направление движения смычка, на духовых — на одном выдохе и т. п.).

Фермата растягивает метрическую сетку. Это как замедление на одну конкретную долю. Именно поэтому фермата всегда выписывается у всех инструментов разом.

Слушайте, вслушивайтесь и пробуйте — и обязательно получится! Хорошо бы начинать с чего-нибудь совсем простого, но здесь, увы, я не знаток.

Можно, но будет неудобно.

На все ноты во всех октавах действуют только ключевые знаки, те, которые пишутся рядом с ключом). Случайные, которые пишутся прямо около нот, действуют только в этой октаве и только до конца такта.

И смысл в этом действительно есть до тех пор, пока у музыка в том или ином смысле остаётся привязана к привычной классической тональности, то есть, условно говоря, мажорам и минорам. Видя ключевые знаки, исполнитель сразу может настроиться на соответствующий лад (гамму), и отклонения от него видны сразу (в виде случайных знаков). Кстати, в рукописях композиторы порой просто выпускают ключевые знаки (да и сами ключи), потому что оно же и так понятно.

Попытки переделать нотную запись были, но потерпели неудачу: ведь учатся-то все на традиционной нотации (принципы которой с четырнадцатого века не особо изменились), которая привязана к семиступенным ладам (и они прослеживаются вплоть до античной Греции).

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

Проблема в том, что это не то, что можно изучить по учебнику, здесь нужно чувствовать. Хорошая новость в том, что это чувствование вполне нормально развивается, собственно, в процессе обучения.

Что можно делать:

  • Слушать, и слушать внимательно, ловя разные тонкие (и, видимо, пока не очень привычные) ощущения

  • В том числе и слушать собственную игру. Пробовать все возможные сочетания, слушая, как они откликаются

  • Подбирать на слух, а в идеале — потом проверять себя, сверяясь с источником. Можно поймать некачественные источники на вранье, кстати

  • Петь тоже полезно, пусть тихо и совсем не певческим голосом, главное, чтобы относительно правильной высоты звуки

Любое музыкально-теоретическое понятие несёт в себе некоторые вполне определённые музыкальные ощущения, которые невозможно выразить в определении. И без этой вот исключительно практической части теория звучит как какая-то бессмысленная тарабарщина. А вот когда каким-то ощущениям удастся сопоставить какие-то понятия, тогда всё и заработает.

Information

Rating
Does not participate
Registered
Activity