Задать вопрос
  • Целесообразно ли хранить изображения как BLOB в БД?

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

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

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

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

    p.s. использовать sqlite для хранения файлов - плохая практика, даже если чтение будет быстрым (за счет того что sqlite это не сетевое подключение к базе данных, нет сериализации передаваемых данных и прочее), с записью все будет гораздо хуже. Попробуй гигабайтовой sqlite базой поманипулируй, тебе сильно не понравится (очень медленно), когда как обычный архиватор с опцией нулевого сжатия, работает на максимальной скорости работы диска.
    Ответ написан
    Комментировать
  • Какова реальная предельная длина сегмента сети на базе витой пары?

    @rPman
    Стандарт это про то что при соблюдении указанных условий сеть будет работать с такими то параметрами, производители проверяют и стремятся чтобы указанные параметры были выданы, все что выше - лотерея, зависящая от кучи причин, включая тип оборудования на концах, реальное состояние и состав кабеля и главное что паралельно с этим кабелем протянуто (например наличие силовых линий или других кабелей рядом)

    В реальности если попытаться на железе конкретного производителя с конкретными кабелями проводить эксперименты, завести сеть можно и на бОльшем расстоянии (грубо говря сказано что можно 100 метров, а заведется на 110).

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

    Что значит не заведется? - просто не включится нужный режим сетевой карты 1000/100мбит, это скачкообразно происходит, возможно на предельных размерах в считанные метры оно включится но будут ошибки на линии.

    p.s. кажется большую (удобную) предсказуемость дает оптика, у нее наводок со стороны нет
    Ответ написан
    1 комментарий
  • Есть такие смартфоны которые якобы пишут 4К 60fps а по факту 4К30fps или 4К45fps...?

    @rPman
    Судя по твоим вопросам ты выбираешь смартфон и хочешь чтобы было все по максимуму.
    Лучше выбирай по качеству и реальным отзывам а не по цифрам

    К сожалению красиво - субъективный параметр, а качественное сравнение численно можно получить делая съемку в одном и том же окружении, т.е. на руках у человека должно быть несколько устройств.

    В реальности обзоры делают максимум с 2-3 устройствами на руках (сравнение)и если A будет лучше B у одного ревьювера, и B будет лучше C у другого, это не значит что A окажется лучше C!

    p.s. 4k 60fps это съемка на пределе существующих технологий, и если железо не напичкано к чем то типа аппаратной стабилизацией видео, то либо ее не будет в таком разрешении либо оно будет софтварное а значит не60fps
    например xiaomi redme note 8 pro имеет стабилизацию видео только для fullhd 30fps и ниже, а при съемках 4k30fps или даже fullhd60fps стабилизации нет.

    И да, только при использовании стокового приложения камеры, так как любым другим приложениям полноценного доступа к управлению сенсором нет (например нет доступа к ручной фокусировке)

    p.s. стабилизировать видео можно сторонним софтом уже на pc
    Ответ написан
  • Смарфон с качественой камерой от 48Мп имеющий самый большой пиксель?

    @rPman
    В современных камерах в смартфонах пиксел - немного условен, там используются алгоритмы преобразования группы соседних пикселов в один и что самое обидное, даже когда берешь raw будет так же апроксимация

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

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

    p.s. я игрался с xiaomi redme note 8 pro и по старее xiaomi a2, у второго камера дает меньше мегапикселов но чувствительность ночью выше на столько, что поставив на штатив и направив в небо ночью, можно получить шикарные снимки зведного неба в загаженном городским светом с минимальным iso и 8сек затвором, первый же требует либо повышать длительность съемки либо iso что дает больше шумов
    Но note8pro позволяет включив 64мп режим выдавать более четкие снимки, с цветовыми артефактами (соседние пикселы фейковые, если говорить про звезды) с огромным разрешением

    В любом случае помимо камеры нужна оптика, по дефолту в смартфонах она не очень

    p.p.s. ты смотрел смартфоны с 108мп сенсором? xiaomi 10 или 11 honor 50?
    Ответ написан
    Комментировать
  • Как подключить физический привод гибких дисков к VirtualBox?

    @rPman
    Так, попробуй перед тем как открывать диалог VirtualBox, размонтировать диск, чтобы он не был смонтирован в каталог /mnt/floppy (лучше это делать не в файловом менеджере а командой sudo umount /dev/sdc в терминале)

    Затем, если диск так и не появится в списке дисков, запусти для простоты VirtualBox из под root (в консоли sudo VirtualBox) и проверь там

    Если и это не сработает, добавь вручную raw диск в списке floppy дисков, указав свое блочное устройство /dev/sdc

    Если не получится, создай на основе блочного устройства vmdk файл диска, с помощью команды:
    sudo VBoxManage internalcommands createrawvmdk -filename floppy_name.vmdk -rawdisk /dev/sdc
    и получившийся floppy_name.vmdk уже подсовывай виртуалке, если не скушает как floppy, давай ему его как жесткий диск

    p.s. следи чтобы система не монтировала этот диск автоматически во время работы виртуалки, а то повредится содержимое файловой системы на нем
    Ответ написан
    1 комментарий
  • Как открыть процесс exe фоном через пайтон?

    @rPman
    https://docs.microsoft.com/ru-ru/windows/uwp/launc...

    в принципе microsoft visual studio поддерживает питон и классы .net там же так что этот код наверняка можно будет адаптировать и под него
    Ответ написан
    Комментировать
  • Как можно увеличить скорость записи в бд mysql?

    @rPman
    Что значит стопорится? зачем гадать, расставь по больше вывода в свои логи отладочной информации (когда принял запрос, обработал, отправил транзакцию, когда получил ответ от базы и т.п.) с таймингами и смотри что и где происходит в проблемный момент

    Что за пиз...ц с сериализацией картинок в base64 потом это все в json, а в базе хранить php-щным serialize?

    http post прекрасно справляется с отправкой файлов, там своя сериализация, никто не мешает миксить в запросе get и post данные

    Не храните картинки в базе данных, никак, ни блобом ни сериализацией, кто придумал этот маразм, в каком бредовом туториале это прочитали и каждый второй это реализует?

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

    p.s. в php во всех репозитариях есть красивый сериализатор igbinary, если что он в каком то смысле даже быстрее старого serialize и точно компактнее, его потихоньку в стандарт пропихивают, например можно использовать его для хранения сессий
    Ответ написан
    1 комментарий
  • Почему при POST Запросе я получаю статус код 500?

    @rPman
    ENOENT - файл не найден

    win32 error codes (правда они положительные а у тебя со знаком - почему то):
    PEERDIST_ERROR_ALREADY_EXISTS
    4058 (0xFDA)
    An element already exists and was not replaced.

    непонятно какой код у тебя выводит эту ошибку поэтому гадать дальше не интересно
    Ответ написан
  • Можно ли реализовать графику на стандратных и системных библиотеках?

    @rPman
    если windows.h стандартная, то почему бы не использовать такими же 'стандартными' directx/opengl/vulkan/...?

    и если что у windows есть ее штатная win32api gdi, как минимум спрайты выводить получится и стандартные линии точки элипсы или заливка по шаблону... в общем можно
    Ответ написан
    1 комментарий
  • Возможен ли такой функционал в Google Sheets?

    @rPman
    Разграничение прав доступа к данным на запись организуешь через дополнительные документы, т.е. 1 документ на пользователя, а затем центральный документ скриптами собирает данные из всех документов
    Ответ написан
  • Голая прошивка для телефона Samsung A02?

    @rPman
    Для этого телефона ни на 4pda ни на xda-developers альтернативных прошивок нет, но есть и root и magisk. При наличии рута, с помощью adb можно удалить или отключить приложения, с помощью magisc потюнить более точечно права доступа, в т.ч. к интернету.

    В мире android голой прошивкой является AOSP, на ней очень небольшой набор приложений, плюс НЕТ софта от производителя железа (тот что кодами *#*#XXXX#*#* вызывается, кстати часто про него забывают и сторонние прошивки остаются без полезного функционала), собственно создание кастомной прошивки это как раз попытка скомбинировать драйвера к железу и aosp нужной версии и чтобы это заработало на конкретной железке

    Из хорошо поддерживаемых сторонних чистых прошивок есть - lineageos но для твоего телефона прямой поддержки нет

    p.s. тут пишут
    * ixerox93, Ваш смарт поддерживает прошивки GSI.Уменя на BQ с таким процем стоит lineage-16.0

    т.е. топаешь сюда, изучаешь, пробуешь, радуешься или получаешь кирпич
    Ответ написан
    Комментировать
  • Как синхронизировать контакты в 53 телефона Android и Iphone?

    @rPman
    nextcloud а точнее использовать WebDav (не обязательно ведь использовать именно nextcoloud в качестве провайдера) для хранения контактов и использовать соответствующий софт для этого
    дока для ios
    дока для android
    Ответ написан
    2 комментария
  • Объясните, как работает эта функция?

    @rPman
    функция считает произведение всех чисел в массиве следующим образом - вызываем функцию с массивом в параметрах и номером элемента, с которого нужно начать умножение (считает с права на лево, т.е. уменьшает номер), для этого функция вызывает сама себя рекурсивно но с номером на 1 меньше и умножает результат на arr[n-1], стоит условие если номер 0 или меньше то вернуть 1, таким образом рекурсия прекратится когда закончится массив

    так как в коде стоит arr[n-1] а не arr[n], а индексы в массивах в javascript начинаются с 0, значит если нужно посчитать произведение всех элементов массива, то нужно указать в параметрах n = количество элементов (т.е. на 1 больше номера последнего элемента)
    Ответ написан
    Комментировать
  • Какую БД выбрать для парсинга на питоне и использовании в app на котлине?

    @rPman
    sqlite
    считай это отраслевой стандарт идеальный для мобильных пользователей

    правильно конечно нужно продумать что именно будет происходить с данными, но как я понимаю - они только на чтение, то sqlite идеальный вариант по всем параметрам
    Ответ написан
  • Как загрузить большой датасет в память сервера (+ пара сопутсвующих проблем)?

    @rPman
    Извиняюсь за неекропост

    4000 колонок * 20кк строк * 1 байт значение (даже не надо в биты упаковывать, та ккак у вас 4 варианта значений)
    это 80,000,000,000 байт, т.е. считанные 80 гигабайт данных в виде матрицы

    какого вида нужна обработка? с линейным чтением справится просто массив
    Ответ написан
    Комментировать
  • Какие есть программы для создания графического интерфейса с возможностью кодинга?

    @rPman
    Если убрать из требований python

    Я рекомендую для начинающего программиста баз данных лучше брать то что не потребует изучать лишнего, и использовать инструменты microsoft visual studio и его фреймворк, например winforms

    Microsoft Visual Studio это шикарный инструмент разработки простых интерфейсов (в мышевозекательном стиле WYSIWYG) и мне кажется до сих пор непревзойденный именно для новичков (но повторюсь, мне кажется в последних версиях что то сломали в идеологии)

    p.s. питон поддерживается студией так же никто не мешает интерфейс разрабатывать отдельно от расчетной части которая на питоне, ее можно вызывать просто как приложение, указывая что нужно сделать - в качестве параметров или в файле
    Ответ написан
  • Порекомендуйте подходящую базу данных?

    @rPman
    которые при генерации отчета как либо аггрегируются.
    это чуть ли не наисложнейшая задача для баз данных, 80м записей тем более

    Партицируйте прямо по суткам.

    Убирайте транзакции, нафиг вам тут innodb когда хватит myisam, оно на запись быстрее, у вас база write once read ... тоже once.

    У вас там база данных упирается случайно не в работу с диском? в облаке можно взять несколько дисков, они будут независимыми, раскидай по ним таблицы (myisam штатно поддерживает симлинки), что может дать прирост в скорости в разы только за счет этого, даже если они ssd, например отделить хранение индексов от данных или отделить старые данные от сегодняшних.

    На время обработки аналитики можно потюнить файловую систему и отключить flush для файлов таблиц (например ext4 data writeback и можно отключить журнал) - сильно ускоряет именно запись, особенно если много ram, это включает большой риск потери/порчи данных при сбросе ос но с другой стороны вероятность этого очень мала и как я понимаю, данные в базу и так пишутся из какого то другого хранилища, т.е. при проблеме с сервером просто перезапускается обработка за текущие сутки.

    Уберите индексы на запись, все, сначала пусть идет вставка данных без их индексации, затем создаете индекс (это на порядок быстрее) и уже потом строите аналитику.

    Общая аналитика должна не работать с самими данными, а с их посуточной выжимкой (возможно в результате и хранить их не придется) считай это самодельные индексы. Грубо говоря если в запросе на аналитику стоит count,max,min,.. то достаточно сложить посуточные значения и для глобальных считать уже по ним... само собой если запросы с условиями и сложными группировками, то надо думать но все решаемо.. грубый пример нужно считать агрегацию по часам, вот в индексы и пиши суточные значения по часам, а если надо постранично то для каждой страницы для каждых суток считаешь, потом агрегируешь уже по этим результатам.
    Ответ написан
    6 комментариев
  • Есть ли локальные базы данных с поддержкой многопоточности?

    @rPman
    Что значит поддержка многопоточности?

    в тегах sqlite, вот вам поддержка, правда режим включается/выключается только на этапе компиляции библиотеки и по факту это синхронизации при работе с экземплярами объекта базы данных из разных потоков (а это накладные расходы)

    p.s. если речь про ускорение за счет многопоточности - не уверен что существующие базы данных умеют занимать несколько ядер процессора по обработке одного запроса
    Ответ написан
  • Возможно ли сделать скраппинг информации с сайта, на котором требуется авторизация с помощью расширения браузера (chrome)?

    @rPman
    Интерфейс расширений браузера это тоже html со своим dom, а значит с ним можно взаимодействовать.

    Уязвимые расширения используют не свою отдельную страницу с адресом chrome-extension:// а просто добавляют dom элементы на страницу, с такими тем более просто.

    средства автоматизации браузеров позволяют работать в т.ч. с расширениями, например selenium, гуглить extension automation selenium
    Ответ написан
    Комментировать
  • Можно ли использовать модуль вместо возведения в квадрат в функции стоимости?

    @rPman
    можно но может хуже работать, все зависит от данных и задачи, наверное экспериментально только понять можно будет
    Ответ написан
    Комментировать