• Raid1 на двух hdd разных производителей?

    @aleks-th
    Можно.
    Даже в некоторых источниках рекомендуют в рейд1 ставить разные диски - так как у дисков из одной партии больше вероятность помереть одновременно.

    Единственный момент если будете делать средствами матплаты - очень аккуратно и бекап предварительно сделайте, а то можно случайно диск с данными почистить и данные случайно потерять при создании рейда, в некоторых биосах этот пункт по умолчанию стоит.
    Ответ написан
    Комментировать
  • ValueError: operands could not be broadcast together with shapes (720,406) (400,) (720,406) в stable diffusion?

    Maksim_64
    @Maksim_64
    Data Analyst
    Сама по себе ошибка, довольно известная, и происходит она на уровне numpy. При работе с массивами данных, есть такой важный термин, как broadcasting - это то как numpy осуществляет арифметические операции с массивами разной размерности.
    Например
    import numpy as np
    arr1 = np.ones(9).reshape(3,3)
    arr2 = np.ones(8).reshape(2,4)
    arr1 + arr2
    Выдаст по смыслу такую же ошибку, как у вас, размерности разные и он не в состоянии произвести оперцию.
    А вот в этом примере
    import numpy as np
    arr1 = np.ones(27).reshape(3,3,3)
    arr2 = np.ones(9).reshape(3,3)
    arr1 + arr2
    Не смотря на то что размерности разные у нас двумерный массив складывается с трехмерным, ошибки не будет все сработает.
    Потому что согласно правилам broadcatsting'a, данная арифметическая операция возможна.

    Так и у вас, numpy не в состоянии выполнить broadcasting. Как поправить, по скольку вы напрямую не работаете с массивами, а используете интерфейс stable diffusion, то все ответы надо искать там. Либо вы передаете массив с данными, не в той размерности, либо что то в параметрах stable diffusion не то. Ищите рабочий пример и повторяйте. Так поправьте здесь что то или там что то, здесь сказать не возможно. Что из себя представляет проблема я обрисовал.
    Ответ написан
    9 комментариев
  • Как использовать on_startup в боте телеграмм?

    vabka
    @vabka
    Токсичный шарпист
    1. У тебя ошибка в SQL-синтаксисе: CREATE TABLE IF NOTE EXISTS
    2. Что мешает тебе вызывать bd_start непосредственно перед запуском бота? Что-то типа:
    async def main():
        await bd_start() # так
        bot = Bot(token=config.BOT_TOKEN, parse_mode=ParseMode.HTML)
        dp = Dispatcher(storage=MemoryStorage())
        dp.include_router(router)
        await bot.delete_webhook(drop_pending_updates=True)
        await dp.start_polling(bot, allowed_updates=dp.resolve_used_update_types(), on_startup=on_startup)
    Ответ написан
    1 комментарий
  • Что за шифр или комбинация шифров?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дружище так нельзя делать. Криптоанализ предполагает что ты знаешь что ищешь.
    Из какого приложения ты это скопировал? Что ожидается? Хешированный пароль?
    Магнитная ссылка? И мы должны знать контекст. А может ты взял задачу на cryptohack
    и пришел сюда за подсказкой? Так нельзя! Иди в тот форум и там спрашивай.

    У них условие даже есть что участники не обсуждали задачи на стороне.
    Ответ написан
    Комментировать
  • Какие сервера поднимаются на виртуалках, а какие физически?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Заказчик сам выбирает обычно. Исходя из денег. VPS или bare-metal. Насколько амбиций хватит.
    В последнее время все тяготеют к Kubernetes. Он как-то динамичнее утилизирует доступные железки.
    Если VPS подняли. Поставили ОС. Поставили софт .... и побежали твои денежки к облаку.
    А с кубером так. Захотел бигдату посчитать. Написал джоб. Запустил в кубере. Джоб отработал 1 час.
    И ты заплатил ровно за 1 час. Дисковые хранилища там почти бесплатны. По цене грязи.
    Ну з IOPS в пике можно заплатить. Но в целом пока джобы не работают ты ничего не платишь.

    Вот. Еще лямбды (AWS) и clound-functions (другие облаки) тоже потребляют по 1 центу за вызов.
    И при этом ее хостинг тебя не волнует. Она поднимется на любой виртуалке где есть ресурсы.

    Поэтому не bare-metal -> VPS. А все еще запутанее хитрее. Железо. Виртуализация. Потом что там...
    контейнеризация... Потом FAAS. Функции. Вот поэтому вопрос звучит не какие сервера поднмиаются
    а какой бизнес-функционал лучше летает на каком уровне этой лестницы.
    Ответ написан
    Комментировать
  • Клиент, запущеный раньше сервера к нему не подключаеться. Как исправить?

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

    Да ещё и глотаешь исключения. Очень не советую писать except: pass, у тебя вместо сколь-нибудь понятного сообщения об ошибке программа будет молча не работать.

    В любом случае ты делаешь только одну попытку подключения. Поток выполнит try_connect() один раз и завершит работу. Отсюда и наблюдаемое поведение - клиент не переконнектится, потому что в коде это не прописано.
    Ответ написан
    Комментировать
  • Мой код слишком громоздкий?

    @kalapanga
    Задача решена неверно. Тут нужно не улучшать, а исправлять! У Вас что, люди будут есть отдельно булки и отдельно сосиски? Нет! Так зачем Вы просите ввести количество булок и отдельно количество сосисок? В условии же ясно написано - запросить количество участников и количество хотдогов, которые будут предложены каждому. Соответственно и дальнейший расчёт должен отталкиваться именно от этих значений.
    Ответ написан
    6 комментариев
  • Не понимаю, почему данные в разных строках?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Потому что нужно выучить хотя бы базовый синтаксис SQL! Одна строка вставляется одним запросом, каждый инсерт вставляет новую строку!
    execute('INSERT INTO table (FIO, Address, Email) VALUES (?, ?, ?)', ('ФИО', 'Your Address', 'your@email.com'))
    Ответ написан
  • Можно ли работать с PythonAnywhere через свою консоль?

    vabka
    @vabka
    Токсичный шарпист
    В бесплатной версии нельзя.
    В платной версии можно подключиться по ssh.
    Также в платной версии есть поддержка Jupyter Notebooks
    Ответ написан
    1 комментарий
  • Почему Redis PUB/SUB передаем сообщения хуже чем http tcp?

    @Eugene-Usachev
    Я не знаток Redis и по его исходникам не лазил, но все адаптеры, что я смотрел и писал используют TCP, отсюда я делаю вывод, что Redis использует TCP под капотом. Следовательно вы поменяли структуру с
    бек сервер - TCP -> бек сервер
    на
    бек сервер - TCP -> СУБД (не сервер, у неё своих забот хватает) - TCP -> бек сервер.
    - TCP -> второй бек сервер.

    Теперь про советы:
    1 - PUB/SUB у Redis очень производительный, но вы неправильно его используете для этих целей. Я не знаток python и не очень хорошо знаю node, но не вижу у вас ни batching, ни pipelining. Я недавно проводил тесты на Go и пришёл к выводу, что pipelining для PUB/SUB даёт рост скорости более, чем в 4 раза. В документации к Redis очень хорошо описан подход pipeling и большинство адаптеров его так или иначе предлагают, советую провести тесты с ним.
    2 - Вы не по назначению используете PUB/SUB. Для обмена между двумя серверами обычно используют gRPC или TCP или голые сокеты. PUB/SUB используется для масштабирования (я не вижу у вас его в коде, но я не знаток python или node).
    Ответ написан
    9 комментариев
  • Где делать запросы на РЕАКТЕ?

    @n1ksON
    мидл
    Для начала можно и просто в основных компонентах вызывать useEffect, который будет обрабатывать запрос и с помощью useState хранить данные. А если их нужно использовать в каких-то дочерних компонентах, то через пропсы.

    В общем случае, используется стейт-менеджер, типа redux. Данные попадают в нужную компоненту напрямую с помощью useSelector, дальше при необходимости в "глупые" компоненты пробрасываются пропсы.
    Запросы из компонент диспатчатся и выполняются/организуются через redux-saga, например.
    Ответ написан
    Комментировать
  • Где делать запросы на РЕАКТЕ?

    @Eugene-Usachev
    Есть простое решение, которое изучают все новички React, оно подразумевает использовать useState в верхних компонентах, через useEffect с пустым массивом зависимостей заполнить этот state и пробросить его ниже.
    Однако лучше использовать стейт менеджер. Я не смогу описать их в одном ответе, но советую вам погуглить про них. Самый популярный (с большим отрывом) - Redux (смотрите так же Redux-thunk и Redux-saga). Однако я бы посоветовал использовать MobX или Zustand так как они тоже популярны, но значительно удобнее. Судя по вашему запросу, я бы посоветовал начать с useState и useEffect.
    Не относится к теме вопроса, но вам стоит посмотреть плейлист "Мощнейшая практика" от uldi TV, так как автор не просто показывает, как использовать React, но и делает акцент на лучших паттернах и структуре.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы данные, которые я пишу в тг бота, заполняли сперва первую строчку в таблице postgre?

    Vindicar
    @Vindicar
    RTFM!
    Почитай хотя бы про основы реляционных БД.
    У каждой таблицы должен быть первичный ключ - иными словами, такое поле/комбинация полей, которая будет уникальной для каждой записи.
    Тогда алгоритм будет такой: спрашиваешь пользователя, какую запись он хочет редактировать, запоминаешь её ключ, затем переходишь в режим редактирования, где поочерёдно спрашиваешь значения столбцов.
    Подразумевается, что ты знаешь, как сделать сценарий, чтобы бот последовательные сообщения обрабатывал по-разному. Если не знаешь - читай, как реализуется finite state machine (FSM) в выбранной тобой библиотеке.
    Ну и да:
    data = message.text.strip()
    cur.execute(f"INSERT INTO {tableName} ({column_name}) VALUES ('{data}')")

    Это - готовая SQL инъекция. И если вставку tableName и column_name еще можно оправдать (хотя ты их тоже не проверяешь на допустимость), то данные так вставлять нельзя. Есть правильный способ.
    Ответ написан
    Комментировать
  • Почему возникает исключение AttributeError при запросе текущего состояния FSM?

    Maksim_64
    @Maksim_64
    Data Analyst
    добавь в конструктор класса super().__init__() Что бы инициализировать атрибуты родительского класса.
    def __init__(self):
        self.command = ""
        super().__init__()
    Ответ написан
    1 комментарий
  • Умная розетка с автовключением без интернета?

    vabka
    @vabka
    Токсичный шарпист
    По идее это должно решаться при помощи умной розетки, которая управляется не по wifi (например по zigbee) и соответствующим хабом с возможностью добавления кастомных сценариев.
    Ответ написан
    Комментировать
  • Умная розетка с автовключением без интернета?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    Называется "Аппаратный Watchdog" не знаю встречаются ли готовые в виде розеток, но в виде модулей точно есть
    Ответ написан
    Комментировать
  • Умная розетка с автовключением без интернета?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Я так понимаю речь идёт об импровизированном Watchdog-таймере для роутера.
    Если у роутера есть USB, то вот есть готовые приборчики на али: https://aliexpress.ru/popular/usb-watchdog-timer.html
    Не пробовал их подружить с роутером, но не вижу причины почему бы не заработало.

    Но обычно такая штука реагирует на какое-то условие, например не пингуется какой-то хост, или комп не выдаёт необходимый сигнал на устройство.

    Если вам нужна перезагрузка роутера не связанная с отсутствием интернета, то можно соорудить что-то из реле и вот такого таймера: https://www.youtube.com/watch?v=A3fozboEvWQ
    Сигнал для этого реле задержки с роутера можно ардуинкой через USB подавать.

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

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

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    А в чем, собственно, проблема? Передайте это значение в функцию в качестве аргумента, или вон вы глобальной переменной уже пользуетесь, можете и тут наговнокодить так же.
    Вы не объясняете что конкретно у вас не получается. В чем вопрос? Предоставляете довольно объемный код, который, судя по вопросу, написали не вы и чего хотите? Чтобы вам краткий, но исчерпывающий курс по программированию с нуля тут изложили? На какой-то другой ответ в вопросе просто недостаточно информации.

    А бесплатных курсов и репетиторов тут нет.
    Ответ написан
    2 комментария
  • Почему ничего не выводится хотя ошибок нет?

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    Да вы задрали. Всё он выводит. Программа сразу закрывается, потому что она не обязана ждать. Она ЗАВЕРШИЛАСЬ!
    input() после print напиши и не закроется, пока не нажмешь что-то
    Ответ написан
    1 комментарий