LINUX.ORG.RU

Сообщения KivApple

 

Найти старый компьютерный журнал

Форум — Talks

Помню много лет назад читал несколько выпусков какого-то журнала про компьютеры. Из примечательных вещей, что там было:

1) Обзор какого-то Linux

2) Описание технических деталей съёмок отечественных фильмов вроде «Ночного дозора», «Мастер и Маргарита» с акцентом на то, какие передовые технологии трёхмерной графики использовались и с какими проблемами в этом плане они сталкивались

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

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

Кажется, журнал назывался «Подводная лодка». Однако, он давно перестал выходить (и, поговаривают, перед этим скатился, но вышеперечисленные вещи ИМХО годнота), сайта больше нет. На торрентах смог найти только выпуски до 2000 года, но они совсем уж древние, а хочется чего-то поактуальнее, вроде того, что перечислено выше.

Может быть, у кого-то сохранилось что-нибудь? А то хочется немного понастальгировать, я тогда был школьником и только начинал тыкать компьютеры.

Тема не совсем варез, потому что:

1) Вроде как выпуски в PDF выкладывались на официальном сайте для свободной загрузки (но этого сайта больше нет)

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

 

KivApple
()

Проблема с подключением к OpenVPN

Форум — Admin

Имеется OpenVPN сервер. Всё нормально работало и я к нему мог подключаться из любого места. Однако затем начались проблемы с одним из публичных Wi-Fi - при подключении к VPN с него подключиться не удаётся. Через мобильный интернет или через другой Wi-Fi всё нормально получается.

Логи со стороны сервера:

Apr 07 08:08:09 suigintou-0 openvpn[361]: 77.158.188.58:60878 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Apr 07 08:08:09 suigintou-0 openvpn[361]: 77.158.188.58:60878 TLS Error: TLS handshake failed                                                                                                                                     
Apr 07 08:08:09 suigintou-0 openvpn[361]: 77.158.188.58:60878 Fatal TLS error (check_tls_errors_co), restarting                                                                                                                   
Apr 07 08:08:09 suigintou-0 openvpn[361]: 77.158.188.58:60878 SIGUSR1[soft,tls-error] received, client-instance restarting  
Apr 07 08:08:09 suigintou-0 openvpn[361]: 77.158.188.58:60878 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Apr 07 08:08:09 suigintou-0 openvpn[361]: 77.158.188.58:60878 TLS Error: TLS handshake failed                                                                                                                                     
Apr 07 08:08:09 suigintou-0 openvpn[361]: 77.158.188.58:60878 Fatal TLS error (check_tls_errors_co), restarting                                                                                                                   
Apr 07 08:08:09 suigintou-0 openvpn[361]: 77.158.188.58:60878 SIGUSR1[soft,tls-error] received, client-instance restarting  

Логи со стороны клиента:

Apr 07 10:06:24 dell-xps-13-9350 nm-openvpn[27319]: OpenVPN 2.4.5 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Mar  1 2018
Apr 07 10:06:24 dell-xps-13-9350 nm-openvpn[27319]: library versions: OpenSSL 1.1.0h  27 Mar 2018, LZO 2.10
Apr 07 10:06:24 dell-xps-13-9350 nm-openvpn[27319]: WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
Apr 07 10:06:24 dell-xps-13-9350 nm-openvpn[27319]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Apr 07 10:06:24 dell-xps-13-9350 nm-openvpn[27319]: TCP/UDP: Preserving recently used remote address: [AF_INET]XXX.XXX.XXX.XXX:443
Apr 07 10:06:24 dell-xps-13-9350 nm-openvpn[27319]: Attempting to establish TCP connection with [AF_INET]XXX.XXX.XXX.XXX:443 [nonblock]
Apr 07 10:06:27 dell-xps-13-9350 nm-openvpn[27319]: TCP connection established with [AF_INET]XXX.XXX.XXX.XXX:443
Apr 07 10:06:27 dell-xps-13-9350 nm-openvpn[27319]: TCP_CLIENT link local: (not bound)
Apr 07 10:06:27 dell-xps-13-9350 nm-openvpn[27319]: TCP_CLIENT link remote: [AF_INET]XXX.XXX.XXX.XXX:443
Apr 07 10:06:27 dell-xps-13-9350 nm-openvpn[27319]: NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
Apr 07 10:07:25 dell-xps-13-9350 NetworkManager[528]: <warn>  [1523088445.5044] vpn-connection[0x55b2d4eb2730,e5d91e4c-8e5a-4b31-b44c-f378ba636888,"suigintou-0",0]: VPN connection: connect timeout exceeded.
Apr 07 10:07:25 dell-xps-13-9350 nm-openvpn-serv[27316]: Connect timer expired, disconnecting.
Apr 07 10:07:25 dell-xps-13-9350 NetworkManager[528]: <warn>  [1523088445.5149] vpn-connection[0x55b2d4eb2730,e5d91e4c-8e5a-4b31-b44c-f378ba636888,"suigintou-0",0]: VPN plugin: failed: connect-failed (1)
Apr 07 10:07:25 dell-xps-13-9350 nm-openvpn[27319]: SIGTERM[hard,] received, process exiting

