LINUX.ORG.RU

Избранные сообщения serg002

Whatsapp в эмуляторе на десктопе

Форум — Desktop

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

Сам по себе десктоп клиент ватсапа в любом случае требует зондофон и без него зарегать и использовать аккаунт не получится ведь ?

 , , ,

BLOBster
()

Оцените безопасность iptables конфига

Форум — Admin

Прошу помощи, чтобы оценить безопасность и правильность настройки моего iptables. Нужно настроить по принципу: «Запрещено все, кроме необходимого минимума». Есть ли косяки?

Полное содержание файла /etc/sysconfig/iptables:

*filter

:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [5881:2975599]

# Открываем нестандартный порт для SSH:
-A INPUT -p tcp --dport 25243 -j ACCEPT

# Разрешаем localhost и локалку:
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

# Блокируем некоторые виды атак:
-A INPUT -p tcp ! --syn -m state --state NEW -j DROP
-A INPUT -p tcp --tcp-flags ALL NONE -j DROP
-A INPUT -p tcp --tcp-flags ALL ALL -j DROP

# Разрешаем установленные входящие соединения:
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Открываем порты для вебсервера:
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

# Разрешаем NTP соединения:
-A INPUT -p udp --dport 123 -j ACCEPT

# Разрешаем DNS запросы:
-A INPUT -p udp --dport 53 -j ACCEPT
-A INPUT -p tcp --dport 53 -j ACCEPT

# Разрешаем пинги:
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# Разрешаем соединения OpenVPN
-A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT

# Разрешаем использовать прокси Squid только с определенных адресов
-A INPUT -s 10.0.144.6/32 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -s 10.0.144.8/32 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -s 10.0.144.10/32 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -s 10.0.144.12/32 -p tcp -m tcp --dport 3128 -j ACCEPT

# Запрещаем все, что не разрешено:
-P INPUT DROP
-P OUTPUT ACCEPT
-P FORWARD DROP

COMMIT

 

Virap
()

Ремап буквенной клавиши на Left Win

Форум — Desktop

Перестала нажиматься кнопка «я» на ноуте и теперь, чтобы ее «набрать» приходится копировать символ в буфер обмена и вставлять, что дико медленно и неудобно, особенно в переписке. Пытался переопределить ее на левый Win через xmodmap, а также в /usr/share/X11/xkb/symbols/pc, но все тщетно. Подскажите, есть ли какой-то способ это сделать? Manjaro XFCE.

 , ,

Man-o-Jar
()

Как сделать тонкий системный шрифт в Дебиане ?

Форум — Desktop

До обновления на Debian 10 я решал это проблему установив mscorefonts. Теперь mscorefonts не помогает. Был такой шрифт: http://libreportal.net/images/img/2019-02/13/i3.png А теперь вот такой жирный и нечёткий: http://libreportal.net/images/img/2019-02/13/debian10font.png

 

enalesck
()

yet another tiling window manager: принимаю киллер-фич-реквесты

Форум — Desktop

привет ЛОР, сегодня мы с девушкой договорились встретиться погулять, к слову, у нее два прицепа, она живет с родителями и ругается с ними каждый день, у нее нет работы, она буквально каждый день просит у меня занять ей денег. я уже приготовил всяких вкусняшек ее детям и небольшой подарок ей самой. но она меня продинамила. как и все другие девушки.

только компьютер меня любит, только компьютер меня уважает!

и поэтому я решил запилить тайловый оконный менеджер на чистом FVWM. FvwmRearrange — сила!

Скриншоты:

http://spfng.com/~spoofing/2015-01-16 12:01.png

http://spfng.com/~spoofing/2015-01-16 12:00.png

Напоминает dwm, не так ли? Кому интересно, FVWM-скрипты и хоткеи: Alt + S сделать окно Master'ом (как в dwm); Alt + T и Y это два вида тайлинга.

DestroyFunc FuncDwmTileH
AddToFunc FuncDwmTileH
+ I All (State 31) Move 0 0
+ I All (State 31) Resize frame 66 100
+ I All (State 31) WindowStyle WindowListSkip
+ I UpdateStyles
+ I ModuleSynchronous FvwmRearrange -tile -u -m -s -r -h -noraise 66 0 $[vp.width]p $[vp.height]p
+ I All (State 31) DestroyWindowStyle

DestroyFunc FuncDwmTile
AddToFunc FuncDwmTile
+ I All (State 31) Move 0 0
+ I All (State 31) Resize frame 100 66
+ I All (State 31) WindowStyle WindowListSkip
+ I UpdateStyles
+ I ModuleSynchronous FvwmRearrange -tile -u -m -s -r -noraise 0 66 $[vp.width]p $[vp.height]p
+ I All (State 31) DestroyWindowStyle

