И это всё МОЁ

Есть отрезок A-vec2,B-vec2 с шириной width , есть координаты точки C-vec2. Надо узнать содержит ли отрезок эту точку.


Можно, вот так



bool ui_line_contains_point_point(vec2 start, vec2 end,float width, vec2 point)
{
float m = (end.y - start.y) / (end.x - start.x);
float b = start.y - m * start.x;
return (fabs(point.y - (m*point.x+b)) < (width / 100)); // epsilon
}


A-vec2 и B-vec2 всегда положительны, B-vec2 может быть меньше A-vec2.


Всё хорошо, но вот если точка C-vec2 как бы с лева или с права от отрезка и явно не входит в отрезок
то всё равно определяется что отрезок содержит точку, я чёт не могу допетрить что я делаю не так, туплю =)


Как можно по другому (желательно максимально быстро) рассчитать?


P.S. Попрошу без математических формул, я в них не разбираюсь, псевдокодом или просто советом









 , , ,








И это всё МОЁ

С кораблей ещё не стреляют?









 








И это всё МОЁ

Зашел в Manage Storage Spaces, кликнул на Create Pool, выбрал два диска по терабайту, выбрал этот тип:


Simple (Простой) – простой тип организации дискового пространства, в котором хранимая информация распределяется по всем жестким дискам в пуле последовательно, а общая емкость пространства равна сумме емкостей составляющих дисков. По сути является аналогом  RAID 0, улучшает скорость работы с данными и файлами больших размеров, отказоустойчивости не обеспечивает.


Далее:


$ yay -S ldmtool
$ ldmtool scan
[
]

$ ldmtool create all
[
]


Вопрос: а должен ли он вообще видеть эти диски?









 , ,








И это всё МОЁ

Итак, есть юнит. Если я его активирую, то система перестает прогружаться.

Вот его содержание:

[Unit]
Description=do somphine

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/bash -c '/opt/scripts/somscript.sh'
ExecStop=/bin/killall somscript.sh

[Install]
WantedBy=multi-user.target

ЧАДНТ?








 








И это всё МОЁ

Всем пис, уважаемые!

Имею ноут жены с Linux Mint 19 XFCE на борту, ФМ - Thunar. Возникла какая-то лабуда с автомонтированием всех флешек под учеткой юзера (mir, uid=1000). Возможно, сбой питания. При подключении, флехи автомонтируются с правами root и... открываются в mousepad. Записать юзер «mir» на них не может. В виде эксперимента создал вторую учётку «temp», вошёл, воткнул флеху и спокойно записал файлы. Пробовал менять uid для «mir» на 1005 - не помогло.

Помогите вычислить проблему, в том числе с открыванием в блокноте флешки. Спасибо!








 , ,








И это всё МОЁ

Чего делаю:


qemu-system-x86_64 -cdrom ~/path/to/image.iso -hda /dev/sdb


Ставлю систему. Перезагружаюсь, после grub - попадаю в initramfs busybox.


С виндой трюк - прокатывал. Подозреваю, что дело в uuid дисков, но детальней - непонятно.









 , , , ,








И это всё МОЁ

Кто знает как подменять мак-адрес на Lineage OS, в идеале так чтобы при каждом подключении к точке доступа WI FI мак-адрес был всегда новый и назначение мак-адреса происходило рандомно? Пробовал разные варианты, использовал проприетарную программу Change My MAC которая не меняла мак. Гуглил как можно вписывать любой мак-адрес в всякие конфигурационные файлы, но мак тоже не менялся. Естественно, все эти операции проводилилсь с root правами на смартфоне, но подменить мак на Lineage OS мне еще ни разу не удалось. Прошу поделитесь знаниями как подменять мак именно на Lineage OS.








 , ,








И это всё МОЁ

Это просто какой-то треш и угар!

Прикупил я тут намедни UHD монитор с 162 DPI. Подключил, всё хорошо, только мелко! Ну, первым делом я полез в настройки KDE и выставил там для шрифтов принудительно DPI=168, а в консоли поставил шрифт 24 размера. Всё хорошо, даже firefox кажет как надо, но sddm всё мельчит, нехорошо. Убрал переопределение DPIв KDE. Пошёл в xorg.conf, написал там