OpenVPN сервер висит на 443 TCP порту, чтобы быть доступным даже из тех сетей, где разрешён только 80 и 443 порты.

Что случилось? Администраторы публичного Wi-Fi прикрутили некий DPI для того, чтобы резать VPN (конфиги ничего не менялись, всё по-прежнему работает, если использовать другие выходы в сеть)? Можно ли с этим как-то бороться?

 

KivApple
()

Qt for Android

Форум — Development

Хотелось бы услышать мнение о сабже от людей, которые его тыкали более глубоко, чем простой запуск Hello world (это я уже сделал). Раньше тыкал его пару лет назад и помню, что он был сыроват (в том плане, что некоторые базовые вещи работали не совсем хорошо, вплоть до каких-то проблем с кнопкой «Назад»), но уже не помню, что мне не понравилось, чтобы проверить. Как оно сегодня? Production ready или нет?

С ходу могу назвать два преимущества - Qt API куда продуманней графической библиотеки Android, которая состоит из кучи прослоек совместимости, которые при этом не дают идентичного поведения на разных версиях ОС («прослойка совместимости» даёт лишь заглушки, либо простейшие реализации нужных функций, чтобы приложение просто не упало из-за ненайденных классов на старых версиях ОС). А второе - возможность легче поддерживать несколько платформ (например, Desktop + iOS + Android, бизнес-логику и немалую часть интерфейса можно делать общими).

Пока знаю и как минимум один недостаток - приложение будет весить не меньше около 20 мегабайт, потому что Qt жирный (дефолтные библиотеки Android включены в ОС, это не значит, что они менее жирные).

Помимо общих впечатлений интересуют и конкретные вопросы:

1) Qt достаточно допилен для Android, чтобы пришлось писать свой Java-код только для каких-нибудь специфических вещей типа виджетов?

2) Qt обеспечивает не худшую производительность (в теории C++ быстрее жабы, но на практике многое зависит от качества кода и того, и другого)?

3) Ситуация с лицензией аналогична десктопной версии? То есть, несмотря на активное навязывание платной версии на официальном сайте, на самом деле имеется лишь обязанность раскрывать в OpenSource правки в сам Qt (что для большинства проектов не является критичным, либо вовсе не требуется), а прикладное приложение по-прежнему может быть закрытым.

Ну и да. QWidget или QML? Первое я хорошо знаю, но когда-то где-то слышал, мол сейчас в основном разработчиками Qt пилится второе.

 ,

KivApple
()

Инициализация std::map

Форум — Development

Хочу иметь map, задающий связь между std::type_info и функцией. Выглядит так:

std::map<std::type_info, std::function<std::string(const std::any&)>> serializers;

Я могу добавлять в него элементы так:

serializers.emplace(typeid(void), [] (const std::any&) -> std::string {
	return "null";
});

А я хочу сразу задать содержимое при объявлении:

std::map<std::type_info, std::function<std::string(const std::any&)>> serializers = {
	{ typeid(void), [] (const std::any&) -> std::string {
		return "null";
	} }
};

В итоге получаю ошибку, что не наден подходящий конструктор.

Разумеется, стандарт C++17 включен. Пробовал GCC и Clang актуальных версий.

Что я делаю не так?

 

KivApple
()

Трактор

Форум — Talks

Не будем разводить политосрач, возьмём моё желание умереть (желательно от старости) в стране, отличной от страны моего рождения, за данность.

Что у меня есть на настоящий момент?

1) Красный диплом бакалавра мехатроники и робототехники (однако вуз не столичный совсем). Причём переведённый на английский и французский (второй перевод даже нотариально заверен)

2) В настоящий момент обучаюсь на ИТ магистратуре в том же вузе, однако поехал на 1 семестр по программе обмена во Францию. Собственно, сейчас нахожусь там и буду находиться до лета (платится степендия). Имеется студенческая виза до августа с правом работы на 60% ставки (а ещё вроде как её за 2 месяца до окончания можно продлить на год для поиска работы, но тут у меня достоверной информации нет).

3) Английский знаю на следующем уровне: понимаю 95% того, что говорят здесь на лекциях (лекции на английском), в повседневной жизни понимаю процентов 70-80. По-французски понимаю процентов 20. По-английски говорю, но коряво (в принципе любой бытовой вопрос могу решить, но иногда придётся объяснять несколько раз, что же я имел ввиду). По-французски не говорю (ну кроме элементарных приветствий, благодарности и т. д.).

