• Как сделать методы класса доступными только для одного класса?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Когда тебе хочется странного, то нужно заново пересмотреть дизайн этого UserService и DAO
    с точки зрения SOLID. Если этот DAO нигде не существует то может быть он вообще не нужен
    как сущность. Сделай композицию или рефакторинг чтобы у тебя был только UserService.
    Ответ написан
  • Как перевести все изображения в pdf?

    mayton2019
    @mayton2019
    Bigdata Engineer
    $ convert picture1.jpg picture2.jpg out.pdf
    Ответ написан
  • Не работает определение местоположения по IP. Почему?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну все эти геолокаторы по айпи (maxmind, ipgeo) показывают не твою локацию а локацию
    того IP адреса под которым тебя видит сайт.

    И кроме того эти базы нуждаются в постоянном обновлении. Если база устарела (что часто бывает
    в бесплатных сервисах) то она будет показывать старую инфу.
    Ответ написан
  • Что на клиенте создается свою пару ключей для https соединения?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Когда ты купил (устнановил себе ОС) в ней уже был браузер и в этом браузере прописаны центры сертификации. Это что-то вроде нотариальных контор. Ты им доверяешь по умолчанию. И они по цепочке являются гарантами сертификатов других доменов или других контор. И связка сет доменов + публичный ключ являются реквизитами сертификата. Ты их можешь увидеть в настройках безопасности браузера. И по протоколам TLS/SSL когда ты заходишь на сайт происходит быстрая проверка что интернет домен подтвержден и между вами устанавливается доверительный канал по которому вся инфа от сервера - прогарантирована. Но еще пока не скрыта. Но ввиду того что ассиметричка работает медленно и дорого, на самом деле эта процедура обрамляет другой протокол - создание симметричного канала с временным сеансовым ключом где дальше ты уже работаешь по обычному быстрому симметричному AES например до следующего сеанса обновления ключа. Этот канал уже скрытый от постороеннего наблюдателя. Если запускать openssl с некоторыми
    параметрами то эта процедура рукопожатия будет трассироваться на экран и можно подсмотреть что реально
    происходит у тебя на локалхосте.

    По поводу что там и где устарело. SSL/TLS это просто версии алгоритмов вот этого рукопожатия.
    Ответ написан
  • Как реализовать Postgresql Ecommerce?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вариант
    _     | M | X | L
    ------+---+---+----
    Red   |   | Y | Y
    Green | Y |   |
    Ответ написан
    Комментировать
  • Как правильно создать БД в одном execute?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Обычно БД создается во время процессов CD/CD через технологии liqubase/flyway.
    Таблицы тоже. В этом есть смысл потому что БД и таблицы это такие долго-живущие объекты
    и кроме того не лежащие в плоскости транзакций. Они - выше транзакций и их надо логически
    отделять от прочего java кода. А в java коде - оставить insert/update/delete.
    Ответ написан
    5 комментариев
  • Конвертер файлов с Word/EXEL в PDF на своем хостинге?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть опернсорцная библиотека на java Apache POI. Она умеет работать с Adobe, Microsoft форматами.
    Но как она конвертит одно в другое - я не знаю. Я такое не проверял. Но зато opensource.

    Есть библиотека pandoc (https://pandoc.org/) написанная на Haskel которая тоже знает много форматов
    и делает конверсию. Про нее еще шутят что это единственная полезная и практическая вещь которая
    создана на этом академическом языке. Но вроде opensource. Кстати в ней-же на титульной страничке
    стыдливо упоминают что pdf - не натив а через какие-то кастомные конвертеры pdflatex, lualatex, xelatex, latexmk, tectonic, wkhtmltopdf, weasyprint, prince, pagedjs-cli. Вот по ним отдельно тоже посмотри. Может они - лучше.

    Вот. Но как эти все штуки превратить в онлайн сервис - я не знаю. Это тебе надо просто более
    детально расписать требования. Если это REST или SOAP - напиши Open API с декларацией
    методов.
    Типа на вход word (xml) на выход PDF. И какие-то настройи по любому будут. Шрифты
    там подгружать или заменять на похожие и прочее. Это неизбежно. PDF/Word это сложные
    технологии и они так просто друг в друга не ходят.
    Ответ написан
  • Насколько законно для крупной компании пробивать человека по почте?

    mayton2019
    @mayton2019
    Bigdata Engineer
    я написал в компанию гневное письмо, где немного их оскорблял.


    а сама компания чуть ли не угрожает мне.


    Ну ты поросёнок еще тот :). Сначала нахамил а потом спрашиваешь про угрозы.

    Мы живем в сложном мире где не везде работает европейское право. Да и вообще право весьма
    относительно когда рассматривают другие народы и страны.

    Я советую тебе просто извиниться. Это легко. Напиши дескыть был на эмоциях. Или был бухой. Сейчас прохожу
    лечение у психолога. У меня - прогресс. И это будет самый простой и дешевый способ замять скандал.

    Тебе-ж не трудно извиниться?

    А быковать или наезжать на корпорацию (у которой есть юристы) я очень сильно не советую. Это обычно
    ничем не заканчивается. Для них по крайней мере точно ничем. А для тебя - блек-листами и испорченой
    репутацией для рекрутинга. Тебя просто в будущем не наймут в приличное место. Будет стоять отметка -
    "проблемный" или "скандалист".
    Ответ написан
    Комментировать
  • Есть ли такой сервис с AI?

    mayton2019
    @mayton2019
    Bigdata Engineer
    AI здесь вобщем не нужен. Это классика машинного обучения еще из 20-го века.

    Я такое делал в алгоритме K-Means для Apache Spark. В данном случае выборкой были векторы { r, g, b }
    всех пикселов картинки а количество кластеров было 256. И на выходе алгоритма я получал массив из 256 наиболее популярных цветов (центров кластеров) для данной картинки.

    Реализация алгоритма K_Means есть в любом научном или статистическом пакете. Я еще находил ее
    в java commons-math кажется.

    Далее рисование мозаики - это отдельная задача. Она - утилитарная и любой разработчик Python / JavaScript
    ее сделает за 5 минут. И здесь AI тоже не нужен.
    Ответ написан
    2 комментария
  • AMD Ryzen 3 и 2.6Гц или AMD Ryzen 7 и 1.8Гц?

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

    Фактически ее оценить объективно - невозможно. Оценка будет сильно зависеть от самого
    приложения
    которое исполняется. Мы могли-бы создать формулу вида скалярного произведения
    числа ядер на тактовую частоту но к сожалению закон Амдала вносить в эту формулу большую
    нелинейность. Грубо говоря если вы пишете софт состоящий из независимых потоков которые
    юзают независимые pages памяти и работают по независимым каналам доступа к памяти
    то тогда производительность можно складывать. Во всех остальынх случаях с ростом потоков
    или процессов производительность может сначала расти а потом падать (расширенный закон Амдала)
    в связи с взаимным влиянием объектов мультизадачности.

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

    С другой стороны рост тактовой частоты хотя и дает производительность - то тоже нелинейно.
    Запирает как-бы. Частоту ты поднял. А память и внешние устройства I/O как работали медленно - так и работают.
    Поэтому рост тактовой частоты ушел в простой выхлоп в теплоотдачу.

    Поэтому автору я советую взять приложение (например Adobe Premiere, 3DMax или Photoshop)
    и на конкретном приложении просто проверить какой процессор лучше будет работать.
    Это будет по крайней мере фактическая оценка. И никто не поспорит по use-case.

    UPD: Формула может быть такая. Ну ... коэффициенты сами додумайте. Можно нелинейные.

    Performance = Kernels * Threads * Frequency
    Ответ написан
    2 комментария
  • Какую БД выбрать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    - Минимальный функционал, малое потребление ресурсов (никаких postgres)

    Насколько минимальный? Тут по идее подходит key-value система (Mongo, CouchDb, Tarantool). Но если ты захочешь сделать join то тебя ждет облом. Такая операция обычно не заложена в архитектуры key-value.

    А какой-то промежуточный гибрид между SQL и key-value скорее всего не существует в природе.
    Если уж вводить join - то это реляция. А реляция - это RDBMS.

    - В идеале невозможность удаления записи даже тем, у кого есть к ней доступ.

    Здесь подходит определение event-store. Сам продукт тоже так и называется https://db-engines.com/en/system/EventStoreDB

    Вот попробуй его. Но для делания запросов по такой БД там надо создавать материализованные
    представления. А это означает что надо просто глубже обсуждать твою архитектуру. Просто
    так... поплевав в потолок тут невозможно выбрать продукт.

    Вот такие у тебя варианты. Думай.
    Ответ написан
    Комментировать
  • В чем преимущества использования С++ в embedded?

    mayton2019
    @mayton2019
    Bigdata Engineer
    ООП и метапрограммирование.
    Ответ написан
    Комментировать
  • Как получить код страны пользователя Steam?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я использовал базу https://www.geolocation.com/

    В бесплатном варианте она дает точность до уровня Country + Region по диапазону IP блоков.
    Платные варианты я не смотрел.
    Ответ написан
  • Какие есть сервисы для хранения геоточек с названиями?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно short link сделать

    https:// bitly.com
    Ответ написан
  • Memcached как исправить кучу процессов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ошибка выглядит так.
    Malformed VALUE header (0)
    Я думаю что memcached тут не виноват. Он - слишком простой и примитивный. Скорее всего твое приложение
    что-то делает сильно сложно.

    В момент возникновения ошибки тебе надо взять telnet или putty и вручную подключиться к memcached
    и воспроизвести проблему.

    Еще документация пишет что Memcached поддерживает два протокола. ASCII и Binary. И такой эффект
    может быть как будто ты в бинарный протокол толкаешь текстовые запросы. Но это мое предположение.
    Просто надо проверить.
    Ответ написан
    2 комментария
  • Хаотичное ухудшение производительности запроса - как определить причину?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У Оракла есть пути стабилизации планов. Если ты точно знаешь что текущий план подходит то его можно
    зафиксировать для данного SQL_ID. Последний раз я этим занимался в Oracle 11g и как сейчас - не знаю
    но наверное этот API сохранился.
    Ответ написан
    Комментировать
  • Проблема разности частоты обновления на сервере и на клиенте?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Физическая модель мира не должна зависеть от ФПС на экране. Если ты победишь эту проблему
    то тогда никаких артифактов с отображением не будет. Для простоты ты можешь обновлять физику
    хоть 10 разв в секунду хоть 120 раз это не важно. А визуальная часть игры будет делать интеполяцию.
    Потому что засинхронизировать всех клиентов сетевой игры в принципе никогда невозможно.
    У них и таймеры будут не синхронны и производительность разная.
    Ответ написан
    Комментировать
  • Как обновить access_token от Google API?

    mayton2019
    @mayton2019
    Bigdata Engineer
    За 10 минут до истечения срока токена просто обновляй и все.
    Ответ написан
  • Подойдет ли для парсинга сайта Амазон библиотека Selenium Stealth на Python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ты не задаешь вопроса а просто закидываешь дискуссию.

    Напиши код. Хотя-бы превед-мир на Sel-Stealth и найди какой-то дефект и приходи с ним сюда обсуждать.
    Тогда будет какой-то конструктив. А так чего мы здесь?
    Ответ написан
    Комментировать