Section "Screen"
Identifier "MainScreen"
Monitor "Monitor-UHD"
Device "AMD"
EndSection

Section "Monitor"
Identifier "Monitor-UHD"
Option "DPMS"
DisplaySize 600 340
EndSection

Section "Device"
Identifier "AMD"
Driver "amdgpu"
Option "VariableRefresh" "true"
EndSection

Чтоб ещё и FreeSync попробовать. А то ведь генточка, ядро последнее, меса последняя, карточка RX580, и даже подключено всё по DP.

Иксы запустились, и даже в логе указан верный DPI. Но вот все буквы всё равно мелкие, и xdpyinfo пишет resolution: 96x96 dots per inch. Как так то?

Прокрасноглазив до двух ночи, я выяснил, что если в написать в секции Device явное указание на порт к которому подключён монитор (Option «Monitor-DisplayPort-1» «Monitor-UHD»;), то всё становится как надо.

Ну, почти. Собака firefox так оставляет шрифты маленькими. Прокрасноглазив до утра я выяснил, что нехороший GTK3 не хочет использовать DPI системы, а ставит по умолчанию 96! Пришлось в ~/.Xresources прописывать Xty.dpi: 162! И это в 2019 году! Ужас!

Победив DPI я пошёл смотреть что же там с Freesync и вообще с графикой. xrandr сказал что vrr_capable: 1. И на глаз вроде как всё хорошо. И даже всякие бенчмарки от Unigine запускаются и работают в 4К разрешении. Но вот в работоспособности приложений vulkan у меня закрались сомнения. Ни Serious Sam ни The Thalos Principle не запустились, только чёрный экран.

Так вот я что спросить то хотел: как проверить FreeSync и работу Vulkan приложений?








 , , ,








И это всё МОЁ

Каким дистрибутивом заставить летать старенький asus с процессором intel core i3 cpu m350 2.27GHz 2гб ОЗУ модель x8ej








 








И это всё МОЁ

приветствую товарищи! собственно такой вопрос! занимаюсь я ремонтом телефонов/планшетов, часто сталкиваюсь с перепрошивкой ПО. но есть бяда! бяда эта связанна с драйверами многих устройств! ооочень зачастую дэбианчик не понимает что ему пихают в USB-разъём. подскажите какие варианты рассмотреть! вариант перехлда на винду не рассматривается)) хихи. получаестся все программы прошивальщики стоят, а сделать с ними ничего не могу!








 , ,








И это всё МОЁ

Как запустить приложение на определённом рабочем месте, но не переключаться на это рабочее место?


Т. е. находясь в workspace 1 запустить приложение в workspace 5, оставаясь в workspace 1.


Требование — приложение должно вызываться горячей клавишей, т. е. вариант no_focus для всего класса окон не годится.









 








И это всё МОЁ

здравствуйте допустим добавляю принципала командой

kadmin add_principal -pw "12345678" [email protected]

из под пользователя root который получил билет tgt администратора с помощью kinit.
Но проблема в том что команда требует пароль администратора.
Как то можно сделать чтобы команда не брала пароль администратора( или проходила аутентификацию по keytab файлу)?








 








И это всё МОЁ

На подходе исправление одного из главных недостатков человека – отсутсвие хвоста.

Японцы дают ответ Boston Dinamics. Они сделали прицепляющийся хвост, способный двигаться в восьми направлениях. Принцип во многом взят с морских коньков.

По задумке это должно помогать сохранять баланс.

Прототип покажут на выставке SIGGRAPH 2019, которая стартует уже завтра.

https://www.youtube.com/watch?v=Tr1-IhEhXYQ








 








И это всё МОЁ

Вопрос, у всех на ядре версии 5.2 не работает вывод звука по hdmi/displayport с видеокарт amd с драйвером amdgpu.
Заметил, что на моём radeon rx560 c ядром 5.2.3 на archlinux звукавуха видеокарты перестала отображаться в списке устройств команды pacmd, звук на монитор не выводится.
При этом в настройках мультимедиа KDE карта отображается, но доступен только профиль «выключено»