4) На бакалавриате участвовал во множестве студенческих соревнованиях по робототехнике вместе с другом. Много первых-вторых мест (в том числе на одно соревнование ездили в Китай). Есть документальные подтверждения (грамоты, а также много фоточек и немного видео).

5) Лично сам интересуюсь программированием во всех его проявлениях - так или иначе касался вещей от разработки ОС и прошивки микроконтроллеров до веб-макакинга (но низкоуровневое программирование мне доставляет больше). Есть немного pet-проектов вроде нескольких небольших приложений на Android, компилятора Lisp-подобного языка, самописного стека USB для MSP430 и ещё кое-что. Кстати, первый мой коммит на гитхабе датируется 2011 годом (мне тогда было 15 лет).

6) Из-за пункта 4 есть также некоторый опыт разработки электроники, но назвать себя гуру схемотехники я не могу (хотя способен на больше, чем просто соединить Arduino проводками с парой китайских плат - проектировал несколько печатных плат, заказывал в Китае или изготавливал сам и они даже работали после этого).

7) Опыт использования Linux в качестве десктопной системы более 6 лет, настраивал простейшие сервера в личных целях (HTTP, почта, OpenVPN).

8) Официальный опыт работы отсутствует. Все знания были получены в результате реализации личных проектов, либо временных подработок.

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

В принципе, у меня есть следующие теоретические варианты:

1) После обучения во Франции вернуться домой, доучиться на магистратуре в России, затем предпринимать какие-то попытки поступить на второе высшее или аспирантуру в Европе/США, либо найти там же работу. Плюсы: +1 диплом (скорее всего тоже красный). Минусы: заново получать визы (насколько я понимаю, продлеваются визы легче и быстрее, чем получаются, разумеется, если есть основания, если что Франция сама по себе меня вполне устраивает, как и ряд других европейских стран, а также США), если процесс затянется, то надо будет либо поступать в аспирантуру в РФ, либо делать что-то с армией.

2) В течении этих 5 месяцев подтянуть языковые навыки (правда, французский я вряд ли выучу, но вот подтянуть английский, думаю, можно), найти здесь работу, продлить визу, остаться. Условия поездки обязывают меня только отучиться в здешнем вузе установленный срок (учёба занимает далеко не 100% времени, к тому же мне интересно), про дальнейшее обучение в РФ ни слова в договоре нет (читал в США есть программы обучения/стажировок, которые обязывают в течении в 2 лет не въезжать в США после окончания этих программ).

3) ??? (дикие варианты типа отстаться нелегалом или ещё что-нибудь подобное не рассматриваю, тогда уж лучше вариант 1)

Что мне может посоветовать непатриотичный лоровец?

 , ,

KivApple
()

KDE + Wayland + High DPI

Форум — Desktop

Вновь поставил на флешку Arch Linux с KDE, чтобы посмотреть, как дела с поддержкой Wayland и High DPI.

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

Однако, столкнулся с двумя проблемами касательно High DPI - декорации окон (включая текст, который явно рендерится векторно) и иксовые приложения (например, Google Chrome, все основные KDE-шные программы теперь являются Wayland-нативными) рендерятся в Low DPI и растрово масштабируются. Очевидно, выглядит это не очень. А между тем большинство иксовых приложений таки умеют в High DPI (не умеют только в динамическую смену DPI при перетаскивании с монитора на монитор, хотя Google Chrome способен даже на такое под Gnome 3).

Следовательно три вопроса.

1) Можно ли отключить растягивание для некоторых иксовых приложений? (а лучше наоборот включить растровое масштабирование только для избранных приложений).

2) Если нет, то можно ли вообще выключить эту фичу?

3) А с заголовками окон что делать? Уж Kwin то точно должен знать про High DPI. Пробовал ставить другие темы декораций - не помогает. С учётом того, что масштабируется даже текст проблема вряд ли в теме.

Если их решить, то в принципе можно будет накатить KDE как основное DE.

 , ,

KivApple
()

DeskChan

Форум — Talks

Я тут вам это... покушать принёс.

В общем, полгода назад я случайно узнал об одном проекте - DeskChan. Сразу оговорюсь причём тут Linux - данный софт работает в том числе и под Linux, а ещё он как бы Open & Free Software. Как можно догадаться, я не только угнал о проекте, но он меня чем-то зацепил и я даже несколько месяцев активно пилил для него код, потом временно отошёл от дел, но когда всё разгребу планирую вернуться и ещё потыкать его.

Проект изначально не мой и над ним работает на самом деле целая группа человек.

