Задать вопрос
  • Как переделать код под ООП?

    mayton2019
    @mayton2019
    Bigdata Engineer
    ООП предполагает что в задаче есть некая сущность. Объект. И у него должны быть методы. Что происходит в данной задаче? Пользователь вводит x, потом размер массива. Потом сам массив. После этого делаются какие-то манипуляции с массивом. И после этого массив распечатывается на экран. Где тут ООП? Я не знаю! Я чорт возьми не пойму где здесь ООП.

    Вобщем скажи своему преподавателю что здесь нет смысла вводить ООП. Код достаточно хорош и концептуален в том виде как он записан. И надо не забывать про принципы KISS/YAGNI которые никто не отменял.
    Ответ написан
    Комментировать
  • Реальная ли в jvm многопоточность?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Проверить это можно так. Запускаем jvm-процесс который создает 1000 потоков но не сразу а постепенно. Смотрим в linux top процессов и если количество процессов (потоков) растет то мы получаем доказательство того что jvm-theread линейно связан с числом linux-processes (threads).

    В windows ЕМНИП один процесс включает в себя от 1 до бесконечности вычислительных потоков.
    В linux процесс и поток отличаются опциями разделения ресурсов. Тоесть что по сути опциями безопасности. Например потоки шарят разделяемую память а процессы - не шарят никогда.
    Ответ написан
    Комментировать
  • Что значит описать встретившуюся геометрическую фигуру и определить положение точки в этой фигуре?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Задача решается довольно просто. Это булевы операции над углами и окружностями.
    В данной задаче сложностью является следующие вопросы
    1) Как ЗАДАНА окружность?
    2) Как задан угол?
    3) Как задан квадрант? Или прямая. Или полу-плоскость.
    После того как мы узнаем это - сможем легко описать цветовую область. Например голубой сегмент окружности описывается как:
    - пересечение окружности с полу-плоскостью
    или
    - пересечение двух полу-плоскостей
    Ответ написан
  • Почему сайт отклоняет запросы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У тебя - задержка 0.5 секунды. Поставь формулу exponential backoff. Тоесть следующая задержка
    в случае неудачи будет 1 секунда. Потом 2, 4, 8 e.t.c. До тех пор пока HTTP код c 429 не перейдет
    в статус 200(201)
    Ответ написан
    Комментировать
  • Существует ли ещё статья с понятным объяснением про нейронные сети?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Существует ли ещё статья с понятным объяснением про нейронные сети?

    Вряд-ли такая статья существует. Есть книга Саймона Хайкина на 1000 страниц. Это полный курс.

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

    Тут от тебя звучит противоречие. Если тебе очень понятно объяснили - то тогда в чем проблема написать код?
    Или у тебя как раз проблема с кодированием? Тогда нейросети здесь не причем. Тебе нужно просто набивать
    опыт в кодинге по техническому заданию.
    Ответ написан
  • Как в c++ сделать проверку на число и чтоб например если несколько точек в числе или минус в середине была ошибка и возвращало обратно к вводу?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Проверить что внутри строки - нечто похожее на число - это одна задача. Ее можно сделать регуляркой. А сделать кастинг его к int/long/float/double - это другая задача.

    Некоторые числа бывают слишком большие и не влезают даже в long (64) и некоторые вещественные могут иметь множитель 10 в степени 310 и это не лезет в double. Мне сложно такое представить но теоретически пользователь может такое ввести.

    Какую задачу решает автор? Что будет дальше происходить с введенным числом?
    Ответ написан
  • Что лучше всего использовать при работе с данными?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Сразу ремарка. Большие данные предполагают такой кейс что они не влезают в ваш ноутбук.
    Это некая стартовая точка от которой вопрос интересно изучать. Если влезли - значит данные не большие.
    Обычная БД. Я рекомендую установить вам локально Postgres или MySQL и загружать туда все что надо
    и там делать любые анализы. Если данные полу-структурированы - то попробуйте использвать spark-shell.
    Это позволяет обработать логи, текстовые файлы, json-lines e.t.c. Настройка spark-shell потребует
    от вас определенных знаний Java. По крайней мере в части памяти.

    Есть явно легаси инструменты которые были созданы во времена Hadoop. Их много.
    - sqoop, hadoop, hdfs. Ими тоже можно пользоваться но по перформансу они уже
    слабее чем например spark.

    Если ваши данные уже в облаке - то вы будете сильно ограничены в инструментах. Обычно амазон
    предлагает свой aws-cli + UI. Microsoft - az.

    И отдельно DataBricks предлагает консольные тулы dbfs/databricks. Но пользоваться ими не очень удобно.
    По крайней мере в том виде как они есть сегодня. Я пользуюсь их web-версией UI.
    Ответ написан
    Комментировать
  • Какой язык лучше выбрать для ETL процессов?

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

    Microsoft предлагает решение под названием https://adf.azure.com/en/ Azure Data Factory.

    Данная платформа поддерживает много языков. Ну Scala/Python/SQL/R точно работают. Databricks кластер
    просто является одной из фич данной платформы.
    Ответ написан
    Комментировать
  • Стоит ли читать Философия Java в переводе на русский язык?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Если это Брюс Эккель - то я читал ее в 2013 году. Тогда хорошо зашла. Но я не знаю насколько книга актуальна для современной Java. После того как сообщество перешло на такой бешеный темп создания релизов - то книги стали устаревать быстрее.
    Ответ написан
    6 комментариев
  • Что не так с первичным ключом в Базе Данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это sequence. Последовательность. Это - как туалетная бумага. Использованные номера можно выкинуть. Зачем их повторно брать? У вас же нет желания из мусорного ведра тягать грязные бумажки?
    Ответ написан
    Комментировать
  • Как можно без сторонних библиотек быстро и кроссплатформенно прочитать или записать некоторый кусок байтов с диска или на диск?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Проще всего с этим работать на линуксе. Эта операционка отображает все диски на блочные устройства /dev/* и позволяет с ними работать просто как с очень большими файлами.

    Разумеется права суперпользователя тебе пригодятся. Механизмы безопасности никто не отменял. В Windows тоже есть аналог для таких устройств.
    Ответ написан
    Комментировать
  • Сколько всего ip адресов в глобальном интернете?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Реально можно использовать чуть меньше 2 млрд адресов
    IPv4. Фактически последние IP-blocks были распределены много лет назад.
    Сейчас только за счет NAT и серых адресов в ротации абоненты и получают в аренду
    ардеса.

    Новые адреса можно добыть только забрав их номера у корпораций которые в свое время
    нахватали много.
    Самой большой долей адресов владеет США.

    По IPv6 не скажу. Не знаю.
    Ответ написан
    3 комментария
  • Как работает автогенерация плейлистов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я-бы не спешил обзывать это явление искусственным интеллектом. Может быть просто кластеризация?
    Ответ написан
    3 комментария
  • Можно как-то в чем-то (под Ubuntu) посмотреть визуально коммиты [и ветки] в хронологическом порядке?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Сложно говорить о хронологии, когда люди делают коммиты в оффлайне, в разных часовых поясах и со сбитыми внутренними часами. Задачка блин для Эйнштейна.

    Я-бы предложил рассматривать не хронологию а топологию. Это более корректно. Коммиты - это орграф. DAG. И у него есть последовательность действий над бранчами.
    Ответ написан
    1 комментарий
  • Как сделать auto increment колонку, которая увеличивается относительно другой колонки?

    mayton2019
    @mayton2019
    Bigdata Engineer
    По виду это похоже на троичную систему счисления. Ее можно получить просто пересчитывая нормальный sequence. Пишу на псевдокоде.

    create table ПочемуАвторНикогдаНеПишетНазваниеТаблиц (
       id sequence,
       class_id int GENERATED ALWAYS AS (id / 3),
       student_id int GENERATED ALWAYS AS (id % 3)  
    );
    Ответ написан
    Комментировать
  • Как соотносятся между собой mysql и mariadb?

    mayton2019
    @mayton2019
    Bigdata Engineer
    почему при работе в командной строке я продолжаю подключаться через mysql -u -p

    MariaDb поддерживает тот-же сетевой протокол что и MySQL.
    Ответ написан
    Комментировать
  • Перспективно ли изучения GO для начинающих?

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


    Письмо, полное сомнений и множества вопросов. Я не совсем понял что требуется от нас. Если отвечать на главный вопрос - то да. Перспективно. Go драйвит Google как основной язык для микросервисов. Но учитывая возраст кандидата я-бы спросил следующее.
    - как с английским?
    - как быстро обучаешся чему-то новому?
    - согласен ли на релокацию?

    Какие перспективы в РФ - понятия не имею но перспективы в зарубежных конторах - есть.

    Хочу предупредить автора об ошибках которые я сам совершал. Я думал что дело в языках и технологиях. Но это не так. Дело в коммуникациях. Я работал минимум с 5 зарубежными компаниями и я своими глазами видел что мои знания просто нивелировались на фоне например моего не очень сильного английского. А другие teammates в силу широких коммуникатиционных скилов могли очень быстро найти контакт с нужными людьми и обходили
    меня в карьере достаточно быстро.

    По сути когда тебе за 40 - вообще не имеет значения какой язык ты знаешь. У тебя за плечами должен быть уже
    такой багаж что тебя можно просто брать как опытного советника в технических вопросах. Язык можно подучить но если речь идет просто о распределенных системах и микро-сервисах то больше знаний требуется в части например анализа узких мест системы. Кеширования. Грамотного дизайна безопасности и репликаций и бекапов и восстановления от сбоев. Этот пласт знаний вообще лежит вне языка. И поэтому джун даже очень хорошо выучивший Go или Python не может решать такие вопросы. А автор - скорее всего может. Барьером может быть
    какая-то банальность. Например язык. Поэтому я и спрашиваю.
    Ответ написан
    4 комментария
  • Как можно вычислить тип?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну ты почти все правильно написал. Только лишний кастинг не нужен.

    if isinstance(message.text, int):
    Ответ написан
  • Как выполнять SOAP запросы в нескольких параллельных потоках?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Давайте оценим время для 1 потока. 47К позиций - это надо полагать 47 тыщ SOAP-requests надо сделать. Берем среднее время 400 ms до 3s это будет допустим 1700 ms.

    47000 * 1700 ms = 79900s = 1331min = 22hours.

    22 часа на 1-поточную загрузку товаров.

    Из личного впечатления. SOAP - это не очень быстрый протокол. Хрен его закешируешь на н-жинкс. И я думаю что если его запускать в 2-4-8 потоков то ситуация может усугубиться. Если время прыгает в диапазоне от 400 мс до нескольких секунд то это значит что нагрузка в базе плавает сильно. И владелец этого SOAP-сервиса будет ой как не в востороге от ваших экспериментов. Вряд-ли он предполагал что кто-то будет делать массовые выгрузки.

    Самый лучший вариант - предупредить его письменно об этой задаче и о том что вы собираетесь делать. Возможно он сообразит что дело пахнет DDOS-ом и сам предложит вам другой вариант выгрузки.
    Ответ написан
    Комментировать
  • Как написать метод который принимает строку, преобразует ее и возвращет строку?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    В задаче есть 2 смысла. Первое это собственно алгоритмизация. Показать преподавателю как вы умеете декомпозировать задачу на примитивные шаги. И показать оптимизации. StringBuilder к примеру. И второй смысл - просто решить задачу например используя JavaStreams. Это будет красивее. Компактнее. Но показать алгоритмизацию будет неудобно.
    Ответ написан
    3 комментария