• Как правильно указывать(хранить)пароли в 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 и умеете читать доки, то сделать это будет легко.
    Если нет - у вас два варианта:
    • Изучать ЯП и доки по библиотеке;
    • Пойти на фриланс:
    Ответ написан
    Комментировать
  • Как писать приложение на нескольких яп?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Для крупных компаний с огромными системами вполне распространённая практика писать разные части системы на тех языках, которые наиболее подходят для реализации функций этой части. Но в этом случае под каждый язык/технологию нанимают отдельную команду. Для одного разработчика писать на нескольких языках - идея не очень хорошая, мозг не любит такие смены контекста. Особенно это тяжело дастся начинающему.
    Ответ написан
    Комментировать
  • Какие алгоритмы и библиотеки применять для визуализации графов?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    wt_fxhxvwnjp6luyqrftbwdcgy4.png

    graphviz и все что у него в комплекте (dot, neato и др)
    Ответ написан
    2 комментария
  • Как оптимизировать COUNT(*)?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    создайте таблицу в ней что то типа rows_matched
    при инсерте нужной фразы добавляйте 1
    при удалении вычитайте

    по итогу у вас вместо тяжелого селекта очень легкий запрос
    Ответ написан
    Комментировать
  • Проектирование БД, какую СУБД выбрать?

    @Akela_wolf
    Extreme Programmer
    Ваши нагрузки легко выдержит любая SQL СУБД - MySQL, PostgreSQL.

    Преждевременная оптимизация - зло. Начните с простых, давно уже известных вещей. А затем уже, по мере выявления узких мест - оптимизируйте.
    Ответ написан
    1 комментарий
  • Совместимы ли Golang и Machine Learning?

    @dmshar
    Давайте разделим - мухи отдельно, а котлеты отдельно.
    Вопрос первый:
    "Совместимы ли Golang и Machine Learning?" - Ответ "да". Существуют решения для МL и на Go, и на Python, и на С# и на Java, и даже на PHP и JavaScript. А если учесть, что процентов 80 инструментов для МL реализованы на С++ то и он задействован.
    Вопрос в том, на чем чаше работают при решении задач ИИ и ML - это уже совсем другой вопрос.
    Вопрос второй:
    "можно ли мне их будет совмещать в дальнейшем, чтобы работать сразу в двух направлениях." Если под "их" вы понимаете Go и ML - то см. выше. А если "backend" и ML - скорее всего нет. Впрочем, есть такая специальность, как "Machine Learning engineer" или еще говорят "Специалист по дата-инженерии". Там могут оба навыка как-то сблизиться и где-то пересечься. Но это не чистый "backend" и не чистое Машинное обучение. Посмотрите в эту сторону.
    Вопрос третий:
    "Не знаю, что выбрать backend разработку на Golang или Machine Learning" (кстати, а тут уже вы Go противопоставили МL - это случайность?)
    Вот тут за вас никто не решит, и не стоит перекладывать ответственность на других. Посмотрите, почитайте - благо в интернете на эту тему написано столько, что ни на одном форуме вам не расскажут что-то новое. Подумайте, что вам больше нравиться, к чему больше тянет. Вообще говоря это разные сферы - одна чисто технологическая, вторая скорее статистическо-математическая, где программирование используется только как инструмент. Не факт, что вы настолько разносторонне и равномерно подготовлены, что почувствуете себя одинаково комфортно в обоих сферах. И принимайте решение. Самостоятельно! Без оглядки на советы непонятно кого, с непонятно каким опытом и образованием.
    Удачи.
    Ответ написан
    Комментировать
  • Как правильно импортировать много данных из json в mysql?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Artikul2,
    MySQL 8.0.28-0ubuntu0.20.04.3


    Не делай ничего с этим JSON. Отдай его как есть на MySQL - у него парсинг получится лучше...
    INSERT INTO test (name, position, city, postcode, entered_at, income)
    SELECT data ->> '$[0]' name,
           data ->> '$[1]' position,
           data ->> '$[2]' city,
           data ->> '$[3]' postcode,
           STR_TO_DATE(data ->> '$[4]', '%Y\/%m\/%d') entered_at,
           REPLACE(SUBSTRING(data ->> '$[5]' FROM 2), ',', '') income
    FROM JSON_TABLE(@data,
                    '$.data[*]' COLUMNS (data JSON PATH '$')) jsontable


    https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=8c5e1c...

    Если надо отсеивать дубликаты - создать соотв. уникальный индекс, и использовать INSERT ODKU, REPLACE INTO либо INSERT IGNORE.
    Ответ написан
  • Что занимает место на сервере VDS (Ubuntu 20.04)?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    ncdu вам красиво все распишет
    Ответ написан
    Комментировать
  • Что занимает место на сервере VDS (Ubuntu 20.04)?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    настроить logrotate корректно.... А то можно попасть на ситуацию - лог nginx удалили, но ему об этом не сказали... и он в него пишет...
    Ответ написан
    Комментировать
  • Выполнение/вызов функции из Go файла при нажатии на кнопку html?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Алгоритм у вас будет примерно таким...
    При нажатии на кнопку у вас будет вызвана функция (обработчик события onClick у кнопки).
    В этой функции вы сделаете AJAX запрос по протоколу HTTP на ваш сервер, где запущено ваше ПО на Go.
    В main.go вы запускаете HTTP сервер, который примет запрос от вашей функции JavaScript, обработает его и ответит.

    Разберём самый простой вариант с методом GET, чтобы вам было проще тестировать.

    На сервере (своём компьютере) запускаете main.go примерно такого содержания
    package main
    
    import (
        "fmt"
        "net/http"
    )
    
    func helloHandler(w http.ResponseWriter, req *http.Request) {
        fmt.Fprintf(w, "hello\n")
    }
    
    func main() {
        http.HandleFunc("/hello", helloHandler)
    
        http.ListenAndServe(":8081", nil)
    }

    Этот сервис будет слушать порт 8081 любого IP адреса на сервере, где будет запущен.
    Предположим, что вы тестируете на своём компьютере, в этом случае для проверки вам нужно в браузере откройте url `127.0.0.1:8081/hello`
    После этого вы должны увидеть в ответе просто текст: "hello".
    Когда этот этап будет завершен - вы сможете перейти к вызову этого URL уже из JavaScript.
    Для этого можете использовать то, что вам привычнее, если такого нет - можете воспользоваться этим примером
    const req = new XMLHttpRequest();
      const url='http://127.0.0.1:8081/hello';
      req.open("GET", url);
      req.send();
      req.onreadystatechange=(e)=>{
        console.log(req.responseText)
      }

    PS: Если не понятно или что-то не получится - пишите, помогу разобраться.
    Ответ написан
    21 комментарий