В общем, интересно услышать мнение !Ъ обо всём этом, ходящих по ссылкам. Поскольку, вероятно, тут все люди занятые, то хватит и просто мнений и советов о направлениях развития.

Но вообще, если кто-то пожелает присоединится, то милости просим :-)

 deskchan,

KivApple
()

Отключение Intel ME

Форум — Linux-hardware

Вот недавно было несколько новостей про Intel ME. Сначала, что некие исследователи нашли как включить режим, разработанный для внутреннего использования в АНБ, который деактивирует ME. Но там надо было перешивать BIOS программатором. Впрочем, упоминалось также, что есть шанс обойтись без программатора, если производитель забыл залочить запись каких-то там дескрипторов. Но без конкретных инструкций. Затем была новость про то, что некие исследователи нашли уязвимость в Intel ME, что теперь можно при соблюдении некоторых условий устроить чуть ли не Remote Code Execution. Что может быть использовано в благих целях - для отключения ME без программатора.

Как дела обстоят на текущий момент? Вот у меня есть два ноутбука. Один на Haswell, другой на Skylake (Core i5 и Core i7, соответственно). На обоих стоит Linux. Могу ли я просто взять и выполнить некий скрипт, который выпилит Intel ME? Или только ручной дамп и пересборка прошивки с помощью Windows-only утилит? Вроде параноиков немало, не уже ли до сих пор нет user-friendly решения? Там, насколько я понимаю, надо буквально один битик взвести где-то во флешпамяти, никаких патчингов ассемблерного кода и т. д. Причём битик один и тот же для сразу очень большого количества систем. Если всё так замечательно, то просто напрашивается некий скрипт-деактиватор ME. Вот для ThinkPad'ов была небольшая утилита, выпиливающая whitelist, которую надо было просто скомпилировать из исходников и запустить от рута. Правда, на новых ThinkPad лавочку прикрыли, там без программатора не обойтись.

Если же решение существует, то каков шанс угробить систему, что спасёт только программатор? Теоретизирования не надо, нужна статистика отзывов «УМВР» и «всё пропало».

 , , ,

KivApple
()

KDE 5.11 + Wayland + High DPI

Форум — Talks

В общем, пищу из горящего танка. Собрал арчевый Live USB с KDE с помощью archiso (официальный LiveCD от KDE у меня глючит и неверно определяет DPI монитора) и загрузился на своём ноутбуке.

Хочу всем сказать, что релиз 5.10 -> 5.11 действительно принёс очень много нового в поддержку Wayland.

Теперь при запуске на High DPI дисплее под Wayland плазма выглядит сносно, включая рамки окон и вообще всё-всё. Более того, она выглядит сносно если подключить Low DPI монитор.

Но самое главное - теперь тут есть фича, которой больше нет ни в одном линуксе (всякие костыли с запуском дополнительного X-сервера, захватом изображения с него и показом в окошке с масштабированием - не считаются). Окошки масштабируются под DPI. То есть я такой тащу окно с одного монитора на другой, то оно имеет правильный DPI в любой момент. Более того, пол-окна может иметь один DPI, а пол-окна другой DPI (в середине перетаскивания). Достигается это путём масштабирования картинки композитором. Таким образом теперь не будет проблем даже с приложениями, запущенными через XWayland или вообще не умеющие DPI отличный от 96. Выглядит впечатляюще (прям как на винде уже кучу времени, да, с другой стороны на линуксе есть куча других фич из-за которых я никогда не вернусь на офтопик).

Правда, в этой бочке мёда есть 4 ложки дёгтя:

1) Приложения рендяряется с максимальным имеющимся DPI, а на других мониторах даунскейлятся. То есть в текущем виде это не поможет для приложений, которые не поддерживают High DPI. Лучше бы наоборот было, ибо для всего остального есть пункт 2.

2) И это ещё пол-беды - масштабируются таким образом абсолютно все окошки, включая wayland-нативные. А между тем wayland умеет динамическую смену DPI (во всяком случае в Gnome эта фича работает - на пол-пути перетаскивания окошка с монитора на монитор у него меняется DPI), что гораздо лучше, чем растровое масштабирование. Надеюсь, эту фичу тоже будут поддерживать.

3) При открытии окна настроек экранов начались визуальные глюки.

4) При подключении внешнего монитора упала плазма, но тут же перезапустилась. При отключении внешнего монитора упал kwin, а поскольку он является wayland-композитором, то и вся сессия. Ничего не перезапустилось, так и остался чёрный экран висеть, пока я не нажал кнопку выключения.

В общем, подвижки радуют, но пока сыровато. Интересно, исправят ли баги в 5.12. А то я уже заждался вернуться с гнома обратно на кеды, но High DPI и внешний монитор не дают.

 , , , ,

KivApple
()

