И это всё МОЁ

!Ъ: https://km-optika.ru/linzy-dlya-ochkov/cryol-blue-max-1-61-hmc


Ъ: Принцип действия линз Blue Max тот же, что у широко известных линз Blue Coating. Он основывается на отсечении сине-фиолетового спектра видимого излучения и ультрафиолета. Однако Blue Max изготавливаются с применением более современных технологий, обеспечивающих больший зрительный комфорт и повышенную контрастность изображения без изменения восприятия цветов.




что это за фигня такая, как работает и работает ли?


а то чет какая-то мода опять пошла на это дело.









 








И это всё МОЁ

Установка завершилась неудачей


Boost Python Ouka anawe ’bootloader
Command ‘grub-install –target=x66 64-efi –ah-directory=/boot/efi –bootloader-in Debian –force’ returned
non-zero exit status 1.
Installing for x86 64 el platfom grub install: warning efivars get vanable opent/sys/firmware/efvefivars/blko 47c7b225
c42a 11d2e57 002096972261: No such file or directory grub install: warning efi get variable ops->get variable failed
No such file or directory, grub install warning is apt valid GUID Partition Table Header nature is wrong
be5608740120e852 - 5452415020494645 invalid argument. grub-install warning: is.gpt valid: GUID Partition Table
Header signature is wrong: 0 - 5452415020494645 Invalid argument. grub-install warning:
msdos disk_get extended partition into extended partition info is not supported: Function not implemented grub-install
warning: ms dos disk get partition info: could not get extended partition info: Function not implemented grub-install
warning: get partition info: neither R nor GPT is valid: Function not implemented. grub-install warning make hd dn
could not get partition info Function not implemented grub-instal: waming ef va generate file device path from esp
could not make HDO OP node Function not implemented grub instat warning ef generate file device_path from esp
could not generate File DP from ESP function not implemented grub install: eron failed to register the EFI boot entry
Function not implemented


Traceback


File System


File «/usr/lib/x86 64 Lingharcalamares/nodules/bootloader/main.py» line 444, in run
prepare bootloader(f type
File Yusr/lib/6 64 Linux gnucalamares/modules/bootloader/main.py", line 421, in prepare bootloader
install grub efi directory, w type)


File «/usr/tib/x86 64-Linux-gnu/calanares/nodules/bootloader/main.py». Line 265, in install grub
force 1)


Home


File string line 15. in module


Как поступить? На ПК ставится как система рядом с другой… пока.









 , ,








И это всё МОЁ

Мне нужно сделать миниатюры изображения по заданным в процентах координатам. Чтобы сделать миниатюру из исходного изображения, решил воспользоваться библиотекой sorl-thumbnail.


Не понимаю из документации, как использовать параметр crop у метода get_thumbnail. Допустим, у меня есть изображение размером 1920х1080 пикселей. Я хочу обрезать это изображение по следующим параметрам: 10% сверху, 20% слева, ширина области 40% и высота области 30%. Это проценты от ширины и высоты исходного изображения соответственно.


Какие параметры передать в функцию get_thumbnail, чтобы получить миниатюру выбранной области картинки? Интересует конкретно третий параметр - crop.









 








И это всё МОЁ

Как правильно настроит статичный IP?


Подскажите новичку Linux…









 , ,








И это всё МОЁ

Здравствйуте.


Есть сервер с CentOS7, на нём крутятся seafile сервер, rtorrent, smb сервер. Питается от UPS’a (т.е. используется nut). SElinux отключён.


Часто (процентах в 30 времени) я вижу большую загрузку процессора процессом


/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only


Рядом с ним, обычно, видно ещё


/usr/lib/polkit-1/polkitd --no-debug


Эти два процесса отжирают примерно по 40-60% процессорного времени ядра.


При этом команда dbus-monitor –system сыпит много сообщений такого типа:


