Задать вопрос
  • Как правильно создать БД в одном 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 блоков.
    Платные варианты я не смотрел.
    Ответ написан
  • 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 и найди какой-то дефект и приходи с ним сюда обсуждать.
    Тогда будет какой-то конструктив. А так чего мы здесь?
    Ответ написан
    Комментировать
  • Для чего нужны 4 фазы на конце у провода питания molex?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ненужные провода в корпусе лучше заизолировать. Или вообще убрать. Пока болтаются - есть риск что будет
    контакт с корпусом или какими-то деталями. Да по врешнему виду один из кабелей похож
    на дисковод.
    Ответ написан
    Комментировать
  • Почему программа прерывает свою работу на C?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Возможно scanf при попытки считывать 1 character читает предыдущий enter.

    Попробуй рецепт который пишут тут https://stackoverflow.com/questions/13542055/how-t...
    Ответ написан
    1 комментарий
  • Как сделать так, чтобы микрофон не слышал других людей в комнате?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для звукоизоляции можно повесить побольше ковров на стены. И можно между вами установить
    такую складную ширму. Я думаю что это будет очень полезно.

    В настройках микрофона где-то есть чувствительность. Попробуйте покрутить чтоб порог срабатывания
    был другой.
    Ответ написан
  • Несколько пользователей или контейнеризация?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нужно пойти от проблемы. Собственно я здесь никакой проблемы не вижу. Давайте доступ. Пускай студенты
    рисуют почасовой план использования этого ресурса. Например Студент №1 с 10:00 до 12:00 по понедельникам.
    Следующий... и так далее. Сами следят и самоорганизуются.

    Проблема может быть в безопасности. Студенты могут хулиганить. И проблема может быть в накладках
    графика использования. Например кто-то в пятницу запустил расчет и в ПН этот расчет еще не закончился.
    Что делать? Убивать процесс пятничного студента?

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    У тебя нет выбора. Вариант раз - это интерполяция строк.
    'create table {} ....'.format(...)
    Вариант 2 - это конкатенация строк. Ну и проверь что строка состоит или alpha-num. И все.
    'create table ' + ..... + '.....'
    Ответ написан
    Комментировать
  • На чем пишутся современные десктопные приложения?

    mayton2019
    @mayton2019
    Bigdata Engineer
    java - "не подходит для десктопа"

    На платформе Java (Groovy, Kotlin) написана среда разработки Jetbrains Idea.
    Правда есть у меня подозрение что из библиотек там использован не Swing а SWT
    но я уж не помню я слишком давно этот вопрос изучал. За много лет многое могло поменятся.
    SWT не слишком кроссплатформенный.

    На Java написан менеджер закачек Vuze (Azureus) и такая векторная рисовалка как Yed
    которой я пользуюсь иногда.

    Еще OracleDeveloper, Beaver, SOAP-UI, и много всяких тулов программисткого толка.

    По поводу JavaFX но я честно говоря не видел чтоб кто-то
    активно что-то графическое на нем разрабатывал. Скорее всего это была наивная попытка
    исправить недостатки Swing. И сделать его ... более мультимедийным чтоли.

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

    Для окон остается что-то очень хардовое типа Photoshop, 3dMax, AutoCad где можно грузить на 200%
    клиентский CPU и ты реально будешь хотя-бы чувствовать пользу от такой отдачи.

    Все где формочки и гриды - потеряло рентабельность. Его дешевле делать на вебе т.к. разработчик
    веба стоит дешевле и внести резкое изменение в функционал очень легко.

    Поэтому не звучит вопрос что на Java десктопы не пишут. А их щас реально уже НИ НА ЧЕМ не пишут.
    Даже на С++. Реально только игры и редкие приложения типа там 1С или какие-то клиент-банки.
    Ответ написан
    7 комментариев