DestroyFunc FuncDwmSetMaster
AddToFunc FuncDwmSetMaster
+ I All (State 31) State 31 False
+ I Current (*) State 31 True

Key T A M FuncDwmTileH
Key Y A M FuncDwmTile
Key S A M FuncDwmSetMaster

Реквестирую киллер-фичи по вашему желанию. Чего бы вы хотели видеть в FVWM, если к нему прикрутить человеческий тайлинг?

Например, можно сделать float, vertical-tiling, horizontal-tiling на каждый стол по-отдельности, как в dwm, еще можно сделать его на разных слоях (Layer), еще можно сделать несколько окон Master'ов, еще можно... можно всё. Только скажите чего вы бы хотели видеть в тайловом FVWM.

 , ,

Spoofing
()

Делаю в FVWM аналог комнат KDE

Форум — Desktop

Прочитал про комнаты KDE, фича однозначно полезная, более того, если вы сами можете управлять, какие окна будут заморожены, а какие нет.
Например, у вас ноутбук работает от батареи, в одной комнате играет плеер и запущен браузер, вы переключаетесь на другую комнату, чтобы писать код - браузер замораживается, чтобы не тратить процессорное время, плеер продолжает играть, а текстовый редактор размораживается. Годнота да и только.

Пока только прототип, и работает так, что, когда вы переключаетесь на другое окно (пока что окно, потом будет «другой стол/страница»), и если в данный момент текущее окно содержит название «Firefox», то вызывается функция FuncFvwmProc firefox, которая устанавливает переменную окну (по которой проверяется состояние, заморожено оно или нет), и замораживает/размораживает первым параметром указанный процесс, и только затем уже переключает окно.

DestroyFunc FuncFvwmNextWindow
AddToFunc FuncFvwmNextWindow
+ I Current (Firefox) FuncFvwmProc firefox
+ I Current (Leafpad) FuncFvwmProc leafpad
+ I Next (CurrentPage, !Iconic, CirculateHit, AcceptsFocus) FlipFocus NoWarp
+ I Current Raise

DestroyFunc FuncFvwmPrevWindow
AddToFunc FuncFvwmPrevWindow
+ I Current (Firefox) FuncFvwmProc firefox
+ I Current (Leafpad) FuncFvwmProc leafpad
+ I Prev (CurrentPage, !Iconic, CirculateHit, AcceptsFocus) Focus NoWarp
+ I Current Raise

DestroyFunc FuncFvwmProc
AddToFunc FuncFvwmProc
+ I ThisWindow (State 10) Exec kill -CONT $(pgrep $0)
+ I TestRc (False) Exec kill -STOP $(pgrep $0)
+ I State 10

но, может быть запущено много одинаковых процессов с одинаковым названием окна (как например текстовый редактор Leafpad), и нужно точно определять ID процесса по окну. скорей всего придется воспользоваться какой-нибудь сторонней утилитой, - подскажите, такая существует в природе? :)

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

 , ,

Spoofing
()

/etc/hosts в debian 10 не работает?

Форум — General

редактирую файл /etc/hosts добавляю 127.0.0.1 microsoft.com а в броузерах всеравно открывается. ping microsoft.com отправляет на 127.0.0.1 ЧТЯДНТ?

 

esperantisto
()

Тут Фэйсбук собираются расчленять

Форум — Talks

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

https://www.marketbeat.com/articles/us-govt-states-sue-facebook-for-predatory-conduct-2020-12-09/

 

Avial
()

Сконвертить данные класса Python3 в строку INSERT для Postgree

Форум — Development

Привет, всем! Имеется множество классов Python с типизированными полями.

from datetime import date


class A:
    
    x: int = 1
    y: date = date(2020, 12, 12)
    
    def __init__(self, x:int, y:date):
        self.x = x
        self.y = y
        
    def getX(self) -> int:
        return self.x

    def getY(self) -> date:
       return self.y

    ...


class B:
    z: float = 2.2

...

Можно ли сделать универсальную процедуру (лучше метод базового класса), генерирующую запрос SQL INSERT в стиле psycopg2

query = ("INSERT INTO A (x, y, ...) VALUES (%s, %s, ...)", (a.x, a.y, ...))

Спасибо.

 

scientistpython
()

django две базы

Форум — Development

создал route

