• Как получить цвет приложения на котором находится моё приложение?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Код:
    spoiler
    import sys
    from PyQt5 import QtWidgets, QtCore, QtGui
    
    
    class ClockWidget(QtWidgets.QWidget):
        def __init__(self):
            super().__init__()
    
            # Устанавливаем параметры окна
            self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint | QtCore.Qt.FramelessWindowHint)
            self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
    
            # Устанавливаем таймер для обновления времени
            self.timer = QtCore.QTimer(self)
            self.timer.timeout.connect(self.update_time)
            self.timer.start(1000)  # Обновляем каждую секунду
    
            # Создаем метку для отображения времени
            self.label = QtWidgets.QLabel(self)
            self.label.setAlignment(QtCore.Qt.AlignCenter)
            self.label.setStyleSheet("font-size: 48px;")  # Размер шрифта
    
            # Устанавливаем начальное время
            self.update_time()
    
            # Устанавливаем размер окна
            self.resize(200, 60)
    
            # Переменные для перемещения окна
            self.dragging = False
            self.drag_position = None
    
        def update_time(self):
            current_time = QtCore.QTime.currentTime()
            self.label.setText(current_time.toString("HH:mm:ss"))
            self.check_color_below_widget()
    
        def check_color_below_widget(self):
            # Получаем глобальные координаты нижней границы виджета
            global_pos = self.mapToGlobal(self.rect().bottomLeft())
    
            # Определяем координаты точки на 10 пикселей ниже
            point_below = global_pos + QtCore.QPoint(0, 10)
    
            # Получаем цвет пикселя в этой точке
            screen = QtWidgets.QApplication.primaryScreen()
            pixel_color = screen.grabWindow(0).toImage().pixel(point_below.x(), point_below.y())
            color = QtGui.QColor(pixel_color)
    
            # Выводим значения RGB для отладки
            print(f"Color below widget: R={color.red()}, G={color.green()}, B={color.blue()}")
    
            # Вычисляем яркость цвета
            brightness = (color.red() * 299 + color.green() * 587 + color.blue() * 114) / 1000
    
            # Устанавливаем цвет текста в зависимости от яркости
            if brightness < 128:  # Темный фон
                self.label.setStyleSheet("color: white; font-size: 48px;")
            else:  # Светлый фон
                self.label.setStyleSheet("color: black; font-size: 48px;")
    
        def paintEvent(self, event):
            # Рисуем прозрачный фон
            painter = QtGui.QPainter(self)
            painter.setRenderHint(QtGui.QPainter.Antialiasing)
            painter.setBrush(QtGui.QColor(0, 0, 0, 0))
    
        def mousePressEvent(self, event):
            if event.button() == QtCore.Qt.LeftButton:
                self.dragging = True
                self.drag_position = event.globalPos() - self.frameGeometry().topLeft()
    
        def mouseMoveEvent(self, event):
            if self.dragging:
                self.move(event.globalPos() - self.drag_position)
    
        def mouseReleaseEvent(self, event):
            if event.button() == QtCore.Qt.LeftButton:
                self.dragging = False
    
    
    if __name__ == '__main__':
        app = QtWidgets.QApplication(sys.argv)
        clock = ClockWidget()
        clock.show()
        sys.exit(app.exec_())


    673d462f556b5211575721.png
    Ответ написан
    2 комментария
  • Windows 7. Где могут прятаться 35 ГБ?

    @elderl
    "Очистка диска", "Очистить системные файлы".
    Ответ написан
    Комментировать
  • Проблемы с ядром от ИСП РАН?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Возможно. Но будет:

    1) Высокая нагрузка в простое
    2) Характерный свист дросселей
    3) Не работать Wi-Fi
    Ответ написан
    Комментировать
  • Как расшифровать oid полученные через snmpwalk?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Можно через MIB, можно использовать online-сервисы, например https://oidref.com
    Например
    snmpwalk -v 2c -c public corerouter.my.domain
    ...
    iso.3.6.1.2.1.1.1.0 = STRING: "RouterOS CRS309-1G-8S+"
    iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.14988.1
    ...

    Получим описание интересующего OID'а. Естественно, предварительно надо установить пакет со стандартными MIB'ами, в Ubuntu это snmp-mibs-downloader.
    snmptranslate -mALL -Td iso.3.6.1.2.1.1.1.0
    SNMPv2-MIB::sysDescr.0
    sysDescr OBJECT-TYPE
      -- FROM	SNMPv2-MIB, RFC1213-MIB
      -- TEXTUAL CONVENTION DisplayString
      SYNTAX	OCTET STRING (0..255) 
      DISPLAY-HINT	"255a"
      MAX-ACCESS	read-only
      STATUS	current
      DESCRIPTION	"A textual description of the entity.  This value should
                include the full name and version identification of
                the system's hardware type, software operating-system,
                and networking software."
    ::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) sysDescr(1) 0 }

    snmptranslate -Td -mAll iso.3.6.1.2.1.1.2.0
    SNMPv2-MIB::sysObjectID.0
    sysObjectID OBJECT-TYPE
      -- FROM	SNMPv2-MIB, RFC1213-MIB
      SYNTAX	OBJECT IDENTIFIER
      MAX-ACCESS	read-only
      STATUS	current
      DESCRIPTION	"The vendor's authoritative identification of the
                network management subsystem contained in the entity.
                This value is allocated within the SMI enterprises
                subtree (1.3.6.1.4.1) and provides an easy and
                unambiguous means for determining `what kind of box' is
                being managed.  For example, if vendor `Flintstones,
                Inc.' was assigned the subtree 1.3.6.1.4.1.424242,
                it could assign the identifier 1.3.6.1.4.1.424242.1.1
                to its `Fred Router'."
    ::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) sysObjectID(2) 0 }

    Видим, что у микротика есть ещё свой enterprise-блок с кодом 14988, в котором находятся специфичные для него OID'ы. Если скачать MIB для микротика (в папку ~/.snmp/mibs), то в нём увидим строку
    mikrotik OBJECT IDENTIFIER ::= { enterprises 14988 }
    .
    Получим OID'ы микротика
    snmpwalk -v 2c -c public corerouter.my.domain 1.3.6.1.4.1.14988
    ...
    iso.3.6.1.4.1.14988.1.1.3.100.1.2.17 = STRING: "cpu-temperature"
    iso.3.6.1.4.1.14988.1.1.3.100.1.3.17 = INTEGER: 22
    iso.3.6.1.4.1.14988.1.1.3.100.1.4.17 = INTEGER: 1
    ...

    snmptranslate -mAll iso.3.6.1.4.1.14988.1.1.3.100.1.2.17
    MIKROTIK-MIB::mtxrGaugeName.17
    
    snmptranslate -mAll iso.3.6.1.4.1.14988.1.1.3.100.1.3.17
    MIKROTIK-MIB::mtxrGaugeValue.17
    
    snmptranslate -Td -mAll iso.3.6.1.4.1.14988.1.1.3.100.1.4.17
    MIKROTIK-MIB::mtxrGaugeUnit.17
    mtxrGaugeUnit OBJECT-TYPE
      -- FROM	MIKROTIK-MIB
      SYNTAX	INTEGER {celsius(1), rpm(2), dV(3), dA(4), dW(5), status(6)} 
      MAX-ACCESS	read-only
      STATUS	current
      DESCRIPTION	"units"
    ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) mikrotik(14988) mikrotikExperimentalModule(1) mtXRouterOs(1) mtxrHealth(3) mtxrGaugeTable(100) mtxrGaugeTableEntry(1) mtxrGaugeUnit(4) 17 }

    Видим, что под OID'ом 1.3.6.1.4.1.14988.1.1.3.100.1.3.17 находится температура процессора (mtxrGaugeName = cpu-temperature) в градусах цельсия (mtxrGaugeUnit = 1) и сейчас она равна 22 градусам (mtxrGaugeValue = 22).

    P.S. И да, snmpwalk умеет подключать MIB'ы:
    snmpwalk -v 2c -c public -m MIB:ALL corerouter.my.domain 1.3.6.1.4.1.14988
    ...
    MIKROTIK-MIB::mtxrGaugeName.17 = STRING: cpu-temperature
    MIKROTIK-MIB::mtxrGaugeValue.17 = INTEGER: 23
    MIKROTIK-MIB::mtxrGaugeUnit.17 = INTEGER: celsius(1)
    ...

    или с полными OID'ами:
    snmpwalk -v 2c -c public -m MIB:ALL -O f corerouter.my.domain 1.3.6.1.4.1.14988
    ...
    .iso.org.dod.internet.private.enterprises.mikrotik.mikrotikExperimentalModule.mtXRouterOs.mtxrHealth.mtxrGaugeTable.mtxrGaugeTableEntry.mtxrGaugeName.17 = STRING: cpu-temperature
    .iso.org.dod.internet.private.enterprises.mikrotik.mikrotikExperimentalModule.mtXRouterOs.mtxrHealth.mtxrGaugeTable.mtxrGaugeTableEntry.mtxrGaugeValue.17 = INTEGER: 22
    .iso.org.dod.internet.private.enterprises.mikrotik.mikrotikExperimentalModule.mtXRouterOs.mtxrHealth.mtxrGaugeTable.mtxrGaugeTableEntry.mtxrGaugeUnit.17 = INTEGER: celsius(1)
    ...
    Ответ написан
    2 комментария
  • Нужно ли ехать в Москву подписывать документы, если устраиваешься на удаленку из региона?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Мне присылали документы - я их подписывал, отправлял скан по почте, а после оригинал через курьера.
    Также могут (скорее всего) с курьером отправить пачку дополнительных документов (NDA, поздравление и т.д.).
    Ответ написан
    Комментировать
  • Как в простом блокноте сделать текст жирным?

    @galaxy
    Словно в пустом участке есть нечто, превращающее строку в жирную

    Это нечто в данном случае - юникодный символ 'WORD JOINER' (U+2060).
    Он не превращает строку в жирную, а меняет отображение шрифта в данной строке. Как именно меняет, зависит от используемого шрифта - может и не менять вовсе (судя по всему, меняет только в том случае, если шрифт не поддерживает этот символ).
    Почему это происходит - а хз, честно говоря. Какая-то бага, связанная то ли с лигатурами, то ли с юникодными символами-модификаторами, причем, судя по всему, бага в Windows GDI или в стандартных контролах типа RichEdit (в Notepad++, например, тоже проявляется).
    Ответ написан
    1 комментарий
  • Как быстро и легко зашифровать трафик?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Ответ написан
    Комментировать
  • Как в Linux найти файлы одинакового размера?

    pickHabr
    @pickHabr
    Костыльных дел мастер
    https://linuxconfig.org/how-to-use-find-command-to...

    upd

    https://stackoverflow.com/questions/7541616/how-to...
    ls -l|grep '^-'|awk '{if(a[$5]){ a[$5]=a[$5]"\n"$NF; b[$5]++;} else a[$5]=$NF} END{for(x in b)print a[x];}'


    upd 2
    этот код выведет файлы с одинаковым размером, смотри рекурсивно от текущей папки и отображает вес файла
    ls -lR | grep '^-' | awk '{
        f = ""; 
        if (NF > 9) 
            for (i = 9; i <= NF; i++) 
                f = f ? f" "$i : $i; 
        else 
            f = $9;
        
        if (a[$5]) { 
            a[$5] = a[$5]"\n"$5" "f; 
            b[$5]++; 
        } else { 
            a[$5] = $5" "f 
        }
    } 
    END { 
        for (x in b) 
            print a[x]; 
    }'


    upd 3
    а тебе вот прям нужен баш? можно на питоне скрипт сделать
    Ответ написан
    7 комментариев
  • Назначение жёстких дисков Seagate?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Зачем нужны HDD Seagate SkyHawk (видео)

    Именно для него, родимого, и нужны.
    По словам Сигейт, Скайхок оптимизированы для записи (90% и выше), в т.ч. для записи 24/7. С учётом того, как работают видеорегистраторы, они наверняка имеют в виду последовательную запись. При этом ничего не говорится про чтение и смешанные нагрузки.

    В целом основные отличия между подобными сериями часто заключаются в микрокоде ("прошивке"), которая тюнингуется под задачи, в данном случае, систем видеонаблюдения.

    Это подтверждает и документация: SkyHawk имеют определённое сходство с дисками для крупных систем хранения с точки зрения того, что они пытаются обрабатывать ошибки в течение ограниченного количества времени. Т.е. быстро отдать хоть что-то и минимизировать общую потерю кадров для них важнее, чем попытаться провести максимально полную коррекцию и отдать данные без ошибок:

    ImagePerfect supports the ATA-8 Streaming command set and allows a host to request delivery of data within an allotted time; it places a priority on a time to transfer the data, rather than the integrity of the data.
    In addition, the ATA-8 Streaming command set is optimized to handle large sequential block transfers.

    Internal and background operations of SkyHawk HDDs with ImagePerfect are interruptible and scheduled such that they do not hold up any requests from the host. Command completion times (CCT) are kept low to minimize any host buffer overruns or underruns.


    Можно ли HDD SkyHawk использовать в NAS?

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

    Главное - не берите Seagate SkyHawk Lite/Mini, они SMR.

    Если же есть необходимость купить именно Сигейт и есть возможность выбирать, то думаю, что лучше всего будет взять Exos.
    Ответ написан
    Комментировать
  • PythonMagick tkinter?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Если выдает непонятно что, то надо где-то что-нибудь исправить на кое-что и потом нажать на что попало.
    Ответ написан
    Комментировать
  • Почему zabbix не может обновить значения в БД после миграции?

    Bermut
    @Bermut Автор вопроса
    Жертва домашней лаборатории
    В общем, пришло ко мне утром озарение.
    Во первых, ошибка, представленная мною, говорит о том, что сервер не может получить метрики с хоста, и не более того, она не значит о том, что есть проблема с подключением к psql БД, я не правильно трактовал лог.
    Второе, zabbix сервер и zabbix web - разные сущности, и второй самостоятельно подключается к бд, и по факту независит от zabbix сервера напрямую, к чему я клоню, есть файл /etc/zabbix/web/zabbix.conf.php, это и есть файл конфигурации zabbix web, и там тоже необходимо было поменять адрес БД сервера с локалхоста на адрес собственно БД сервера, после этого корректные данные стали отображатся в webgui zabbix.
    Ответ написан
    Комментировать
  • Может ли быть причиной сужения ШПП слабый проц на ONU провайдера в режиме pass-throught при проходящем через него ip-ip трафике?

    ValdikSS
    @ValdikSS
    Может быть ONU как-им то образом различает что трафик ip-ip и не справляется с ним, даже если он в режиме pass-through?
    Да, скорее всего, причина в этом: почти все бюджетные скоростные маршрутизаторы не могут маршрутизировать трафик на процессоре в полную скорость, перекладывая эту задачу на специализированную аппаратную подсистему после начальной обработки соединения. Аппаратные подсистемы, как правило, ускоряют только TCP и UDP.

    IPIP — протокол уровня L3, он не использует TCP или UDP, поэтому не ускоряется аппаратно.

    Попробуйте GRE-туннель, быть может, он будет ускоряться аппаратно из-за его применения в PPTP, есть шанс, что чип его поддерживает.
    Либо же сделайте туннель поверх UDP. В Linux можно обернуть IPIP или GRE в UDP с помощью fou и gue.
    Ответ написан
    1 комментарий
  • Подойдут ди друг другу кабель 6 категории и компьютерная розетка категории 5е?

    @Drno
    Могут не подойти жилы по толщине, для расключения розеток. в идеале бы проверить - взять кусок кабеля в магазин, где розетки.
    Ответ написан
    Комментировать
  • Можно ли отключить подсветку мыши Aceline GS Rage 100 White?

    @psiklop
    Заведи для мышки одеялко на ночь. Черная салфеточка в самый раз. Будет о ком заботиться на старости лет.
    Ответ написан
    1 комментарий
  • Ленты LTO: записаны в одной программе, можно ли прочитать другой?

    @SunTechnik
    Разный софт пишет в разных форматах, может писать с разным размером блока.
    Софт бэкапа может иметь отдельную базу на диске, где пишет на какую ленту что когда писал.

    Поэтому чужим софтом бэкапа данные не прочитать.

    Конкретно HP Data Protector Express работает только с устройствами HP.
    https://support.hpe.com/hpesc/public/docDisplay?do...

    Под Windows набор собственных утилит работы с лентой крайне ограничен.

    В теории, можно пытаться найти описание формата, который использует HP Data Protector,
    Но если стоит задача восстановиться в предсказуем сроки, я бы начал с поиска устройства. Тем более, LTO-3 должен стоить не очень дорого...
    Ответ написан
    Комментировать
  • Как увидеть мой SSD при установке Astra Linux?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Раз "в организации программирование идёт на Astra Linux", обратитесь в поддержку Астры - пусть пошевелят своими шильдикопереклеивающими булками.
    Ответ написан
    Комментировать
  • Как работать с удаленными агентами Zabbix за NAT?

    @dobromin
    Для этого используй zabbix proxy в филиале B. Все остальное костыли. Или объедини филиалы VPN-ом хотя бы для трафика zabbix агентов.
    Ответ написан
    1 комментарий
  • Можно ли как-то сбросить или узнать пароль администратора в рабочей сети windows?

    @SunTechnik
    Странная ситуация.
    Но если у Вас системный администатор ушел со скандалом, то первое что надо делать - менять пароли, как минимум на пограничном оборудовании, желательно - сменить все пароли.
    И убедиться что у Вас настроено и работает резервное копирование...
    Ответ написан
    2 комментария
  • Как сделать генератор с нуля (где искать учебный материал)?

    @pfg21
    ex-турист
    для начала
    электрические машины стандартный курс технического универа
    любой, но полностью :) это база, она идентична. отличия лишь в авторском стиле.
    далее набравшись знаний - ставишь следующий вопрос.

    короткозамкнутый ротор используется в асинхронных 3-фазном двигателе.
    короткозамкнутый виток используется в однофазном двигателе с экранированным полюсом.
    их тоже можно использовать как генератор, но необходимо реактивные составляющие в нагрузке (емкостная емнип) для самовозбуждения тока.
    Ответ написан
    Комментировать