Задать вопрос
  • В каком порядке изучать Java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Обычно звание джуниора ты получаешь после прохождения собеседования. Тебя должны градуировать специалисты которые уровнем выше. Вот. А чтоб быть готовым к собеседованию я советую купить платный курс Java-junior. Благо курсов щас много. И я не рекламирую курсы, не имею отношения к ним вообще. Но плата - будет хорошим мотиватором чтоб учится.

    С бесплатными курсами - почти ничего не выйдет. Их обычно все бросают.
    Ответ написан
    Комментировать
  • Free inodes в Windows. Что это и как с этим бороться?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Аналогичное сообщение можно найти в старой документации Zabbix в части прототипов триггеров.
    https://www.zabbix.com/documentation/5.2/ru/manual...

    В чем смысл сообщения - чорт его знает, но терминология (inodes) - больше применима к Unix-файловым системам. Обычно если это NTFS то там принято говорить - JunctionPoint e.t.c. А про inodes обычно не пишут.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вопрос лишен смысла.

    С точки зрения современного собеседования знания языка являются просто началом собеседования. На самом деле собеседуют по стеку технологий который нужен на проекте. И из 2х часов технического собеса где-то 30 минут тебя могут гонять по языку. Всё остальное - по сопуствующим технологиям. Тоесть например ты заявил что Java developer уровня Junior. Окей - расскажи что такое Object, какие у него методы. Зачем нужен hashcode. Ответив на эти вопросы тебя пойдут гонять по другим технологиям. Spring. Hibernate. Beans. Базы данных. Web. Html/CSS. Json/Xml. CI/CD. Тестирование. Алгоритмы и структуры данных. Отладка.

    Грубо говоря язык это просто некая составляющая стека. И когда ты готовишся к собеседованию - готовишся ко всем вопросам. Обычно платная школа или курсы - тебе обеспечивают обучение всему стеку.

    И не существует других кейсов применения языка. Тоесть программист просто выучивший язык никому (!) не нужен вообще.
    Ответ написан
  • Какая архитектура нужна для телеграм бота с функцией full-text поиска?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да. Elastic можно использовать. Но только до того как принимать решение - попробуй смоделируй рандомных 10 000 документов и наполни их рандомными атрибутами. И загрузи в эластик и посмотри как быстро работает поиск. Эластик масштабируется по количеству нод. Тоесть надо будет платить провайдеру пропорционально твоим потребностям. Хочешь чтоб поиск работал быстрее - плати за большее число нод.
    Ответ написан
    4 комментария
  • В чем суть отличия двух SQL запросов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Автор да ты издеваешся наверное? Ты можешь взять в среде разработки и
    открыв два файла просто посмотреть difference и среда подсвечивает в чем различия.

    И приведи к одинаковому case символы и отформатируй. Всё будет видно.
    Ответ написан
    3 комментария
  • Какому разработчику легче найти первую работу (Web или Game)?

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    В идеале нужно чтобы сам сайт уведомлял тебя о событиях. Например если форум или чят поддерживают веб-сокеты и динамическое содержимое - то нужно слушать нужный сокет и при появлении событий - фиксировать это в боте.

    Подход основанный на периодическом пинговании веб-ресурса - имеет свой недостаток. Как допутим в популярных бук-мекерских конторах владельцы сайта постоянно банят ботов и отстреливают их сессии как только видят роботизированную активность. И вобщем они правы. И я-бы так поступал. Хочешь платный MQ - купи подписку. А ддосить веб не надо.
    Ответ написан
    Комментировать
  • Используется ли пагинация в SQL запросах?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да какой пользователь 10000 тыщ записей способен прочитать??
    Сделай поисковые атрибуты по Name там... еще где то.
    И показывай первые 100 штук.
    Ответ написан
    1 комментарий
  • Обучение C++ на Linux, VS code?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Порядок обучения может быть разный. Но начинать с С++ очень тяжело если до этого у тебя вообще никакого опыта не было. Многие новички прогорают на строках, указателях и ручном менеджменте памяти.

    Английский сегодня надо знать обязательно на уровне чтения документации. Без этого вообще безсполезно ходить в It. Вся новая документация про языкам и фреймворкам будет на английском. Ждать переводов - бесполезно и неконструктивно.

    Пойдёт ли вообще альтернатива Visual Studio Code для обучения?


    Да Visual Studio вполне себе пойдет.

    UPD: Обновил
    Ответ написан
    1 комментарий
  • Подходит ли ноутбук для машинного обучения?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Краткий ответ - да подходит. Голосуйте за мой ответ. Он - верный. Я гарантирую это.
    Ответ написан
    7 комментариев
  • Что такое шаблон консольного приложения и что он в себя включает?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не хватает тегов в вопросе. Это относится к конкретному языку программирования. Например в С++ шаблон такой. В Rust - другой. В golang - третий.

    Обычно консольное приложение - не создает окон. Обычно оно в себя включает обработку консольных аргументов. Например если юзер печатает "--help" вторым аргументом - то приложение печатает справку по командам. И обычно (99%) приложение оперирует потоком вывода (STDOUT) для облегчения взаимодействия с другими CLI приложениями.

    Например когда вы делаете cat (concatenate)
    $ cat file1.txt file2.txt > union.txt
    и "птичкой вправо" выводите сцепление двух файлов в новый файл.

    Еще приложение может в качестве input читать STDIN и еще может в случае ошибки возвращать
    ненулевые коды возврата. Это - полезно чтобы CLI приложение интегрировать с bash скриптами
    и проверять был ли успешен последний вызов.
    Ответ написан
    Комментировать
  • Почему могут не сохраняться новые данные в базу postgre?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Забыл сделать commit.
    Ответ написан
    Комментировать
  • TypeScript без Javascript?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего нельзя. Дело в том что Runtime-система все равно зависит от JS и будет тебе выдавать JS-ные ошибки и ты должен в них разбираться не взирая на TypeScript.
    Ответ написан
    4 комментария
  • Как создать функцию которая может принимать любые типы переменных?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    В полной мере union-типы реализованы в Scala. Поэтому тебе надо сменить язык чтобы работать
    на таком уровне выразительности своей идеи.

    Например вот функция которая конвертит дату-время для строки или для лонг-типа.
    def convertTime(time : String | Long) : String = 
      ....


    В Java есть вариант - передать базовый типп Object и в теле функции проверять instanceOf и делать
    соотв. conditions или паттерн матчинг по типу.
    String convert(Object object) {
       ......
    }

    Вобщем все варианты требуют явного перечисления логики которую ты хочешь сделать.

    Или ты хотел как-то "схитрить" и не писать логику?
    Ответ написан
    Комментировать
  • В чем можно хранить около триллиона значений key=>value?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Давайте прикинем объем который понадобится. Что такое триллион?
    Это 12 нулей. Или 1 000 000 000 000 элементов. Какая у нас data-row?
    8 + 64 символов типа ASCII (байт подходит чтоб покрыть все символы).
    Итого 72 байта на строку. Там можно еще поужимать биты в байтах но только
    сложность повышает а большой пользы для дела не дает. Пускай будет ASCII == 1 байт.

    Вобщем такой расчет

    72000000000000 байтов на весь сегмент данных когда таблица загружена.
    Или 65 терабайт. А сколько магнитных блинов надо прикупить? Возьмем популярный магнитный
    Western Digital Purple 10TB 7200rpm 256MB WD102PURZ 3.5" SATA III при цене 290$
    Порядка 7 штук надо. Вобщем готовте котлету денег 290$ * 7 = 2030$

    По поводу DBMS. Да key-value здесь подходит. Можно начинать с LevelDb или RocksDb но у них
    расход дисковой памяти на 1 строчку может быть больше чем я посчитал. Я ведь считал эконом-эконом
    вариант в виде бинарного типизированного файла где все записи строго по 72 байта. Сколько именно
    захватит РоксДб или ЛевлДб - чорт его знает. Вряд-ли документация об этом что-то говорит.
    Но берите 1% датасета. Загружайте
    и аппроксимируйте сколько выйдет после полной прогрузкуи. Это - надежный способ оценки.
    Ответ написан
    12 комментариев
  • Что значит O(1)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут - проще объяснить применительно к конкретным языкам разработки и технологиями. Например время доступа к элементу хеш таблицы Java (HashMap) оценивается как O(1). Тоесть время всегда постоянное и не зависит от прочих условия типа размера таблицы. А если у нас вместо хеш-таблицы - красно-черное дерево (TreeMap) - то тогда время доступа оценивается как O(log n). Тоесть логарифмически зависит от размера данных в дереве.

    Считается что O(1) лучше чем O(log n). Но этот тезис действует на объеме данных близком к бесконечности. На малых объемах структуры - неразличимы или могут менять свои свойства в зависимости от разных начальных условий (были ли в кеше L1/L2/L3 до этого уже прочитанные данные).
    Ответ написан
    5 комментариев
  • Как можно ускорить запрос или какой индекс использовать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну во первых смысл неправильный. У тебя - взаимоисключающие предикаты. Поэтому надо использовать OR.
    Уже написали выше про это.

    Попробуй так. Должно быть быстрее.

    SELECT * FROM data WHERE name LIKE "Иван%";

    И построй индекс по name. А лидирующий метасимвол % лучше не ставить т.к. это отключает
    возможность использования классическийх B-Tree индексов.
    Ответ написан
    Комментировать
  • Файловая система на диске без разделов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В вопросе звучат два вопроса.
    1) Нормально ли использовать primary partitions вместо extended. Ответ - да нормально.
    2) Как под Windows прочитать этот раздел. Моё имхо - лучше этого не делать. Если вам
    нужен какой-то обмен данными - то лучше отформатируйте под Fat32 например.
    Или вообще откажитесь от использования Windows и пользуйтесь Linux-файловыми
    системами без ограничений. В противном случае ситуация выглядит как некое необоснованное
    "чудачество" автора.
    Ответ написан
    1 комментарий
  • Bsd-socket. Почему бесконечное чтение при http запросе?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего отправитель перестал что-то отправлять. Это не ошибка. Это нормальное состояние сокета. Обрабатывайте на прикладном уровне содержимое потока. Если это http-response то там есть хедеры и длина и прочее и содержимое (XML/Json).
    Ответ написан