class OsmRouter:
    route_app_labels = {'osm'}

    def db_for_read(self, model, **hints):
        if model._meta.app_label in self.route_app_labels:
            return 'osm'
        return None

    def db_for_write(self, model, **hints):
        if model._meta.app_label in self.route_app_labels:
            return 'osm'
        return None

    def allow_relation(self, obj1, obj2, **hints):
        if (
            obj1._meta.app_label in self.route_app_labels or
            obj2._meta.app_label in self.route_app_labels
        ):
           return True
        return None

    def allow_migrate(self, db, app_label, model_name=None, **hints):
        if app_label in self.route_app_labels:
            return db == 'osm'
        return None

Далее вписал в settings.py

DATABASE_ROUTERS = ['apps.route.OsmRouter']

Пробую делать

./manage.py makemigrations
./manage.py migrate(or ./manage.py migrate --database osm)

и получаю:

django.db.utils.OperationalError: FATAL:  database "osm" does not exist

Если создать базу вручную - всё ок, миграция проходит. Но как сделать так, чтобы база osm автоматически создавалась?

 ,

serg002
()

Просто оставлю это здесь: Игра в supertux2 с множественными `tail /dev/zero` в фоне без зависаний

Форум — Desktop

Собственно: https://youtu.be/fPnbnNX9CPE

Система на HDD, Debian 9 Mate, MemTotal=10GB, swap on zram (disksize=14GB). memavaild, prelockd и nohang-desktop работают в фоне и помогают сохранять отзывчивость несмотря ни на что.

https://github.com/hakavlad/nohang

https://github.com/hakavlad/prelockd

https://github.com/hakavlad/memavaild

Кратко: prelockd - новейшее оружие в борьбе за отзывчивость при нехватке памяти.

Спрашивайте ответы.

 

hakavlad
()

Кто возьмется сделать православный мониторинг для dwm?=)

Форум — Development

Появилась мысль сделать кикстартер проект. Сформировать всем месте ТЗ по этому проекту и вложиться деньгами(скажем по $1-2 с человека). По результатам выложить это на suckless, чтобы у всех у нас был хороший гибкий мониторинг. Вообще, такой proj хорош тем, кто хочет поднять свой скилл на си, но если таких не найдется, давайте соберемся шекелями и пусть нам запилят мониторинг

В общем есть у меня скрипт на питоне, который имеет конфиг:

data = {
    'item0':
    {
        'job': 'myout',
        'type': 'system',
        'timeout': 2,
        'state': 'enable',
    },
    'item1':
    {
        'name': '',
        'bracket': '',
        'job': 'internet',
        'type': 'function',
        'timeout': 5,
        'state': 'enable',
        'result': 'UP:LOAD'
    },
    'item2':
    {
        'name': '',
        'bracket': '',
        'job': "weather",
        'type': 'function',
        'timeout': 300,
        'state': 'enable',
        # 'result': '☔:0'
        'result': 'W:0'
    },
    'item4':
    {
        'name': '',
        'bracket': '',
        'job': 'traffic',
        'type': 'function',
        'timeout': 1,
        'state': 'enable',
        'result': 'D:0B    U:0B   '
    },
    'item5':
    {
        'name': '',
        'bracket': '||',
        'job': 'disk',
        'type': 'function',
        'timeout': 60,
        'state': 'enable',
        'result': 'RH:-1,-1,-1'
    },
    'item6':
    {
        'name': '',
        'bracket': '',
        'job': "day",
        'type': 'function',
        'timeout': 15,
        'state': 'enable',
        'result': 'Дн.'
    },
}

Скрипт обходит все item, парсит что это «функция», берет имя функции, и выполняет функцию с указанным таймаутом. Далее пишет информацию в общий массив и отдельный тред берет весь массив и пишет информацию в xsetroot -name. Но в целом всё это я так бы сейчас не написал. Это не православно. Православно как?

делаем конфиг в yml вида:

- item1
   - path: /some/script.py
   - timeout: 15
   - state: enable
   - result: 'UP:LOAD'

Далее в сишке обходим все item, запускаем скрипты с заданным таймаутом и пишем в какой-то общий массив. И с таймаутом 2 секунды запускаем xsetroot и подставляем всю инфу. Таким образом мы можем в мониторинг добавлять свои скрипты хоть на питоне, хоть на луа, хоть на sh и мониторинг будет забирать от них выхлоп. Было бы круто:)

А то некрасиво это:

ps_mem |grep monitoring.py

17.3 MiB + 241.5 KiB =  17.5 MiB       monitoring.py

ps_mem |grep dwm

1.3 MiB + 199.5 KiB =   1.5 MiB       dwm

Сам мониторинг занимает больше памяти, чем wm, лол

Кто возьмётся написать православный monitoring на си для dwm? =)

 , ,

bryak
()