• Как отслеживать время у объектов в базе данных?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Средствами ноды или перечисленными в ответах способами сделать можно, но это не эффективно, обычно для такого используют менеджеры очередей, типа RabbitMQ и ему подобные.
    Ответ написан
    Комментировать
  • Как работает round robin в Nginx?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    1. Через резолв docker dns
    2. Nginx сам ничего не сделает
    3. Потому что предыдущие пункты. Правится созданием upstream, он уже разобьёт server на несколько ip из ответа DNS
    Ответ написан
    3 комментария
  • Как обслуживать юзеров по очереди телебот?

    Vindicar
    @Vindicar
    RTFM!
    global user_id
    Ну как бы вот виновник. Глобальные переменные. Они общие на всего бота и на всех пользователей. Если тебе нужно дифференцировать пользователей - делай это сам.
    Делай хранилище "ключ-значение", где ключ - ID пользователя, значение - хранимые для этого пользователя данные. При обработке сообщения читай ID пользователя, доставай из хранилища данные, и уже сообразно им обрабатывай сообщение.
    Таким хранилищем может быть простой словарь (если не нужно сохранять состояние между перезапусками бота), БД или ещё что.

    Не знаю, есть ли в telebot реализация Finite State Machine, но обычно для реализации сценариев используют её. Идея та же - для каждого юзера храним его текущее состояние (шаг в сценарии) и ассоциированные с ним данные.
    Ответ написан
    2 комментария
  • Почему индекс нулей в списке равен нулю?

    Vindicar
    @Vindicar
    RTFM!
    У тебя в строках массива несколько нулей. Метод index() по умолчанию находит только первое искомое значение. Если бы ты почитал документацию, ты бы это понял, и увидел, как это обойти.

    list.index(x[, start[, end]])

    Return zero-based index in the list of the first item whose value is equal to x. Raises a ValueError if there is no such item.

    The optional arguments start and end are interpreted as in the slice notation and are used to limit the search to a particular subsequence of the list. The returned index is computed relative to the beginning of the full sequence rather than the start argument.


    Вообще, раз уж ты ручками перебираешь строки и ячейки матрицы, используй enumerate().
    for i_row, row in enumerate(grid):  # row == grid[i_row]
        for i_col, value in enumerate(row):  # value == row[i_col]
            # далее сам
    Ответ написан
    1 комментарий
  • Как убрать выведение сообщения err1?

    Vindicar
    @Vindicar
    RTFM!
    Во-первых, нужно не if ... if ... if ... print(), а if ... elif ... elif ... else: print()

    Во-вторых,
    if c != "множення" and "додавання" and "віднімання" and "ділення" :

    Очень многие совершают эту ошибку. Так НЕ работает.
    Код вида if x != 2 or 3: эквивалентен if (x != 2) or (3 != 0):, что, в свою очередь даёт if (x != 2) or True:. А что угодно or True даст True, т.е. условие будет всегда выполняться.
    Правильно - if x != 2 and x != 3: или if x not in (2, 3):
    Для своей задачи приспособишь по аналогии.
    Ответ написан
    Комментировать
  • Гриды так умеют?

    Mi11er
    @Mi11er
    A human...
    Можно, у гридов есть шаблоны прям.
    Ответ написан
    4 комментария
  • Как между асинхроными функциями делиться и перекидывать переменные и их значения?

    Vindicar
    @Vindicar
    RTFM!
    Потому что у каждого пользователя должен быть свой экземпляр хранимых данных.
    Например, вместо одиночного хранилища нужно иметь хранилище вида "ключ-значение", где ключом будет ID пользователя, а значением - данные, которые для этого пользователя актуальны.
    Природа этого хранилища не принципиальна: может быть простой словарь (если не нужно сохранение состоятния между перезапусками бота), может быть БД, может быть ещё что.

    Собственно, в аиограме есть механизм Finite State Machine, который как раз про организацию сценариев, с отслеживанием того, на каком этапе находится конкретный пользователь.

    Но для его использования нужно знать питон на уровне немножечко повыше "Если я пытаюсь исплользовать return то код дальше становится недоступным".
    Ответ написан
    Комментировать
  • Как навсегда отключить злоумышленника от моего компьютера?

    2ord
    @2ord
    Несмотря на то, что не являюсь специалистом по информационой безопасности, на мой взгляд есть следующие факторы риска:
    1. низкая осведомлённость по теме информационой безопасности - полезно хотя бы периодически посещать сайты типа https://www.SecurityLab.ru
    2. настройки маршрутизатора (роутера) с паролем админа по умолчанию (admin/admin, admin/12345 и.т.д.)
    3. настройки маршрутизатора с возможностью удалённого доступа.
    4. настройки маршрутизатора со слабыми аутентикациями типа WEP, слабыми паролями и т.д.
    5. настройки маршрутизатора с открытыми портами на всё и вся, а также другие настройки сетей
    6. старый маршрутизатор с давно необновлённой прошивкой (firmware)
    7. нелицензионно установленная ОС, скачанная с интернета
    8. неустановленные или вовремя не установленные штатные обновления безопасности ОС
    9. любое ПО, установленное с сомнительных источников (в особенности игры)
    10. отсутствие средств защиты ОС: антивируса (хотя бы встроенного в ОС) и межсетевого экрана
    11. вовремя необновлённое ПО (дыры в Adobe Acrobat Reader, Adobe Flash, Java JRE и т.д.)
    Ответ написан
    Комментировать
  • Как сверстать вот эту фичу?

    AlekSays
    @AlekSays
    FrontEnd developer
    Ответ написан
    Комментировать
  • Какая правильная команда curl для отправки сообщения с сервера на телеграмм?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    В кавычки урл возьмите.
    Ответ написан
    Комментировать
  • Как сделать автоматическое обновление кода на хостинге из GitHub?

    @vitaly_il1
    DevOps Consulting
    Автоматически - точно так же, как вручную, но "завернуть" все команды в GitHub Actions.
    Вот примеры от самого GitHub https://docs.github.com/en/actions/automating-buil...,
    можно поискать в гугле по "мой-язык пример github actions"
    Ответ написан
    Комментировать
  • Как попасть на CA/B Forum?

    CityCat4
    @CityCat4 Куратор тега Цифровые сертификаты
    //COPY01 EXEC PGM=IEBGENER
    Глеб, даже если бы ты туда и попал - тебе там делать нечего. Сейчас только один CA выдает сертификаты для РФ и - ты разве не уловил тенденцию - на всех банковских вебмордах сейчас написано - "переходите на российские сертификаты". То есть в перспективе, доступ в тырнет будет только при их наличии, будем пользоваться госCA, на мировую структуру забьем (раз она на нас забила).
    На этом форуме сидят серьезные конторы, ты во сне столько бабок не видел...
    Ответ написан
    6 комментариев
  • Сколько строк кода может уместить ATmega 8?

    @kalapanga
    Так выбирают микроконтроллер для большой серии изделий, когда важна каждая копеечка. А для хобби, обучения и т.п. не жадничают, а берут с запасом - какой-нибудь актуальный, современный МК. Когда напишете проект - другой, появится и представление о том, на какой функционал сколько и каких ресурсов нужно.
    И да, память - далеко не единственный и далеко не всегда главный критерий выбора МК.
    Ответ написан
    Комментировать
  • Сколько строк кода может уместить ATmega 8?

    GavriKos
    @GavriKos
    Никто, включая МК, не меряет размер кода строчками.
    Тем более компилируемый код.

    МК вмещает столько скода, сколько у него памяти (вроде обычно ROM или ее часть для этого используется), может с небольшой поправкой (загрузчик там например). Но - чаще всего - ассемблера. А не C++.

    я примерно представляю сколько строк кода в нём будет

    не верю
    Ответ написан
    5 комментариев
  • Как выбрать работодателя чтобы меньше работать?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Я заметил, что компании которые зарабатывают на разработке (IT-гиганты, аутсорс, стартапы) в основном относятся к 1 категории, а те, у которых разработка вторична (банки, магазины) - к 2.

    Наблюдение ошибочно. Своими глазами вижу, как две команды, сидящие за соседними столами в офисе одного банка, работают в очень разном режиме. Можно сказать, одни в первой вашей категории, а вторые во второй. А ещё вижу стартапчик, в котором уже третий год люди вообще не работают.
    Ответ написан
    Комментировать
  • Где лучше хранить БД? В докере или нет?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Дополню немного ответ Dr. Bacon, поскольку мне кажется он не так понял ваш вопрос, а вы, возможно, не так поняли суть проблемы.
    Под БД, например постгрес, обычно понимают две разные вещи:
    1) сами данные в файловой системе,
    2) сервер базы данных, который реализует сетевой интерфейс для работы с БД и правильным образом кладёт и читает данные в файловой системе.

    Так вот, сервер можно развернуть ка кна хостовой машине (как вы сказали "локально"), так и в докер-контейнере.
    Файлы БД можно разместить как в файловой системе контейнера, так и в локальной файловой системе, примонтированной внутрь контейнера.
    И тут полно нюансов.
    Давайте начнём с того, как правильно.
    Правиьным будет взять стандартный докер-образ сервера БД, сконфигурировать его через компоуз-файл, а размещение файлов БД примонтировать в виде отдельного volume.

    Что имел в виду Dr. Bacon. Он имел в виду, что если не монтировать файлы БД в volume, то они будут лежать внутри контейнера, а значит при его перезапуске все данные будут стерты, поскольку состояние файловой системы контейнера не принято хранить. Это одно из преимузеств докера - сделал образ унаследовав его от других образов, а потом при запуске контейнера он какждый раз как новенький.
    Ответ написан
    Комментировать
  • Почему занятого места на диске больше, чем файлов?

    paran0id
    @paran0id Куратор тега Linux
    Умный, но ленивый
    Скорее всего, где-то остались удаленные, но не закрытые файлы - какие-то программы их держат.
    Их можно найти командой
    lsof -X / | grep deleted
    Если совсем лень разбираться, можно просто перезагрузить систему
    Ответ написан
    6 комментариев
  • Есть ли какие-либо практические различия в PostgreSQL между доступом к jsonb через -> и []?

    Melkij
    @Melkij
    PostgreSQL DBA
    Начну с конца - для индексов это критично разные вещи. Планировщик даже пытаться анализировать не станет, эквивалентные это условия или нет. Если у вас есть индекс по my_column -> 'a', а в запросе вы написали "my_column"['b'] - то этот индекс использоваться не будет.

    Касательно самих двух операторов:
    -> ровесник jsonb как такового
    jsonb[element] - jsonb subscripting на языке документации - штука недавняя, лишь только прошлогодняя из pg14. Пока что нужно иметь в виду если вам может потребоваться более старая версия базы.
    По поведению отличий вроде не должно быть никаких. Оба варианта возвращают jsonb, поэтому IRL куда чаще используется ->> возвращающий текст.
    На уровне реализации оба приходят к одному и тому же getKeyJsonValueFromContainer. Вы скорее упрётесь в производительность разбора формата самого jsonb, чем заметите какую-то разницу в производительности родного оператора от type subscripting.
    Ответ написан
    Комментировать
  • Как можно задублировать bot.send_message?

    Dr_Elvis
    @Dr_Elvis Куратор тега Python
    В гугле забанен
    Как то так
    file = open("text.txt", "r" )
        file_r = file.read()
        file_p = re.findall("'(.+?)'", file_r)
    
        for x in file_p:
            bot.send_message(message.chat.id, str(x), reply_markup=markup)
    Ответ написан
    5 комментариев