Задать вопрос
  • Как убрать 404, которая возникает при обновлении любой страницы, кроме главной в Telegram Mini App?

    deepblack
    @deepblack
    Настрой правильно веб сервер (nginx, apache или что там у тебя)

    Пример для nginx:
    server {
      listen 80;
      server_name app.mydomain.com;
      root /srv/app-name;
      index index.html;
      # Other config you desire (TLS, logging, etc)...
      location / {
        try_files $uri /index.html;
      }
    }


    Естественно отредактируй конфиг под свой проект (пути, домен, сертификаты и т.д.)
    Ответ написан
    Комментировать
  • Как корректней распарсить список из списков для MongoDB?

    deepblack
    @deepblack Куратор тега Python
    Например так:

    Python 3.12.4 (main, Jun  6 2024, 18:26:44) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> initial_data = {
    ...     "coords": [[673, 103], [673, 104], [673, 105], [673, 104]]
    ... }
    >>>
    >>> transformed_data = {
    ...     "coords": [{"x": coord[0], "y": coord[1]} for coord in initial_data["coords"]]
    ... }
    >>> transformed_data
    {'coords': [{'x': 673, 'y': 103}, {'x': 673, 'y': 104}, {'x': 673, 'y': 105}, {'x': 673, 'y': 104}]}
    >>>
    Ответ написан
    4 комментария
  • Порекомендуйте простые конструкторы для мониторинга ЦОД?

    deepblack
    @deepblack
    Рекомендую обратить внимание на WirenBoard:
    • Есть модули для подключения датчиков температуры и не только (Температура, влажность, освещённость, шум, уровень CO2 и VOC, движение, ИК-передатчик)
    • Есть модули для ввода/вывода различных сигналов (можно мониторить потребление и выводить графики в Графану, собирать метрики в любую систему)
    • + можно управлять нагрузкой через реле и/или контакторы
    • Есть возможность интеграции с различными кондиционерами и системами вентиляции
    • Есть возможность управлять устройствами по Modbus (например частотным приводом или другой пром.автоматикой)
    • То чего нет - можно дописать самостоятельно (на борту стандартный Linux дистрибутив)
    • Подробная документация с примерами (вы с большой вероятностью разберетесь самостоятельно)
    • Есть дефолтная "вебмода" в которой можно подключить и настроить модули расширения (для очень быстрого старта - все довольно интуитивно понятно)
    • Подключаем модуль резервного питания + LTE модем - получаем автономное устройство мониторинга (естественно время работы ограничено)
    • Доступная цена + производится в России (проблем с покупкой не будет)


    66c726b216624752261667.png
    Ответ написан
    2 комментария
  • Как скачать docker image с официального сайта elastic.co?

    deepblack
    @deepblack
    У меня поднят xray (VLESS, Reality - в инете инструкций по настройке полно) на зарубежном хостинге,
    на серверах где нужен доступ к подобным ресурсам стоит все тот-же xray но настроенный как обычный прокси (SOCKS, http, https)
    в настройках Docker указан этот (локальный) прокси, который в свою очередь пересылает запросы на сервер зарубежом.
    Все работает отлично
    66c59f9c7f21b408311176.png
    66c59f3d5ec98392538715.png
    Ответ написан
    1 комментарий
  • Как создавать и изменять geosite.dat?

    deepblack
    @deepblack
    This project releases various formats of GeoIP files automatically every Thursday, and provides a command line interface(CLI) tool for users to customize their own GeoIP files, including but not limited to V2Ray dat format file geoip.dat, MaxMind mmdb format file Country.mmdb, sing-box SRS format files, mihomo MRS format files, Clash ruleset files and Surge ruleset files.


    https://github.com/Loyalsoldier/geoip/
    Ответ написан
    Комментировать
  • Ошибка UNAUTHORIZED при работе с Yandex SpeechKit API: Как правильно передать API-ключ?

    deepblack
    @deepblack Куратор тега Python
    Что-то странно ваш код выглядит,
    в документации есть пример:
    export FOLDER_ID=<folder_ID>
    export IAM_TOKEN=<IAM_token>
    curl -X POST \
       -H "Authorization: Bearer ${IAM_TOKEN}" \
       --data-binary "@speech.ogg" \
       "https://stt.api.cloud.yandex.net/speech/v1/stt:recognize?folderId=${FOLDER_ID}&lang=ru-RU"
    Ответ написан
    Комментировать
  • Хватит ли 8gb оперативки на iMac m1?

    deepblack
    @deepblack
    Может и хватит (естественно зависит от задач), но 8 Gb RAM сейчас это очень мало
    Скриншот

    66b0e26ecdd98502739324.png


    Может стоит Mac mini рассмотреть в качестве альтернативы, они несколько дешевле выходят
    Ответ написан
    Комментировать
  • Как в VPS задать постоянное имя хоста?

    deepblack
    @deepblack
    За подобное поведение отвечает cloud-init опция preserve_hostname
    Исправить можно так:
    echo -e "# This file disables cloud-init's hostname update\npreserve_hostname: true" | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg


    Затем ребутни сервер, предварительно поправив имя (если нужно)
    Ответ написан
    6 комментариев
  • Как распарсить yaml?

    deepblack
    @deepblack
    Вроде валидный yaml (хоть и странного вида), непонятно какие сложности
    package main
    
    import (
    	"fmt"
    	"gopkg.in/yaml.v3"
    	"log"
    )
    
    type Scalar struct {
    	Value string
    }
    
    func main() {
    	// YAML content
    	yamlContent := `
    ---
    ok
    `
    
    	var scalar Scalar
    	err := yaml.Unmarshal([]byte(yamlContent), &scalar.Value)
    	if err != nil {
    		log.Fatalf("error: %v", err)
    	}
    
    	fmt.Printf("Parsed YAML:\n%+v\n", scalar.Value)
    }
    Ответ написан
    1 комментарий
  • Как защитить экран MackBook pro 16.2 от следов клавиатуры?

    deepblack
    @deepblack
    Следы на экране мака остаются когда клавиатура грязная.
    Лично у меня он чистый почти всегда, но для меня это принципиально.
    Видел достаточно таких владельцев маков у кого экран в выключенном виде в пятнах/разводах.
    Достаточно не есть за рабочим столом (дома тоже, для этого есть кухня) и протирать периодически родной тряпочкой или аналогичной от другого производителя (для оптики тоже подходит - для очков которая).
    Как вариант погуглить: wai ora салфетка

    Клаву и корпус можно протирать раствором спирта, главное чтобы он с тряпки не стекал.
    Чтобы очистить трудно удаляемые пятна или отпечатки пальцев на дисплее или внешней стороне компьютера Mac, можно аккуратно протереть дисплей или корпус ноутбука Mac тканью, смоченной 70-процентным раствором изопропилового спирта (IPA).

    Источник

    Класть что либо (особенно тряпку) между клавой и дисплеем очень плохая идея, apple не рекомендует заклеивать камеру наклейками или стикерами (есть любители это делать) а тут целая тряпочка.
    Кстати эта прокладка которая в коробке с маком идет, очень похожа на кальку ))
    Ответ написан
    4 комментария
  • Можно ли купить операционную систему macOS?

    deepblack
    @deepblack
    Как уже советовали в коментах к вопросу, порекомендую купить Mac mini:
    Цены вполне адекватные в текущих условиях, отзывы положительные

    Цвет тут только для выбора конфигурации
    6598267489ef2035862690.png
    65982683766af332108062.png
    Ответ написан
    Комментировать
  • Ошибка при использовании grep на сервере?

    deepblack
    @deepblack
    С чего ты взял что он "не идет дальше" ?
    По твоему скрину можно сделать вывод что grep продолжил работать.

    Подожди пока он отработает, это бывает не быстро.
    Ответ написан
    Комментировать
  • Что делать если команда работает не во всех директориях?

    deepblack
    @deepblack
    Что делать если команда работает не во всех директориях?

    Она и не должна работать где-то еще, если кроме того что написано в документации ты ничего не делал.

    Скопируй бинарь в одну из директорий, которые тебе выдаст команда
    echo $PATH

    например в какую-нибудь из этих:
    /usr/local/bin
    /usr/local/sbin


    UPD:
    spoiler

    Не нужно ничего копировать в PATH, это плохой совет. Пусть лежит там, где положено.
    Просто создайте для eww symlink в /usr/local/bin
    Еще более красивый механизм - использовать механизм alternatives https://ru.wikipedia.org/wiki/Alternatives
    Пример - бинарнику нужны библиотеки, которые лежат рядом и при копировании он их перестанет видеть.
    Или в скрипте установки зашит путь и при обновлении версии новый бинарник опять ляжет в оригинальную директорию.

    Это вполне нормальный совет копировать туда куда я указал выше. Создать симлинк как один из вариантов тоже неплох.
    Если бинарь работает только с либами которые лежат рядом и он не подхватывает системные или он не позволяет указать пути для нужных либ в конфиге - то это хреновый софт.
    Конкретно в данном случае нет никакого скрипта установки, все делается руками.



    Ссылка: Where should a local executable be placed?
    Ответ написан
    Комментировать
  • Проблема с Aiogram что делать?

    deepblack
    @deepblack
    Проблема с Aiogram что делать?

    Очевидно проблема в другом месте.

    в user_commands.py
    @router.message(Command('me'))
    async def get_me(message: Message):
        await get_me(message)


    тебя ничто не смущает?
    Ответ написан
    1 комментарий
  • Что нужно писать в строке "Объект"?

    deepblack
    @deepblack Куратор тега Python
    Что нужно писать в строке «Объект»?

    Собственно ключ объекта в s3 бакете в котором записана твоя функция.

    У тебя тело функции (исходник) в S3 хранится, верно?
    Т.е. ты его предварительно залил в s3 Яндекс.Клауда, через aws-cli или yc-cli?
    Может просто в редакторе кода (на твоем скрине слева от Object Storage) все напишешь и не будешь переусложнять?
    Ответ написан
    Комментировать
  • Как переименовать файл env.example в .env на macOS?

    deepblack
    @deepblack
    Это же элементарно гуглится:
    cd ~/your-project-directory
    mv env.example .env
    Ответ написан
  • Что за поля на границах рабочего стола?

    deepblack
    @deepblack
    System Settings -> Desktop & Dock -> Click wallpaper to reveal desktop

    65149515eb6cd730624108.png
    Ответ написан
    1 комментарий
  • Как сделать бенчмарк локально через докер?

    deepblack
    @deepblack
    вот это:

    ping: cannot resolve http://somesite.test/: Unknown host


    у тебя потому что ты явно скопировал в консоль
    ping http://somesite.test/
    хотя должно быть так:
    ping somesite.test
    Идем дальше

    Откуда докер по твоему должен узнать что somesite.test это 127.0.0.1 ?
    Ты ведь не в контейнере добавил эту запись в /etc/hosts верно?

    А если бы добавил, то 127.0.0.1 укажет на сам докер контейнер.

    Тебе нужно запустить nginx (или что там у тебя: traefik, apache, caddy, haproxy) на локальном ( к примеру 10.10.0.8 или 192.168.0.8) адресе.
    Убедиться что сайт доступен по этому адресу,
    затем запустить контейнер с ключом --add-host somesite.test:10.10.0.8 указав тут свой ip
    Примерно так:
    docker run --rm --add-host somesite.test:10.10.0.8 httpd ab -c 3 -n 20 somesite.test


    UPD:

    Artem0071,
    тогда можно сделать так, например:

    cat docker-compose.yml
    образ взял для примера, у тебя будет свой
    version: "3"
    
    services:
        nginx-server:
            image: nginx
            restart: always
            ports:
                - "8000:80"
            volumes:
                - ./src:/usr/share/nginx/html
            networks:
              default:
                aliases:
                  - www.google.com
                  - bober.kurwa.pl
    
        client:
            restart: always
            image: nginx


    Тогда можно будет делать так:

    docker exec -ti tmp-client-1 /usr/bin/ping bober.kurwa.pl

    650eb7297c184645650238.png

    Т.е. запусти свои сервисы из одного docker-compose и пропиши для нужного контейнера aliases
    Ответ написан
  • Как убрать ошибку: Not Found?

    deepblack
    @deepblack Куратор тега Django
    Вот тебе ссылки на документацию, которую нужно было изучить чтобы не задавать элементарных вопросов:


    по первой ссылке конкретный ответ на твой вопрос, т.е. статику тебе нужно раздавать с помощью nginx или чем тебе удобно.
    Ответ написан
    Комментировать
  • Как настроить в Ansible ротацию файлов?

    deepblack
    @deepblack
    3. В папке /backups должно храниться 5 копий, самую старую копию надо стереть после удачной заливки


    Как пример посмотри тут
    - block:
        - name: Determine old directories
          set_fact:
            old_dirs: "{{ (install_artifacts.files|sort(attribute='mtime', reverse=True))[3:] }}"
    
        - name: Remove old directories
          file:
            path: "{{ item.path }}"
            state: absent
          with_items: "{{ old_dirs }}"
      when: install_artifacts.matched > 3

    Тут правда нужно еще допилить под себя, но в целом направление такое.

    Хотя обычно такое bash-скриптами делают.
    Ответ написан
    1 комментарий