Задать вопрос
  • Почему то выключается пк в двух канале?

    @rPman
    Двухканальный режим очень капризный, он требует что бы планки памяти были подобраны друг к другу, даже одинаковые модели но из разных партий (если производитель по другому организовал банки памяти на плате) не заведутся. Именно поэтому оперативная память для двухканального режима продается парами или по четыре.

    Еще, материнская плата - китайский нонейм, на 2011 сокете, скорее всего создаваемые что бы утилизировать огромный объем серверных процессоров xeon (я думаю разбирают старый суперкомпьютер), которые уже многие годы доступны для населения. Материнки эти обычно выглядят очень кастрированными, очень глючными, и привлекательные только низкой ценой, постоянно вижу обсуждения проблем с ними, обычно не решаемых, потому что поддержки нет.
    Ответ написан
    Комментировать
  • Какую базу данных нужно использовать для телеграмм бота?

    Видимо вы при выборке товаров в корзине не проверяете, к какому пользователю оно относится, либо вы вообще не предусмотрели колонку для этого.

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

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Использовать можно любую БД. То, что у вас проблема с корзиной товаров разных пользователей - это ошибка в логике вашего кода. Берёте бумажку, ручку и рисуете нужный алгоритм работы, прорабатываете его, делаете декомпозицию до самых простых элементов и исправляете в вашем приложении.
    Ответ написан
    1 комментарий
  • Какую базу данных нужно использовать для телеграмм бота?

    @jester-wizard
    С базой данных, как конкретным программным обеспечением, это не связано. Использовать можно любую реляционную базу. Проблема с кодом и, возможно, с тем как именно вы спроектировали вашу базу.
    Ответ написан
    4 комментария
  • Почему не отображаются файлы в теге img, html, находящиеся вне папки static?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    пути к файлам пишут от корня сайта, а не от папки темплейта, соответственно если документ рут у вас в app_dir, то путь должен быть src="/static/img.png" и src="/templates/img.png"
    Ответ написан
    3 комментария
  • Как Роскомнадзор добился того что на сайте youtube надпись "Нет подключения к Интернету"?

    xez
    @xez
    TL Junior Roo
    Сайт сам загружается, а API, к которому он обращается чтобы видео получить - нет.
    Нажмите F12 и посмотрите вкладку Network
    Ответ написан
    Комментировать
  • Как создать 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 комментария
  • Как написать свой фреймворк?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Точно так же как и любое другое ПО:
    1. Формулируете вашу задачу в виде какого-то текстового/графического описания
    2. Формулируете ТЗ с конкретными требованиями, ограничениями и всем прочим
    3. На основе ТЗ разрабатываете ЧТЗ (Частное ТЗ) со всеми полными деталями, описаниями всех действий, событий, взаимодействий и прочее
    4. Используя ЧТЗ подготавливаете проект - архитектура, инструменты, системы, подсистемы и прочее с полным описанием, декомпозированными элементами вниз до самых простых и прочее
    5. Берёте проект и по шагам его реализовываете
    6. Profit

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Фреймворк - это - работа в рамках. Тоесть ты должен навязать разработчику
    какую-то рамочную модель разработки. Это не всегда возможно. Разраб этого
    обычно не любит. Поэтому за созданием фреймворка обычно стоит более глубокая
    идея чем просто Фреймкорк
    Васи Пупкина.

    Например - многие фреймворки давят на шаблон Inversion of Control.
    Обычно это доверие главного control flow фреймворку. А программист
    уже вставляет свою логику в какие-то ключевые точки. Яркий пример
    - сервлеты. Фреймвор обеспечивает веб, балансировку, роутинг путей
    и поддержку сессий. А программист просто делает сервлет который обрабатывает
    request.


    Я тебе советую пойти к преподавателю и выстрясти идею из него. Потому что
    ты вряд-ли сможешь нечто подобное и ценное придумать .
    Ответ написан
  • Какой наилучший способ продлить жизнь Foreground Service в MAUI?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Увы, но андроид все больше скатывается в платформу для игрушек. Борьба за жизнь батарейки
    делает использование служб все более сложным.
    https://developer.android.com/develop/background-w...
    Сейчас это пермишен и декларация целей использования.
    Часть целей автоматом подтверждает робот (ИИ) смотрит, что у тебя еще например пермишины для работы с блютуз устройством и что программа действительно с ними работает (по описанию и наличию вызовов нужных методов).
    А вот прочие цели придется дополнительно декларировать в кабинете разработчика.

    В 13-м поменяли как служба может показать нотифи в шторке. Их теперь прячут от пользователей по умолчанию.

    До сих пор остается актуальным способ "Please don't kill me". Отправлять пользователя в раздел настроек системы для включения приложения в исключения энергосбережения.

    Единственное исключение "кто еще может более менее нормально работать в фоне" это медиапроигрователи, которые дублируют в нотифи кнопки управления.

    В общем, я плюнул и свою службу печати теперь стал просто биндить из активити (тема диалог с запретом гасить экран)
    Ответ написан
    3 комментария
  • Как добавить в дату, записанную в строке, нули перед месяцем и днём?

    shabelski89
    @shabelski89
    engineer
    Выше ответы работы со строками, а между строк "код, который при необходимости добавит нули к месяцу и дню" означает привести к ISO-8601
    from datetime import datetime
    
    dt_str = '2025-2-1'
    
    dt = datetime.strptime(dt_str, '%Y-%m-%d')
    iso_date = dt.strftime('%Y-%m-%d')
    
    print(iso_date)
    '2025-02-01'
    Ответ написан
    1 комментарий
  • Как добавить в дату, записанную в строке, нули перед месяцем и днём?

    без циклом мапов и лямбд

    a = '2021-1-2'
    '{}-{:>02}-{:>02}'.format(*a.split('-'))
    '2021-01-02'
    Ответ написан
    1 комментарий
  • Как реализовать подтверждение записи или чтения в папке?

    @AlexVWill
    Для этого не надо Python, в bash можно все сделать...
    #!/bin/bash
    inotifywait -m /home/user/Desktop/ -e create -e moved_to |
    	while read dir action file;
        	    do echo "The file '$file' appeared in directory '$dir' via '$action'";
          	    sleep 3;
                # do some code
    	done
    Ответ написан
    Комментировать
  • Почему после переноса физического ПК в виртуальный (на гипервизор) перестали работать некоторые сайты?

    @rPman
    Сайты могут детектировать виртуальную машину через gpu, а точнее ее отсутствие. Так же в виртуальных машинах может не работать DRM (защита видео контента от кражи), что тоже сигнал.
    Ответ написан
    Комментировать
  • Почему после переноса физического ПК в виртуальный (на гипервизор) перестали работать некоторые сайты?

    Куки в браузере почистьте, чистый/приватный профиль попробуйте...

    https://www.linux.org.ru/forum/talks/17453017/page1
    Ответ написан
    Комментировать
  • Сохраняется ли гарантия на технику при внесении изменений в ПО?

    @rPman
    пока вы не трогаете прошивку, к вам нет никаких претензий, т.е. сброс до заводских настроек все вернет назад.
    Но вот если вы меняете прошивку, делаете рут и т.п. вот тогда у сервис центра есть право отказать в ремонте.

    Но я помню случай, когда сервис бесплатно заменил прошивку на стоковую. Вполне допускаю это лично решение конкретного специалиста в сервисцентре, а не прописанное правило.

    p.s. обычно софт не может сломать оборудование а значит повлиять на бесплатное сервисное обслуживание, но бывают случаи, особенно если это сделано намеренно, когда это не так, и сервис центр может это знать и учитывать, приведу пример из мира PC, в биосе можно включить overclock и задать значения (вольтаж, настройки охлаждения, частоты) вне допустимых и повредить оборудование в прямом смысле.. там много защит, но они не панацея, и всегда остается шанс... так вот прямо в биосе указано что использование этих разделов МОЖЕТ лишить гарантии.
    Ответ написан
    3 комментария
  • Можно ли как-то посмотреть историю статей, какие я читал на хабре?

    @scooby_doe
    Наверное где-то на бэкенде и хранится инфа что ты читал, но нам её не показывают)

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

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Должно быть внутри цикла:
    x1 += x1_change 
    y1 += y1_change
    dis.fill(white)
    
    pygame.draw.rect(dis, black, [x1, y1, 10, 10])
    pygame.display.update()
    clock.tick(30)

    Код:
    while not game_over:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_over = True
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    x1_change = -10
                    y1_change = 0
                elif event.key == pygame.K_RIGHT:
                    x1_change = 10
                    y1_change = 0
                elif event.key == pygame.K_UP:
                    y1_change = -10
                    x1_change = 0
                elif event.key == pygame.K_DOWN:
                    y1_change = 10
                    x1_change = 0
    
        x1 += x1_change
        y1 += y1_change
        dis.fill(white)
    
        pygame.draw.rect(dis, black, [x1, y1, 10, 10])
        pygame.display.update()
        clock.tick(30)

    6812e9630a070616747689.png
    Ответ написан
    1 комментарий
  • На двух ссд был установлен виндовс 11, почему после снятия одного, на втором биос не видит установленный виндовс?

    Adler_lug
    @Adler_lug
    Очевидно же, что там загрузчик.
    По умолчанию загрузчик ставится на тот диск, где он уже есть. Хоть 10 Windows установи на разные диски, а загрузчик будет там, где он был установлен первым.
    Ответ написан
    Комментировать