• С чего начать изучать разработку приложений под Linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Нужно определиться зачем вы планируете изучить детально систему - вы собираетесь заняться системным программированием?
    ИЛи прикладным? Если прикладным, то для GUI приложений просто осваиваете любой фреймворк, типа qt, который работает в Линукс и пишете.
    Библиотеки для С++ есть и там и там.
    Ответ написан
    2 комментария
  • Системы для анализа эмоций в видео и автоматической генерации текстовых реакций. Существует ли такое?

    fenrir1121
    @fenrir1121
    Начни с документации
    Существует ли такое?
    Не существует.

    Эмоциональный контекст это что вообще? Есть определение и алгоритм его нахождения? Одно и то же видео может интерпретироваться в зависимости от возраста, воспитания, вероисповедания, интеллекта и десятка других факторов совершенно по-разному. Вероятно видео, которое трехлетнего ребенка приведет в восторг меня будет вгонять в тоску.

    выдавать предварительно рандомные текстовые реакции типа "это круто", "мне грустно", "да", "давайте поможем", в зависимости от контекста видео
    Это такое натягивание совы на глобус, что подозреваю, что с тем же успехом можно давать совершенно случайные реакции к любому видео.

    Дополнительно хотелось бы иметь функцию, которая может отслеживать персонажей в видео и записывать информацию о них в файл для дальнейшего анализа
    Это пожалуйста. Берете opencv и вперед.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Набираете десятки тысяч фото, проставляете им теги настроение, скармливаете нейросети для обучения. В результате получите нейросеть, которая примерно пытается понимать реакцию по фото.
    Потом анализируете несколько фото из видео, получаете прогноз сети.
    Займет это n-цать лет, n-цать $

    А готовых, еще и для бесплатного использования - вряд ли будет в таком виде, как вы хотите.
    Можете погуглить что-то вроде https://imentiv.ai/pricing/
    Ответ написан
    Комментировать
  • Как поменять часовой пояс в MYSQL Docker-контейнере?

    vhood
    @vhood
    Не забывайте отмечать решения
    mysql:
      environment:
        MYSQL_DATABASE: marzban
    +   TZ: Europe/Moscow
    Ответ написан
    4 комментария
  • Существует ли программа для сжатия нескольких фотографий, прямо из папки?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Это называется "Пакетная обработка". Она много где есть.
    Ответ написан
    Комментировать
  • Как избежать падения nginx при отсутствии backend, proxy_pass контейнера?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Сделать в композе связку healthcheck и depends_on, чтобы nginx поднимался только после того, как проба бэкенда пройдёт успешно.
    Ответ написан
    2 комментария
  • Как лучше сделать обновление данных строго по времени?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Задача состоит в том что нужно в начале каждого часа обновлять данные на сайте.
    Не понятно, данные на сайте, или у клиента данные с сайта?
    Если первое - зачем тут вообще сокет и при чем тут вообще клиент?
    Если второе - крон + скрипт рассылки в открытые сокеты
    Ответ написан
    Комментировать
  • Что в теории накладывает меньший штраф на производительность? systemd-nspawn или lxc?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Довольно бессмысленно, имхо, сравнивать производительность сортов cgroups, когда всё равно примерно в 100% случаев всё упирается в диск или сеть (иногда ещё в кривую настройку СУБД).
    Ответ написан
    Комментировать
  • Ошибка при проверке на подписку на канал при создании бота на языке программирования Python?

    @Everything_is_bad
    тебе явно указали проблему в сообщении об ошибке, дебаж и смотри что именно ты передаешь в chat_id
    ну и код форматируй тегом code
    Ответ написан
    Комментировать
  • Почему svg теряет качество при масштабировании?

    @Everything_is_bad
    ну так глянь исходники, у тебя внутри не вектор, а растр в png формате
    Ответ написан
    6 комментариев
  • Как хранить большие объёмы текста?

    @o5a
    База данных выглядит подходящим вариантом. Сможете хранить полностью свои тексты и обращаться к ним в любом нужном порядке. Даже простой встроенный в python sqlite подойдет, если не планируется совместный доступ к данным.

    В json тоже можно, но менее эффективно, т.к. каждый раз его придется полностью считывать, да и хранить большие объемы текста не совсем его предназначение.
    Ответ написан
  • Что будет с моим кодом если я удалю, и скачаю заново питон 3.9.5?

    vabka
    @vabka
    Токсичный шарпист
    Главное свой код по пути не удаляй
    Ответ написан
    Комментировать
  • Какое облачное хранилище выбрать для "вечного" хранения?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Бесплатного такого нет.
    Можно посмотреть самый дешевый холодный бэкап, типа 0,01 $ за гигабайт‑месяц
    Полтора бакса в год будет на ваших 13 гб.

    Бесплатно можно попробовать сделать пару аккаунтов с гуглдрайвом, и сделать несколько бэкапов.
    Но "залить и забыть нельзя". Меняются политики компании, меняются условия. Предсказать что будет через 5-10 лет нельзя.
    Ответ написан
    2 комментария
  • Насколько реально нужен консул девопсу?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Никто не заставляет использовать docker, systemd, ansible и вообще какие угодно системы оркестрации и оптимизации. Необязательно делать шаблоны конфигов или кластерные конфигурации сервисов, необязательно использовать библиотеки настраиваемого логгирования, возиться с балансерами и реприцируемыми базами. Но люди это делают, значит, смысл всё-таки есть?

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

    Консул - это тоже инструмент. Вряд ли хоть кто-то использует его возможности целиком и полностью, тем более что никто не заставляет. Кому-то достаточно того, что у него все сервисы зарегистрированы в одном месте и из коробки имеют автоматическое DNS-имя вида NAME.service.consul. Кто-то использует kv-хранилище для хранения параметров, а кто-то хранит в нём секреты и целые конфиги, настраивает токены с различными acl и скрещивает всё это с consul-template. Вообще, необязательно использовать именно консул, есть и другие инструменты для подобных задач. Например, zk/etcd.

    Консул чаще используют совсем не с ансиблом, а с инструментами оркестрации, в которых сервисы могут расширяться и сворачиваться, перезагружаться и мигрировать. Скажем, пусть у нас есть условный сервис rabbitmq на три ноды. Тогда у нас может быть три контейнера rabbitm{1..3}, при запуске они регистрируются в консуле скриптом запуска вместе с проверками, а далее consul отдаёт их все три в виде имени rabbitmq.service.consul. Если какой-то из них вдруг упадёт, consul оперативно это обнаружит и исключит из DNS проблемный узел. Если вдруг управляющий всем этим администратор или автоматическая система оркестрации посчитает нужным добавить новые узлы или перенести их куда-то ещё в кластере, то consul также отразит все нужные изменения. При этом использующее rabbitmq приложение должно будет знать только адрес rabbitmq.

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

    @antares4045
    Коннект надо поднять ОДИН раз в главном потоке а курсоров из него уже можете понаделать на все потоки (вроде). Если не поможет: то только открывать-закрывать подключение для каждой операции, например так: https://qna.habr.com/q/1062578#answer_2040432.

    Но как и в том ответе, отдельно подчеркну, что лучше всеравно поднять отдельный сервер нормальной бд и работать с ним в нормальном многопоточном режиме. Это довольно нишевая уловка (примерно так хранят историю браузеры).

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

    В абсолютно любой файловой системе многопоточный доступ к одному файлу не существует. совсем. программа может считать файл (или его часть) в оперативную память, а потом заменить файл на что-то вычисленное на основе считанного (есть ещё возможность делать "аппенд", но это синтаксический сахар реализованный на уровне ос (возможно я не прав: знатоки поправьте меня)).

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

    Sqlite это просто файл у вас на диске, и еcли бы не та защита которая вам не даёт создать многопоточную программу, то вам бы казалось, что она вообще не работает: каждый поток видит в базе только то, что сделал в базе он сам, а после перезапуска вы вообще видите в лучшем случае версию базы от потока, закрывшего соединение последним (а то и вообще битый файл).
    Для того, чтобы всякие профессионалы не писали, что "этим вашим sqlite не возможно пользоваться", была встроена защита (куда более адекватный аналог которой есть на всех файлах microsoft office) если хоть кто-то сейчас работает с файлом, то его открывать нельзя и, если не оговорено обратное, падает с ошибкой.

    Проблеме столько же лет, сколько люди пытаются одновременно менять что-то в одном предмете. К сожалению, этот случай, когда приходящий сходу в голову достаточно затратный подход единственно работоспособен в общем случае (в конкретно вашем случае может можно придумать какое-то более простое правило, но изложенное дальше будет работать всегда и везде): первый агент берёт эталон, и оставляет записку "я работаю, ждите", вносит свои изменения и не оставляет эталон у себя, за время его работы у записки уже собралась уже недовольная очередь, которой тоже работать надо -- когда эталон освобождается, первый в очереди забирает его себе оставив уже свою записку. и так далее.

    Правила организации этих очередей целая наука от которой сойти с ума можно, но в случае sqlite настраиваемый параметр у нас ровно один: сколько мы готовы ждать.

    По коду:
    никаких созданий коннектов и курсоров ни глобально ни в потоке: у нас игра в гоячую кортошку -- все пытаются держать базу минимальное время.
    Вместо этого каждый раз, когда вы хотите сделать что-то с базой вместо

    cursor.execute(clause, props)
    result = cursor.fetchall()

    или что там у вас было пишем

    with sqlite3.connect(`Ваши параметры подключения`, timeout=`Какое-то зверски большое число секунд, которое мы готовы "стоять в очереди"`) as connect: 
      # создаём подключение к базе которое существует только в рамках блока with 
      # то что мы здесь напишем должно отработать максимально быстро
      cursor = connect.cursor()
      cursor.execute(clause, props)
      result = cursor.fetchall()

    В идеале вообще вынесите это в отдельную функцию

    p.s. если вы зашли сюда в поисках истины, то мы продолжили общение тут и в итоге победили.
    Ответ написан
    9 комментариев
  • Как выполнять запросы в БД одновременно?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    какие локальные (которые в одном файле) базы данных это поддерживают?

    1. Можно использовать sqlite3, но нужно будет настроить очереди на взаимодействие с бд, либо использовать sqlalchemy, который имеет поддержку пула соединений.
    2. Другие файловые бд не вижу смысла использовать, т.к. скорее всего настройка таких не популярных бд будет сложнее, чем п1.

    Как использовать sqlite python в многопоточности?
    Ответ написан
    2 комментария
  • Можно ли открыть доступ к папке через интернет?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Сервер - это программа, которая что-то раздает.
    Поэтому "Можно ли это сделать без apache и прочего?" - нет, нельзя. Чтобы раздавать, нужно чтобы это кто-то раздавал.
    А так - выбирай какой протокол интересует и выбирай удобный для тебя сервер который с этим протоколом работает.
    Ответ написан
    8 комментариев
  • Можно ли открыть доступ к папке через интернет?

    DevMan
    @DevMan
    a в чем вопрос собственно?
    можно через web-сервер, можно ftp, можно webdav, можно через специализированный софт.
    вариантов до усрачки в самом деле.
    Ответ написан
    Комментировать
  • Как запустить код на golang в vscode?

    @rtmprh Автор вопроса
    Очень сильно извиняюсь я затупок который забыл сохранить main файл)) все же оставлю тему вдруг найдутся такие же гении как я))
    Ответ написан
    2 комментария