Задать вопрос
  • Как создать тест для C++ в gradle?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не существует такой задачи как тесты С++ в gradle.

    Но gradle позволяет вызвать shell-команду куда ты можешь вставить вызов g++ компиллятора и потом вызов теста.
    Как здесь пишут https://docs.gradle.org/current/dsl/org.gradle.api...
    Что-то вроде
    commandLine 'g++ demo-Greeter.cpp -o demo-Greeter.exe'
    commandLine './demo-Greeter.exe'

    Это направление. Дальше разбирайся сам.
    Ответ написан
    1 комментарий
  • Максимально производительные GUI-библиотеки для плюсов (Windows)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Возникла проблема - требуется писать программы быстрыми, чем быстрее - тем лучше.


    Ты решаешь какую-то искусственную проблему. Стандартные компоненты пишет целая корпорация и анализируют тыщи тестировщиков. Сомнительно что ты сможешь написать нечто даже близко подходящее по возможностям.

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

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

    Яркий пример - создатели своих DBMS. Тыщи их. Но никто не в состоянии довести разработку даже до альфа-версии. А уж о том чтобы ее показать на презентации - вообще и речи нет.
    Ответ написан
    3 комментария
  • При решении каких задач может пригодится команда CROSS JOIN (SQL)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Везде где нужны комбинации объектов из двух коллекций. Пример из программирования - два вложенных цикла по коллекциям.
    Ответ написан
    1 комментарий
  • Как запустить задачу меньше чем за 1 мс?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Такие задачи обычно делают на языке Си и на микро-контроллерах или на хитрых операционках типа RTOS.

    C# с его уборкой мусора может внести в поток большие погрешности. Ну вобщем зависит сильно от задачи. Для игр должно хватать шарпов. Для чего-то серъезного скорее всего нет.
    Ответ написан
    2 комментария
  • Как называется база данных фактов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это может называться temporal database. Когда есть дата активации объекта. Нативную поддержку темпоральности имеют Oracle, MS-SQL. С помощью темпоральности удобно трекать юридическую информацию. Например владение чем-то. Или биржевые мета-данные.

    Еще вариант bi-temporal, это когда для объекта пишуться две даты. Та-же темпоральная и еще другая типа даты регистрации событий.
    Ответ написан
    Комментировать
  • Thymeleaf не видит атрибуты, что делать?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    А так?

    <p>${message}</p>
    Ответ написан
  • Как защитить SSD диск который я ношу с собой в кармане от магнитных бурь на солнце?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для особо важных архивов - создавай parity check file https://manpages.debian.org/testing/par2/par2creat...

    Если какой-то нейтрино повредит 1 битик то это тебя спасет.
    Ответ написан
  • Как поставляются игры на компьютеры?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Когда я играл в игры - они продавались на местных радио-рынках в CD-дисках.

    Сейчас в основном их ставят из онлайн сервисов типа Steam. Сомнительно чтобы хоть кто-то из них давал сорцы. Более того. Мой знакомый гейм-девелопер говорит что есть процесс очистки бинарника от всех отладночных и прочих данных. (Они Unreal Engine используют). Вобщем из кода выметается все что похоже на исходник. И из ресурсов (текстуры, звуки, 3d геометрия тоже выкидывают вообще все что помогает реверс-инжинерингу). И эти очищенные файлы упаковываются в ресурсный файл. Шифруются и поставляются как релиз игры.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Во первых хочу заметить что отладка и оптимизация это разные вещи. Отладка - debugging это когда мы step-by-step исполняем императивный код и наблюдаем состояние переменных. Режим отлалки был в PL/SQL но им пользоваться было настолько неудобно что никто из моих коллег никогда его не включал.

    Оптимизация производительности - это целая сложная тема. По ней написаны толстые книги. Для каждой БД своя. И вобщем Дмитрий верно сказал. Команда explain - это просто первый шаг к оптимизации. И дальше 100 дорог в 100 направлений. Сис-парамтеры. Индексы. Партишенинг. Хинты. И много много прочего.
    Ответ написан
    1 комментарий
  • Что такое data locality?

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

    Во фреймворке Spark это скрипт spark-submit. И он как раз это и делает. Передает jar файл с логикой (или python-файл) на узел-координатор.
    Ответ написан
    Комментировать
  • Какой вид графики лучше для самостоятельного рисования не художником?

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

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    В современных БД практически нет ограничения на длину строк varchar. А для блобов (BLOB) там специально созданы условия чтоб аттачить толстые файлы произвольного размера.

    Когда-то давно реляционные БД ограничивали длину строки varchar. Это было связано с блочной организацией дисковой памяти. Например в Oracle varchar2 был максимум 4000 байт. Потом где-то с 12 релиза его можно растянуть до 32к. Ну а для XML/JSON типов там создается специальное поле которое является просто подтипом BLOB но имеет в виду что лежит например JSON. Констрейнт короче.

    Есть специальные dbms такие как Mongo, CouchDb, Tarantool. Они специально создавались под JSON. Обратите на них внимание.
    Ответ написан
    Комментировать
  • Как нормализовать список чисел?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Эта неадекватная транзакция называется "выбросом".

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

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть коробочное решение. Работа только на удаленных десктопах. Clean room. Ограниченный десктоп. Там только одно приложение. Это собственно клиент к удалённому. На десктопах демонтированы все usb слоты.
    Ответ написан
    Комментировать
  • Можно ли в MinIO настроить удаленный узел?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Непонятно какая цель за этим стоит. Надежность такой системы будет слабее. Т.к. зависим уже от двух разных хостов.
    Ответ написан
    3 комментария
  • Как раздавать уникальные записи таблицы во многопоточном парсере?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для мультипоточных систем самый лучший дизайн concurrency - это уменьшение concurrency. Есть разные способы уменьшения этого. Простое правило - это хеширование. Вычисляем хеш от урла. И берем остаток от деления на количество workers. Число в результате - сообщит нам номер воркера который будет эти линки обрабатывать. Другие воркеры будут чужие линки игнорировать.
    Ответ написан
  • Можно при создании таблицы указать имя столбца в двойных кавычках?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Postgres по умолчанию - регистро-нечувствительный. И Oracle тоже.

    Тоесть можно сделать так.
    dh=> create table tab(id int);
    CREATE TABLE
    dh=> select * from tab;
     id 
    ----
    (0 rows)
    
    dh=> select * from TAB;
     id 
    ----
    (0 rows)

    Работать легко. Case-Insensitive. Как в языке Паскаль. И высоту регистра делать чисто для красоты. Например выделять ключевые слова SQL или сами идентификаторы.

    Но если по бизнес-задаче окажется что есть идентификатор для которого регистр ИМЕЕТ значение то мы его отковычиваем. Выглядит как при программировании на C++/Java. Вот в данном случае индекс FTS у нас записан аж тремя способами и все это разные колонки.

    dh=> create table "Market"("SnP" text, "FTS" text, "Fts" text, "fts" text);
    CREATE TABLE
    dh=> select * from "Market";
     SnP | FTS | Fts | fts 
    -----+-----+-----+-----
    (0 rows)


    Но работать в консоли становится неудобно. Больше надо клавиш нажимать.

    Поэтому решать вам.
    Ответ написан
    Комментировать
  • Опишите, как устроен процесс контрибьютинга?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Самое главное - разбираться в проекте. Читать его баг-трекер и понимать потребности и над чем работает сообщество. Я как-то пытался стать контрибутором apache ignite но не вышло. Времени не хватало. А потребности были со стороны нашего проекта.

    Вобщем читаете баг-трекер. Берете проблему и разбираетесь. Поскольку речь идет о больших проектах то пройдут месяцы и годы прежде чем вы сможете делать фичи.

    Техническая сторона не особо важна. Главное что у вас есть ценный merge-request который нечто исправляет и это НЕЧТО очень нужно в мире.
    Ответ написан
    Комментировать