Pull to refresh

Comments 7

Да, обязательно добавлю. Вот только разберусь как это сделать корректно.

Смешались в кучу кони, люди. (ц)

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

double (числа с плавающей точкой двойной точности):
...
Примеры: финансовые операции

Деньги и плавающая запятая - две непересекащихся вселенных. Тот, кто пытается их объединить, должен быть изгнан из профессии с позором.

Очередь (Queue) (FIFO)

А вот тут говорится, что нет. Очередь - это не обязательно FIFO.

Цитата

Queues typically, but do not necessarily, order elements in a FIFO (first-in-first-out) manner. Among the exceptions are priority queues, which order elements according to a supplied comparator, or the elements' natural ordering, and LIFO queues (or stacks) which order the elements LIFO (last-in-first-out).

Матрицы и тензоры (matrices, tensors)
...
Доступ к элементу по индексам: matrix[i][j] - O(1) для массивов, может быть O(n^2) и более, если это ArrayList.

Интересно как это так получилось, что у массивов сложность доступа к элементу константная, а у ArrayList (внутри которого тот же массив) вдруг стала квадратичной?

Диапазоны (ranges):
Описание: Определяют последовательности чисел ...

Упомянутая Guava же и не согласна.

Hidden text

Грубо говоря, диапазон можно создать с любым типом данных, для которого определена операция сравнивания.

Последовательности чисел (sequences):
...
В стандартную библиотеку Java не входит

Чё это?
Во-вторых, опять же не только из чисел.

И чем дальше, тем забористей.

Спасибо за развёрнутый комментарий! Рад, что статья вызвала живую реакцию и послужила поводом для столь детального разбора. 😊

По поводу "смешались в кучу кони, люди" – да, возможно, есть немного. Статья и не претендует на звание фундаментального труда, скорее, это попытка "взглянуть с высоты птичьего полёта" на данные в контексте Java-разработки, попутно затронув и основы.

Что касается конкретных замечаний:

  • double и финансы: Согласен, использовать double для финансовых расчётов – не лучшая идея из-за особенностей представления чисел с плавающей точкой. Тут стоило бы упомянуть BigDecimal для точных вычислений.

  • Queue и FIFO: Вы абсолютно правы, Queue в Java – это интерфейс, и он не обязан быть FIFO. Есть, например, PriorityQueue, где элементы упорядочиваются по приоритету, и LIFO-очереди (стеки). В тексте, дай бог памяти, имелось в виду "как правило", но формулировка неточная.

  • ArrayList и O(n^2): Здесь, конечно, ошибка. Доступ к элементу ArrayList по индексу – это O(1), так как внутри используется массив. O(n^2) – это, скорее, про неудачный алгоритм поиска внутри списка.

  • Ranges: Да, Guava's Range может работать с любыми типами данных, для которых определено сравнение, не только с числами.

  • Sequences: Тут, видимо, вышло недопонимание. Sequence упоминается как струкутра данных в общем. А в Java, Streams и Sequences из Kotlin, решают похожие задачи.

В общем, есть над чем работать! Спасибо за ценные замечания, обязательно учту их в будущих публикациях. А долги зимней сессии – да, надо закрывать, кто же спорит! 😉

Раздел про биометрические данные лучше удалить. В одну кучу скинуты знания бабушек у подъезда, упомянуты знатные русофобы (sourceafis) и не приведено ничего полезного или хотя бы современного.

P.S. Смешать OpenCV (открытую библиотеку компьютерного зрения) и Megamatcher (кусок профессионального ПО для распознавания отпечатков пальцев (и лица, и радужки), но именно кусок, отвечающий только за матчинг без экстракшена) - это пять

Спасибо за ваш комментарий и проявленный интерес к статье! 😉

Раздел про биометрические данные лучше удалить

Знаете, у меня тоже иногда возникает желание удалить кое-что… например, строчку кода, которая стала причиной бага, обнаруженного в 2 часа ночи. Но, как гласит народная мудрость, из песни слов не выкинешь (а из статьи – разделов). «Бабушки у подъезда» – это же кладезь народной мудрости и, между прочим, алгоритм "узнавания по походке" тоже серьёзный биометрический инструмент! 😄 Но если серьёзно – раздел, конечно же, можно дополнить и улучшить. Возможно у вас есть, что предложить? "... критикуешь – предлагай ...!" (с) Я с превеликим удовольствием добавлю в статью ваши наработки по теме биометрии!

знатные русофобы (sourceafis)

Ох уж эти ярлыки в наше неспокойное время! SourceAFIS – это, в первую очередь, библиотека с открытым исходным кодом (open-source) для распознавания отпечатков пальцев, причем имеющая реализации на Java. Видимо, «русофобия» проявляется в том, что она не на 1С написана? 😉 Но если отбросить шутки, то политику и технологии лучше не смешивать. Есть факты, которые указывают на то, что именно алгоритм (а не разработчик) проявляет признаки "русофобии"? С интересом ознакомлюсь.

Смешать OpenCV и Megamatcher

Каюсь, грешен, немного увлёкся. 😅 Это как в кулинарии: иногда хочется добавить в блюдо всего и побольше. OpenCV – это, действительно, библиотека компьютерного зрения общего назначения, эдакий "швейцарский нож" для обработки изображений. А Megamatcher – это уже профессиональный SDK, "набор инструментов", предназначенный для создания сложных мультибиометрических систем (включая, но не ограничиваясь, матчинг). Вы абсолютно правы: OpenCV предоставляет базовые возможности, а Megamatcher предлагает специализированные, оптимизированные (и закрытые) алгоритмы для решения конкретных задач. Учту ваше замечание и постараюсь в дальнейшем чётче разграничивать эти инструменты. (Если, конечно, сообщество Хабра не решит, что мои статьи тоже пора "удалить"! 😂)

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

1) Про русофобию - а Вазан уже удалил страничку про помощь ВСУ, которая открывалась при заходе на его сайт с российского IP?
2) Про SourceAFIS - к сожалению, это "библиотека" очень низкого уровня, поделка студента без базы в рассматриваемой области
3) Про Megamatcher - во-первых, вы ошибаетесь, это не "набор инструментов", а конкретный один инструмент для сравнения шаблонов одного конкретного алгоритма; во-вторых, а почему вы выбрали именно Neurotechnology? откуда реклама данного конкретного литовского производителя, когда существует еще десятки других?
4) К сожалению, я не знаю, что "предложить" и чем "дополнить", потому что это не обзор. Это больше похоже на поток сознания gpt. Могу посоветовать только почитать какой-нибудь классический обзор, например, "Introduction to Biometrics", в авторах ищите индуса Анила. Он хотя в своей жизни никаких хороших алгоритмов сам не сделал, а только статьи писал, но обзор у него - обзор, а не набор фраз по теме.

Sign up to leave a comment.

Articles