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

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

    Формула может существовать в виде нейросети да и то очень узкой специализации и обученной именно на вашем кластере. Такая формула может просто вам сказать в будущем что еще докупить для сайта WordPress с 1000 активными читателями. Ну вобщем эта тема настолько бесконечная что ее лучше поднимать не в habr а где-то в другом дискуссионном месте.
    Ответ написан
    Комментировать
  • Как устроиться devops инженером?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Согласен с Дмитрием на счет списка технологий. Еще добавлю (kubectl) Kubernetes, Helm и облачные тулчейны az (Azure), aws (Amazon), terraform.

    Автор пишет что работает админом. Это очень хорошо. Это правильный старт. Единственное что devops все таки чуть ближе к разработке поэтому надо освоить хотя-бы самые основы golang, python e.t.c из таких языков которые приянты в девопсе. Не факт что будет кодить. Но читать код и разбирать будет 99%.
    Ответ написан
    Комментировать
  • Как получить такую же сигнатуру SHA1 на PHP, как на Ruby?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Алгоритм SHA1 везде каноничен. Но лажать можно было на преобразованиях строки в байтовый массив. (SHA1 применяется не к строкам а к байтовым массивам. Есть варианты - рассматривать строку как ASCII, как UTF-8 или как национальную однобайтную например win1251.
    Ответ написан
  • Низкая скорость интернета только на одном пк на удаленных серверах, кто/что виновато?

    mayton2019
    @mayton2019
    Bigdata Engineer
    если двигаться в сторону Казахстана и далее к России, скорость падает до 10-15 мегабит

    Это очень интересный факт. Если ты смог определить что скорость падает значит есть хотя-бы 2 конфигурации где было "быстро" а потом вдруг стало не очень быстро. Вот между ними где-то и надо искать. traceroute покажет путь а дальше дело техники.
    Ответ написан
    Комментировать
  • Бывали ли случаи, что deprecated-код вновь объявляли актуальным?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Deprecated не так страшен. Для java экосистемы такой стикер может висеть по много лет. За это время вы успеете поменять проект.

    Более хуже ситуация когда разработчик завязался на недокументированное поведение а его (поведение) в новых версиях исправили. Шок трудно описать :)
    Ответ написан
    Комментировать
  • Как декодировать строку?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут возможно encoding был применен несколько раз. Декодирование превращается в забавную игру. Но чтобы играть в нее нужно много времени.

    Скажи там после 1xbet какая следующая русская буква должна быть по смыслу?
    Ответ написан
  • Как написать цикл, чтобы рамка подбирала размер под текст на языке С++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот эти вот символы (191, 192, 196, 217, 218). лучше не использовать. Берите сразу Unicode в разделе BoxDrawing https://www.w3.org/TR/xml-entity-names/025.html

    Что за душный душнило этот ваш преподаватель? Расскажите ему уже что на дворе 2022 год.
    Ответ написан
    Комментировать
  • Как снизить нагрузку на API?

    mayton2019
    @mayton2019
    Bigdata Engineer
    ТЗ надо переделать. Зачем клиент все время чего-то переспрашивает? Пускай сервер сам уведомляет о прогрессе. 0% 25% и т.д.
    Ответ написан
    Комментировать
  • В какой программе можно спроектировать такую схему?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В AutoCAD обычно рисуют почти все чертежи. Если нет других каких-то преференций.
    Ответ написан
  • Как правильно писать код на питоне со многими функциями?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно делают функцию main, которая принимает строковые параметры типа:

    $ python3 jrbro.py --sortFolder /home/jrbro
    Ответ написан
    Комментировать
  • Хочу начать изучать С++, с чего начать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Хочешь изучать С++ для удовольтсвия или для денег?
    Ответ написан
    2 комментария
  • Как учить язык ассемблера NASM?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тяжелую ты тему поднял. Я за последние лет 10 вообще не слышал чтобы кто-то учился и сертифицировался на знания ассемблера. Обычно эти знания идут прицепом к языку "C" и разработке компилляторов. Поэтому по частным случаям можно наверное спрашивать сишников. Они - ближе к теме.

    Был когда-то неплохой ресурс wasm. Там много статей было. Но чего-то щас его не найти.

    Я последний раз учил ассемблер по книжке Питера Абеля (MS-DOS :)) И я тогда учился в техникуме. По жизни вобщем не особо пригодилось.

    По поводу asm, tasm, fasm... Они все одинаковы. Можешь учить с любого. Потом переход будет прозрачный. Единственно... у одного из низ операнды идут в обратной нотации. Ну типа не слева направо а справа налево.
    Ответ написан
    4 комментария
  • Не сожгу ли процессор i9 10900?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть 3 фактора которые разрушают технику. Температура. Пыль. Вибрация. Вобщем-то пыль связана с температурой.

    Я думаю что не сожжешь. Все будет нормально. Просто если каждый день его так гонять то вместо гарантийных 5 лет он проработает к примеру 3. Но тебе пофиг. Через 3 года обновишся. Или что-то другое полетит. Короче или ишак сдохнет или султан.
    Ответ написан
    Комментировать
  • Как выбрать базу данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть такая старая поговорка из тайм-менеджмента - "что СРОЧНО - то не важно".

    Если есть некий источник который продуцирует записи со скоростью 10к в секунду и мы хотим писать их сразу (мгновенно) то наверное у нас есть такой-же потребитель который так-же быстро способен их потребить.

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

    Давайте немного арифметики. Если мы формируем 10к в секунду то за сутки у нас набегает 10000L * 60 * 60 * 24 = 864 000 000 или восемьсот миллионов строк. Это вот если загрузка будет постоянно такая.
    Ответ написан
    Комментировать
  • Как mysql/mariadb сортирует одинаковые значения?

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

    Реляционная алгебра не определяет никаких массивов. Собственно мы не знаем порядка как хранятся кортежи в таблице. Более того. Оптимизация пространства в БД может их тасовать как колоду карт. Тот-же вакуум в Постгресе. Или работа пакетов DBMS_SPACE для Oracle. Или любое delete+insert может сломать порядок который был раньше.

    Поэтому применительно к БД такой вопрос лишен смысла. Если вам нужен какой-то дополнительный ранг сортировки - вводите новое поле (sequence_num) и сортируйте по field,sequence_num. Тогда будет порядок.
    Ответ написан
    Комментировать
  • Оптимальный формат хранения изображения в текстовом виде?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Base64 и не создавался для сжатия. Он хранит примерно 4 символа на 3 байта. Вот такая формула.

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

    Можно ли просто хранить произвольную бинарную информацию в текстовом виде? Да можно. Но при отображении на экране возникнут следующие проблемы. Есть символы которые имеют разные коды но одинаково отображаются на экране. Это искажает наше восприятие информации. Какова цена ошибки - решайте сами. Есть символы которые имеют некий магический эффект для терминала linux (это диапазон от 00 до 1F (control)). При печати их на экран курсор может начать двигаться в разных направлениях. В некоторых терминалах может быть сбой или зависание. Или терминал может издавать писк. Есть символ 00 который имеет зарезервированное значение например для C++/C - ASCIIZ строк. Он маркирует конец строки. И любая попытка передать такой файл "строкой" вызовет неожиданное поведение для вас.

    При хранении произвольных символов внутри XML или JSON строк могут работать ESC последовательности или экранировка которая увеличивает размер строки. Тоесть эффект может быть обратный в зависимости от того какие байтики будут сохранены.
    Ответ написан
    Комментировать
  • Как исправить ошибку связанное с foreign key в Entity?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ты каким-то образом создал табличку books без индекса первичного ключа.

    В Hibernate есть опция работы со схемой. Либо ты сам руками правильно создаешь все объекты. Либо ты доверяешь это инициализации hibernate.

    <prop key="hibernate.hbm2ddl.auto">create | validate | update ....</prop>
    Ответ написан
    3 комментария
  • Как ускорить запросы с group by в ClickHouse?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да ничего тут нельзя особо сделать. 10 секунд - холодный запуск группировки по 88 млн строк - это вполне себе хорошая цифра. Сомнительно что железо выдавит из себя больше. Ведь так или иначе нужно эти 88 млн пересчитать и даже будь это все в памяти - все равно обойти каждую ячейку. А дальше дело будет только хуже. Ведь табличка растет.

    Есть техники микро-батчинга когда большая задача разбиватеся на порции. Например у тебя есть дневной партишен на 15 млн. Делишь его на часовые. Получается по 625 тыщ строк. Уже лучше.

    Делаешь некую кумулятивную табличку. Типа

    create table charge_cumulative(
      id long,
      cnt_cumulative long,
      delta_sum_cumulative long
    )

    Ну и на каждый микро-батч добавляешь к ней значения count, delta_sum. У тебя вроде удачно получается что можно только складывать.
    Ответ написан
    Комментировать
  • MySQL Master Slave не корректно работает?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть идея - заблокировать все прикладные учетные записи на slave. И создать их специальные теневые варианты которые дают доступ только read-only.

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

    Создавать триггеры я думаю не стоит. Это просто какое-то избирательное решение, которое в будущем создаст только больше проблем.
    Ответ написан
    Комментировать
  • Можно ли навредить серверу из docker?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Будь то забиванием озу, диска, или проникновением в bash самого основного сервера.

    Ты знаешь, многие вопросы в инфо-технологиях быстрее проверить чем доказывать ссылаясь на литературу.
    Это как в физике-механике. Делаем эксперимент. Яблоко падает. И уже подгоняем формулы и научную основу.

    Создай образ докера. Создай С++ привет мир-приложение которое делает malloc(1Гб). А потом сделай

    docker run .... --memory 512M

    Что тебе мешает это сделать и просто прийти в хабр уже с ответом и дальше спрашивать по безопасности докера?
    Ответ написан
    Комментировать