signal time=1575273907.567790 sender=org.freedesktop.DBus -> destination=(null destination) serial=11857208 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.76385370"
string ""
string ":1.76385370"
signal time=1575273907.569963 sender=org.freedesktop.DBus -> destination=(null destination) serial=11857209 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.76385370"
string ":1.76385370"
string ""
signal time=1575273907.571829 sender=org.freedesktop.DBus -> destination=(null destination) serial=11857210 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.76385371"
string ""
string ":1.76385371"


Подскажите, пожалуйста, как выяснить что приводит к такой загрузке dbus шины?









 








И это всё МОЁ

I don’t know how but I am unable to login my router setting page. Generally i used to access 192.168.1.1. What should I do?









 








И это всё МОЁ
Доступен новый выпуск свободного пакета для автоматизации проектирования печатных плат LibrePCB 0.1.3. Программа поставляется в сборках для Linux (Flatpak, AppImage), macOS и Windows. Код проекта написан на языке C++ (интерфейс на Qt) и распространяется под лицензией GPLv3.



И это всё МОЁ
Проект Linux-Hardware.org опубликовал статистику оборудования, используемого в Linux за последние 5 лет. В исследовании приняли участие пользователи, загрузившие пробы оборудования за этот период с помощью программы hw-probe. Результаты исследования коррелируют с результатами годичной давности Ubuntu User Statistics от компании Canonical.



И это всё МОЁ

Различия этих подходов.









 








И это всё МОЁ

Здравствуйте,
Установил Windows 7 32bit(конечно пиратку), и она переписала загрузчик(ожидаемо). После чего загрузился с загрузочной флешки с xubuntu и восстановил grub. Но в меню grub виден толь ubuntu и freedos. Хотя сам диск windows со всем содержимым ubuntu видит.
Os-prober установлен. Что делать?
Я новичок, так что пожалуйста по подробнее.









 , ,








И это всё МОЁ

Для тех кто хочет познакомиться с разработкой веба на Raku, товарищ Lilly в ходе Raku Advent'a выложил туториал и исходники. Веб-приложение представляет из себя простое приложение, в котором пользователь может войти в аккаунт, создать, изменить и удалить запись. Как раз то, что нужно для начинающих.

>> Подробности








 , ,








И это всё МОЁ

Задумал поставить на CentOs7 консольный rtorrrent ну и веб морду к нему rutorrent. Поставил, но вот с автоматизацией запуска возникла проблемка. С Systemd я не стал связываться так как седьмой поддерживает всякую загрузку, написал скрипт запуска пускаю его руками с помошью SCREEN, все отлично работает.


строка запуска скрипта:


 daemon /usr/bin/screen -d -m /usr/bin/rtorrent


в процессах вижу:


# ps ax|grep rtorrent
3945 ? Ss 0:00 /usr/bin/SCREEN -d -m /usr/bin/rtorrent
3946 pts/3 Ssl+ 0:07 /usr/bin/rtorrent


Казалось бы Бинго! но не тут то было, добавляю скрипт в загрузку и перегружаюсь, проверяю и вижу все тоже самое:


# ps x|grep rtorrent
1418 ? Ss 0:00 /usr/bin/SCREEN -d -m /usr/bin/rtorrent
1422 pts/1 Ssl+ 0:00 /usr/bin/rtorrent


Но морда упорно не видит rtorrent. делаю stop скриптом и стартую руками, все опять работает. Где я накосячил? Что не понимаю?









 , , , ,








И это всё МОЁ

Допустим перед нами задача по ipc взимодействовать с одним единственным дочерним процессом. Взаимодействие в стиле запрос-родителя-ответ-ребенка, не более.

Но ребенок может вообще ничего не ответить или ответить слишком много, намного превышающим лимит PIPE_BUF (man 7 pipe), поэтому выходом будет процесс чтения защитить таймаутом. Не блокирующее или асинхронное чтение для решения данной проблемы не нужно - достаточно select-а.

Самый простой вариант видится таким:

// k_systemDependetLimitation == PIPE_BUF
struct timeval tv;
tv.tv_sec = k_ipcWaitDataDelay;
tv.tv_usec = 0;

