Pull to refresh
17
0
Сергей Шарпов @IIIarp

Веб разработчик

Send message

Хорошая статья!

Работал в проекте с вычленением нот из аудиопоследовательности, там довольно фактический и правильный результат выходит.

А всего то нужно взять "обратное преобразование Фурье", которое построено с теми самыми комплексными числами, найти последовательность точек из реальных/мнимых результатов на нужном участке аудио, получить среднее арфиметическое, построить график средних арифметических на определённом участке (более широком), найти пики и получить реальные "ведущие и ведомые" частоты нот в текущем моменте аудиофайла основываясь на пиках используя "нереальные" числа :)

Хорошо работает для определения нескольких нот, которые играют одновременно.

Для одиночных нот делают куда проще (как в муз тюнерах для телефона)

Там комплексные числа не участвуют.

Но само преобразование Фурье как прямое так и обратное, не только в музыке применяется.

В чём отличие от гугл протобафа?

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

Но на основе этого принтера уже можно научится половине дела и написать эту статью.

btw. если я уберу фразу "кассовый аппарат" из первого абзаца статьи (где оно 1 раз было использовано за все время), то останется ли еще смысл для этой ветки комментариев? :)

Исправился :)

Спасибо большое :)
По этой теме все что-бы вы не показали будет мне интересно.

Проект концептуально/реальный, смотря на сколько хватит терпения в разработке.
Возможно я да раскошелюсь на какую-нибудь систему из существующих. (УкрСклад вроде не дорого стоит, если то цена единоразовая -_-)
Если все будет подключатся через USB то это вполне меня устроит, касса одна на магазин, если было бы несколько, то все равно было бы уместно для каждой кассы иметь свой аппарат с подключением на прямую, не бегать же с одного конца помещения в другой за чеком.

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

Если что выйдет, будем пользоваться, не успею так куплю готовое решение.

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

С вами тоже согласен :)

Почему мне хотелось обработать этот принтер по USB а не по интернет порту, потому-что хотелось иметь возможность подключить к пк любой принтер и сразу начать печать.

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

Иначе, в случае изменения адреса/порта, придется менять настройки и в приложении + нужно иметь провод и тащить его от кассы к роутеру, а так все будет под рукой и переносимо.

Не говорю что это лучшее решение, но наиболее удобное для меня.

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

Единственное отличие что эта машинка не сохраняет в памяти чеки и не пишет фразу "фискальный чек", хотя дописать ее по факту можно.

У этого принтера довольно обширное АПИ (размеры шрифта, центрирования, начертания, изменчивый DPI, баркоды, bitmap'ы, кастомные шрифты)
Во многом хорошее решение за малые деньги, если нет нужды в фискальном аппарате.

Спасибо за отзыв :)
Купить можно по фразе POS printer
https://prom.ua/Pos-5890.html

P.S. Что-бы прям вот так, смотрите в описании что-бы подключение через USB было доступно.

Так не интересно :)
Суть была скорее в том что-бы обработать это все по USB.
Ваш комментарий вполне уместен, у данного аппарата естественно есть порт интернета и в случае подключения его через интернет, прямого доступа к нему с веб страницы не будет и в ход пойдет шлюз описанный вами.

На данный момент, только экранирование экранирования.

const a = 'ab\\'cd';
Не совсем :)
Каждый токен хранит свой индекс начала и конца в исходном коде, результирующая строка будет взята с исходного кода, начиная от символа начала строки, заканчивая символом конца строки, при этом сохранив то же кол-во пробелов, табов и переносов строк, что были изначально.
Если верить википедии, то у меня, тоже своего рода «Метод рекурсивного спуска»
ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D1%80%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0%B8%D0%B2%D0%BD%D0%BE%D0%B3%D0%BE_%D1%81%D0%BF%D1%83%D1%81%D0%BA%D0%B0
А конкретнее, его реализация, под названием «Парсер с возвратом»

Только у меня, если ни одно правило не применимо к токену, то он пропускается.
По этому, он гарантирует завершение.

В моей реализации, правила — это последовательности (токенов, других правил, конкретных значений)

Например, у нас есть правило, определяющее «Определение переменной», оно состоит из последовательности токенов: Тип, Идентификатор, знак равно, значение, разделитель(например точка с запятой)

Если проверяемый токен имеет тип — «Тип», то мы проверяем следующий токен на совпадение с типом — «Идентификатор».
Если типы не сошлись, то мы пишем в стек ошибку «Unexpected Identificator» + место в source-map
Если другое правило подошло к стартовому токену, то стек очищается, иначе в коллбэк улетает синтаксическая ошибка, т.к. у проверяемого токена, наиболее вероятный нетерминал — «Определение переменной»
Согласен ( по поводу одной регулярки :) ), вы подали мне идею — перед парсингом, генерировать единую регулярку, используя ранее описанные группы.
Тогда, можно стать на шаг ближе, к генерированию настраиваемого, конечного автомата.

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

Information

Rating
Does not participate
Location
Запорожье, Запорожская обл., Украина
Registered
Activity