Задать вопрос
  • Как создать объектную модель содержимого файла?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ты можешь работать на JavaScript/Node языках. С их точки зрения JSON (JavaScript Object Notation) это и есть
    объект и никаких других преобразований уже делать не надо.
    Ответ написан
  • Что стоит учить с или c++ или c#?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Добрый вечер! Столкнулся с такой проблемой: Мне очень нравятся семейство языков Си, у меня есть выбор учить C++ либо C#, хочу разрабатывать ПО для ПК. Подумал начать с C++ и говорят что сначала поучить чистый СИ, а после переходить на C++, так что же из этого правильно? Надо ли учить Си? Или может лучше начать с C#, а дальше уже выучу C++?

    Тема сравнения С/C++/C# в публичном пространстве - опасная тема. Она обычно заканчивается
    топиком в 1000 страниц и великой войной всех против всех. Я видел много таких войн.
    Они ничем не заканчиваются. Специалисты остаются при своих мнениях. А зритель просто развлекается.

    Сам по себе выбор языка ставят только новички. Професиионалу безразличен язык (почти). Его может больше интересует отрасль, стек технологий, стандарты и протоколы. С моей точки зрения сегодня
    таким стандартом может быть выбор облака (AWS, Azure, GCP).

    Чистый СИ учить смысла нет. Учи сразу С++. Но даже его создатель Бьорн Страуструп считает что С++ это
    сложный язык и он настаивает чтобы новички не брались учить все фичи сразу. Исключение по языку
    СИ может быть в том случае, если ты собрался быть инженером по разработке микро-контроллеров
    и у тебя скорее всего будет только СИ как основной (на 80-90%) инструмент взаимодействия с таким железом. Выйти на мидловый или синьорный уровень в С++ очень тяжело. Тяжелее чем в других языках.
    Поэтому будь готов терпеть. Вот когда виски станут седые - тогда и будешь господин-синьор.

    C# - это очень сильно корпоративный стандарт от Microsoft. Никакой связи с С++ он не имеет. Он конечно
    внешне похож но это сходство обманчиво. Да изучать его тоже можно. Он учится легко. Существуют книги
    вроде ".... C# за 14 дней". Разработка бизнес-приложений на шарпах идет гораздо быстрее чем на С++
    например. И завалить систему в синий экран в этом языке гораздо труднее. В нем реализованы методы
    защиты памяти и нельзя грязно трюкачить с указателями как это любят в С или С++. Производительность
    шарпов в численных методах будет слабее чем в С++ но обычно бизнес не ставит таких задач и чаще
    надо будет писать веб-хендлеры или хендлеры MQ-систем. Кач уровней синьорити идет быстрее в шарпах.
    Ответ написан
    2 комментария
  • Почему SVG с вложенным PNG внутри не отображается в Safari?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно png преобразвать в векторную картинку. И будет такая нативная интеграция. SVG внутри SVG.
    Ответ написан
  • Как сделать так чтобы бот понимал какой сегодня день недели?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Почитай про structural pattern matching в Python.

    И почитай про шаблон RCWP (Replace Condition With Polymorphism)
    Ответ написан
    Комментировать
  • Как построить векторное поле из массива случайных точек?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я плохо знаю вышку. Но я-бы смотрел на эту задачу с точки зрения инструментов инженерной графики.
    А инструменты там такие. Полигоны. Вокселы. И particles (частицы).

    Для вокселов проще всего наверное. У тебя есть напреженность поля как функция F(x,y,z). Вот и рисуй
    воксел когда напряженность выше уровня и не рисуй иначе. Будет такая картинка вроде Minecraft.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вопрос - просто замечательный. Если говорить простым языком - Хочу Все знать!

    Мне кажется что тебе лучше пойти от практики. Тоесть начать делать игру под Windows/Android
    на том языке который ты знаешь и уже потом пойти "от проблемы". Например, ты пишешь
    как оптимизировать. Оптимизиация графики или основных алгоритмов игры или оптимизация I/O
    это такие себе три разные задачи по каждой из которых можно книгу написать.

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

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

    Можешь делать запрос периодически (через 15 минут) и определять менялась таблица или нет по твоим
    известным тебе метрикам.

    Использовать здесь Python или Java или С++ - без разницы. Все они играют по правилам сетевого протокола БД.

    Возможно существуют технологии типа MQ/CDC которые нативно реализованы в конкретной БД , но это очень узкая, и специфичная тема, и ее точно не стоит рассматривать в тегах БАЗЫ ДАННЫХ.
    Ответ написан
    Комментировать
  • Как эффективно хранить и раздавать миллиарды мелких файлов?

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

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

    XFS - хорошая система. Я все магнитные блины в нее переформатировал но не было такого опыта с мелкими.
    У меня как раз очень большие файлы лежат. Датасеты.

    Еще я-бы предложил посмотреть на саму прикладную задачу с точки зрения коррелированного доступа.
    Например каждый пользователь читает свой index.htm, avatar.jpg, e.t.c. Имеет смысл этот сет файлов
    запаковать в очень быстрый архив. По сути в пакет даже без сжатия чтобы по заказу быстро отдавать
    эту пачку по сети (user_id.pack). А там уж браузер разберется. Пришлем лишнее - не страшно. Все равно пакет летит.
    Главное что теперь у нас нет россыпи мелких файлов а есть среднего размера упаковки на каждого
    пользователя по user_id.
    Ответ написан
  • Есть ли свободные нейросети улучшающие качество звука?

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    У папки нет хеш-сумм. По крайней мере пока мы не договорились о порядке обхода файлов.
    Дело в том что

    hash(file1, file) <> hash(file2, file1)

    поэтому порядок важен.

    Мы не можем доверять естественному порядку файлов. Потому что для NTFS - он (допустим) лексикографический.
    А для флешки (FAT32) файлы могут лежать в рандомном порядке и поэтому хеш такого фолдера может
    быть разным.
    Ответ написан
  • Как вызвать поток дважды поочерёдно?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Используй join() для последовательного выполнения потоков.
    Ответ написан
    Комментировать
  • Как сравнить структуры двух БД и создать скрипт миграции?

    mayton2019
    @mayton2019
    Bigdata Engineer
    быстро сравнить структуры БД и сделать скрипт, который приводит одну БД к структуре второй?

    В этой задаче - большое количество подводных камней. Например что делать если в двух БД есть одинаковые
    поля но имеющие разный тип (NUMERIC / VARCHAR). Дилемма... Что делать с исчезающими полями?
    Удалять? Дилемма...

    Я вообще не видел коробочных решение которые бы работали на "раз-два-три". Всегда есть нюансы.
    И есть conditions которые нужно вбить или вкрутить в эти решения.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вы можете материализовывать дашборд. Тоесть фактичекски делать его хард-копию.
    Он ведь не меняется? Верно? И отдавать статический html.

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

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Переключение функционала с одного на другой обеспечивается с помощью ООП шаблонов
    например RCWP (Replace Condition With Polymorphism).

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Чтобы консольное приложение не выводило логи можно сделать так
    > application.exe 2>&1 > NUL
    Ответ написан
    Комментировать
  • Файл подкачки на другом диске?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Непонятно, зачем тебе 2Тб под swap. Наверное цель - какая-то другая у тебя.
    Ответ написан
    Комментировать
  • Java. Преобразователь артефакта. Как очистить проект от module-info.class?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    На самом последнем stage (я думаю gradle это позволяет) тебе надо просто добавить еще один
    шаг - очистка артифакта от Java9 modules. Я-бы это сделал в простом случае просто распаковкой
    артифакта во временный фолдер. Удалением файлов модулей и упаковкой обратно.

    Что то вроде.
    jar x .... -d target/temp  
    find -type f -name module-info.class -delete
    jar c ....
    Ответ написан
    6 комментариев
  • Как компилировать jar в exe?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Есть проект GraalVM. В нет большая часть этих задач решена. И я для себя делал утилиты на java которые
    работают в data pipelines. Но проект GraalVM имеет спектр ограничений. Почитай. Возможно не любой
    код он сможет правильно собрать.

    Использовали мы также graal для сборки AWS Lambda. Но это был сложный опыт. Я никому не советую повторять.

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

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

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

    Ты пишешь.
    Запросы от каждого микросервиса к Auth service будут замедлять систему

    Ну тогда не спрашивай часто. Спрашивай редко. Или введи какое-то кеширование. Вот токены для этого
    дела и создавались. Обновить токен раз в сутки - это нагрузка никакая. Можно с этим жить.

    И вообще микросервисы тоже с нуля начисто никто не пишет. Это процесс итеративный. Опытным путем
    так сказать.
    Ответ написан
    Комментировать