Задать вопрос
  • Где лучше сохранить информацию о посетителей сайта?

    mayton2019
    @mayton2019
    Bigdata Engineer
    При данной постановке - безразлично где хранить. Можешь их писать в текстовый файл в формате даты + IP адреса.
    Можешь писать в БД. Никто не скажет где здесь оптимум.

    Пока ты сам не придумаешь какие запросы будут по этому хранилищу. И как долго ты согласен ждать выдачи
    ответа. Вот с этого момента уже можно обсуждать Базы или форматы бигдаты.
    Ответ написан
    5 комментариев
  • Как сделать через цепочку промисов последовательное выполнение операций в SQLite в node js?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Асинхронное программирование не обязано соотвествовать структурному. Ты предполагаешь
    что код исполняется сверху-вниз как в Pascal. Но он выполняется в соответствии с тем как
    срабатывают отложенные функции. Вот когда SELECT вернет данные - тогда и твой чек-поинт "1" будет
    напечатан.
    Ответ написан
  • Стоит ли углубленно изучать многопоточность, асинхронное и паралельное программирование?

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

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

    Из параллелизма есть задача параллельного умножения двух больших матриц. Очень популярная
    и многократно обсужденная почти во всех It-ресурсах.

    И второй смысл - это просто знать способы распараллеливания медленно работающих задач.

    Современные фреймворки - тяготеют к тому чтобы разработчик не встречался с задачей конкуренции.
    Яркий пример - акторные фреймворки (Akka, Storm). А в задачах биг-даты - практически все
    сводятся к map-reduce и если ты хорошо сделал partitioning для своих таблиц или файлов то тебе вообще
    ничего делать не надо. Фреймворк сам позаботится. Добавляй только ему ресурсы (процессоры или ноды).

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

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

    Тоесть если будешь решать практические задачи - бери настоящие а не высосанные из пальца.
    Ответ написан
    Комментировать
  • Как сделать кастомный mysql запрос от пользователя?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть два варианта.

    Классифицировать все хотелки от пользователя и превратить их в набор формочек например

    Count: ___
    Names: ___

    И транслировать их в фиксированные запросы типа
    SELECT * FROM database WHERE count > _ AND Name IN (___,___)


    И второй вариант - дать пользователю конструктор запросов. Чтоб пользователь как-бы мышкой
    накликал набор предикатов-фильтров
    . Я не специалист в PHP, но в Java например такие конструкторы
    (билдеры) выглядят вот так https://www.jooq.org/ или так querydsl.com

    Все остальные варианты ты просто не потянешь в силу наверное слабого опыта. Сделать полноценную
    защиту от инжекций - сложно даже профессионалам. Это - вечная борьба в кошки-мышки. И тебе
    надо очень хорошо знать и DBMS и синтаксические парсеры чтобы хоть что-то полноценно там создать.
    И не просто создать и все время поддерживать. Быть в тренде обновлений DBMS и новых векторов угроз.
    Ответ написан
  • Что за формат чисел в ассемблерных файлах 000ABC100h в конце 'h', конкретно как парсить?

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

    Попробуем ответить на первый.

    А могул ли быть, А100000000000000h, то есть начаться с А


    Да могут быть. В хекс-системе числа состоят из цифр и букв от A до F. Другое
    дело что ты должен следить за разрядностью и понимать что в регистр процессора
    (ассемблер) и тип данных (для шарпов) может влезать ограниченный диапазон
    величин. Например для ассемблерного двойного слова (DWORD) максимальное число FFFFFFFFh
    И для шарпового unsigned long максимальное 0xFFFF_FFFF_FFFF_FFFF

    Тоесть правильный ответ состоит из проверки числа на допустимые символы и проверки
    ТИПА данных на диапазон.
    Ответ написан
    4 комментария
  • Как запустить команду в другом контейнере?

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

    Поговори на эту тему с архитектором. Но не всякий любой каприз архитектура должна удовлетворять.
    Может быть твоя хотелка в будущем станет дыркой в безопасности.
    Ответ написан
    Комментировать
  • Неверная компиляция классов C++ в Unreal engine 5?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Начни с простого. Сделай новый проект в UE и сымитируй одну ошибку. Так проще разбираться.
    Ответ написан
    Комментировать
  • Есть ли бесплатная база данных с фильмами?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В мире существует огромное количество баз с фильмами где лежит мета-дата.
    Это сведенья об актерах, аннотоции, рецензии и технические подробности релиза и рейтинги прокатов.
    Вот когда-то я качал отсюда например https://developer.imdb.com/non-commercial-datasets/
    Поищи в kaggle и google базах по машинному обучению. Там тоже есть метадата. Но вся она
    не стандартизирована. Разрозненна. И тебе предстоит работа дата-инженера в попытках
    хотя-бы привести это все к общему знаменателю
    . Справочники везде будут разные
    и модель нормализации вообще бывает разная. Кроме того эти базы ведут конкретные
    люди, которые ведут их в системе ценностей запада и США и поэтому их взгляд на
    содержимое будет вполне себе понятным. Тоесть объективной базы или объективной
    аннотации без купюр или без повестки будет найти почти невозможно.

    Сами фильмы - это платная услуга и скорее всего такого ты не найдешь нигде.
    А если где-то и найдешь - это обычно быстро закрывают. Может у соседа по дому
    есть росшаренная папка Windows. Как вариант.

    Если просто скроллить ленту rutor то можно найти неплохие релизы новых фильмов
    но как по мне - там больше шир-потреб или что-то очень старое и ненужное. Рутор
    неплох но очень мало чего я для себя там находил. Ну там Comedy Club можно было найти.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если гуглить по ключевому слову С++ socket server то обычно находят приложение клиент-сервер
    который по TCP/IP передает текстовые сообщения. Я считаю что это - минималистичный мессенджер.
    Вот бери его и думай как развивать дальше.
    Ответ написан
    Комментировать
  • Имеет ли смысл напрямую кидать свое резюме компаниям?

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

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Почитай про GraphQL https://graphql.org/ . Многим - нравится. Можно декларировать гетерогенные структуры и типы данных.
    Ответ написан
  • Можно ли задавать вопросы об оптимизации и/или улучшение качества базы данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    можно ли в принципе кидать свою БД с просьбой об улучшении или оптимизации ?

    Скорее всего - нет. Подобного рода консультации делают консалтинговые конторы которые продают
    вам либо DBMS либо программный продукт (1С) и прочее.

    Хабр не должен их подменять собой.

    Если вы проектируете новую БД - то вы должны сводить вашу консультацию к 1-2 вопросам.
    Например - почему медленно работает данный запрос (текст SQL прилагается). Сделали
    такие-то такие-то индексы и все равно - медленно. Вот такой вопрос - для хабра.

    Риторические и философские вопросы - обычно производят много шума и флуда и в конечном счете
    все равно не несут никакого ответа.
    Ответ написан
    Комментировать
  • Существует ли обобщение контроллеров?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В ООП существует 2 правильных пути расширения функционала.

    1) Наследование. Ты делаешь базовый контроллер с какими-то общими функциями. И другие контроллеры просто наследуются от базового. Наследование всегда красиво выглядит на диаграмме классов. Такое и приятно показывать на презетнациях. И заказчик доволен. Недостаток наследования - иногда в наследника попадает то что не нужно. И в этом случае наследование нужно просто дробить на большее число уровней. 2-3-4 и так далее.
    2) Композиция. Ты включаешь внутрь одного контроллера один или несколько функционалов от других контроллеров. Композиция не имеет пределов вообще. Можно композировать что угодно и с чем угодно. Композицию используют даже люди которые на знают ООП. И не на ООП языках. Просто у них для этого есть другие названия.

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

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

    Попробуй денормализовать ВСЕ и слить ВСЕ в один сет документов. И эти документы положи в ElasticSearch.
    Это - коробочное решение сегодня для любого текстового поиска. Работает быстро. Пропорционально числу
    вычислительных nodes. Чем больше nodes в кластере - тем быстрее ищет.
    Ответ написан
  • Как можно увеличить место dev/sda2 на "горячую"?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Непонятно что такое "Файловая система Linux". Это какой-то фасад за которым стоит вполне себе конкретная
    реализация (ext4, xfs). И не все из них поддерживают растягивание размера на ходу. XFS например - поддерживает.
    Ответ написан
    Комментировать
  • Как исправлять названия файлов (переименовывать) скачанных из ВК и других источников с нижним подчеркиванием?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я ищу какое-нибудь приложение, утилиту или скрипт, который поможет мне автоматически исправлять имена файлов.

    Коробочного решения скорее всего не будет. Тут слишком много всякой специфики. Не напасешся правил.

    Из кроссплатформенных - могу предложить Java и Python. Разумеется вы должны уметь на них
    писать или лучше наймите фрилансера чтоб он вам один раз это хотя-бы написал.
    Ответ написан
    Комментировать
  • Блок схема оформлена правильно?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Второй блок странно выглядит. Когда я рисовал схемы (более 20 лет назад) в ВУЗах было принято
    обозначение ввода данных внутри паралелограмма.

    Бочка-набок - это типичное обозначение из очередей сообщений (Message Queues) но в данном
    случае это было-бы неправильно. Работа MQ - это бесконечный процесс и тогда надо как-то обозначить
    что процессинг и вывод тоже бесконечный. А у нас стоит явный СТОП алгоритма.
    Ответ написан
  • Как ускорить запрос Select живом поиске?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Select title from table where title Like % : title % limit 10


    runapa, есть разные пути как ускорить текстовый поиск. Человек в ответах верно написал что если
    ты включаешь лидирующий знак % то индекс не используется. Это правда. Классические индексы БД
    не умеют искать по середине выражения. Только по префиксу или по полному совпадению. Если сработает
    - попробуй переписать вот так.

    Select title from table where title Like : title % limit 10


    Если в поле title - ты постоянно ишешь какую-то категорию - то можно эту категорию выделить
    в отдельное поле и проиндексировать его и сделать его лидирующем в плане запроса.
    Тогда поиск будет выглядеть так.

    Select title from table where category='физ-лицо' AND 'title Like %: title % limit 10

    и фактическое время запроса будет уменьшено. Но это требует эксперимента.

    Если это все не помогло - то тогда почитай как в MySQL работает полнотекстовый поиск
    https://dev.mysql.com/doc/refman/8.0/en/fulltext-n... Это возможно потребует
    переделки всей таблицы. И переделки всех запросов.
    Не всем это подходит и не всегда оптимально. Поэтому делай эксперименты с замером времени.
    Текстовые индексы имеют побочные свойства. Они либо медленнее обновляются (неконсистентны)
    в отличие от B+Tree либо требуют ручных действий по обновлению.
    Ответ написан
    Комментировать
  • Как борются с взломом нейросетей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Существует только один способ улучшать работу нейросетей - продолжить обучение на новых данных.

    Сам термин взлом здесь не применим. НС оперируют нечеткой логикой поэтому никакого взлома
    нет. Есть просто детерминированное поведение выхода в зависимости от входа.
    Ответ написан
    Комментировать
  • Как установить chat-gpt на компьютер?

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