При этом на lts ядре 4.9 всё нормально и звук по hdmi/displayport выводится, карта отображается в выхлопе pacmd.

На всякий случай завёл баг https://bugs.archlinux.org/task/63293?project=1&order=dateopened&sort=desc








 , ,








И это всё МОЁ

Здравствуйте! Имеется Ubuntu 16.04 и VPN-сервер: XL2TPD PPP IPSec Libreswan Samba (папка с общим доступом находится на сервере Ubuntu).
Уже один раз меня хакали. Не хочу, чтобы впредь это повторялось.
Как грамотно прописать правила для iptables, чтобы не было открытого прямого доступа?

Я сделал так (/etc/iptables/rules.v4):

# eth0 подключен к интернету.
# eth1 подключен к частной подсети.

# Внешний интерфейс сервера
IF_EXT="ens3"

# Внутренние интерфейсы (обслуживающие ВПН-клиентов)
IF_INT="ppp+"

# Сеть, адреса из которой будут получать ВПН-клиенты
NET_INT="112.128.72.0/24"

LOOP="127.0.0.1"


*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s ${NET_INT} -o eth0 -j MASQUERADE
-t nat -A POSTROUTING -s ${NET_INT} -j MASQUERADE -o ${IF_EXT}
-t nat -A POSTROUTING -o eth0 -s ${NET_INT} -j MASQUERADE
COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

#
-A INPUT -p udp -m udp --dport 1701 -m policy --dir in --pol none -j DROP
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m multiport --dports 500,4500 -j ACCEPT
-A INPUT -p udp -m udp --dport 1701 -m policy --dir in --pol ipsec -j ACCEPT
-A INPUT -p udp -m udp --dport 1701 -j DROP
-A FORWARD -m conntrack --ctstate INVALID -j DROP
-A FORWARD -i eth0 -o ${IF_INT} -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ${IF_INT} -o eth0 -j ACCEPT
-A FORWARD -s ${NET_INT} -d ${NET_INT} -i ${IF_INT} -o ${IF_INT} -j ACCEPT
-A FORWARD -j DROP


# Разрешаем весь трафик на петлевом интерфейсе
-A INPUT -i lo -j ACCEPT

# Запретить внешним пакетам использовать петлевой адрес
-A INPUT -i eth0 -s ${LOOP} -j DROP
-A FORWARD -i eth0 -s ${LOOP} -j DROP
-A INPUT -i eth0 -d ${LOOP} -j DROP
-A FORWARD -i eth0 -d ${LOOP} -j DROP

# Все, что приходит из Интернета, должно иметь настоящий интернет-адрес
-A FORWARD -i eth0 -s 192.168.0.0/16 -j DROP
-A FORWARD -i eth0 -s 172.16.0.0/12 -j DROP
-A FORWARD -i eth0 -s 10.0.0.0/8 -j DROP
-A INPUT -i eth0 -s 192.168.0.0/16 -j DROP
-A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
-A INPUT -i eth0 -s 10.0.0.0/8 -j DROP

# Разрешаем всё для ВПН-клиентов
-A INPUT -i ${IF_INT} -s ${NET_INT} -j ACCEPT


# Разрешаем входящие соединения к L2TP
# Но только с шифрованием!
-A INPUT -p udp -m policy --dir in --pol ipsec -m udp --dport 1701 -j ACCEPT

# Разрешаем IPSec
-A INPUT -p esp -j ACCEPT
-A INPUT -p ah -j ACCEPT
-A INPUT -p udp --dport 500 -j ACCEPT
-A INPUT -p udp --dport 4500 -j ACCEPT

# Разрешаем доступ к серверу по SSH
-A INPUT -m tcp -p tcp --dport 2002 -j ACCEPT


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

# NAT для локальной сети (ВПН-клиентов)
-A FORWARD -i ${IF_INT} -o ${IF_EXT} -s ${NET_INT} -j ACCEPT
-A FORWARD -i ${IF_EXT} -o ${IF_INT} -d ${NET_INT} -m state --state RELATED,ESTABLISHED -j ACCEPT