Фризы с внешним монитором

Форум — Desktop

Имеется Dell XPS 13 9350. К нему иногда подключается внешний монитор через Xiaomi Multifunction Adapter (переходник с USB Type C на USB Type C (только зарядка), USB 3.0, HDMI).

Без внешнего монитора система отлично работает с Gnome 3 и Wayland. С внешним монитором периодически случаются жёсткий фризы (даже курсор замирает или двигается рывками), причём никаких пиков загрузки CPU или I/O на эти моменты не приходится. Не важно, используется ли X.org или Wayland (пробовал оба варианта).

Слышал, что это может быть как-то связанно с Wi-Fi (то ли с тем, что у меня Wi-Fi от Broadcom, а не Intel, как в Developer Edition, то ли с тем, что что-то не так с мощностью сигнала). И действительно, мне почему-то кажется, что фризы всегда совпадают с сетевой активностью (например, загрузка странички в браузере). Но обратное не верно - бывают случаи, когда сетевая активность есть, а фризов нет.

В чём может быть проблема и как её решать?

 , , , ,

KivApple
()

Tomcat + auto deploy: страница заглушка

Форум — Web-development

Использую Tomcat 8 со включенным auto deploy. Проблема в том, что при обновлении сервлета, пока он не распакуется и не загрузится, при попытке открыть приложение пользователь получает ошибку 404.

Хотелось бы отобразить свой статичный HTML с сообщением типа «Сайт временно недоступен. Приходите в другой раз». При этом не хотелось бы терять другие ошибки, так что в идеале заглушка должна работать только на ошибку 404 и только на конкретный URL.

Как это можно сделать? Или же я деплою приложение принципиально не правильно?

 

KivApple
()

JPA: Сложный запрос

Форум — Development

Изучаю JPA (в качестве реализации используется Hibernate) и столкнулся с проблемой. Допустим, у нас есть пользователи, а у пользователей есть посты. Я хочу сделать запрос, который бы строил рейтинг пользователей по количеству постов за последние 30 дней (причём в рейтинге должны быть в том числе пользователи, которые не написали ни одного поста).

В обычном SQL я могу сделать так (в данном случае это MySQL, но для переноса на любой другой диалект потребуется лишь подредактировать сравнение дат):

SELECT users.id as user_id, COUNT(posts.id) as post_count FROM users LEFT JOIN posts ON users.id = posts.submitter
    WHERE (posts.id is NULL) OR (posts.submit_timestamp >= (CURRENT_DATE - INTERVAL 30 DAY))
    GROUP BY posts.submitter ORDER BY post_count DESC;

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

Если что модели юзеров и постов типа таких:

@Entity
@Table(name = "users")
public class User {
    
    @Column(name = "id", updatable = false, nullable = false)
    @Id
    private Integer id;
    
    @OneToMany(mappedBy = "submitter", cascade = CascadeType.REMOVE)
    private List<Post> submittedPosts;
    
    ...
    
}

@Entity
@Table(name = "posts", indexes = {
		@Index(name = "submitter", columnList = "submitter"),
		@Index(name = "submit_timestamp", columnList = "submit_timestamp"),
})
public class Post {
	
    @Column(name = "id", updatable = false, nullable = false)
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Integer id;
    
    @ManyToOne
    @JoinColumn(name = "submitter", updatable = false, nullable = false)
    private User submitter;

    ...

}

Пробовал делать так:

Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(Calendar.DATE, -30);
Date startDate = c.getTime();
CriteriaBuilder cb = manager.getCriteriaBuilder();
CriteriaQuery<Tuple> q = cb.createTupleQuery();
Root<User> userRoot = q.from(User.class);
Join<User, Post> join = userRoot.join("submittedPosts", JoinType.LEFT);
q.where(cb.or(
	cb.isNull(join.get("id")),
	cb.greaterThanOrEqualTo(join.get("submitDate"), startDate)
));
q.select(cb.tuple(userRoot, cb.count(join.get("id"))));
q.groupBy(join.get("submitter"));
q.orderBy(cb.desc(cb.count(join.get("id"))));

Но в результат не попадают пользователи без постов.

UPD: Нашёл решение. Группировать надо результаты по users.id, а не по posts.submitter. SQL иначе всех пользователей без постов сливает в одного и я это не заметил. А JPA почему-то вообще не выдал такие записи в результатах.

В общем, надо сделать q.groupBy(userRoot.get(«id»)) и всё становится хорошо.

 , ,

KivApple
()

Gnome 3 vs Cinnamon

Форум — Talks

