• Восстанавливает данные мошенник?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Для начала нужно просто пообщаться. Правда, это нужно уметь делать. Так что если вы вообще плохо ладите с людьми, то нужно, чтобы кто-то другой общался вместо вас. Желательно при этом записывать разговор. Можно также включить на громкую и позвать свидетелей.

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

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

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

    @rPman
    в комментариях к вопросу все что надо уже сказали.
    Первая проблема - хранение данных (переменные, структуры, объекты), вторая - код.

    1 вариант -. первую проблему предлагали решить стандартом сериализации а вторую - принципиально - пусмть каждый плагин запускается по своему отдельным процессом, и использует какой то способ коммуникаций с основной программой (сеть, IPC и т.п.)

    2 вариант - свести все разнообразие используемых языков программирования к одному (например байткоду), и использовать общий фреймворк, если это позволено, такое есть как для java jvm, так и для .net clr (c#, cpp#, vb#, python#,...) или более современно и предпочтительнее (быстрее, больше возможностей и прочее но и сложнее) - llvm, правда с общим фреймворком будет сложнее.
    В этом варианте код плагинов скорее всего должен будет подгружаться в рантайме используя идеологию dinamic link library, но не обязательно.

    Интересным вариантом может быть линковка во время сборки проекта (не во время выполнения, т.е. потребуется перезапуск, в подавляющем больинстве случаев загрузка плагина на лету не требуется, dll чаще используется как инструмент организации хранения и распространения), отличным примером являются объектные файлы компиляции c/c++ компилятора (на самом деле есть компиляторы и для других языков, даже python с помощью nuitka переводится в c++) и уже на месте с нужной конфигурацией все они собираются линкером в один запускаемый бинарник, и при этом исходные коды не распространяются а процес сборки проходит достаточно быстро (он понадобится при смене конфигурации плагинов или обновлении версии какого либо одного из списка)
    Ответ написан
    4 комментария
  • Как сделать переадресацию в файле HOSTS не для всего IP, а для конкретной ссылки?

    @generalx
    Системный администратор
    Такое только веб-сервер может
    Ответ написан
    Комментировать
  • Как исправить эту ошибку?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Прочитать документацию, узнать, что на Heroku практически нет возможности работать с файловой системой.
    Ответ написан
    Комментировать
  • JS в качестве БД?

    @rPman
    javascrip - это инструмент, json - это формат, а база данных - это место хранения, инструмент и формат одновременно.
    Т.е. тебе нужно еще понять где ты будешь хранить данные, и вот от сюда и полезут проблемы.

    Интернет магазин - значит участвует как минимум браузер (вырожденные случаи вида - магазин в telegram/wechat не рассматриваем), хранить данные браузер умеет только локально, для клиента, а у интернет магазина как минимум есть еще продавец, с которым клиент должен связываться для получения списка и цен на товары в наличии и указаний к пожеланию купить (корзина)... т.е. нужен еще и сервер (варианты с децентрализованной сетью так же не рассматриваем ибо это хардкор не для новичков).

    Если твой сервер однопоточный (например если речь идет про javascript то бакэнд серверный можно писать на nodejs, с оговорками про асинхронность) то в принципе можно хранить все данные в файлах, и не сильно заморачиваться с блокировками и транзакциями, а из-за них основные проблемы возникают, зачем люди к готовым базам данным идут.
    Если тебя это все еще интересует,
    веди работу с базой данных из отдельных функций (например объединив их в класс), по окончанию работу каждой чтобы данные в файлах были в консистентном - правильном состоянии, перезапись делать через временный файл с переименовыванием в оригинальный после всех изменений, это аналог транзакций, это даст гарантии по сохранности данных при смерти внезапной скрипта, например окончилась память или место на диске, само собой проверять это при следующем запуске и давать возможность вручную разрулить. Если сумарный объем базы больше мегабайтов, то не храни все в одном файле, первый уровень разделения - по типам данных, например раздели данные для редких изменений и постоянных - списки товаров и корзина, кстати цены можно так же отдельно хранить, само собой тебе тогда придется идентификаторы заводить и следить за их уникальностью - вот уже сиквенсы пошли (кстати есть алгоритмы uuid где каждый новый гарантированно уникальный без необходимости централизации и чего либо хранения), если же данных совсем много и часто меняются случайные из них то храни каждый объект в своем файле, файловая система справится, но лучше все же освой нормальные БД

    Поэтому тебе правильно посоветовали, используй sqlite, минимум усилий на обслуживание и настройку (база данных = файл, никакого сервера и при этом полноценный sql с почти бесплатной миграцией на любую sql базу данных в будущем)
    Ответ написан
    Комментировать
  • Как в Django установить соединение с RabbitMQ?

    DMGarikk
    @DMGarikk
    Lead Software Developer
    вас не устраивает официальный манул? rabbit
    Ответ написан
    1 комментарий
  • Как правильно указывать(хранить)пароли в docker-compose?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если докер является частью вашего облака AWS/Azure - то надо читать их документацию. Обычно постащик облака всегда продает какой-то сейф (vault) для хранения секретов. И есть API через который можно читать содержимое этого сейфа.
    Ответ написан
    Комментировать
  • Как правильно указывать(хранить)пароли в docker-compose?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Универсальным рецептом на любую архитектуру является:
    Хранение паролей в секретнице, например HashiCorp Vault

    Приложение при инициализации идет за своим набором секретов по сети и создает подключения к БД, конфиги доступа к др ресурсам и прочее и хранит у себя... Все секьюрно и надежно

    Если проще: передавайте секреты через переменные окружения при деплое.
    Локально — через .env файл. Docker-compose сервисы могут содержать параметр env_file: .env.test, если вам нужно точечно что-то сделать

    Вы разве используете docker-compose для продакшн?
    Ответ написан
    9 комментариев
  • Как установить соединение с Postgres и при потере, восстановить его?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Можете пользоваться пулом подключений, если подключения нет — пул автоматом создаст новое (обычно библиотеки, которые позволяют создать pool — хорошо и эффективно создают такие соединения)

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

    Также посмотрите на pgbouncer или odissey, если у вас нагруженное приложение.

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

    @JaneYa Автор вопроса
    Проблема решилась.
    Причина -> моя невнимательность.
    Я при создании образа контейнера зашел не в тот каталог, где Dockerfile, а на уровень выше.
    После пересоздания с нужного каталога всё заработало.
    Ответ написан
    Комментировать
  • ИИ который может описать то, что изображено на картинке?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    https://openai.com/blog/clip/

    но если чо, таких нет ;)

    максимум - очень близко, разными алгоритамами,
    и на картинках like ImageNet или объектах на белом фоне
    Ответ написан
    Комментировать
  • Как организовать RabbitMQ очередь для нескольких микросервисных приложений?

    @yarkin
    В AMQP есть механизмы подтверджения клиентом обработки сообщения (basic.ack), посмотрите вот тут вот тут
    Ответ написан
    Комментировать
  • Не работают сложные команды в Ubuntu?

    Lynn
    @Lynn
    nginx, js, css
    У вас в первой команде русская буква «а» в слове аpt.

    И в слове install тоже.

    Попробуйте в следующий раз копипастить аккуратнее.
    Ответ написан
    3 комментария
  • Работа рекламных компаний гугл на территории РФ сейчас?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Рекламные кАмпании гугл отключил в России из-за войны в Украине
    Ответ написан
    2 комментария
  • Глупые вопросы по тостеру, которые меня интересуют?

    6274c3558ac3a089197449.png

    Все пользователи с 0 вопросов и 9999 ответов действительно гении или это новореги или им удаляли вопросы?
    Аудитория Тостера, по сути, делится на четыре группы:
    1. Те, кто абсолютно не умеют искать информацию и пользоваться головой. Или умеют, но ленятся. Они бесконечно задают вопросы и очень редко отвечают.
    2. Те, кто прекрасно имеет искать информацию (вычленять суть проблемы, формулировать её, подбирать ключевые слова, отсеивать шелуху). Они очень редко задают вопросы, но не потому, что вопросов не возникает, а потому, что на абсолютное большинство их вопросов ответ в интернете уже есть, его нужно только найти.
    3. Те, кому не хватает опыта для того, чтобы оказаться во второй категории. Со временем они туда переходят.
    4. Те, кто зашёл случайно, не связан с программированием и дети, желающие наконец-то узнать нужны ли им математика и высшее образование.
    Ответ написан
    15 комментариев
  • Почему не могу запушить репозиторий в github?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Большой файл видимо был добавлен в один из новых, ещё не запушенных коммитов. И затем был удалён, но остался в истории. Неважно, что сейчас в рабочем каталоге. Пушится не рабочий каталог, а ветки репозитория. Это разные сущности.

    Просто склейте новые коммиты в один, это решит проблему.
    git reset --soft github/master
    git commit -с
    git push github -all
    Ответ написан
    Комментировать
  • SQL db for research&development on GO?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    SQLite
    Ответ написан
    Комментировать
  • Как сделать что бы бот дс распознал спам и наказал участника за это?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    1.Сформировать список спам-слов/фраз.
    2.При каждом сообщении - проверять есть ли данные слова/фразы в тексте.
    3.Если есть - банить.
    Если вы хоть немного знаете python и умеете читать доки, то сделать это будет легко.
    Если нет - у вас два варианта:
    • Изучать ЯП и доки по библиотеке;
    • Пойти на фриланс:
    Ответ написан
    Комментировать