Задать вопрос
  • Почему inline функция не компилилируется?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот так у меня получилось
    #include <stdint.h>
    
    static inline uint32_t
    some_inline_func(uint32_t num) {
    
    }
    Ответ написан
    Комментировать
  • Можно ли сделать отдельный вывод в Microsoft Visual Studio 2021?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Программист управляет двумя потоками вывода текста. STDOUT и STDERR через функции printf(...) или через расширенную версию с указанием файлового дескриптора вывода fprintf( stderr, ....).

    При запуске в консоли вы можете указывать что например вывод ошибок идет в err.log и стандартный вывод в std.log
    application.exe > std.log 2>err
    (в данном случае двойка - это номер дескриптора STDERR. Есть альтерантивный синтаксис когда для STDOUT
    мы указываем единичку "1>std.log" но ее просто опускают поэтому синтаксис так странно отличается)

    Как поступает с обоими потоками среда - я не помню. Скорее всего она их объединяет. Поэтому запускайте в консоли.

    Это вобщем-то архитектура любого процесса Unix и Windows.
    Ответ написан
    2 комментария
  • Как сделать трансляция игры с виртуальной машины?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Vnc вообще не предназначен для игр. Вообще сомнительно что vnc, radmin, терминал способны транслировать 120 fps.
    Ответ написан
    Комментировать
  • Можно ли оптимизировать запрос?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно использовать inline views (или еще называют common table expressions)

    with cp_view as (
     select cp.chat_id
     from chat_participants cp
     where cp.user_id = 1 and cp.is_deleted = false)
    .....
    Ответ написан
  • Как коммитить только одно сообщение в kafka-python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Проблема не очень понятна. Но вы можете сделать джобы полностью независимыми создав для каждого класса джобов свой топик.
    Ответ написан
  • Не редактируется БД через PHP. Что делать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Попробуй сделать
    autocommit(TRUE);
    Ответ написан
    Комментировать
  • Как правильно считать float из файла .txt Python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это невозможно. Не все десятичные числа представимы во float.

    Прошу прощения но я приведу пример на Java. Там есть нужный API для шагания по float вверх и вниз по оси.
    Возможно таковой есть в Python но это щас не важно. Важна суть.

    float f = 59131.999999999985f;
            double d = 59131.999999999985;
    
            System.out.printf("From float : %.12f\n", f);
            System.out.printf("From double : %.12f\n", d);
    
            System.out.printf("Next upper float from f = %.12f\n", Math.nextUp(f));
            System.out.printf("Next  down float from f = %.12f\n", Math.nextDown(f));

    в выводе видно что данное десятичное число не представимо во float. Ближайшее 32х разрядное сверху это 59132.003906250000 а ближайшее снизу это 59131.996093750000 и конвертер из текстового формата в float32 совершенно верно выбрал 59132.000000000000 так как оно наиболее близко аппроксимирует исходные данные.
    From float : 59132.000000000000
    From double : 59131.999999999985
    Next upper float from f = 59132.003906250000
    Next  down float from f = 59131.996093750000

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

    Деньги кодировать во float / double нельзя. Будут необъяснимые потери.
    Ответ написан
    Комментировать
  • Как изучать администрирование линукс самостоятельно?

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

    Изучать будет трудно. Линукс не прощает грубых ошибок. Если проводить аналогии то Windows - это электродрель где всё в резиновых ручках безопасно и красиво и удобно лежит в руке. С такой дрелью вам ничего не грозит. И можно сделать дырочки в стенах безопасно. А Линукс в этом сравнении - это строительный бур, которым вы можете снести стену, но и легко пробурить себе ногу. Тоесть когда вы начнёте эксперименты (особенно на привилегиях root) то думайте что по ту сторону нет вообще никаких защит. Удалить корень файловой системы одним жестом очень просто, как уже отметили выше.

    Но для домашнего варианта можно придумать нечто вроде : создать свою мини-сеть с DNS, файрволом, прокси, и медиасервером для фильмов. Вот с этого можно начинать. Можно поднять игровые серверы Майнкрафта, фермы майнинга или генерации радужных таблиц. По поводу Mint - всё в принципе хорошо. Вообще важен не дистрибутив а скорость трабл-шутинга. И надо не боятся работать с консолью. Не надейтесь что если вы подняли Smb через UI - то это достижение. Нужно поймать траблу. Зайти в консоль и ее пофиксить. Я гарантирую что через UI большинство траблов не фиксятся. В этом есть особая философия. Поэтому и устанавливайте и конфигурите софт через консоль.
    Ответ написан
    1 комментарий
  • Зачем надо закрывать курсор при работе с БД?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дело в том что курсор может потреблять ресурсы. Например вы захотели взять первые 10 строк из 10000000 выборки но предварительно отсортировали. Выбрали 10 строк и не сделали финализирующие протокольные действия в Python. База данных будет удерживать в памяти алгоритмы и структуры данных для снапшота результата этого запроса до тех пор пока не придет явный CLOSE с вашей стороны либо интеллекуальный драйвер который еще и обладает логикой уборки мусора сам не догадается что Statement уже вышел из scope вашего использования и может быть удалён GC.

    Я был свидетелем ситуации когда крупное ent-приложение Java/Oracle переполняло память из-за неверной обработки Exception и плодила много незакрытых курсоров в БД. Java от этого не сильно страдала (GC всё убирал) но страдал Oracle. Потому что уборка происходила слишком поздно. Пофиксилось тогда переписыванием с try на try-with-resources.

    Поэтому если вы неряшливо обращаетесь с курсорами (явными и неявными (обычный select к примеру может прождать неявный курсор)) то не ваше приложение а база данных почувствует себя плохо. Как быстро и какие ошибки вы будете получать - зависит от настроек вашей БД.
    Ответ написан
    Комментировать
  • Как определить, в какой ситуации оптимальнее использовать подзапросы, а не соединения?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут нечего думать. Смотрите что показывает explain plan и меряйте время отклика.

    SQL как язык - это чистая теория. То есть известен результат но неизвестно каким способом конкретная dbms его достигает. Операция explain будет зависеть от выбора dbms (Oracle, Postgres e.t.c) и будет по разному показывать реализацию алгоритма выборки для каждого select.

    Спрогнозировать как будет выглядеть план сложно. Даже разные версии Oracle к примеру могут показать разный план на одном тексте запроса.
    Ответ написан
    Комментировать
  • Сколько брать денег за код на тему распознавания лиц?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В подобного рода задачах сложно написать acceptance criteria. Ну например сколько процентов лиц у вас будут распознаны верно? 90% ? 99?

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

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Размышления по code-review. Мне совершенно непонятно почему в одном условии выбран switch а в другом if.

    switch (a) {
        case 'n': fl = (b == 'o'); break;
        case 'o': fl = (b == 'n'); break;
        }

    Они ведь совершенно одинаковые по смыслу! Кроме того case без default секции всегда рассматривается как потенциальный баг.
    Ответ написан
  • Как с помощью python вшить информацию в музыку?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если короткий ответ - то да. Если более длиный. Смотря в каком формате музыка. Для mp3 существует одни библиотеки, для Vorbis другие ну и для Apple - форматов тоже что-то своё.
    Ответ написан
    Комментировать
  • Как спроектировать инфраструктуру серверов для бюджетного учреждения?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мне кажется что надо еще учесть квалификацию того кто будет это обслуживать. Если чел к примеру знает Kubernetes - то можно расчитывать на какой-то более динамичный план размещения сервисов по нодам.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для SATA устройств есть карман. Можно по крайней мере кнопкой включать или выключать один или несколько внешних HDD. Под внешним я подразумеваю такой-же HDD только в корзинке.
    Ответ написан
    Комментировать
  • Планшеты с камерой на 200Мп?

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

    У меня до сих пор лежит Prestigio где камера - хуже некуда. Но я ей сделал всего пару снимков типа QR код и скан копии документов.
    Ответ написан
    Комментировать
  • Как построить архитектуру сервиса на базе Azure?

    mayton2019
    @mayton2019
    Bigdata Engineer
    По второму пункту.
    2. БД/хранилище.

    По хранилищу можно брать Azure Blob Storage. Оно выглядит как файловая система но имеет API несколько отличный от традиционного.

    По поводу БД - можно брать Azure CosmosDb который вроде как совместим с API SQL, Mongo, Cassandra.

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

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

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Ты можешь запустить процесс с опцией -verbose:class и в stdout будет видна загрузка классов ClassLoader. По namespace можно понять какие имплементации подгружаются в этот момент. Да Hibernate - это самая популярная реализация JPA. Вроде есть еще EcliplseLink но я с ним не работал.

    Вообще я не уверен что JPA и Hibernate имеют отношение "is a" / "has a". Современный Hibernate слишком сложен и я подозреваю что у него свои возможности уже давно перкрывают просто JPA. За деталями лучше идти на авторский сайт https://hibernate.org/
    Ответ написан
    Комментировать
  • Как организовать Wi-Fi сеть на уличном складе?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Лучше брать дипазон 2.4 Ghz. У него дальность действия - больше.
    Ответ написан
    Комментировать