Задать вопрос
  • Как сохранить объект на весь срок жизни приложения?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Безотносительно фреймворков. В любом приложении есть точка входа. Enty point. Или еще ее называет main - функция. Вот добавь туда конструирование объекта объекта и все.
    Ответ написан
    Комментировать
  • Что лучше, по одной или несколько записей при INSERT?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Имеется система логов, которая довольно часто вызывается, при пиковых значениях достигает до 30-40 записей в секунду. Использую engine ARCHIVE, сервер MariaDB, подключение по unix сокету.

    Имеет ли смысл собирать кучу данных допустим 50 записей и потом одним запросом добавлять 50 записей.

    Смотри. Писание логов в Марию - это как по мне лишнее. Оверинжинеринг. В наше время логи собирают logstash-ем и пишут в Кибану. Там для каждого формата есть свой парсер. Для Ninx, Apache e.t.c.

    Если тебе прям сильно-сильно надо писать логи в реляционную систему (очевидно что-то джойнить с логами) - то пиши максимально большой пачкой. Хоть 1000 штук. Сколько позволяет размер фрейма в этом unix socket. (Кстати какой он там?) А чорт его знает. Но.... если ты записал 999 записей а последняя еще не пришла, а тебе срочно нужно глядеть в базу - тогда делай периодически сброс по времени. Например через 3 секунды от начала пачки ты будешь делать insert независимо от того сколько строк накопил.

    Вот так.
    Ответ написан
    Комментировать
  • Есть способ с помощью Mysqli одним махом засунуть JSON в базу?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Варианты. Можно преобразовать JSON в JSON-Lines (где каждая строчка - это независимый JSON документ представляющий строку таблицы).

    Потом загрузить это в spark dataframe
    Using Scala version 2.12.15 (OpenJDK 64-Bit Server VM, Java 11.0.17)
    Type in expressions to have them evaluated.
    Type :help for more information.
    
    scala> val df1 = spark.read.json("/tmp/emp.json")
    df1: org.apache.spark.sql.DataFrame = [_corrupt_record: string]

    И имея фрейм либо сохранить в CSV либо подключить драйвер JDBC записать прямо в базу.

    Еще во фреймворке Pandas есть опции загрузки из JSON. Но я сам не спец в пандасе поэтому
    точно как сделать не скажу.

    Вот. Еще я помню где-то писал утилиту чтоб произвольные JSON конвертить в JSON-lines.

    Короче способов - масса. Беда как обычно в вопрошающем. Что он готов для этого установить
    и что выучить.
    Ответ написан
    Комментировать
  • Чем проверить hdd на бэды?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Те которые на 100Гб можно подарить детям на игрушки. А для больших (несколько терабайт) - моешь посмотреть SMART информацию (как советуют выше).

    Еще скачай себе любой линукс на флешку. С нее загрузившись можно найти много разных утилит для теста поферхности.
    Ответ написан
    2 комментария
  • Есть ли fill factor для sqlite3?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Но, как я понял, она про другое, про упаковку после удаления. А мне нужно, что бы просто листовые страницы B-дерева заполнялись полностью, как у ms sql с fill factor = 100. То есть, максимально плотное заполнение базы данных, когда идет просто построчная вставка.

    Ты напомнил анекдот когда женщина приша к урологу и жалуется что у мужа дескыть "одно яичко ниже другого. Непорядочек.."

    Вобщем перфекционизм хорош в меру. Если ты читал об организации индексов на основе B+Tree (практически везде) во всех DBMS, то ты должен был читать о том что среднее заполнение листовых блоков обычно равно 75% от размера блока. Это связано с возможностью оперативно делать insert новых ключей и значений. Если ты, используя какие-то утилиты специально выровнял заполнение блоков - то индес становится медленным для будущих вставок. Каждая вставка продуцирует операцию split (тяжелая операция) и пока не посплитятся все листы - перформанс будет плохой.
    Ответ написан
  • Как сделать своё облако для хранения копий файлов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если исходники хранит - то наверное git подходит.

    Если фильмы и музыку - то наверное надо другой подход обсудить. Вобщем ты мало информации сказал.
    Ответ написан
  • Что добавить в код, чтобы текстовая строка прорисовывалась в окне с дополнительным эффектами(Указано ниже с какими, Win 32 C++)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тяжелую задачку ты зацепил. Я не знаю есть ли в классическом Win32GDI такие функции чтоб вдоль curve печатать текст.

    Но вот есть пример с печатью под произвольным углом. Попробуй ее приспособить.

    https://learn.microsoft.com/en-us/windows/win32/gd...
    Ответ написан
  • Как сжать файл?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для exe-шников еще в 90-е создавались не архиваторы а всякие "упаковщики". Из таковых я помню UPX https://upx.github.io/
    Ответ написан
    Комментировать
  • В чем Базовая суть async функций?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Чтобы понять async нужно в принципе понимать мультизадачность.

    Есть два вида мультизадачки. Первая базируется на preemptive multitasking. Это классика на потоках (Threads). Подходит для приложений где есть нагрузка на CPU и мало I/O. Пример таких приложений - рендеринг 3Д графики. Майнинг.

    И есть второй вид когда есть много I/O а нагрузка на процессор - малая и ее можно считать неизменяющейся. Как обработчик событий. Ее делают на async/await. Или еще на мультиплексированном I/O. Она подходит для веб-серверов. Яркий пример - nginx. Или системы обрабоки MQ. Сокет-серверы. Файловые серверы и прочее.

    Поэтому изучать async в отрыве от всех методов организации мультизадачности - безсмысленно. Вы ничего не поймете пока не узнаете все use-cases использования железа и ОС. Чтоб понять async - поймите классику.

    UPD: Fixed
    Ответ написан
    2 комментария
  • Обязательно ли выкладывать изображения в 2к и более?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Весят чет многовато даже после компрессии.

    Все очень просто. Зависимость размера от ширины - квадратичная.
    Это означает что размер картинки растет не линейно а в квадрате от
    одного из измерений. И JPEG/WebP здесть не помогает т.к его алгоритмы
    не меняютс своих свойств от размера. Обычно ты задаешь коэфф сжатия
    или он берется по дефолту. Ставить более сильное сжатие нет смысла
    т.к. портится качество мелких деталей. А если портить - то нахрена
    увеличивать размер?

    Пример такого расчета в сыром размере RBG байтов:

    Разрешение FullHD 1920 x 1080 = 2073600 pix = 2073600 * 3 = 6 220 800 bytes
    Тоже самое в два раза больше в поперечнике 3840х2160 = 8294400 pix = 24 883 200 bytes
    Итого размер стал в 3 раза больше. Для 8К разрешения ситуация станет хуже во много раз.

    Поэтому увеличивать разрешение нужно очень осторожно.
    Ответ написан
    1 комментарий
  • Болят глаза через 5-10 минут, что можно сделать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Сходи к врачу. Боль в глазах может быть связана с внутричерепным давлением. У меня после Covid было такое что я видел вспышки в левом глазу. Все это - последствия чего-то там.

    Вобщем глаза - твоё здоровье и не слушай советы дилетантов по поводу монториов или шрифтов. У тебя - медицинская проблема и ее надо решать с медициной.
    Ответ написан
  • Как предотвратить повторные нажатия клавиш на программном уровне?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В связи с повышенной влажностью моя клавиатура стала делать повторные нажатия клавиш. К примеру нажав какую либо букву она нажимается дважды, изредка трижды. Денег на покупку такой же клавиатуры нет, а к другой я буду долго привыкать.

    В науке и технике это явление называется дребезг контакта. Борются с ним по разному. Обычно ставят конденсатор параллельно каждой клавише. Кроме того клавиатурный контроллер который стоит позади клавиш и который формирует команды на USB также содержит некий интеллект фильтрации.

    Решать эту задачу программно - я не советую. Ты рискуешь потерять - больше информации например для приложений которые фиксируют не клик а DOWN и UP по отдельности.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нужно откатить на предыдущий билд и дать возможность сайту работать.
    А после этого - в спокойной обставновке смотреть что менялось и что привело к инцеденту.
    Ответ написан
    Комментировать
  • Как осуществить разгон оперативной памяти DDR3 с 1600 до 1866?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это +16% к частоте. Даже не заметишь. А риски что будет нестабильно есть. Я-бы ничего не делал. Оставил как есть. Тем более что перформанс в играх зависит не только от памяти а еще от CPU/GPU диска.
    Ответ написан
  • Как найти угол между двумя точками?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Через скалярное произведение двух векторов.
    Ответ написан
    Комментировать
  • Как экранировать все «'»?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В современном мире, если вы используете bind-variables или нормальные ORM-фреймворки - то вам ничего нигде не надо экранировать. Пользуйтесь коробочным продуктом и не изобретайте своих SQL билдеров.
    Ответ написан
    Комментировать
  • Как в golang заменить текст в консоли?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не знаю как в Го-шке. Но в сях есть два базовых подхода к работе с текстовой графикой.
    Первое - это печатать управляющией символы (backspace) чтоб стирать предыдущие.
    Так например работает текстовый архиватор Rar пока печатает прогресс. Все это на уровне STDOUT.

    Второе - это использовать библиотеки наподобие ncurses. Это такая Rich-графика в тексте.
    Можно делать красивые цветные текстовые таблицы наподобие TurboVision. И даже интерактивность.
    Диалоговые окна. Edit boxes e.t.c.
    Ответ написан
    Комментировать
  • Как преобразовать документ pdf в лист excel?

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

    По поводу парсинга pdf на python - вот был вопрос в стековер https://stackoverflow.com/questions/18755412/parse... можно начать с этого.
    Ответ написан
    Комментировать
  • Как себя ведет wordpress на PostgreSQL?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Хочу попробовать прикрутить wordpress на PostgreSQL в замену Mysql


    Как-то авантюрно звучит. Если сайтик маленький то все будет норм. Но я-бы предложил не класть
    все яйца в одну корзинку. И если у тебя например 4 сайта - то разложи их 2хPG + 2xMySQL
    чтобы была возможность что-то проверить.
    Ответ написан
    Комментировать
  • Как реализовать премодерацию запросов добавления/изменения в БД?

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

    Какая тут схема?
    Ответ написан
    Комментировать