std::string ret;
int returnCode;

while (true) {
if ((returnCode = select(m_istance(client).m_readFromChildProccess[0] + 1,
&m_istance(client).m_readFromChildWait, nullptr, nullptr, &tv)) > 0) {

char rawBuffer[k_bufferLength] = {0};
ssize_t readLegth;
if ((readLegth = read(m_istance(client).m_readFromChildProccess[0], rawBuffer, k_systemDependetLimitation)) > 0) {
ret.append(rawBuffer, rawBuffer + readLegth);
if (readLegth == k_systemDependetLimitation) {
continue;
}
break;
} else {
releaseIpcAndswitchToErrorState(client);
break;
}
} else if (!returnCode) {
FD_ZERO(&m_istance(client).m_readFromChildWait); // reinit for select (see man select)
FD_SET(m_istance(client).m_readFromChildProccess[0], &m_istance(client).m_readFromChildWait);
break;
} else {
releaseIpcAndswitchToErrorState(client);
break;
}
}

По скольку чтение блокирующее мы не можем быть уверены что после readLegth == k_systemDependetLimitation что-то есть или чего-то нет

поэтому тут неизбежно нужно запрашивать select, если что-то есть select сразу же вернёт управление и read опять начнёт читать, если ничего нет - повисит за зря (а что делать?) и вернет управления по таймайту else if (!returnCode).

Если прочли меньше, значит конец чтения.

Но я хотел бы читать больше чем 4096 за раз. Мотивация: не хочу лишние переключения контекста. И вообще хотел бы например использовать select только изначально, и дальше с помощью каких-то техник определять стоит ли запускать read еще или нет, но похоже это не возможно?

Дело в том что читать >4096 сложно. Даже при условии что пишет в канал только один процесс и даже с гарантией что он пишет ровно тогда когда буффер пайпа полностью свободен (родитель все ранее записанное, от прошлого запроса, прочитал).

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

Это можно попытаться отловить:

Например:

//k_bufferLength == 9000
...
if ((readLegth = read(m_istance(client).m_readFromChildProccess[0], rawBuffer, k_bufferLength)) > 0) {
ret.append(rawBuffer, rawBuffer + readLegth);
if (readLegth == k_bufferLength) {
// здесь мы по прежнему ничего не можем сказать о том что больше нечего читать
continue;
}
// если чтение прервано не на границе PIPE_BUF то оно конечно
if (readLegth % k_systemDependetLimitation) {
break;
}
} else {
releaseIpcAndswitchToErrorState(client);
break;
}
}
...

На одних и тех же тестовых запусках над одними и теми же тестовыми данными данный код в подавляющем большинстве случаяв работал, я расчитваю

что может быть прочтено только:

или ==9000 (т.е. 2 полных атомарных цикла записи в пайп и один не атомарный)

или <9000, но не кратный границе 4096 тогда типа явно всё прочитано, потому что типа ядро не прервёт такое, потому что граница атомарности (судя по размеру прочитанного уже пройдена - а значит то что не лежит на такой границе - ядро не прерывает)

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

Но такие выводы, оказались не верны, крайне редко но бывает:

что сначала прочитали 9000, потом вместо например 4132 (что бывает в большинстве случаев и тогда ок)

мы прочитали скажем 3800 - и все - тогда код прерывает чтение, а по факту еще осталось читать (4132-3800 байт).

И так есть ли какой-то красивый способ без дополнтельного вызова select пусть и с минимальными миллисекунндыми таймаутами - определять что ядро все передало что пишет дочерний.

Или таких способов нет, и едиственным способом (чтобы передавать много с минимальным дроблением на итерации (ну т.е. читать не по 4096 а по много)) был бы в начале передчи передавать размер передаваемого данного (чтобы размер укладывался в первые байты передачи) или что еще лучше - просто ввести маркер начала передачи и конца, и пока в принятой последовательности нет маркера конца - читать ещё.