Так получилось, что мне нужна бескостыльная поддержка High DPI (включая случай с мониторами с разными DPI) и тачскрина. В ходе небольших экспериментов оказалось, что это нормально работает только с Gnome + Wayland. Остальные комбинации (Gnome + X11, KDE + Wayland, KDE + X11 - не очень хороши, у всяких Xfce и LXDE с тачем хуже по определению, а без Wayland есть проблемы с мониторами с разными DPI). Однако, некоторые вещи в Gnome мне не нравятся. Нет, я вполне нормально привык к Overview и т. д. Проблема в тенденции вырезать из настроек всё, что только можно. И не только из настроек. Чего стоит длинный-длинный текст с «обоснованием», почему системный трей не нужен (для ненужнистов - он нужен для размещения там приложений, не требующих активных действий пользователя, но к которым иногда нужно обращаться или видеть их состояние, при этом эти приложения не прибиты гвоздями к конкретному DE - помимо плеера или мессенджера (для которых теоретически есть соответствующие протоколы, однако не покрывающие все use-case), например, torrent-клиент. Или авторы каждого приложения должны писать расширение Gnome Shell для размещения своего апплета на панели?).

Конечно, пока большинство проблем решаются расширениями, dconf и gnome tweak tool, но тенденции неприятные.

И вот думаю посмотреть в сторону Cinnamon. Однако, очевидно, ни поддержку тача, ни поддержку High DPI нормально в виртуалке не потыкать (к тому же Gnome-based DE в виртуалке нещадно тормозят). Так что, хотелось бы всё уточнить заранее.

Насколько Cinnamon стабилен и отлажен по сравнению с Gnome? Насколько хорошо он поддерживает Wayland? Поддерживает ли он тач и High DPI так же хорошо, как Gnome? По идее тулкит один и тот же (GTK3), это должно решать большинство проблем.

P. S. В плане стабильности работы у меня такой рейтинг: Лёгкие DE (Xfce, Lxde) (не падают совсем), KDE (падает настолько редко, что можно сказать, что и не падает), Gnome (иногда падает, но редко). Мне бы не хотелось, чтобы моё DE падало чаще Gnome.

 ,

KivApple
()

Детальная настройка региональных параметров

Форум — Desktop

Использую Gnome 3. Учу английский язык, поэтому помимо прочего переключил язык интерфейса всех девайсов на английский. В Arch Linux для этого я изменил /etc/locale.conf, прописав туда LANG=en_US.UTF-8.

При этом помимо языка системы изменилось ещё кое что:

1) Погода в Gnome отображает градусы в Фаренгейтах вместо Цельсиев.

2) Telegram отображает время сообщений в 12-часовом формате вместо 24-часового (в отличии от часов в самом Gnome).

Возможно, есть ещё какие-то подобные проблемы, но я их пока не видел.

Как можно сделать так, чтобы все форматы были отечественные или похожие на них (точка вместо запятой в качестве десятичного разделителя меня устраивает более чем), но язык был английский?

В Gnome настройки локали очень кастрированные. Там можно только выбрать страну форматов.

В принципе, меня устроит и просто выбрать страну, в которой используют английский, но при этом используют 24-часовой формат времени и правильные градусы. Однако, я не силён в географии.

 ,

KivApple
()

Gnome 3: яркость экрана и тайм-аут его отключения

Форум — Desktop

У меня есть вполне нормальное желание настроить две вещи в моём Gnome 3 на ноутбуке:

1) При отключении адаптера питания ставить 50% яркости, при подключении - 100%.

2) Автоматическое отключение экрана при бездействии должно происходить только если ноутбук работает от батареи.

Как в KDE, так и в Windows эти вещи настраиваются элементарно. В Gnome же все регуляторы (яркость, время отключения) работают вне зависимости от источника питания. Настроить параметры отдельно для разных режимов нельзя.

Может быть я плохо искал и таки эти функции доступны? Если нет, то как это можно лучше всего накостылять, чтобы не глючило и ни с чем не конфликтовало?

Дистрибутив: Arch Linux, графический сервер: Wayland.

 , ,

KivApple
()

Очередного выбора ноутбука тред

Форум — Desktop

Так получилось, что у меня нашлась некоторая сумма денег, которые я хотел бы инвестировать в рынок ноутбуков. А именно - обзавестись заменой для моего ThinkPad X230T.

Итак, мои требования к ноутбуку:

1) Стоимость не более 1000 евро. Очевидно, заказывать буду на ebay всякие «восстановленные производителем» ибо так дешевле.

2) Полная поддержка Linux. Меня устраивает, что потребуется доставить какие-нибудь нестандартные пакеты, написать конфиги, пересобрать ядро или ещё чего, главное чтобы в итоге всё оборудование работало как надо. В качестве дистрибутива будет Arch Linux, так что последние версии ядра обеспечены.

3) От 12 до 14 дюймов

4) IPS не менее Full HD