# Блокировать исходящие NetBios (если у вас запущены машины с Windows
# в частной подсети). Это не повлияет на NetBios
# трафик, который проходит через VPN-туннель, но он остановится
# локальные машины Windows от вещания себя
# интернет.
-A FORWARD -p tcp --sport 137:139 -o eth0 -j DROP
-A FORWARD -p udp --sport 137:139 -o eth0 -j DROP
-A OUTPUT -p tcp --sport 137:139 -o eth0 -j DROP
-A OUTPUT -p udp --sport 137:139 -o eth0 -j DROP

# Проверка правильности адреса источника на пакетах, выходящих в интернет
-A FORWARD -s ! ${NET_INT} -i eth1 -j DROP

# Разрешить локальную петлю
-A INPUT -s ${LOOP} -j ACCEPT
-A INPUT -d ${LOOP} -j ACCEPT

# Drop входящих эхо-запросов
-A INPUT -p icmp --icmp-type echo-request -j DROP

# Drop пакетов из частных подсетей
-A INPUT -i eth1 -j DROP
-A FORWARD -i eth1 -j DROP

# Сохранять состояние соединений из локальной машины и частных подсетей
-A OUTPUT -m state --state NEW -o eth0 -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -m state --state NEW -o eth0 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Самба ВКЛ
-A INPUT -p tcp -m tcp --dport 445 –s ${NET_INT} -j ACCEPT
-A INPUT -p tcp -m tcp --dport 139 –s ${NET_INT} -j ACCEPT
-A INPUT -p udp -m udp --dport 137 –s ${NET_INT} -j ACCEPT
-A INPUT -p udp -m udp --dport 138 –s ${NET_INT} -j ACCEPT

-A INPUT -i eth0 -s ${NET_INT} -p udp --dport 137:138 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -d ${NET_INT} -p udp --sport 137:138 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -s ${NET_INT} -p tcp --dport 139 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -d ${NET_INT} -p tcp --sport 139 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -d ${NET_INT} -p udp --sport 445 -m state --state ESTABLISHED -j ACCEPT

-I INPUT -i eth0 -p tcp --dport 137 -j DROP
-I INPUT -i eth0 -p tcp --dport 138 -j DROP
-I INPUT -i eth0 -p tcp --dport 139 -j DROP
-I INPUT -i eth0 -p tcp --dport 445 -j DROP
-I INPUT -i eth0 -p tcp --dport 1701 -j DROP

COMMIT

Подскажите, пожалуйста, всё ли правильно у меня написано?








 , , , ,








И это всё МОЁ

Нужно чтобы lxd контейнеры были доступны в локальной сети создаваемой роутером. К wifi подключен через wlp1s0

 ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 18:31:bf:72:cf:91 brd ff:ff:ff:ff:ff:ff
3: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 80:c5:f2:22:bf:79 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.103/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp1s0
valid_lft 55372sec preferred_lft 55372sec
inet6 fe80::bfc8:6ee2:4c66:f9c7/64 scope link noprefixroute
valid_lft forever preferred_lft forever
44: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
link/none
inet 192.168.228.147/22 brd 192.168.231.255 scope global noprefixroute tun0
valid_lft forever preferred_lft forever
inet6 fe80::b355:9fa3:51bc:443/64 scope link stable-privacy
valid_lft forever preferred_lft forever
65: lxdbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 8e:19:7c:da:a5:38 brd ff:ff:ff:ff:ff:ff
inet 10.54.204.1/24 scope global lxdbr0
valid_lft forever preferred_lft forever
inet6 fd42:f52c:5ea4:5996::1/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::8c19:7cff:feda:a538/64 scope link
valid_lft forever preferred_lft forever
67: vethM867TD@if66: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master lxdbr0 state UP group default qlen 1000
link/ether fe:06:b3:e3:46:84 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::fc06:b3ff:fee3:4684/64 scope link
valid_lft forever preferred_lft forever

