Задать вопрос
  • В чем смысл public _ {get;set} в c#?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ей же по сути так и так можно задавать любые значения и получать откуда хочешь, или нет?

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

    Это называется "инкапсуляция". Тоесть оболочка объекта это не просто бюрократизм а это капсула
    которая запрещает неправильные или неконсистентные действия с внутренними полями объекта.

    Грубо говоря такой объект это не просто тупой struct/tuple а это некий умный конечный автомат который
    имеет более сложное поведение.
    Ответ написан
    Комментировать
  • Как написать свой фреймворк?

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

    Например - многие фреймворки давят на шаблон Inversion of Control.
    Обычно это доверие главного control flow фреймворку. А программист
    уже вставляет свою логику в какие-то ключевые точки. Яркий пример
    - сервлеты. Фреймвор обеспечивает веб, балансировку, роутинг путей
    и поддержку сессий. А программист просто делает сервлет который обрабатывает
    request.


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

    mayton2019
    @mayton2019
    Bigdata Engineer
    То что ты хочешь - называется инфо-безопасность и она решается не на питонах а на
    базе unix атрибутов доступа (u,g,o) к файлам или в более расширенном варианте на листах доступа ACL
    (Access Control Lists).

    Технологи наблюдения за файловой системой (sys/inotify.h) не предназначены для отклонения или разрешения
    доступа. Они - для других задач.
    Ответ написан
  • Как можно осуществить резервное копирование каждый день, если работа проходит в облаке mail (~200гб)?

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

    И сразу совет. Нужно провести тренировочное восстановление. А то так часто бывает. Ситуация анекдот.
    Тебе настроят бэкап под ключ. А он бекапил либо не тот фолдер либо бекапил не туда.
    Ответ написан
    Комментировать
  • Как автоматически создавать большие отчёты из множества docx файлов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В общем задача типичная, у компании за год из разных отделов прилетает по 100+ отчётов с разным содержанием, в конце года необходимо создать один большой отчёт о всей проделанной работе на 300+ страниц, делали это вручную, но сейчас решили автоматизировать процесс, возник вопрос - как это реализовать?

    Для нейронных сетей не свойственен "детерминизм". Тоесть дважды поставленная одна
    и та-же задача для НС будет иметь 2 разных результата. Это свойство НС очень важно
    например если вы их путаете с Lisp/Prolog и прочими экспертными системами которые
    внутри себя действительно содержали if-else логику а НС так не работает.
    Она - "шумит".
    Она завист от random генератора и этот генератор является ее базовым свойством.
    Его принципиально нельзя отключить даже при 0 температуре алгоритмов НС.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тебе вообще не нужен С++. Изучай системную архитектуру. Устройство процессоров. Ассемблер.
    И язык С. Этого материала достаточно чтоб сделать эмулятор а знание С++ здесь тебе будет
    как "гиря на ноге".
    Ответ написан
    Комментировать
  • Чем бэкапить файловую общую папку на Windows в 2025 году?

    mayton2019
    @mayton2019
    Bigdata Engineer
    2025 год не сильно повлиял на технологии бекапов. Я б даже сказал что никак не повлиял.
    не древнее, популярное и не сложное.

    самое главное в процессе бекапирования чтоб файловый архив ты потом на любом железе
    и на любой ОС смог открыть. Например tar+gzip всегда будет доступен для распаковки.
    А какой-нибудь ntbackup может сыграть с тобой злую шутку.

    И вообще начни с чего-то простого. По планировщику запускай архиватор и возможно этого
    тебе хватит на много лет.

    Не нужно гнаться за популярным. Ведь ты не на показ мод пойдешть с этим софтом верно?
    Твоя задача - спасти срочно свои файлы если вдруг пожар или потоп. И в этом смысле
    надо быть осторожным и консервативным. А модные утилиты тебе доставят просто ненужных
    хлопот.
    Ответ написан
    1 комментарий
  • Какие нужны знания для работы в провайдере тех поддержке l2?

    mayton2019
    @mayton2019
    Bigdata Engineer
    На самом деле никто в QNA не знает какие вопросы тебе надо решать. И для кого эта линия L2?
    Физлица? Или корпоративные клиенты? Отсюда также непонятно зачем тебе .... чить Линукс.

    Скорее всего у тебя будет инструкция. Нам будет написано как отвечать и куда переключать клиентов.
    У тебя скорее всего будет сайт типа базы знаний по провайдеру. Там будет вся информация.

    Учить сейчас что-то превентивно я не советую. Это только ускорит выгорание. Просто посмотри как пройдет
    твоя первая неделя. После этого станет ясно что учить.
    Ответ написан
    2 комментария
  • Как в Maven-проекте собрать код отдельно от ресурсов?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    За упаковку ресурсов отвечает плагин maven-resources-plugin. По умолчанию он включен всегда.
    Он является частью общего конвейера сборки и реагирует на process-resources phase.
    Его наверное можно отключить настройкой этих реакций. Но я не советую. Скорее всего
    вы сломаете логику работы программного продукта.

    Если вы разработчик - создайте отдельн бранч где удалите все ресурсы и попробуйте с ним поработать.

    Если у вас есть jar то вы можете его перепаковать просто удалив ресурсы.
    Ответ написан
    Комментировать
  • Можно ли реализовать программу, написанную на C/assembler, которая отслеживает процесс запуска/работы вирус-майнера?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Чтоб не было создания велосипедов.

    По поводу детектирования. Есть статья на сайте МС под названием

    Defending against cryptojacking with Microsoft Defender for Endpoint and Intel TDT

    Приведу цитату

    Intel TDT applies machine learning to low-level hardware telemetry sourced directly from the CPU performance monitoring unit (PMU) to detect the malware code execution “fingerprint” at runtime with minimal overhead.
    ....
    This technology is based on telemetry signals coming directly from the PMU, the unit that records low-level information about performance and microarchitectural execution characteristics of instructions processed by the CPU. Coin miners make heavy use of repeated mathematical operations and this activity is recorded by the PMU, which triggers a signal when a certain usage threshold is reached.

    Вот почитай что такое Intel TDT, PMU e.t.c. Я думаю это будет правильное направление куда дальше искать.
    Ответ написан
    Комментировать
  • Почему объект java считывается справа налево?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Обычно для конкатенации строк используют не сложение а специальный билдер.

    Вместо
    String hhh = new String("qwe");

    пишут
    StringBuilder sb = new StringBuilder("qwe");

    Операция сложения для строк вообще введена неправильно во многих языках.
    Сложение - коммутативно. Но для строк это правило не работает.
    Ответ написан
    Комментировать
  • Какие есть Алгоритмы поиска синонимов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно попробовать расширять текстовый запрос по такой формуле

    вов => "вов OR wow"

    Здесь преобразования достаточно простые.

    По поводу world of warcraft => warcraft я не согласен. Это вообще другая игра, поэтому и результат поиска будет не верный. Хотя это на откуп автору. Если его база содержит только игры последних лет то пускай комбинирует слова через or.
    Ответ написан
    Комментировать
  • Безопасно ли загружать docx файлы пользователей на сервер?

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

    С точки зрения современной инфо-безопасности docx является опасным. Макросы...
    И даже если вы не будете открывать этот файл в Windows а только в pHPOffice - все
    равно подстраховаться надо.
    Ответ написан
    Комментировать
  • Какие есть онлайн-редакторы кода, чтобы развернуть на своем ПК, но обращаться с других машин как к веб-странице?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Коробочное решение удаленного доступа - это 99% SSH. Настроил и компилируй себе в командной строке.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Задача декомпозируется на 3 подзадачи.
    1) Выбрать список строк из json
    2) Перевести
    3) Вставить перевод обратно.

    По пункту (1), (3) есть API JSON path, Json Document или ему подобный. Почти для всех языков это уже решенная задача.

    По пункту 2 лучше взять онлайн Rest API машинного перевода. Например от Google.
    Ответ написан
    Комментировать
  • Как спроектировать dwh звезда?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Здравствуйте, у меня возникла проблема с пониманием архитектуры dwh. Мне требуется сделать хранилище, но при проектировании получается, что у меня не одна единственная таблица фактов а их несколько. К примеру:
    У меня есть таблица транзакций маркетплейса где указан: тип транзации, артикул, дата, склад, режим отправки и т.д.
    Также у этой таблицы есть таблицы измерений (по артикулу, складу).
    Но есть ещё одна таблица "Заказы" у которой указаны столбцы: статус заказа, артикул, дата, время доставки и т.д


    Это нормальная ситуация. Для DWH-систем тебе нормализация не нужна. Можно денормализовывать.
    Тебе нужно все таблицы поделить на 2 кучки. Первая кучка - это DWH-факты которые будут денормализованы.
    Транзакции и заказы должны быть денормализованы и слиты в 1 ооооочень большую таблицу.
    Она будет в центре снежинки.

    Вторая кучка - это dimensions. Они будут лучами снежинки.

    И не забывай сделать partitioning для главной DWH таблички.
    Ответ написан
    Комментировать
  • Как обосновать применение реляционной БД на интервью по System Design?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Очень сумбурно автор описал. Многое из контекста непонятно. Вроде сам решил применить Postgres.
    Ну ОК. Решил так решил.

    И как по ПК можно выбрать 100 записей? Сделать 100 запросов? Или это не-ПК? Непонятно.

    Вообще ни один производитель СУБД ничего не пишет про отклики. Это можно обсуждать
    например в контексте приложения redis/web-server/dbms и там что-то придумывать и обосновывать.
    Отклик - это сложная сумма которая состоит из множества слагаемых и не всегда БД там главная.

    Вообще сама идея или само обоснование NoSQL (AWS Dynamo,. Azure Cosmos DB) идет как раз
    от гарантий что вендор будет давать пропускную способность и отклик пропорционально вашей
    оплате. Вы покупаете условно например какое-то количество RU (Request-Units) и все облако начинает
    подстраиваться под вас таким образом чтобы соблюдать рост и независимость от размера данных.

    Все что касается других (single-node, standalone) систем то они обычно быстро достигают пика
    либо на диске либо на сети и после этого уже про отклик нельзя ничего говорить. Даже вкупе
    с индексом все равно есть определенная деградация. И вы очень смелый человек если
    сразу стали что-то стали чертить на базе реляционной системы.

    Вообще если вы решили обсуждать например системную архитектуру то можно отбросить БД
    и зайти со стороны философии и требований. Например лет 20 назад мы все знали что дисковая
    подсистема на основе 1 магнитного диска обеспечивала скорость поиска блока в 15 мс.

    Это так называемый random seek. И эта величина очень долго стоит как стена. Не
    двигается особо даже для современных HDD. Механика чорт ее дери...

    Для поиска любой записи в индексе вам надо сделать 4-5 seek по диску при условии что
    мы диск полностью заполнили. Тоесть получается что быстрее чем 55 милисекунд мы не можем
    гарантировать поиск записи по ПК для БД на магнитном носителе. Про SSD тоже можно
    порассуждать. И в контексте бенчмарков в самом неблагоприятном состоянии.
    Диск может быть заполнен на 99% например по размеру. Почему нет? Всяко бывает.

    Вот так. Философски рассуждая мы можете вообще начать разговор. А уже какая там БД.
    Tarantool, Cassandra, LevelDB это уже как-бы детали к системной архитектуре.
    Ответ написан
    Комментировать
  • Какие потоки имеют внутренний буфер в Java IO?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Ты задаешь вопросы в основном по абстрактным классам. А в них обычно нет ничего интересного.
    И размер буфера это как раз особенности реализации в наследнике.

    Для буферизации InputStream можно использовать такую обертку.

    BufferedInputStream strm = new BufferedInputStream(new FileInputStream("file"), 128 * 1024);
    Ответ написан
    Комментировать
  • Изменение заглавных полей в постгрессе?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Попробуй так:
    create table "mytab"("COL" text, "CamelCase" text);
    Ответ написан
    Комментировать
  • Как "выпрямить" кольцевой буфер c ограниченной доп.памятью?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Автор мне кажется ты решаешь две разных задачи.
    Первое - кольцевой буфер. Его не надо сортировать и его API
    обычно очень простой. Это блокирующие push/pop или там атомарный
    peek или проверка на пустоту. Они работают быстро и в этом их преимущество.

    Если ты задумал очереди с приоритетами то посмотри например пирамиду (heap).
    Ответ написан
    Комментировать