• Стабилен ли Manjaro?

    @AlexVWill
    Один советует ставить дебиан, хотя его про это не просили, другой тем более несёт какую то ахинею про дебиан, хотя его тоже про это не просили, третий не стого, ни с сего сравнивает траблы на конкретной железке, хотя его тоже это не просили.
    Вы хоть вопрос то прочитайте, прежде чем писать эту всю лабуду?
    Ответ на вопрос - да, манжаро стабилен, также как Арч и дебиан на конкретной железке если они были изначально стабильны и у юзера руки не из жопы и не жопа вместо головы.
    А если нет, то ни Арч, ни кали и не Федора ему не помогут, потому что все надо делать с умом, или в ином случае или если вы девочка покупать макбук.
    Ответ написан
    Комментировать
  • Подойдет ли backend на python?

    @twistfire92
    Python backend developer
    Если цель - только файлики проверять/собирать, я бы взял FastAPI. Причём, если процесс работы с файлами будет синхронный, то и ендпоинты создавать синхронные, библиотека сама их запуститв отдельных потоках. Связка Django + DRF будет сложна для ознакомления новичку, да и много лишнего с собой несёт, чем пользоваться вы не будете.

    Опять же смотря что называть сайтом. Если это отдельное frontend приложение, где от вас требуется только API, то да. Если же и пользовательский визуал в зоне вашей ответственности, то Django. Хотя и FastAPI с шаблонами работать умеет.
    Ответ написан
    2 комментария
  • Как сделать из своего рутера VPN точку доступа?

    @vimakaev
    Все возможно. из личного примера.
    У меня дома MikroTik hAP ac² , статический ip , домашний файловый сервер.
    когда уезжаю из дома беру с cобой Mikrotik mAP 2nD
    оба роутера связал между собой через wireguard.
    В разъездах подключаюсь через мобильный интернет и вижу свою домашнюю сеть. все работает отлично.
    Самое главное чтоб дома был статический адрес. если нет такой возможности, то нужно посмотреть какое у провайдера время аренда ip - он может меняться и каждый день или раз в месяц, Зависит от провайдера.
    Есть еще другой вариант это купить vps, настроить vpn и подключаться через него.
    Ответ написан
    1 комментарий
  • Как сделать из своего рутера VPN точку доступа?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    1) Да, если по пути VPN не будет заблокирован.
    2) Да, с учетом того, что роутер должен уметь подключиться к Интернету в другой стране - а это может быть Ethernet, WIFI и т.п.
    3) Вероятнее всего нет.
    Ответ написан
    Комментировать
  • Как сделать из своего рутера VPN точку доступа?

    @Drno
    1. Да, нужен внешний IP в казахстане
    2.Да есть, напимер кинетик - для домашних юзеров, Микротик - для продвинутых, опенВРт - для любителей опенСорса)
    3. Если Вы про протоколы ВПН, то я бы советовал делать протокол SSTP на сервере или zerotier
    Ответ написан
    3 комментария
  • Как вы уменьшаете размер пути в приглашении bash?

    paran0id
    @paran0id
    Умный, но ленивый
    Я себе сделал двухэтажное приглашение. В первой строке полный путь и некоторые полезные переменные, во второй классическое [user@host]$
    Ответ написан
    Комментировать
  • Как защищить веб-приложения от перебора паролей с помощью nginx proxy manager и fail2ban?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Смотрите логи, выделяете соответствующие запросам брутфорса, составляете регулярку. Но, как правильно заметили в комментариях, есть модуль nginx с аналогичной функциональностью.

    А если говорить максимально серьёзно - это должно разруливаться на стороне приложения, а на веб-сервере только рейтлимиты.
    Ответ написан
    Комментировать
  • Корпоративная замена ЯндексДиску?

    @rPman
    Вам нужно сетевое хранилище, подключаемое к диску, с настройками прав доступа - чем не устраивает штатная майкрософтовская сеть, если пользователей десяток и более то домен контроллер? Дорого майкрософтовский сервер покупать? установить бесплатный linux samba в качестве домен контроллера (у меня был конфиг где он запускался в виде виртуальной машины, теперь это можно сделать в wsl), настроить файловое хранилище, с этим он прекрасно справляется
    Ответ написан
    Комментировать
  • Почему не делается mount на WSL(2)?

    @SunTechnik
    Нельзя смонтировать один диск дважды (он уже у Вас смонтирован в Windows.)

    https://learn.microsoft.com/ru-ru/windows/wsl/wsl2...

    По идее, диск С уже смонтирован.
    Проверьте каталог /mnt/c
    Ответ написан
    2 комментария
  • Какие книги посоветуете по нейросетям?

    suppcolor
    @suppcolor
    Data Scientist, PhD (medicine)
    На мой взгляд стек не так важен, тем более, что это очень динамичная область знаний. Начните с фундаментальных основ, в результате сможете делать гораздо больше и не только с нейронными сетями.

    Вот современная классика: https://mml-book.github.io/book/mml-book.pdf
    Ответ написан
    Комментировать
  • Как понять что я выучил основы C#?

    @Miheev2
    А зачем его начали учить вообще?
    Что бы работать? Так идите на собеседование, там проверят. Так и узнаете.

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

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Вообще вы можете язык очень много лет учить. Что вы знаете о языке C#? Можете написать несколько классов, прокинуть соединение к БД, написать несколько linq запросов? А что на счёт делегатов, событий? Рефлексия учится долго. Потоки, и тут имеется ввиду не просто банальный async/await, а прям взаимодействие с памятью и системными потоками. Знаете? Нет? Учить будете? Само собой, что будете, а стоит ли оно того?

    Вообще да, как бы стоит, но поймите меня правильно, вы не первооткрыватель технологий и фреймворков. Для примера, вам будет очень тяжело узнать, где реально используется рефлексия как отдельная тема, пока вы не столкнётесь с её использованием.

    А знаете где она используется? Для примера это Dependency Injection контейнер в asp.net.

    А где используются событие? Для примера это handler'ы в таких фреймворках как Windows Forms и WPF.

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

    @NortheR73
    системный инженер
    1. Если у вас купленный KES - почему бы не спросить поддержку Касперского?
    2. Возможно, только лишь KES тут не поможет, и потребуются дополнительные инструменты типа SRP и т.д.
    3. Иногда проще и лучше не запрещать запуск, а разрешать запуск приложений только из определенных расположений
    Ответ написан
    Комментировать
  • Как избежать падения nginx при отсутствии backend, proxy_pass контейнера?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Сделать в композе связку healthcheck и depends_on, чтобы nginx поднимался только после того, как проба бэкенда пройдёт успешно.
    Ответ написан
    2 комментария
  • Как практиковаться в программировании?

    delphinpro
    @delphinpro
    frontend developer
    На мой взгляд лучший вариант изучения языка - писать то что именно тебе нужно, или хотя бы интересно.

    Я начал изучать программирование лет двадцать назад, поэтому мой опыт может показаться странным, но все же. В моем распоряжении был компьютер на 386 процессоре и монохромный монитор с 4 градациями цвета (белый, серый, темный и черный). Конечно я видел и цветные мониторы и 95 винду на них. Мне тоже хотелось окошечки, графический интерфейс и все такое прочее. Хочется - сделаем. Книжки в зубы (в библиотеке O_o), редкие походы в компьютерные клубы, за инфой из интернета (сколько поместится на дискету?) - и вперед, пилить оконный менеджер под ДОС на турбопаскале.
    Конечно, свою винду я не написал =) Но зато паскаль выучил, объектное программирование, детально разобрался как работает компьютер и операционная система, что такое резидентные программы в досе.
    А потом купил нормальный комп =)

    К чему я это всё? А к тому, что если у тебя есть желание научится программировать, ты возьмешь и научишься, даже на калькуляторе.
    Ответ написан
    1 комментарий
  • Есть ли разница запуска контейнеров по отдельности или через докер компос?

    А что поднятие одним файлом всех контейнеров, всех сетей, и всех волюмов, с последующим освобождением всего одновременно уже не является достаточным преимуществом? Да ещё и без конфликта имён
    Ответ написан
    Комментировать
  • Палевно ли переводить криптовалюту из США в СНГ?

    1. В момент покупки крипты будет видно, что ты на что-то потратил деньги.

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

    Если не через биржу, то это будет эквивалентно передаче налички из рук в руки - никто ничего не увидит, если специально не будет искать транзакции.

    3. Если ты будешь переводить очень большую сумму, то тобой в любом случае заинтересуются и будут вопросы задавать.

    4. Следует различать "СНГ" и конкретные страны. Переводить "в СНГ" не запрещено. Запрещено только в РФ и РБ.
    Ответ написан
    Комментировать
  • Насколько Spring Security хорошо защищает твой бакэнд?

    Spring Security это фреймворк. Степень безопасности сильно зависит от программистов, которые им пользуются. Если всё в приложении делается правильно и тестируется, то в защите сомнений быть не может.

    Okta и подобное это уже готовые серверы авторизации. Если у вас есть бюджет на подобные дорогие удовольствия, то стоит. Но в большинстве случаев, эти расходы необоснованны. Особенно для малых и средних компаний.
    Ответ написан
    1 комментарий
  • Какой бесплатный мониторинг ресурсов (аналог zabbix agent) установить для vps linux ubuntu?

    А зачем искать аналог zabbix, если можно использовать сам zabbix? Он бесплатный, его можно установить на ubuntu, у него есть веб-интерфейс (и вполне можно интегрировать в grafana/prom, если хочется)

    https://www.zabbix.com/documentation/current/en/ma...
    Ответ написан
    2 комментария
  • Требуется захват вывода команды в subproccess python в реальном времени как реализовать?

    Vindicar
    @Vindicar
    RTFM!
    Используешь Popen(), перехватываешь ввод-вывод (stdin, stdout и stderr, передаёшь туда константу PIPE). Дальше используешь свойства stdin, stdout, stderr - это файлоподобные объекты (пайпы).
    Тут есть ряд подводных камней. Обычно чтение из файла - блокирующая операция, т.е. пока дочерний процесс не напишет что-то в пайп - твоя программа будет висеть и не реагировать на действия пользователя. В питоне неблокирующее чтение из пайпа доступно только под unix, а под виндой - только начиная с 3.12. Если нужна поддержка винды, будет практичнее запустить отдельный поток, который читает данные из процесса. Например, так:

    import collections
    import signal
    import subprocess
    import threading
    import time
    
    
    class ChildProcessReader(threading.Thread):
        def __init__(self, args: list[str], *, encoding: str | None = None, errors: str = 'ignore', exit_timeout: float = 1.0):
            super().__init__(name=f'Monitor {args!r}', daemon=True)
            self._encoding = encoding
            self._errors = errors
            self._exit_timeout = exit_timeout
            self._queue = collections.deque()
            self._child = subprocess.Popen(args,
                stdin=subprocess.DEVNULL,  # стандартный вход отключен
                stdout=subprocess.PIPE,  # перехватываем стандартный вывод
                stderr=subprocess.STDOUT,  # стандартный вывод ошибок направляем на стандартый вывод
            )
            self.start()
        
        @property
        def running(self) -> bool:
            '''Возвращает True, если процесс ещё жив.'''
            return self._child is not None
        
        @property
        def output(self) -> collections.deque:
            '''Очередь, в которую будут складываться получаемые от процесса строки.'''
            return self._queue 
        
        def stop(self) -> None:
            '''Останавливает процесс - сначала "по хорошему", потом принудительно.'''
            if self._child is None:
                return
            try:
                self._child.send_signal(signal.CTRL_C_EVENT)
                self._child.wait(self._exit_timeout)
            except subprocess.TimeoutExpired:
                self._child.terminate()
            except KeyboardInterrupt:
                pass
            finally:
                self._child = None
        
        def run(self) -> None:
            '''Тело потока.'''
            try:
                while self._child.poll() is None:  # рабочий цикл крутится, пока дочерний процесс жив.
                    stdout_data = self._child.stdout.read1()
                    if self._encoding is not None:
                        stdout_data = stdout_data.decode(self._encoding, errors=self._errors)
                    self._queue.append(stdout_data)
            except KeyboardInterrupt:
                pass
            finally:  # по выходу из цикла завершаем процесс
                self.stop()
    
    
    if __name__ == '__main__':
        child = ChildProcessReader(
            # выполняемая команда
            ['ping', '-t', '127.0.0.1'],
            # кодировка, в которой отдаёт данные твой процесс. None - отдавать байты как есть.
            encoding='cp866', errors='ignore',
            # сколько ждать завершения процесса
            exit_timeout=1.0
        )
        # процесс (и поток) стартуют немедленно по созданию экземпляра класса
        try:
            while child.running:
                # вместо просто цикла тебе лучше периодически выполнять код ниже иным способом
                # например, если у тебя GUI на tkinter, используй метод .after()
                try:  # пытаемся получить очередную строку от процесса
                    data = child.output.popleft()
                except IndexError:  # ничего нет, буфер пуст
                    # это просто реакция на отсутствие текста. Можно вообще ничего не делать.
                    print('.', end='', flush=True)
                    time.sleep(0.1)  # 
                else:  # получили строку, обрабатываем
                    print(f'\n> {data!r}')
        except KeyboardInterrupt:
            print('\nStopping')
        finally:  # в итоге надо будет прибить дочерний процесс
            child.stop()
    Ответ написан
    Комментировать