5) Тач-скрин. Желательно Wacom.

6) 16 ГБ ОЗУ (сразу или с возможностью добавить потом). Со скрипом соглашусь на 8, но тогда остальные пункты должны проходить идеально. Пофиг на версию DDR.

7) 512 ГБ SSD. В крайнем случае согласен на 256 с возможность замены (то есть M.2 или SATA, а не распаянный).

8) 4G модем. Я наелся whitelist с thinkpad, так что на этот раз давайте без такой фигни. Разумеется, сразу его не будет (либо будет, но не с теми рабочими частотами), так что требуется просто свободное место под него (с подведёнными антеннами и слотом для SIM-карт), либо на крайний случай просто лишний M.2/MiniPCIe не занятый Wi-Fi и SSD.

9) Процессор должен быть не хуже моего i5-3320M. Видеокарта не хуже Intel HD4000.

10) Поддержка док-станции. Либо через thunderbolt, либо через проприретарный разъём на дне ноутбука. Под док-станцией подразумевается некий девайс, который подключается к ноутбуку 1 разъёмом, заряжает его от сети, а также содержит на себе разъём для монитора, сети и несколько USB.

Собственно, всё. Какие есть варианты? Пока смотрю в сторону Dell XPS 12, либо Dell Latitude 12. Но не знаю как у них дела с Linux (вроде как убунта заводится на обоих), к тому же у них максимум 8 ГБ ОЗУ, да и, быть может, есть варианты получше.

UPD: Если забить на модем, то приятно выглядит Dell XPS 13 9350. Проходит по всем требованиям кроме модема и wacom. Имеет статью на арчевики из которой следует, что всё оборудование отлично заводится.

 , , ,

KivApple
()

Пустить торренты в обход VPN

Форум — Admin

В силу надвигающихся проблем, хочу перейти на постоянное использование VPN, однако меня останавливает 1 факт - за загрузку торрентов VPS-ка легко может быть удалена хостером. С другой же стороны пока нет никакого резона пускать торренты через VPN - порнуху торрентами я не качаю, а за всё остальное у нас не сажают и пока каких-то особых подвижек в эту сторону нет.

Итак, я контролирую VPN-сервер, я контролирую свой компьютер (могу и там, и там добавить любые правила iptables), я использую только 1 торрент-клиент - qBittorrent (могу подправить его настройки).

Хотелось бы двух фич:

1) Сделать так, чтобы VPN-сервер отказался пропускать торренты (на случай какого-то сбоя в настройках перенаправления у клиента). Особенно важно забанить раздачу через VPN (наиболее опасная активность для VPS).

2) Сделать так, чтобы торренты шли через основное сетевое соединение, а не VPN. При этом по возможности хотелось бы использовать средства NetworkManager - я видел там в настройках соединения какую-то штуку под названием «Зона файервола». Соответственно, насколько я понимаю, можно сделать так, чтобы набор правил применялся именно при использовании соответствующего соединения.

 , ,

KivApple
()

Как бороться с телефонными спаммерами?

Форум — Talks

Последнее время всё чаще начинают назвать из всяких колл-центров и предлагать всякую фигню. То «а вы знаете, что у вас в городе проходит сезонное обслуживание пластиковых окон?» (окна ставил не я и мой номер ни в каких документах не фигурировал), то «мы приглашаем вас на кулинарное шоу для людей от 35 до 60 лет» (но мне 21 год, при этом симка оформлена на меня). При этом если не брать трубку, то они перезванивают через какое-то время. Снова и снова. Пока не возьмёшь.

Я человек адекватный, поэтому не матерюсь на операторов, а сначала внимательно слушал и отвечал по теме («мне 21 год, так что ваше предложение мне не релевантно» или «окна ставил не я и вопрос по обслуживанию решаю тоже не я»), теперь просто поняв, что это очередной спам перебиваю оператора спокойным тоном «мне это не интересно» и кладу трубку, чтобы не тратить несколько минут на выслушивание ненужной мне информации.

Вопрос вот в чём. С этим можно что-нибудь сделать, кроме того как добавлять номера в чёрный список телефона, чтобы звонки автоматически сбрасывались? Я, конечно, человек спокойный, но было бы приятно сделать организаторам данных мероприятий больно (ибо уже задолбали). Может есть какие-то законный способы типа натравить на них проверку какую-нибудь или чтобы их оштрафовали? Мне от них ничего не надо (никаких возмещений морального вреда и прочей фигни), просто чисто знать, что своими действиям я повысил шанс, что им будет неприятно. Или это всё законно и правильно, а я зря вообще наезжаю на честных людей, которые хотят донести до меня жизненно важную информацию?

 ,

KivApple
()

Вопрос по uthash под офтопиком

Форум — Development

