Задать вопрос
  • Можно ли перевести Sketch and Toon анимацию из C4D в SVG (canvas) анимацию?

    black1277
    @black1277
    Вольный стрелок
    Специально, такого плагина не встречал но есть 2 возможности:
    1 Сначала, экспортировать сцену из Cinema 4D в After Effects: используй Cineware или экспорт в формате .aec (After Effects Composition). Затем в After Effects — использовать плагин Bodymovin. С его помощью ты можешь экспортировать:
    • JSON-файл для Lottie (но он может быть преобразован в SVG-анимацию).
    • Или использовать Lottie + SVG renderer в браузере (например, на сайте или в мобильном приложении).

    И вторая возможность использовать библиотеку threejs. Нужно будет использовать loader для загрузки в сцену файла формата c4d и затем SVGRenderer для вывода анимации в SVG. Пример того что получится можно увидеть здесь
    Ответ написан
    2 комментария
  • Как создать task в __init__ asyncio?

    Vindicar
    @Vindicar
    RTFM!
    Тебе довольно прямо сказано: "AttributeError: loop attribute cannot be accessed in non-async contexts."
    Иными словами, атрибут Bot.loop (ссылку на рабочий цикл asyncio) можно читать, только если ты находишься внутри async def функции, прямо или косвенно.
    Причина простая - asyncio.run() или эквивалентная функция как раз создаёт и запускает рабочий цикл asyncio (обычно называемый event loop или просто loop). Если рабочий цикл ещё не создан, то что должен вернуть атрибут Bot.loop? На этот вопрос просто нет правильного ответа. Поэтому доступ к атрибуту блокируется.

    И насчёт решения тоже подсказано: "Consider using either an asynchronous main function and passing it to asyncio.run or using asynchronous initialisation hooks such as Client.setup_hook". Иными словами, тебе нужно сделать так, чтобы твой код, обращающийся к Bot.loop, выполнялся в асинхронной (async def) функции. Это можно сделать двумя способами.

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

    Второй: завернуть вызов всего твоего конструктора в асинхронный метод. Упрощённо, вместо
    import discord
    from discord.ext import commands
    
    intents = discord.Intents.default()
    intents.members = True
    intents.message_content = True
    
    bot = commands.Bot(command_prefix='!', intents=intents)
    # ...
    bot.run('token')

    можешь попробовать что-то вроде
    import discord
    from discord.ext import commands
    
    
    async def main():
        # асинхронная функция может быть выполнена ТОЛЬКО внутри рабочего цикла
        # значит, рабочий цикл уже точно существует и выполняется
        intents = discord.Intents.default()
        intents.members = True
        intents.message_content = True
        # конструктор сам по себе не асинхронный, но он выполняется в асинхронном контексте
        bot = commands.Bot(command_prefix='!', intents=intents)  
        # ...
        # мы уже в асинхронной функции, поэтому используем await start() вместо run()
        await bot.start('token')  # main() не завершит работу, пока бот не завершит работу
    
    
    if __name__ == '__main__':
        asyncio.run(main())  # создаём рабочий цикл. он будет работать, пока main() не завершит работу


    Но я соглашусь с Everything_is_bad - сначала разберись, как работает asyncio. Строить сложные конструкции с несколькими долгоживущими корутинами методом проб и ошибок - это слишком муторно.

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

    @Everything_is_bad
    Разделить разработку и эксплуатацию. Разработка в отдельном окружение с VSCode, эксплуатация в отдельном окружении без VSCode.
    Ответ написан
    Комментировать
  • Что внести в исключения антивируса, чтобы не тупил Фотошоп при запуске?

    veselov4nton
    @veselov4nton
    Системный администратор.
    Да, ты правильно думаешь — Dr.Web скорее всего цепляется за фоновые обращения Photoshop к кэшу недавних файлов, сетевым библиотекам и телеметрии. Вот список, что ещё стоит точно добавить в исключения, кроме того что ты уже внёс:

    Кэши и временные файлы Photoshop
    C:\Users\%USERNAME%\AppData\Local\Adobe\Adobe Photoshop *
    C:\Users\%USERNAME%\AppData\Local\Temp\Adobe*

    Adobe Core Libraries (Adobe Desktop Service и др.)
    C:\Program Files (x86)\Common Files\Adobe\
    C:\Program Files\Common Files\Adobe\

    Обращения к Adobe CC / Cloud / UXP (даже если ты не используешь)
    C:\Users\%USERNAME%\AppData\Local\Adobe\UXP\
    C:\Users\%USERNAME%\AppData\Roaming\Adobe\Creative Cloud Libraries\

    Фоновые сервисы Adobe (в том числе если есть Creative Cloud)
    C:\Program Files\Adobe\
    C:\Program Files\Adobe\Adobe Creative Cloud\
    C:\Program Files\Adobe\Adobe Sync\

    Дополнительно — если есть плагины, LUT'ы, brushes и т.п.
    Если юзаешь сторонние пресеты, и они лежат в:

    C:\Users\%USERNAME%\Documents\Adobe\
    Ответ написан
    1 комментарий
  • Какими инструментами сделан этот видео гайд?

    black1277
    @black1277
    Вольный стрелок
    Сделано в Blender, вот оригинальное видео Скорее всего используется программа захвата видео окна программы и какой-то плагин (возможно самописный), регулирующий в какие моменты производить запись.
    Еще как вариант, возможно была сделана полная запись со всеми движениями мыши и вызовом инструментов, а потом видео прогнали через нейросеть, которая оставила только кадры с визуальными изменениями и подогнала все нестыковки.
    Ответ написан
    2 комментария
  • Как настроить отдачу метрик с nginx?

    rqdkmndh
    @rqdkmndh
    Web-разработчик
    Такой вариант в nginx.conf:
    server {
            listen       80;
            server_name  localhost;
    
            location / {
                root   /var/www/html;
                index  index.php;
            }
    
            location /metrics {
                stub_status;
                allow 127.0.0.1;
                deny all;
            }
    
            location ~ \.php$ {
                root           /var/www/html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
                include        fastcgi_params;
            }
        }

    Описание метрик Nginx /metrics:
    Active connections — текущее количество активных соединений.
    accepts — общее количество соединений, принятых сервером.
    handled — количество соединений, обработанных сервером (совпадает с accepts, если нет ошибок).
    requests — общее количество обработанных запросов.
    Reading — количество соединений, которые Nginx читает от клиента.
    Writing — количество соединений, в которые Nginx пишет ответ клиенту.
    Waiting — количество keep-alive соединений, которые открыты и ожидают нового запроса.

    stub_status — это директива, которая включает модуль ngx_http_stub_status_module. Этот модуль выводит минимальную статистику о текущем состоянии Nginx
    Ответ написан
    Комментировать
  • Какая есть библиотека React для таких скролл табов?

    black1277
    @black1277
    Вольный стрелок
    Ответ написан
    Комментировать
  • Как в notepadd++ убрать первый символ?

    black1277
    @black1277
    Вольный стрелок
    Жмешь сочетание cntrl+H, в режим поиска выбираешь 'Регулярное выражение', в поле 'найти' вводишь ^:
    в поле 'заменить' оставляешь пустым и жмешь на кнопку 'Заменить все'
    Ответ написан
    1 комментарий
  • Выполнить преобразование структуры данных из массива объектов в объект где значениями ключей будут массивы?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    const result = data.reduce(
      (acc, cur) => ((acc[cur.country] ??= []).push(cur.city), acc),
      {},
    );
    Ответ написан
    1 комментарий
  • Как в express-validator отменить проверку поля?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    А документация что говорит? Например эта страница: https://express-validator.github.io/docs/guides/cu...

    Плюс есть оператор if: https://express-validator.github.io/docs/api/valid...
    Ответ написан
    1 комментарий
  • Почему Jest не может распарсить CSS модуля?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    https://jestjs.io/docs/webpack#handling-static-assets

    В обычной сборке у Вас scss файлы собираются бандлером вроде webpack.
    А в jest никакого бандлера нет.
    Ответ написан
    Комментировать
  • Как создать матрицу?

    black1277
    @black1277
    Вольный стрелок
    # Создаем вертикальный вектор с шагом 5
    col_vector = np.arange(0, 100, 5).reshape(-1, 1)
    
    # Повторяем этот вектор горизонтально 20 раз
    mat_A = np.tile(col_vector, (1, 20))

    .reshape(-1, 1): Преобразует массив в вертикальный вектор (20, 1)
    Ответ написан
    6 комментариев
  • TypeError: Object of type datetime is not JSON serializable?

    @Everything_is_bad
    открываем гугл, пишем заголовок вопроса, дописываем fastapi, в итоге получаем https://fastapi.tiangolo.com/tutorial/encoder/
    Ответ написан
    1 комментарий
  • Как автоматически удалять старые процессы chrome?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    driver.quit()

    Используйте как минимум 1 глобальное исключение, и в случае ошибки, выполняйте driver.quit(), т.к. в ином случае, скрипт крашнется, а сессия браузера останется.
    Ответ написан
    9 комментариев
  • Как отловить событие нажатия - комбинация клавиш?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Распечатайте событие keydown в консоли. Вы там увидите помимо кода клавиши ещё поля shiftKey, ctrlKey имеющие булево значение, которые отображают, нажата ли соответствующая клавиша.
    Ответ написан
    Комментировать
  • Почему не работают onTransitionRun и onTransitionStart в реакте?

    rqdkmndh
    @rqdkmndh
    Web-разработчик
    Не работает потому что таких событий там нет. А есть такие:
    <div
      onAnimationStart={e => console.log('onAnimationStart')}
      onAnimationIteration={e => console.log('onAnimationIteration')}
      onAnimationEnd={e => console.log('onAnimationEnd')}
    />

    вот ссылочка на документацию
    Ответ написан
    Комментировать
  • Почему форма обратной связи php отправляет часть кода?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Тело хтмл письма, как и любой подвид иксмл, должно начинаться с оперделяющих тегов, у вас же тупо табличка отправляется.
    2) Заниматься мастурбациейфигней с отправкой через mail() в 21 веке как минимум стыдно, как максимум чревато проблемами при отладке и смене функциональности, не говоря уже о том что отправка хтмл контента и приложений становится задачей со звездочкой.
    3) Все легко решается переходом на нормальную библиотеку отправки почты, пхпмэйлер/свифтмэйлер и их многочисленные аналоги.
    Ответ написан
    3 комментария
  • Как запаролить сайт?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Пароль найдите самостоятельно (хранение пароля на клиенте не самая безопасная идея):
    Ответ написан
    4 комментария
  • Почему pause в cmd скрипте не предотвращает закрытие окна?

    @res2001
    Developer, ex-admin
    goto :eof - приводит к завершению скрипта в этом месте. Это равносильно exit.

    Пример кода приведен ниже в коментариях: Почему pause в cmd скрипте не предотвращает закрытие окна?
    Ответ написан
    9 комментариев
  • Почему pause в cmd скрипте не предотвращает закрытие окна?

    black1277
    @black1277
    Вольный стрелок
    Вот так будет работать как функция
    @echo off
    
    set "path_bin_1=d:\TEMP\test.exe"
    call :testname
    
    echo "%path_bin_1%"
    echo "%filename%"
    
    pause
    
    exit
    REM тело функции располагаем в конце после оператора exit чтобы предотвратить выполнение в потоке.
    
    :testname
    echo "%path_bin_1%"
    for /F "delims=" %%a in ("%path_bin_1%") do (
        set file=%%~fa
        set filepath=%%~dpa
        set filename=%%~nxa
    )
    exit /B

    exit /B возвращает управление сразу после того места где был вызов процедуры
    goto теперь не нужен - убрали тело функции за оператор exit
    После pause можно писать другой код и опять вызывать call :testname
    Ответ написан
    4 комментария