Мост создан
nmcli c add type bridge ifname br0 stp no

Замена enp30s0 на wlp1s0 к требуемому результату не приводи, очевидно требуется что-то иное
nmcli c add type bridge-slave ifname enp30s0 master br0








 , , ,








И это всё МОЁ

Всем привет. Подскажите сломал всю голову уже.


Есть сервак на Ubuntu на нем VPN PPTP. Все работает отлично, но… возникла задача пробросить порт локальной машины на Windows 10 чтобы можно к ней на 3389 по RDP подключится.


ip сервака 94.103.91.207
ip локалки при создании тунеля 10.0.0.10


на локалке 3389 порт открытый, с другого компа из локалки подключается отлично.


iptables пустые сейчас без правил т.к. кучу всего пробывал почистил их


Выручайте)))



ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 94.103.91.207 netmask 255.255.255.0 broadcast 94.103.91.255
inet6 fe80::5054:ff:fe02:2180 prefixlen 64 scopeid 0x20<link>
ether 52:54:00:02:21:80 txqueuelen 1000 (Ethernet)
RX packets 22235 bytes 1733990 (1.7 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15888 bytes 1085247 (1.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 250 bytes 21996 (21.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 250 bytes 21996 (21.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0










 ,








И это всё МОЁ

Устанавливал моно по инструкции.
Вылетела ошибка во время установки. Решил все снести, теперь остались два пакета и не удаляются.

sudo apt-get purge libgtk2.0-cil

Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Следующие пакеты будут УДАЛЕНЫ:
libglib2.0-cil libgtk2.0-cil
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 2 пакетов, и 0 пакетов не обновлено.
Установлено или удалено не до конца 2 пакетов.
После данной операции объём занятого дискового пространства уменьшится на 2.729 kB.
Хотите продолжить? [Д/н] y
(Чтение базы данных … на данный момент установлено 419677 файлов и каталогов.)
Удаляется libgtk2.0-cil (2.12.45-0xamarin17+ubuntu1804b1) …
rm: cannot remove '/usr/share/cli-common/packages.d/policy.2.8.gtk-sharp.installcligac': No such file or directory
dpkg: ошибка при обработке пакета libgtk2.0-cil (--remove):
installed libgtk2.0-cil package post-removal sсript subprocess returned error exit status 1
Удаляется libglib2.0-cil (2.12.45-0xamarin17+ubuntu1804b1) …
rm: cannot remove '/usr/share/cli-common/packages.d/policy.2.10.glib-sharp.installcligac': No such file or directory
dpkg: ошибка при обработке пакета libglib2.0-cil (--remove):
installed libglib2.0-cil package post-removal sсript subprocess returned error exit status 1
При обработке следующих пакетов произошли ошибки:
libgtk2.0-cil
libglib2.0-cil
E: Sub-process /usr/bin/dpkg returned an error code (1)

Перепробовал все рекомендуемые способы:

sudo apt --fix-broken purge

sudo apt-get autoremove

sudo dpkg --configure -a

sudo dpkg --purge --force-all libgtk2.0-cil








 , ,








И это всё МОЁ
Нашлась группа энтузиастов, подхвативших разработку дистрибутива Antergos, развитие которого было прекращено в мае из-за нехватки у оставшихся мэйнтейнеров свободного времени для поддержания проекта на должном уровне. Развитие Antergos будет продолжено новой командой разработчиков под именем Endeavour OS.



И это всё МОЁ

Чтобы все пакеты, которые я собрал из сорцов для i486 были преобразованы в подобие deb пакетов и были готовы к быстрой установке как в Calculate Linux.

Т.е. от Calculate такия отличия:

1) Работает на i586 и даже частично на i486.

2) Только нужные мне пакеты для текстовой консольки и серверов.

3) Вероятность того, что в собранные бинари добавлены трояны ниже, чем в непроверенных бинарниках.

Даже Gentoo до выдачи им Nitrokey брелков была взломана, ведь так?

Это конечно не отменяет возможность взломать меня и подсунуть трояногенератор в мой emerge.








 , ,