• Как обойти ограничения интернета системного администратора?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Работайте работу или пишите записку с обоснованием почему для работы вам нужен порнохаб и одноклассники
    Ответ написан
    6 комментариев
  • Какое ПО наиболее популярно для Linux-серверов разного типа?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    В линухе по большей части используется не "наиболее популярное", а единственное в своем классе - так же как в винде. Поехали.
    - файловый сервер (надо полагает имеется в виду расшаривание файлопомойки) - Samba. Причем the only, другие мне неизвестны.
    - FTP - вот здесь есть выбор. Я предпочитаю proftpd. FTP рекомендуется использовать только в доверенном окружении, потому что там безопасность не ночевала даже.
    - Что такое "сетевые службы" - непонятно, вопрос неконкретный
    - СУБД есть две - mysql и postgresql. Первая как правило для веба, полегче и побыстрее, вторая - этакий Opensource Oracle - потолще, потяжелее, помедленее, но ворочает гигантские обьемы.
    - Веб-сервер есть ровно один - apache. nginx, очень часть упоминаемый как альтернатива - это не веб-сервер. Это реверс-прокси, балансировщик и все что угодно, но построить полноценный сайт только на nginx невозможно. Впрочем, он и писался не для этого, хотя часть функционала веб-сервера он тащит, потому что обычно стоит на фронте.
    - Почтовый сервер - почта бывает разная. Для smtp - sendmail/postfix/qmail, для IMAP - обычно dovecot, хотя возможно есть и другие.
    Ответ написан
  • В чем различие == и IS в Python?

    - оператор==проверяет равенство значений двух объектов
    - оператор is проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти

    Python (CPython, если быть точнее) в целях производительности кеширует короткие строки и малые целые числа, поэтому возможны такие казусы:

    >>> str1 = 'hello'
    >>> str2 = 'hello'
    >>> str1 == str2
    True
    >>> str1 is str2
    True
    >>>


    Но стоит сделать строку длиннее и всё встаёт на свои места:

    >>> str1 = 'hello, my crazy world'
    >>> str2 = 'hello, my crazy world'
    >>> str1 == str2
    True
    >>> str1 is str2
    False
    Ответ написан
    2 комментария
  • Какую ОС выбрать?

    C_Smoke
    @C_Smoke
    Системный администратор
    Смотря какую задачу вы планируете решать.
    -Конечные пользователи будут всегда сидеть на Windows
    -Сервера приложений сейчас, да и в дальнейшем будут разворачиваться на linux (тут согласен с Рональд Макдональд , deb дистрибутивы популярнее)
    -Но в большинстве компаний используются AD, RDP и прочие решения Microsoft... соответственно серверные Windows тоже восстребованы.

    P.S. для себя сделал выбор что пользовательская ОС - Win, серверная - Lin. Так что серверные приложения изучаю на основе Linux (Ubuntu), пользовательские на Windows (Windows 10)
    Ответ написан
    1 комментарий
  • Какую ОС выбрать?

    @Drno
    Ту, которая стоит в конторе)
    Ну а по логике - самую популярную.
    Это deb дистрибутивы.
    Убунту и дебиан. Далее уже будет проще с линуксами

    Дополню. По факту в небольших/средних конторах понадобится и вин и линь. Так что в целом надо знать и понимать обе ос.
    И уметь поднимать минимальные сервисы.
    Типа - AD, dns, dhcp, web server...
    Ответ написан
    2 комментария
  • VPN между тремя микротиками?

    @antonwx
    Openvpn поганый на микротике, используйте l2tp/eoip. А в чём особо проблема-то? В сети мануалов полно, у вас 1 сервер 3 клиента, проблем возникнуть не должно
    Ответ написан
    Комментировать
  • GPU не нагружена на 100 % в одной игре?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Проблема может быть в том, что проц не справляется. Т.к. не только GPU участвует в процессе создания кадра. Тем более, если нагрузка падает при скоплении людей. Люди, а точнее, объекты - это задача процессора. Чем больше объектов, тем больше нагружен центральный процессор.

    Объясню подробнее. Движок имеет грубо говоря список всех объектов. Для построения кадра, нужно пройтись по такому списку. Ходит по циклу именно центральный процессор. Он вычисляет, что показывать и когда и отдает команду GPU для того, чтобы вон там вывести объект, вот с такой текстурой. Далее, если объект обладает логикой, в отдельном потоке (тоже ЦПУ) обрабатывает логику, т.е. жизненный цикл объектов. GPU в этот момент может пинать те самые резиновые...

    Запусти игру и посмотри все показатели нагрузки, а не только GPU.
    Ответ написан
    9 комментариев
  • GPU не нагружена на 100 % в одной игре?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Добавлю к отличному ответу Hemul GM:
    Возможно, что алгоритм обмена написан с динамическим распределением нагрузки и если более мощные компы видят других игроков, сервер распределяет вычислительную нагрузку между игроками в зоне прямой видимости так, чтобы всем было комфортно играть. Это сложно сделать, но вполне реально.
    Ответ написан
    Комментировать
  • Какое ПО наиболее популярно для Linux-серверов разного типа?

    @symnoob
    Устанавливайте что хотите, так-как почти все серверные приложения работают с докером, на сегодняшний день разницы нет.
    Что будет дальше некому не известно
    Ответ написан
    Комментировать
  • Какое ПО наиболее популярно для Linux-серверов разного типа?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну коли я встрял в диспут, тоже ответ напишу.
    Есть разные задачи, начиная от рабочей станции-десктопа и заканчивая разными серверными задачами.
    Про десктоп писать не буду, ставите ЛЮБОЙ понравившийся дистрибутив с графической оболочкой по умолчанию - это и будет набор самого популярного ПО. Например я пишу с ноута с убунтой (ноут хороший, стильный и дорогой ультрабук асус ux391), все рабоатет как надо.

    А вот дальше - все интереснее. Для небольших установок подойдет стандартный набор LAMP - Linux, Apache (Nginx), MySQL (PostgreSQL), PHP.
    Для связи с виндовыми машинами - Samba.
    FTP не ставьте никогда (!!!) - используйте ssh/sftp - они в стандартном наборе, это безопаснее и универсальнее.
    Сейчас очень популярна контейнеризация типа Docker/LXC/Kyberners и виртуализация KVM/XEN. Что здесь лучше - не скажу, пользую и то и то. Для быстрых вещей - контейнеры, для разделения - KVM.
    Базы разные и Mysql и Postgres, последний приятнее и может гораздо больше, но не все его могут, увы. Я же предпочитаю Redis/MongoDB/Kafka/Hbase/Elasticsearch но все под задачу.
    Из вебсерверов предпочитаю Nginx, но есть продукты, которые заточены для работы с Apache.

    Для настроек файрвола в каждом дистрибутиве есть генераторы правил - в убунте это ufw. Я же пользую firehol.

    Спрашивайте - дополню список.
    Ответ написан
  • Как устранить чёрный экран на Kali Linux?

    Adamos
    @Adamos
    Для решения подобных проблем с Kali Linux я бы рекомендовал вот этот набор утилит.
    Ответ написан
    4 комментария
  • Библиотека в Python?

    DMGarikk
    @DMGarikk
    Lead Software Developer
    копайте в сторону ffmpeg там вроде есть чёто типа volumedetect
    Ответ написан
    Комментировать
  • Перебор на Python?

    @o5a
    1. f.read() считывает файл полностью в строку, в результате в цикле for f in catalog итерация идет не по строкам, а по каждой букве, соответственно ничего и не получается.
    2. connect(path=catalog) должно использовать строку (т.е. f), а не все строки.
    С такими изменениями должно работать:

    catalog = f.read().splitlines()
    for f in catalog:
        try:
            app=pywinauto.Application().connect(path=f)
        except pywinauto.application.ProcessNotFoundError:
            print(f, 'not found')
        else:
            print("...")
            break
    Ответ написан
    6 комментариев
  • Как реализовать какое-либо действия скрипта при открытии пользователем определённое программы?

    tsarevfs
    @tsarevfs
    C++ developer
    Напрямую это сделать сложно. Так делают антивирусы, но они должны перехватывать действия операционной системы, что требует работы на уровне драйверов. https://web.archive.org/web/20100127105044/https:/...
    Если вы знаете что это за программа и можете писать в реестр, то вот хороший вариант: https://superuser.com/a/1201793
    Ну и третий вариант - сделать так, чтобы вместо целевой программы пользователь запускал скрипт, который запустит целевую программу.
    Еще можно по таймеру получать список процессов и запускать скрипт при изменении.
    Ответ написан
    Комментировать
  • Как реализовать какое-либо действия скрипта при открытии пользователем определённое программы?

    exibite777
    @exibite777
    Ведущий системный аналитик
    Попробуйте модуль pywinauto отлично работает с интерфейсом Windows, позволяет его автоматизировать
    Например, вот код инсталлера 7-zip
    wizard=app['7-Zip 19.00 (x64) Setup']
    wizard.Install.Click()
    time.sleep(5)
    wizard.CloseButton.Click()
    time.sleep(2)
    app=pywinauto.Application().start(r'C:\Program Files\7-Zip\7zFM.exe')
    main=app['7-Zip']
    main.MenuSelect('Сервис->Настройки...')
    settings=app['Настройки']
    settings.Button.Click()
    settings.ОКButton.Click()
    main.Close()
    Имена кнопок и компонентов на которые надо нажимать можно узнать утилитой swapy, она же автомтически генерит код для pywinauto

    Модуль позволяет создавать свои собственные дочерние процессы, а может подключаться к процессам уже ранее запущенных приложений. Ну а раз скрипт уже запущен, то можете в нем хоть print() хоть все что угодно писать. Например я делал сервис киллер notepad
    Киллер Notepad
    import pywinauto, datetime, threading, time
    pid_list=[]; log_list=[]
    
    with open("kill-notepad.log", "a") as log:
        log.write(f"{datetime.datetime.now()} | service started, I'am kill all notepad appliction\n")
    
    def logger():
        global log_list
        if len(log_list)>0:
            log_copy=log_list.copy(); log_list=[]
            with open("kill-notepad.log", "a") as log:
                for i in range(len(log_copy)):
                    log.write(log_copy.pop(0))
    
    def disabler(main,count):
         for i in range(count-count//255):
                main.set_transparency(alpha=255-i//(count//255))
    def alarm(main):
        for i in range(10):
                main.Edit.send_keystrokes("НЕЛЬЗЯ ЗАПУСКАТЬ ЭТУ ПРОГРАММУ\n")
    
    def killer():
        global pid_list
        try:
            app=pywinauto.Application().connect(path=r"c:\windows\system32\notepad.exe")
            main=app.top_window(); count=10000
            if main.process_id() not in pid_list:
                pid_list.append(main.process_id())
            else:
                return
            main.set_transparency(alpha=255)
            threading.Thread(target=alarm(main)).start()
            threading.Thread(target=disabler(main,count)).start()
            log_list.append(f'{datetime.datetime.now()} | destroy {main.element_info}\n')
            app.kill()
        except:
            pass
    count=0
    while True:
        if count==10:count=0
        time.sleep(1); count+=1
        shout=threading.Thread(target=killer)
        shout.start()
        if count==10:
            report=threading.Thread(target=logger)
            report.start()

    Потом можно скрипт упаковать в exe-файл при помощи cx-Freeze
    упаковываем скрипт
    Файл setup.py
    from cx_Freeze import setup, Executable
    packages = ['win32serviceutil','win32service','win32event','servicemanager','socket','win32timezone','pywinauto', 'sys', 'datetime', 'not-notepad-service']
    build_exe_options = {"packages": packages}
    executable = [Executable("not-notepad-service.py")]
    setup(name = "StopNotepadService",
            version = "1.0",
            description = "Stop NotepadApp and Log",
            options = {"build_exe": build_exe_options},
            executables = executable)

    Запускаем сборку python setup.py build

    И можно даже потом повесить готовый exe-файл как службу Windows
    при помощи nssm-2.24-101-g897c7ad
    Ответ написан
    2 комментария
  • Как узнать разрядность Windows с помощью Python?

    @bogomazov_vadim
    >>> import platform
    >>> platform.architecture()
    ('32bit', 'WindowsPE')
    Ответ написан
    2 комментария