Пишу небольшую сишную софтину. Использую в ней библиотеку uthash. Потом под своим уютным Linux кросскомпилирую под винду. В итоге что я получаю? Под Wine всё работает, под виндой падает. Запустил под виндовым GDB - увидел, что падает всегда на вызовах uthash. Точнее не просто на uthash, а на вызовах calloc из msvcrt. Начал грешить на обращения за пределами выделенной памяти, которые разрушают структуры менеджера памяти из libc (как известно, информация о блоке памяти обычно хранится около самого выделенного блока). Прогнал под valgrind под Wine на Linux - никаких ошибок не выявлено (ни утечек, ни некорректных обращений). Под винду valgrind не нашёл, однако нашёл некий drmemory - и он обнаружил кучу обращений за пределами выделенной памяти. Причём все - внутри кода uthash.

Вот всё обращения к API uthash, которые есть в моём коде:

typedef struct WaitingObjectInfo {
	HANDLE handle;
	WaitingObjectCallback callback;
	void *data;
	UT_hash_handle hh;
} WaitingObjectInfo;

WaitingObjectInfo *waiting_object_list = NULL;
size_t waiting_object_count = 0;
... блок 1 ...
	HANDLE handle_list[waiting_object_count];
	WaitingObjectInfo *info, *tmp_info;
	size_t i = 0;
	HASH_ITER(hh, waiting_object_list, info, tmp_info) {
		handle_list[i++] = info->handle;
	}
	assert(i == waiting_object_count);
... блок 2 ...
	if ((result >= WAIT_OBJECT_0) && (result < (WAIT_OBJECT_0 + waiting_object_count))) {
		HANDLE handle = handle_list[result - WAIT_OBJECT_0];
		HASH_FIND_INT(waiting_object_list, &handle, info);
		assert(info != NULL);
		if (info->callback) {
			info->callback(info->data, info->handle);
		}
	}
... блок 3 ...
	WaitingObjectInfo *info, *tmp_info;
	HASH_ITER(hh, waiting_object_list, info, tmp_info) {
		HASH_DEL(waiting_object_list, info);
		free(info);
	}
	waiting_object_count = 0;
... блок 4 ...
	WaitingObjectInfo *info;
	HASH_FIND_INT(waiting_object_list, &handle, info);
	if (!info) {
		info = malloc(sizeof(WaitingObjectCallback));
		assert((info != NULL) && "malloc for WaitingObjectInfo failed");
		info->handle = handle;
		HASH_ADD_INT(waiting_object_list, handle, info);
		waiting_object_count++;
	}
	info->callback = callback;
	info->data = data;
... блок 5 ...
	WaitingObjectInfo *info;
	HASH_FIND_INT(waiting_object_list, &handle, info);
	if (info) {
		HASH_DEL(waiting_object_list, info);
		free(info);
		waiting_object_count--;
	} else {
		fprintf(stderr, "[WARNING] remove_waiting_object: handle %i not in waiting list!\n", handle);
	}	

Код строго однопоточный (во всяком случае нигде в своём приложении я не создаю потоки), блок 1 и блок 2 находятся в одной функции и выполняются строго последовательно (остальные блоки не могут быть вызваны между ними).

Никогда не падает на HASH_FIND_INT, некорректные обращения находятся в блоке 3 и 4 (блок 5 пока нигде не используется), при этом внутри макросов добавления/удаления элекментов. Падает либо внутри функции добавления на calloc, либо при удалении, либо на free(info) после удаления.

Кросскомпилирую командой:

i686-w64-mingw32-gcc -c -o имя-файла.o -O2 -ggdb -Iuthash/src имя-файла.c

Затем линкую командой:

i686-w64-mingw32-gcc -o имя-файла.exe имя-файла.o -lm -static

Я бы мог грешить на баг в uthash, но почему под Linux некорректных обращений к памяти не происходит (под данным valgrind)?

Linux тут при том, что Wine я запускаю под Linux.

 , uthash

KivApple
()

Лежательное рабочее место

Галерея — Рабочие места

Представляю внимаю ЛОРовцев место, за которым я работаю и за которым я сплю (снизу на фото кусок дивана, да).

  • ThinkPad X230T в док-станции (и то и другое куплено б/у на ebay)
  • Док-станция для смартфона Xiaomi Mi5 (самого смартфона в кадре нет, ибо на него всё это и снято)
  • Монитор LG 25UM58 (самый дешёвый с таким разрешением и IPS-матрицей)
  • Мышь Logitech M560
  • Клавиатура Logitech K360
  • Наушники Xiaomi Hybrid

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

На самом ноутбуке стоит Arch Linux с KDE.

Кстати, стол имеет небольшие колёсики.

 ,

KivApple
()

RSS подписка на новые темы