• Как хешировать в хеш таблице узлы дерева?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дружище тебе не надо портить дерево. Оно и так хорошо.
    Просто заведи отдельную хеш-таблицу и трекай две структуры
    одновременно.

    LRU например так и делает. Цепной список + Hashtable.
    Ответ написан
    Комментировать
  • Будет ли разница при воспроизведении 4к на разных дисках?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да. Идея хорошая включить более тихие и медленные диски на 5600. Для домашнего кинотеатра - циркулярные
    пилы не нужны. Я как-то видел как инженеры по системам хранения включали хранилище Clarion на Hitachi 14 000 оборотов. Ну и блинов там в стойке было штук 20. Ну было ощущение что рядом взлетает истребитель.

    По поводу 5600. Посмотри как они включены. В современных матерях стоят уже SATA 3.0 но чорт его знает. Я видел гибриды где были и новые слоты и старые.

    Сколько нужно для просмотра кина в 4К качестве я не знаю. Это очень хитрый и лукавый вопрос. Дело
    в том что 4К трафик сильно зависит не только от разрешения но и от того как релизер сжал кино или
    сериал. Я никогда не сжимал 4К. Мне хватает FullHD для сериалов. Но я пережимаю через ffmpeg
    заменяя кодек звука и видео просто на тот который подходит под 2 моих стареньких телевизора LG.
    Могу показать скрипты. По сути я заменяю видеоряд AVC на libx264 и звук на mp3. Вот и 60 fps можно
    тоже проредить в 2 раза. Мне вот кино привычнее смотреть так. А аниме сериалы вообще едвали
    до 10 фпс доходят.

    Еще есть у меня мысль что под громким маркетинговым термином 4К могут быть скрыты несколько разрешений
    меньшего размера. Тут - таже история что и с Wifi/3g/4g. Эти термины созданы чтобы продавать нам
    услуги но они не гарантируют полосу и не являются технической спецификацией. По крайней
    мере 4К существует 2 вида.

    Поэтому качайте с торрента любое разрешение и скорость. И потом за 3-4 итерации пережатия
    можно всегда найти набор параметров чтоб воспроизводилось на медленных дисках. И
    я готов спорить что разницу вы особо не заметите.
    Ответ написан
    3 комментария
  • Можно ли реагировать на нагрузку mysql в реальном времени?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Проблему надо искать не в MySQL а в прикладном коде который эту нагрузку создает. Я так понимаю что это либо PHP либо Python либо Node приложение. Смотрите какой там размер пула коннектов. Допустим 20. Сделайте 10 и повторите наблюдение.

    Есть шаблоны ограничения нагрузки такие как Cirquit Breaker. Почитайте в этом направлении.

    Я пробовал включать лог медленных запросов

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

    хостер VDS включает троттлинг

    Это очень плохо. Зачем такой хостинг нужен. Это искажает картину анализа происходящего.
    Найдите другой хостинг. Или не покупайте виртуалки. Купите сразу MySQL как услугу. Может
    это будет дешевле стоить и обслуживаться проще.

    Можно ли как-то реагировать не аномальное возрастание нагрузки на mysql

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

    Админ или девопс конешно может написать баш-скрипты которые отстреливают процессы,
    но какая с этого польза для бизнеса? Задача делается как раз для предоставления
    услуги
    . Вот надо и в этом направлении работать.
    Ответ написан
    Комментировать
  • Как узнать найти и извлечь PaReq, не будучи программистом?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Татьяна. Техническое задание так не пишут. Напишите что дано. Какие стандарты и протоколы там работают.
    Приведите пример данных. И пример того как оно должно быть на выходе.
    Может и можно извлечь. А может и нет. Черт его знает. Но при такой постановке вопроса вы можете спршивать
    гугл или чят-GPT и пробовать рецепты длиной в 1 строчку.
    Ответ написан
    Комментировать
  • Как оформить код?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В коде повторяется вектор векторов int. Это по смыслу - матрица. Вот можно создать свой тип матрица или после такой подстановки будет яснее и короче.
    Ответ написан
    Комментировать
  • Как предотвращать XSS в Spring?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Зачем делать что-то для галочки? Если ты внедрил функцию то ты должен понимать те кейсы в которых она
    работат. Попробуй сам воспроизведи XSS-атаку на себя и проверь как она работает.

    Иначе будет в исходниках балласт который ты себе объяснить не можешь и newcomer придет и будет спрашивать про исходник а ты и ему не объяснишь.
    Ответ написан
    Комментировать
  • Почему моя нейросеть по распознованию цифр MNIST не работает?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Несколько соображений. Я думаю что для решения MNIST задач никакие огромные числа не нужны.
    НС идеологически способны работать на малом диапазоне плавающей точки. И функции активации
    (если таковые есть) обычно этому способствуют.

    Numpy в данном случае имеет преимущество вовсе не в больших числах а в операциях над векторами и матрицами.

    С твоей ситуацией низкого перформанса никто разбираться не будет. Нет ошибки - и нет ответа.
    Если медленная скорость - ищи гиперпараметр η (греческая буква) - он регулирует скоросить.
    алгортмов обратного распространения ошибки. (В разной литературе он может и по другому называться)

    Учись по курсам. Потому что учить тебя нейросетям здесь бесплатно точно никто не будет. И это
    технически невозможно в формате ответов.
    Ответ написан
  • Как устроить кеширование облака на VPS?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Идея регулируемого тарифа заложена например в AWS S3 хранилище. Там вы для старых файлов можете просто задать атрибут storage class и указать более жлобские модели хранения вплоть до ленточного архива. Но установкой атрибута класса хранения вы будете сами управлять.

    Очень сильно стоит вопрос определения "старости файлов". Я-бы учитывал частоту доступа за период. К пример кто-то может интересоваться старыми проектными файлами и алгоритм балансировки должен это как-то учитывать.

    И внешнаяя ссылка на файл вообще не должна изменяться.
    Ответ написан
    3 комментария
  • Работа с изображениям, как создать своё на C++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В наше время уже почти никто не пишет такие библиотеки. Все вроде написано. Проблемы с писательством библиотек такие. Если ты кодишь на сях под Windows то ты полюбому захочешь как-то их отображать и тебе в библиотеку придется вводить сущности мира WinGDI например.

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

    По названиям нейросетей я ничего не скажу я их не знаю в именах. Поищи их названия в Python-библиотеках.
    Они на слуху. А потом он них - найдешь оригинальное название на сях.

    Посмотри еще в ImageMagic https://imagemagick.org/script/magick++.php может пригодится
    Ответ написан
    Комментировать
  • Как сделать преобразование фурье для изображения по xy?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Что надо делать.?
    Не понимаю, с чего начать.

    Вообще если у тебя так много непоняток - то начни не с изображений а с 1-мерного графика.
    Курс валют например. Или ход температуры за сезон. Разберешся - дальше пойдешь.
    А если ты сейчас даже какую-то фигню закодишь
    - то как ты проверишь что правильное преобразование сделал?

    Начни с контракта. Что приходит тебе на вход? Вот это вот
    double[] x, double[]y

    С моей точки зрения - тут должна быть картинка. Image. На следующем уровне ты ее разбиваешь
    на цветовые слои. Красный зеленый ит.д. Потом эти слои разбиваешь на фреймы (8х8 пикс как в jpg).
    Потом их нормируешь от цвета пиксела до вещественного значения. И вот уже когда ты получишь
    матрицу вещественных значений - тогда и можно приступать к Фурье. Усек? У тебя хедер
    функции должен иметь такие параметры чтобы тебе было все кристально ясно что за аргументы и как.

    А так конешно у тебя каша в голове.

    Да. И по контракту Фурье преобразования ты получаешь комплесную
    вещественную матрицу на выходе. Тоесть две матрицы. Размер их не обязательно должен быть 8х8.
    Он может быть любым. Но обычно нижние коэффициенты матрицы (левый верхний угол - самые
    ценные для Фурье формулы).

    И дальше - делаешь все в обратном направлении. От Фурье к картинке. Получиться картинка - молодец.
    Значит правильно сделал.
    Ответ написан
    5 комментариев
  • Кушает ли память логирование?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Java медленно потребляет память даже в состоянии покоя. Видимо системные треды что-то аллоцируют. Я как-то создавал пустое main приложение которое стоит на паузе и на графике JVisualVM я наблюдал медленный рост Eden space. Попробуй тоже такой эксперимент.

    Вообще тебя это не должно беспокоить. Это нормальный цикл работы управляемой памяти. Главное что в тот
    момент когда срабатывает System.gc память быстро очищается без переноса объектов в Survival.

    Сам процесс логгирования тоже можно писать оптимально или не оптимально. Покажи исходники и хабр посмотрит что там можно улучшить. Здесь разные логгеры log4j, log4-2 могут использовать разные механики для оптимизации.
    Ответ написан
    1 комментарий
  • Можно ли соединить два дом.телефона чтобы звонить и разговаривать с друг другом?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да я собирал такую схему несколько раз. Достаточно батарейки и нескольких старых телефонов с дисковым набирателем. В более простом варианте даже телефон не нужен. Достаточно двух трубок. Последовательно в контур соединяется две трубки (микрофон + ухо) и так-же последовательно батарейка.
    Ответ написан
    2 комментария
  • Как узнать версии пакетов у Ubuntu в официальном релизе на определённую дату?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я думаю что организация не заинтересована трекать минорные версии пакетов. В этом нет смысла. Они хранят последний снапшот и предлагают его к обновлению. Если у вас какие-то проблемы с пакетом gcc то нужно писать в поддержку.

    Что еще можно поискать. Архивы снапшотов по дистрибутивам (Jelly, Focal, e.t.c.)
    archive.ubuntu.com/ubuntu/dists/?C=M;O=D

    Например у меня Ubuntu Focal Fossa которая лежит здесь archive.ubuntu.com/ubuntu/dists/focal-updates
    Попробуйте переключиться на старый релиз. Может там gcc будет для вас подходящим.

    Текущий статус пакета можно глянуть через apt info:

    $ sudo apt info gcc-9
    Package: gcc-9
    Version: 9.4.0-1ubuntu1~20.04.1
    Priority: optional
    Build-Essential: yes
    Section: devel
    Origin: Ubuntu
    Maintainer: Ubuntu Core developers <ubuntu-devel-discuss@lists.ubuntu.com>
    Original-Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
    Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    Installed-Size: 30.6 MB
    Provides: c-compiler
    Depends: cpp-9 (= 9.4.0-1ubuntu1~20.04.1), gcc-9-base (= 9.4.0-1ubuntu1~20.04.1), libcc1-0 (>= 9.4.0-1ubuntu1~20.04.1), binutils (>= 2.34), libgcc-9-dev (= 9.4.0-1ubuntu1~20.04.1), libc6 (>= 2.15), libgcc-s1 (>= 3.0), libgmp10 (>= 2:5.0.1~), libisl22 (>= 0.15), libmpc3, libmpfr6 (>= 3.1.3), libstdc++6 (>= 5), zlib1g (>= 1:1.1.4)
    .............


    Когда запускаете apt update - обычно спул показывает больше ссылок по все репозитариям. Провертье.
    Ответ написан
    Комментировать
  • Какие сервера поднимаются на виртуалках, а какие физически?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Заказчик сам выбирает обычно. Исходя из денег. VPS или bare-metal. Насколько амбиций хватит.
    В последнее время все тяготеют к Kubernetes. Он как-то динамичнее утилизирует доступные железки.
    Если VPS подняли. Поставили ОС. Поставили софт .... и побежали твои денежки к облаку.
    А с кубером так. Захотел бигдату посчитать. Написал джоб. Запустил в кубере. Джоб отработал 1 час.
    И ты заплатил ровно за 1 час. Дисковые хранилища там почти бесплатны. По цене грязи.
    Ну з IOPS в пике можно заплатить. Но в целом пока джобы не работают ты ничего не платишь.

    Вот. Еще лямбды (AWS) и clound-functions (другие облаки) тоже потребляют по 1 центу за вызов.
    И при этом ее хостинг тебя не волнует. Она поднимется на любой виртуалке где есть ресурсы.

    Поэтому не bare-metal -> VPS. А все еще запутанее хитрее. Железо. Виртуализация. Потом что там...
    контейнеризация... Потом FAAS. Функции. Вот поэтому вопрос звучит не какие сервера поднмиаются
    а какой бизнес-функционал лучше летает на каком уровне этой лестницы.
    Ответ написан
    Комментировать
  • Как проверить regex Range?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Регулярка такое не умеет. Проверка Range - это арифметическая задача. А регулярка
    проверяет соовтествие шаблона символов.
    Ответ написан
    Комментировать
  • Как это исправить?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Подозрительное место. Ты кастишь user.password из неизвестного типа в String.
    На каком основании? Почему не из binhex или из base64?
    String(user.password)
    Нужно доказать что вот эта конверсия правильная. Ну и типы данных надо потрассировать.
    что покажет
    typeof user.password
    typeof password
    Ответ написан
  • Как пошагово работает сортировка .sort()?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Поскольку вопрос тегирован алгоритмами - человек пытается ИХ изучать а не контракт array.sort.

    В науке и технике... в качестве алгоритма сортировки любят использовать сортировку Хоара.
    Она-же Quick Sort. Еще в переводной литературе ее называют Быстрая сортировка делением.

    Еще я где-то читал (не помню где! блин) что ядро Linux иногда использует для своих нужд HeapSort.
    Или сортировку Пирамидой. Или пирамидальную. Достаточно быстрая и не требующая дополнительной памяти
    вообще. По месту сортирует.

    Более полное демо по алгоритмам с визуализацией здесь

    https://www.youtube.com/watch?v=kPRA0W1kECg

    Какую под капотом реализует JavaScript sort - чорт его знает. Но возможно одна из самых быстрых.
    Ответ написан
    4 комментария
  • Сложно ли создать тг бота на c++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мне кажется что проблема не в телеграм библиотеках а как всегда в классических вопросах С++.
    Контроль над памятью например. И если взять за формулу что ТГ-бот - это типичное реактивное
    приложение то преимуществ С++ здесь вобщем-то нет. Нету задач которые бы загрузили CPU.

    А если задачу развивать в части интеграции например с MQ/документными БД (Mongo) или с
    веб-апи криптовалют то окажется что С++ в такой интеграции стоит еще в 2 раза дороже
    и во времени разработки и в поддержке. А конечному пользователю вообще плевать на чем
    бакенд бота написан.

    И окажется в сухом остатке что наговнячить бота на Node или на Python будет дешевле. И поддерживать
    код тоже дешевле. Вносить изменения - легче и быстрее. Для бизнеса - вообще скорость внесения
    изменений в продукт - это метрика №1. Кто вышел с маркетинг акцией в срок - тот заработал денег.

    Если-бы я был бизнесом и хотел бы свой ТГ-бот то я-бы не вкладывался в С++ (хотя я уважаю этот язык).
    Я-бы нанял команду Ноде-Жс и все было бы норм.
    Ответ написан
    Комментировать
  • Наиболее безопасный мессенджер?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Почти все современные мессенджеры, как только набирают аудиторию подписчиков становятся объектом охоты со стороны государств и спецслужб. Далее - вопрос времени когда уже тов. майор будет читать твою переписку с любовницей или транзакции в крипте.

    Поэтому мне кажется что самый безопасный - самый никому не известный и ненужный. А еще лучше напиши сам себе мессенджер на SSL сокетах.
    Ответ написан
  • Как организовать в электронном виде ознакомление сотрудников с приказами?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут цель не совсем ясна. Ознакомить чтоб сотрудник был просто ознакомлен? Или чтоб в суд пойти?

    Все современные корпорации - тоталитарны. Как мини-армия. У всех есть требование ко всем сотрудникам
    - читать почту раз в сутки. И через сутки ответить. В данном случае CEO пишет всем письмо на корпоративный
    емейл. Типа "ознакомиться с приказом". По факту ознакомления - уведомить в чят своего лайн-менеджера.
    Пока не подтвертили - не получаете аванса и отпусков до разбирательства причин неознакомления.
    И побегут ознакамливаться аж со свистом. Вприпрыжку побегут.

    Поэтому забудьте вы все эти подписи. В них нет смысла в рамках соврмеменной корпорации.

    А если вы предпрениматель или само-занятый или просто гражданский безработный - то вам должно быть положить
    буй на эти все циркуляры. И тогда уж только участковые с приставом могут прийти домой и звонить вам
    в дверь до посинения с бумажкой. Только так.
    Ответ написан