Задать вопрос
  • Как перенести образ Centos7 из готовой виртуалки hyper-v на WSL?

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

    И WSL работает на стеке docker, а hyper-v это насколько я понимаю полноценная виртуальная машина. Стеки технологий достаточно разные? Или я ошибаюсь?

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тема хорошая. Только вот градус амбиций я-бы сбросил. Попробуй просто написать сокетное приложение
    которое передает события из точки А в точку Б. И придумай механизм персистенции. И балансировщик. И кластер. Да. правильно написал про Raft. Не только Raft. Еще есть Paxos используется в Cassandra. И централизованный ZooKeeper.

    Где почитать - я даже не знаю. Спектр технологий такой широкий. Тут и сети. И многозадачность. И хранение информации.

    Кстати Кафки в дефолтной комплектации почти не бывает. Каждый кастомер конфигурирует для себя регуляторы скорость-надежность. Влево-вправо. Понимаешь? Поэтому до того как "убивать" Кафку надо просто понять что любое ее нагрузочное тестирование просто ставит другие вопросы. А что собстенно вы ходите. Доставить опционально но быстро. Или с гарантией что месседж сохранился. Или с гарантией что сохранился в основной кластер и в реплику. Каждый кастомер еще для себя придумывает partitioning strategy что является очень важным аспектом скорости Kafka. Тоесть еще до бенчмарка нужно все эти вопросы проговорить. Иначе выйдет сравнительное тестирование "бульдога" и "носорога". И любая система которая будет быстрее Кафки на самом деле будет просто системой заточенной на более узкие условия. Это как узкий UDP может быть быстрее чем TCP но ... как говорил Василий Иванович есть один "нюанс".
    Ответ написан
    Комментировать
  • Как лучше оптимизировать вывод данных?

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

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

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я-бы попросил переделать текст договора. На момент подписания мне должны быть ясны все реквизиты. Фамилии, условия, сумма и вдруг вы подкладываете какой-то непонятный хеш. Мы же не про хеши договаривались.

    Далее. Ты говоришь - в "случае чего" - доказать. Доказательство скорее всего будет происходить в суде. Суд призовет эксперта. А он будет рассматривать не какие-то хеши а как раз именно ваши чертежи и модели и прочее. Так как именно это будет звучать в главном вопросе.
    Ответ написан
    1 комментарий
  • Нужно ли при разработке библиотеки следовать принципу одной ответственности?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да можно. Это называется фасадом. Ограничение в single responsibility обычно относится к ООП и к классам.

    Вообще если ты фрилансер и делаешь просто заказ чтоб отдать его с концами - то тебе безразлично что будет внутри. Главное чтоб ты понимал. А соглашения по декомпозиции кода на части появляются только как результат
    коллективной работы над кодом. Тоесть ты должен спрашивать не qna, а свою команду как вам удобнее
    разрабатывать код.
    Ответ написан
    Комментировать
  • Как вычислить значение x mod 2 на машине Тьюринга?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В унарном виде - это как цепочка единичек. Например число 5 будет.

    _11111_

    Справа и слева должен стоять blank sysmbol. Типа признак конца ленты чтоб было что проверять.

    Тогда (5 mod 2) = 1

    И мы должны получить на ленточке просто единичку.

    _1_

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

    Ну вот такой алгоритм. Дальше надо делать конечный автомат который ищет пары единичек.
    Ответ написан
    Комментировать
  • Можно ли скачать фаил pdf из встроенного просмотрщика на сайте?

    mayton2019
    @mayton2019
    Bigdata Engineer
    1) Вот тут иногда можно найти удаленные книжки

    https://web.archive.org/

    2) Если был известен MD4 или magnet link (hashcode) или еще какие-то хеши то тоже можно скачать.
    Ответ написан
    Комментировать
  • Как решить задачу на c?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Задача похожа на knapsack problem. Ее можно переформулировать как укладка вещей в рюкзаке с полным заполнением и с сохранением порядка вещей. Или еще как поиск всех сумм целых чисел 1,2,3 равных в сумме n.

    Если представить тернарное дерево где childs - это соотвественно длины прыжков (веса) - тогда задача сводится к генерации всех возможных путей в тернарном дереве где длина пути равна n. У этого дерева будет много лишних ветвей которые можно сразу отбросить на этапе обхода если частичная сумма уже больше чем n.

    Вобщем DFS.
    Ответ написан
    Комментировать
  • Что будет быстрее update или insert?

    mayton2019
    @mayton2019
    Bigdata Engineer
    предполагается нагрузка на сервис где-то рпс 70-100к
    c
    Это не большая нагрузка. Oracle лет 20 назад заявлял 500K транзакций в секунду по результатам бенчмарков.

    Данную задачу также можно решать со стороны CQRS / Event Sourcing. Тоесть посто фиксировать события гео-позиции в журналы (они могут быть распределенные) а потом уже накатывать в БД. Здесь я предполагаю что вам не требуется реал-тайм. (За 10 секунд вашего технического лага человек все равно успеет убежать за горизонт) и накинтье еще от 1 секунды до допустим 30 секунд время на фиксацию в основной БД. И получается система вполне себе почти реального времени. И в то-же время вам будет лего выдержать всплески информации и ничего не потерять.
    Ответ написан
  • Как оптмизировать INSERT-SELECT SQL запрос?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Как всегда автор не указывает тип dbms. Ох-ох-ох..

    Запрос состоит из двух функционалов. Один - это собственно выборка - и другой это вставка.
    Скорее всего медленно работает выборка в части соединения двух таблиц.
    INSERT INTO tabel0 (row_1, row_2, row_3, row_4)
    SELECT oa.row_5,
           oa.row_6,
           oa.row_7,
           nw.row_8
    FROM table1 t1
           LEFT JOIN table2 t2 on t2.row_9 = t1.row_10
    WHERE t2.row_11 IS NOT NULL;

    Вот здесь где идет join по row_9 и row_10 надо построить индексы по этим полям.
    Потом прогнать analyze по обоим таблицам.

    И запустить еще раз.

    Вставка тоже может тормозить по разным условиям (триггеры, instead-of триггеры, сложные констрейнты
    или просто сложные типы данных наподобие xml/json которые требуют много I/O). Но для начала
    надо хотя-бы с выборкой разобраться.
    Ответ написан
    3 комментария
  • Как человеку пройти сложную капчу?

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

    Скорее всего у тебя просто особенность зрения или восприятия такая.

    Для меня эта капча тоже тяжело читается. Но предпослений символ - скорее всего цифра 8.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для выскоконагруженных интернет магазинов нет прямого доступа к категориям в БД.
    Они (категории) кешируются на стороне приложения и NGinx.

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

    И не надо быть перфекционистом и ковырять грязь из под ногтей. Просто потеряте кучу времени.
    Ответ написан
    Комментировать
  • Как устроена АСУ ТП?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я не понимаю. Почему автор не мог просто поискать в википедии? Если ему просто нужно определение!

    АСУ ТП изучают в технических ВУЗ ах. Это программа обучения на несколько лет. И не задача QNA заниматься
    процессом обучения. Пускай задаст конкретный вопрос из области автоматизации производства и люди ответят.
    Ответ написан
    Комментировать
  • Почему boolean использует больше памяти чем byte?

    mayton2019
    @mayton2019
    Bigdata Engineer
    С точки зрения ассемблера - удобнее делать операции над целым числом (DWORD) 32bit. Он - же int.
    В масштабах современной памяти - безразлично выделять 1 байт или 4 байта. Все равно
    другие структуры больше захватят тысячекратно. А простота компилируемого кода - здесь важнее.

    Вот поэтому компилляторы и собирают boolean в int. А язык С++ позволяет проводить аналогии
    между int и boolean. В зависимости от контекста число может быть как числом так и логической
    величиной. (Тесная связь с ассемблером да).

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

    В базах данных например (Oracle) вообще нет булевого типа с точки зрения хранения. Там предлагают
    символьный тип 'Y' или 'N'. Это связано с дисковыми структурами хранения данных в datarow.

    Поэтому sizeof(булевый тип) будет всегда парадоксом в разных системах программирования и языках.
    Как компиллятору удобнее так и соберет.
    Ответ написан
    Комментировать
  • Как расшифровать внешний диск?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я не понимаю твоей проблемы. Ты пишешь

    Был у меня диск на ноуте, полностью шифрован veraCrypt, Именно шифрованием диска. Вводил пароль при загрузке. Все хорошо но пришло время апгрейда и диск был поменян.


    Зачем тебе нужен старый диск если ты уже переехал на новое железо? У тебя уже новые MyDocuments. Отформатируй его к чорту. И зашифруй заново если хочешь.
    Ответ написан
  • Калькулятор C++ как убрать 1.33333e+06 подобные результаты вычисления?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Предположительно ты работаешь с типами данных float или double.
    Эти типы не имеют однозначного отображения в десятичную
    систему. Такова их природа.
    Ответ написан
    Комментировать
  • Можно ли идентифицировать человека по измененному голосу?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну если человек по жизни - шепелявый то какие питчи не накладывай то все равно будет шепелявый.
    А вообще задачу надо смотреть более широко. Не только голос но и согласные буквы. Слова-паразиты.
    Паузы. Кашель. Шмыгание носом. Просто грамотность речи. Все это маркеры которые просто
    приближают метрику к нужному человеку. Опять-же эти маркеры нужно было собирать заранее для всей выборки людей.

    Вообще во всех задачах распознавания нужно брать как можно более широкий вектор параметров.
    Ответ написан
    Комментировать
  • Как лучше сделать архитектуру сервиса с Cassandra?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Объем данных - терабайт в день. 90 МБ/с траффика в пике.
    Скорость ответа сервисов и мгновенная запись не важна, важно записать данные.


    Между первым и вторым сервисом можно поставить Kafka. Это позволит смягчить ситуацию частичной
    недоступности пишущего сервиса. Я здесь далее по топику предполагаю что Kafka и Cassandra - это облачные
    решения
    которые в приципе не падают. А если и падают то очень редко и по крайне жестким авариям датацентров.

    В этом случае в качестве точек сбоя можно просто рассматривать два ваших микросервиса.

    Еще вариант. Вообще убрать пишущий микро-сервис. Я не знаю как в кассандре. Но в bigdata есть огромное
    число т.н. коннекторов. Это что-то типа драйвера который позволяет писать стриминг в базы и наоборот.
    Например есть коннектор который пишет сразу из Kafka в таблицы Databricks. Скорее всего для кассандры
    тоже есть нечто подобное. Мне кажется с коннектором архитектурно получается проще.
    Ответ написан
    2 комментария
  • С чего начать практику администрирования без скучных книг?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Сколько тебе лет? Учишся? Работаешь?

    Протяни домашнюю сетку для игр. Сделай DNS/DHCP. Создай видео-архив чтоб все участники сети могли смотреть.
    Ответ написан
  • Как запустить Processing (Java) код при уже запущенной программе?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Есть несколько способов это сделать.

    Использовать встроенную в Java машину Nashorn которая по идее реализует JavaScript. Там такое можно сделать.

    Подключиться дебаггером к приложению запущенному в debug mode. Там по идее тоже можно выполнять какие-то команды на вычисление выражений и видеть результат.

    Но сама идея влезать в работающее приложение - не очень хорошая идея. С точки зрения безопасности и надежности. Возможно те вещи что ты хочешь могут быть закрыты через Logging или JMX или заранее протестировать все кейсы JUnit тестами в оффлайне. Сам факт того что ты хочешь чего-то в runtime говорит
    о нехватке тестового покрытия.

    Еще посмотри на jschell. Может пригодится.
    Ответ написан