• Что выбрать: sqlite или redis?

    Вдруг будет слишком долго?
    Не будет. Забудьте вообще на данном этапе своего обучения про существование такого понятия как "скорость", пока не столкнётесь с тормозами в реальности.
    Хочется redis
    Его сложнее администрировать, чем sqlite. Но если хотите - развлекайтесь.
    Ответ написан
    1 комментарий
  • Как принудить поделиться геолокацией?

    Steel_Balls
    @Steel_Balls
    0KLRiyDQv9C40LTQvtGALiDQmNC00Lgg0L3QsNGF0YPQuQ==
    Что значит "принудить"?
    При запросе страницы доступа к геолокации браузер спрашивает у пользователя разрешение на доступ к ней.
    Пользователь сам решает, давать её сайту или нет.
    И это абсолютно правильно. Ни сайт, ни приложение не имеют никакого права знать о местоположении пользователя без его разрешения. Иначе это нарушение Конституции и законов любой цивилизованной страны.

    P.S. Если уж очень сильно всё-таки хочется знать геолокацию, то можно использовать определение локации по IP-адресу (GeoIP), будет точно такая же точность (страна и город), что и от браузера. Но в случае использования VPN всё-таки, придётся попросить пользователя вручную указать местоположение
    Ответ написан
  • Как вы уменьшаете размер пути в приглашении bash?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Никак. Нет у меня таких длинных путей, да и большая часть работы не в голом баше, а в mc
    Ответ написан
    Комментировать
  • Какой компьютер подойдет для домашнего сервера и практики?

    @Drno
    Без понимания бюджета тут сложно помочь. Самый простой вариант - арендовать 2шт VPS по 150-200р...

    А чем не устраивает VirtualBox на домашнем ПК ?
    Ответ написан
    4 комментария
  • Как записать файл в папку контейнера во время запуска docker-compose?

    black1277
    @black1277
    Вольный стрелок
    Есть способ сделать как вам нужно. Создайте файл user.txt с таким содержимым:
    username ALL = NOPASSWD: /usr/bin/tee
    вместо username подставьте имя пользователя из вашего контейнера. Для этого выполните в консоли контейнера команду whoami - получите ваш username.
    В вашем docker-compose файле добавьте к нужному сервису:
    volumes:
        - ./user.txt:/etc/sudoers.d/username

    Теперь, при запуске docker-compose будет монтироваться файл c правами sudo на использование команды tee. И у вас получится записать свой файл в нужную папку.
    Ответ написан
    1 комментарий
  • Как выводить звук на несколько наушников одновременно?

    GavriKos
    @GavriKos
    Купить микшер и воткнуть все это в него
    Ответ написан
    Комментировать
  • Можно ли поставить один процессор в двухпроцессорную материнскую плату?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Да.

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

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    Можно
    Но нужно смотреть документацию конкретной платы. В однопроцессорном варианте могут (будут) работать не все DIMM. PCI-E слоты и еще некоторые вещи.
    А так это стандартная компоновка серверов "на вырост"
    Ответ написан
    Комментировать
  • Как скопировать права и владельцев с папок и файлов в shell на macOS?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Потому что p - это permissions. А вам нужны user и group.
    Ответ написан
    1 комментарий
  • Как удалить лишнее с БД mysql имея более 7000 id, которые удалять не надо?

    @rPman
    Тебе все ответили, тут два варианта - создавать в базе inmemory таблицу с одной колонкой и без индексов, и на ее основе уже делать
    DELETE FROM A WHERE A.id NOT IN (SELECT id FROM B);


    Либо написать скрипт, который выгрузит все id из базы, сравнит их (пока чисел не миллионы, это вообще не проблема) и сформирует список id которые нужно удалить (если всего 10к то их будет всего 3к), когда на десяток строк в любом языке программирования. Так как удаляются конкретные id то такой запрос будет работать быстрее чем delete where not in и возможно быстрее использования временной таблицы. Особых ограничений на количество id в where id in (...) я не нашел, если они есть то это проблема драйвера подключения к бд.

    Есть еще третий вариант, который потребует изменения всего проекта, но заложит неплохие возможности. В базе данных нужно определить флаг - deleted (boolean), который устанавливать true если запись нужно удалить, это может быть дополнительное поле в каждой таблице где это имеет смысл, либо отдельная таблица (это эффективнее, если удаленные записи долго не нужно хранить) с единственным полем id, куда будут складываться идентификаторы записей на удаление. Естественно все запросы проекта нужно будет модифицировать с учетом этого поля/таблицы, чтобы пропускались записи, помеченные на удаление. Реальное же удаление проводить в момент наименьшей нагрузки на сервер или по другому критерию (например удаленные записи можно хранить для использования, к примеру отчетности). У метода есть подводные камни - например уникальные индексы/ограничения на другие поля нужно так же переделывать на сдвоенные с флагом удаленности, чтобы допускались записи с тем же значением что и удаленные.
    Ответ написан
    1 комментарий
  • Домен уже включает в себя порт или он работает как IP?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    "Домен" ничего не включает. Это просто запись в мировой БД, называемой DNS, в которой устанавливается соответствие между неким именем и неким IP. Кроме того, там есть и другие типы записей...
    Ответ написан
    Комментировать
  • Какой хостер может предоставить 10 портов?

    Sanes
    @Sanes
    Это называется хостинг виртуальных или выделенных серверов.
    Ответ написан
    3 комментария
  • Как сделать что бы "бэкап сервер" забрал zfs snapshot с удаленной машины?

    @SunTechnik
    Так примерно так же..
    Бэкап сервер по ключу заходит на сервак и запускает zfs send для snapshot на стандартный вывод и на своей стороне кладёт его в файл или реплицирует в свой zfs...

    Лучше делать не из под root, а под чёткой, которой дали права на управление zfs.

    При компроментации backup сервера, потеряете данные на проде..
    Ответ написан
    Комментировать
  • Почему паралельная сортировка слиянием выполняется на cpu быстрее чем на gpu в 100 раз?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Выигрыш на GPU будет если нужно перемалывать гигабайты за один вызов. А на массивах в тысячу элементах ты теряешь больше времени на копирование в GPU и обратно, и на запуск ядра. И это не говоря о том, что код для GPU надо писать так, чтобы в шину уместились все данные нужные на данной итерации, а у тебя выходит, что первому потоку нужен 0 элемент, а второму не второй элемент, который бы закешировался при запросе, а тысячный. В итоге мы получаем нужные данные, не за один запрос, а за 32 (ну или столько там потоков в варпе).
    Ответ написан
    Комментировать
  • Миграция с Виндовс на Арч. Какие могут быть проблемы?

    Adamos
    @Adamos
    Спрашивать "какие проблемы у меня будут с Линуксом" - все равно, что спрашивать "какие проблемы у меня будут с компьютером".
    Без разбора, чем занимаешься в Виндах, никакого практически полезного ответа не будет. Так, общая информация.
    Ответ написан
    2 комментария
  • Как общаться между сервисами в Kubernetes из вне?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Так, как задумано разработчиками и описано в документации https://kubernetes.io/docs/tutorials/services/conn...
    Ответ написан
    1 комментарий
  • Скрипт на bash для мониторинга таблицы из Postgresql?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Как уже написал Melkij - в объявлении переменных окружения не должно быть пробелов рядом со знаком равенства.
    Вот такой попробуй
    #!/bin/bash
    
    # Параметры подключения к базе данных
    
    DB_HOST='***'
    DB_PORT='****'
    DB_NAME='****'
    DB_USER='***'
    DB_PASS='***'
    
    SQL_QUERY="SELECT COUNT(DISTINCT chat_id) FROM active_list2;"
    
    RESULT=$(psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -t -c "$SQL_QUERY")
    
    # Удаление пробельных символов
    ACTIVE_USERS_COUNT=$(echo "$RESULT" | xargs)
    
    # Печать результата
    echo "$ACTIVE_USERS_COUNT"


    P.S. не забудь вокруг переменных окружения при подстановке добавить двойные кавычки (могут появиться недопустимые символы)
    Ответ написан
    6 комментариев
  • Банят аккаунты в телеграмме при использовании библиотеки telethon. Кто-то находил решение?

    Не нужно нарушать ToS и делать вообще что-то подозрительное.
    API для обычных пользователей (не ботов) предназначен для создания приложений, которыми будут пользоваться люди.

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

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Из компилируешь a.cpp и b.cpp, а затем просто используешь их объектные файлы

    пример на Makefile

    a.o: a.cpp
         gcc -c a.cpp -o a.o
    
    b.o: b.cpp
         gcc -c b.cpp -o b.o
    
    tests.exe: a.o b.o
         gcc a.o b.o test_main.cpp -o tests.exe
    
    app.exe: a.o b.o
         gcc a.o b.o app_main.cpp -o app_main.exe


    как-то так

    UPD: если про CMake, то используй OBJECT библиотеку

    add_library(common OBJECT a.cpp b.cpp)
    add_executable(tests PRIVATE tests_main.cpp $<TARGET_OBJECTS:common>)
    add_executable(app PRIVATE app_main.cpp $<TARGET_OBJECTS:common>)
    Ответ написан
    Комментировать
  • Как отсортировать в алфавитном порядке результаты log-файла?

    @sand3001
    Всего по немногу
    sudo cat /etc/openvpn/openvpn-status.log | grep 10.10.30.[0-999] | sort -t , -k 2

    Сортировка по разделителю "запятая" по 2-му полю
    Ответ написан
    3 комментария