но вот фишка в том что то что отправлят дочерний я менять не могу и там таких маркеров нет :)








 , ,








04:24

лор

И это всё МОЁ
Саахрикту насилует труп, 
Ферман пишет в спецтему доносы.
Лор - чудесный, уютненький клуб
В жопу выебанный альбатросом.







 








И это всё МОЁ

Почему я не могу открыть файл с пользовательским стилем (userChrome.css) через инспектор в Developer Tools (для изменения элементов интерфейса)?


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


(user agent) userChrome.css:номер_строки


Обычно, нажатие на эту надпись переключает на вкладку «Style Editor» и открывает соответствующий файл для редактирования. Но с пользовательскими стилями это не работает. Как будто файл заблокирован.


Но при этом, можно вручную переключиться на вкладку «Style Editor» и без проблем открыть этот файл. Вот только там огромный список css-файлов и найти нужный среди них очень сложно. Задача усложняется отсутствием поискового механизма.









 ,








И это всё МОЁ

Подскажите, пожалуйста, как можно организовать автоматическую перезагрузку роутера на openwrt?
У меня rc.local прописаны команды. Последними тремя командами идут rsync &, sleep 3600 и reboot. Роутер перезагружается через 5 минут после отработки rsync. Пробовал вместо двух команд после rsync писать reboot -d 3600, reboot -d 60m или reboot -d 1h. Эффект одинаковый, ровно через 5 минут после «rsync &» роутер перезагружается. Cron в openwrt не работает, я думаю об этом все в курсе, с кроном перезагрузка впадает в цикл каждые 30 секунд из-за отсутствия батарейки.
Кто может что-нибудь посоветовать? Куда смотреть??? Буду крайне благодарен.









 , ,








И это всё МОЁ

Собственно, в этом и вопрос. Как запретить подключение по telnet при загрузке в безопасном режиме openwrt? Что бы не могли сбросить пароль на роутере. Может кто подскажет?









 ,








И это всё МОЁ

Всем привет!


В результате работы некоторой программы в виртуалке, логи забиваются сообщениями вида


kvm [7408]: vcpu3, guest rIP: 0xfffff8035a5debb3 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop


Сообщения генерируются каждые полсекунды и мешают смотреть логи (ну и место забивают на диске).


Rsyslogd я настроил — больше в /var/log/* эти сообщения не попадают. Но как быть с journald (journalctl) и c dmesg? (про dmesg -D знаю).


Софт: Debian 9, Proxmox 5, KMV (cpu: host, 6 ядер), Windows 2016 в гостевой системе.


Как-нибудь это можно побороть?









 , , , ,








И это всё МОЁ

Установил новую kali сразу с kde запускаю и вижу правая верхняя стандартная для kde кнопка работает только по первому нажатию, потом просто не открывается, темы не работают на половину, виджеты вроде бы темы, а dolphin половина стандартного интерфейса половина sweetkde, часть иконок невидимая, установил kde 2019.3 все работает идеально но после apt-get full-upgrade все сломалось снова, обои слетели кнопка не работает после нажатия, и тд и тп









 , , ,








И это всё МОЁ

В последнее время стало модно ненавидеть Javasсript, ибо он сплошная дыра в безопасности и вообще виновен во всех смертных грехах вебдизайна! Когда разгорается очередной холивар, то аргументы со стороны использующих в основном таковы- мобильность, динамичность и подстройка под пользователя. А аргументы противников- те же дыры в безопасности, потенциальное шпионство (фингерпринт) и навязывание рекламы.

В качестве аналогов предлагают обойтись «чем-нибудь еще», например питоном. Но действительно ли питон это полноценная замена Javasсript? И безопасен ли он для сайтов?

Но гораздо интереснее вот что. Возможно ли использовать Javasсript во благо? Не обязательно же всем быть моральными извращенцами и везде совать в сайты рекламные модули и фингерпринт? Можно же делать и полезные вещи с помощью JS. Или нельзя?








 , , , ,