LINUX.ORG.RU

Сообщения den73

 

Как собрать более свежий tigervnc

Форум — Development

Привет, Лор! У меня Ubuntu 18.04, и в ней есть известная проблема с буквами в tigervnc (и в других vnc серверах и клиентах, см. x11vnc пропадают русские буквы)

Вроде как в более новых версиях tigervnc добавили ключ RawKeyboard

https://github.com/TigerVNC/tigervnc/issues/962#issuecomment-584047893

Я сунулся было пересобрать TigerVNC из исходников, но процедура там описана недостаточно подробно и нужно знать немало контекста по поводу X вообще.

Моя идея в следующем: взять с помощью apt-get source более новые пакеты (от 20-й или 22-й Убунты) и собрать их с помощью dpkg-buildpackage под своей 18-й. Как думаешь, Лор, насколько это жизнеспособная идея?

 , ,

den73
()

Бывает ли экранированная мышь, трекбол или что-то ещё такое же?

Форум — Linux-hardware

В моей домашней студии мышь лежит на синтезаторе (больше ей лежать негде) и даёт наводки, которые прекрасно слышны. Это достаёт и я пытаюсь решить это двумя способами:

  • свешиваю мышь со столика, чтобы она была подальше от синтезатора, когда она не нужна. Она висит, качается и светит лазером прямо в глаза. Разъём разбалтывается. Подбирать её неудобно
  • выдёргиваю мышь и работаю с клавиатуры, когда это возможно. Когда невозможно - приходится обратно втыкать.

Это несколько неудобно. Поэтому вопрос: бывает ли (USB) мышь, которая не даёт наводок? Я не знаю, что является источником - сама ли мышь или её провод. Подойдёт любое устройство - трекбол или планшет как на ноутбуке.

Обновление на следующий день

Дело вообще не в том оказалось. Помеха заходит через USB провод, которым синтезатор подключается к компьютеру для передачи MIDI. Т.е. это как-то связано с работой USB хоста. В моём конкретном случае USB хост находится в клавиатуре и я втыкаю в него мышь и провод для MIDI, ведущий к синтезатору. А дальше всё это через длинный удлинитель подключается к компьютеру, который находится вне звукоизолированной кабинки. Если вместо мыши воткнуть в USB-порт клавиатуры флешку и начать с неё файлы копировать, помеха тоже имеет место.

Даже если присоединить синтезатор прямо к компьютеру, минуя USB-хост клавиатуры, помеха всё равно передаётся. Видимо, на этот раз она передаётся через USB-хост, находящийся в самом компьютере, который тем самым как-то связывает между собой USB порты компьютера. Единственный способ избежать её - задействовать USB2 и USB3 хосты компьютера, т.е. к примеру, воткнуть клавиатуру в USB3, а синтезатор - в USB2. Тогда наступает полная тишина. Я бы мог так делать, но сейчас у меня в USB3 воткнут USB интерфейс аудиокарты. Теперь я уже знаю про помехи, и совсем нет желания, чтобы эти помехи влияли на передачу аудиосигнала с карты. Пусть уж лучше звучат из синтезатора.

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

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

Результат

Помогла вот такая гальваническая развязка для USB за 900 руб, которая установлена на интерфейс, передающий MIDI между синтезатором и компьютером.

https://www.ozon.ru/product/usb-usb-izolyator-adum3160-v-korpuse-modul-galvanicheskoy-razvyazki-dlya-usb-ard-r01-n-852261251/

Спасибо, ЛОР!

 , наводки,

den73
()

На чём было написано ПО Луны-25?

Форум — Development

Вопросец.

На самом деле это не вброс был, мне реально было интересно, и я получил ответ. Спасибо, Лор и конкретно @fluorite

Ссылка на ответ

 

den73
()

Шпаргалка и расширенная раскладка для ввода символов с клавиатуры

Форум — Desktop

За 5 минут не нагуглилось. Нашёл onboard, но это не то. Я набиваю тексты, в которых есть особые значки. Некоторое подмножество юникода. Я хочу, чтобы мне было удобно их набивать. Что это означает?

Это означает, что я нажимаю некую глобальную (в рамках оконного менеджера) горячую кнопку. Ну, скажем, AltGr, и отпускаю её. После этого на экране появляется изображение клавиатуры. Далее я нажимаю и/или удерживаю другую кнопку, допустим, Shift, Ctrl, Caps, F1-F7 и т.п. У меня меняется на клавиатуре раскладка (при удержании одних кнопок и при нажатии других) и сразу отображается. Далее я нажимаю, допустим, на кнопку «а» на своей физической клавиатуре и соответствующий символ вводится туда, где находится текущий текстовый ввод. Далее я нажимаю Esc и клавиатура исчезает, ну или сразу исчезает после ввода одной буквы.

Есть такое? У меня LXDE.

 , расширенная раскладка клавиатуры,

den73
()

посоветуйте лисп в питоне

Форум — Development

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

Я пока нашёл предельно простой

https://github.com/Leden/jsonlisp

И ещё есть https://github.com/e-dorigatti/lispy

Но наверняка кто-то ж сделал что-то серьёзное в этом направлении

 ,

den73
()

Программа-заменялка для локализации сообщений и слияния из апстрима

Форум — Development

Привет, Лор!

Мы сделали одну отечественную программу по всем канонам, т.е. взяли программу с открытыми исходниками, форкнули репозиторий, переименовали программу, внесли 0.1% своих дополнений в алгоритмы и локализовали значительную долю сообщений. Поскольку программа написана на слегка экзотическом языке, который плохо поддерживает локализацию, мы меняли сообщения на русские прямо в исходники, а в каких-то случаях ставили ветвление в зависимости от выбранного языка. В сумме, думаю, порядка 500-800 индивидуальных изменений мы сделали таким путём.

Теперь нам нужно сделать главное, что необходимо для любой правильной отечественной программы, т.е. залить к нам апстрим. Это примерно 3000 коммитов со множественными рефакторингами. Я попытался залить первые 500 и гит сразу залил так, что корректность исходного текста потерялась. Ясно, что разрешить конфликты мы можем, но вряд ли это будет потом работать.

Теперь мне нужна программа-заменялка, которая сделает следующее:

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

Какие программы могут тут помочь? Я нашёл на гитхабе только неживой «лексический diff», это бы могло подойти для начала, но нужен ещё «лексический patch» к нему.

 ,

den73
()

В файле pdf переставить номера страниц

Форум — Desktop

Есть некий документ, распечатанный в файл pdf, и номер страниц в нём идут то слева, то справа, т.к. он распечатан, чтобы его сшить. А мне нужно, чтобы все номера были в одном месте (допустим, в середине). Документ сложный (ноты). Попробовал открыть в LibreOffice Draw, ничего нормального не вышло. Какая программа позволит мне импортировать документ как изображение, без потери качества, чтобы я мог переместить номера страниц и потом обратно сохранить в pdf или распечатать?

 ,

den73
()

Какие программы для Linux имеют хорошую репутацию в плане безопасности?

Форум — Development

Привет, Лор!

Пытался найти ОС, более хорошую, чем Linux, с точки зрения безопасности - не нашёл не одной, все решето. Ок. Но я точно помню, что какой-то наш соотечественник напиал то ли почтовый сервер, то ли почтовый клиент, в котором за много лет ничего не нашли. Я помню, что с ним было какое-то вроде интервью на Хабре, и он там этим хвалился. Вроде он не хранит никакие данные на стеке, поэтому и переполнения буфера на стеке не могло получиться. И вроде что за все годы у него нашли только одно потенциальное целочисленное переполнение, которое и то фиг проэксплуатируешь.

Кто помнит, что это за программа?

Или может быть, кто-то знает примеры программ с хорошей репутацией, допустим, за 20 лет не найдено уязвимостей?

 ,

den73
()

Из какого компилятора можно позаимствовать создание отладочной информации?

Форум — Development

Сейчас пока ковыряю tcc, он маленький, это приятно. Он формирует инфу в формате STABS. Но желательно что-нибудь под пермиссивной лицензией. LLVM тоже можно рассмотреть, но я в него заглянул и в ужасе отшатнулся, когда не нашёл никаких описаний к функциям, которые отвечают за генерацию отладочной инфы. Т.е. в этом случае нужен хороший и уже работающий компилятор.

Притом инфа у меня сущесвует в виде моих структур данных, а никакого LLVM-кода я генерировать не собираюсь. Так что если без этого нельзя создать отладочную инфу, то LLVM, наверное, мимо.

Притом это не должна быть вставка текста в ассемблер - это должна быть запись прямо в файл.

 stabs, , отладочная информация

den73
()

Ошибка 137 - как проверить, заканчивалась ли память на машине?

Форум — Admin

Злые языки говорят, что одна из возможных причин ошибки 137 при сборке программок - это нехватка оперативной памяти на машине. А о факте такой нехватки делается ли запись в какой-нибудь журнал, чтобы потом можно было посмотреть? Интересуют два варианта ОС - Ubuntu 18.04 и Red OS не знаю какая.

 ,

den73
()

как соотносится pthread_clockgettime(thread) и rdtsc?

Форум — Development

я чиню диспетчер задач в ЯОС. В ЯОС есть процедура для замера времени выполнения треда. В юникс-версии она была сломана и вызывала, по сути, rdtsc,

проц -ДайКвоТактовПроцессораСМоментаПерезапуска* (): цел64;
машКод
  XOR RAX, RAX
  RDTSC  ; set EDX:EAX
  SHL RDX, 32
  OR RAX, RDX
кон ДайКвоТактовПроцессораСМоментаПерезапуска;

Поэтому в местном диспетчере задач у всех тредов было одинаковое CPU. Я поправил процедуру, которая лежит в основе замера, и теперь она выглядит так:

	проц GetCpuCycles*( process : Process; перем cpuCycles: CpuCyclesArray; all: булево );
	перем temp : цел64;
	перем t: Unix.Timespec;
	перем кодЧасов: Unix.ClockId_t;
	перем успехТочногоЗамера: булево;

	нач
		утв(process # НУЛЬ);
		если Unix.pthread_getcpuclockid(process.threadId, адресВПамяти из кодЧасов) = 0 то
			если Unix.clock_gettime(кодЧасов, адресВПамяти из t) = 0 то
				(* Вот здесь что надо сделать??? *)
				cpuCycles[0] := цел64(t.tv_sec)*1000000000 + цел64(t.tv_nsec);
				успехТочногоЗамера := истина всё всё;
		если ~успехТочногоЗамера то
			cpuCycles[0] := ЭВМ.ДайКвоТактовПроцессораСМоментаПерезапуска() всё;

		если ~all то
			temp := process.lastThreadTimes;
			process.lastThreadTimes := cpuCycles[0];
			cpuCycles[0] := cpuCycles[0] - temp;
		всё;
	кон GetCpuCycles;

Т.е. я пытаюсь воспользоваться clock_gettime, и если у меня всё получается, то считаю, что 1 цикл = 1 наносекунда. Если не получается, то использую старое решение. В результате всё вызвалось нормально и я увидел, какие треды работают, а какие спят. Но единицы измерения вряд ли правильные. Как пересчитать, чтобы было похоже на те циклы, которые считает rdtsc?

Иными словами, как узнать частоту, с которой тикают часы, показания которых возвращает rdtsc?

 ,

den73
()

Rust и двусвязный список

Форум — Development

Хорошую тему тут затронули

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

http://contain-rs.github.io/linked-list/src/linked_list/lib.rs.html#11-1388

Или не лучшее? Растаманы и растафобы, собирайтесь на великую битву!

А вот, кстати, ещё про списки:

https://rust-unofficial.github.io/too-many-lists/

 , двусвязный список,

den73
()

Покрывают ли макросы Rust возможности #define?

Форум — Development

В Си можно сделать макросы всякие, уродливые, например:

  #define OPEN_BRACE {
  #define CLOSE_BRACE }

Можно ли так сделать в Расте?

 ,

den73
()

перенос Ubuntu 18.04 вместе с диском в другой ноутбук

Форум — Desktop

Реально ли?

 ,

den73
()

Объём исходников типичной «базовой» системы Linux

Форум — Development

Нашёл за сегодня много интересного, например,

https://sources.debian.org/stats/#sloc_current

https://dwheeler.com/sloc/redhat71-v1/redhat71sloc.html

Но теперь пытаюсь решить такую задачу: есть типичная голая десктопная инсталляция современного линукса, скажем, Убунты.

Сколько строк кода в её исходниках?

Нигде не нашёл инфы, скачиваю пакеты исходников для всех пакетов, поставленных в моей подходящей виртуалке, с тем, чтобы их потом подходящей программкой (cloc) подчитать, но боюсь, что виртуалка + дачный интернет = fail.

 

den73
()

юнионы в C++

Форум — Development

Пишу телегу против плюсов. В связи с этим вопрос - насколько широко в плюсах используются нуль-терминированные строки, юнионы, неумные указатели и всё такое плохое, что делает Си опасным языком.

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

Есть две полярные точки зрения на вопрос:

а) С++ перекрывает Си, поэтому там всё сделано по-другому, поэтому безопасность выше б) С++ - наследник Си и в целом наследует его недостатки.

Поскольку я мало пишу на Си и ещё меньше на Си++, у меня нет сложившегося мнения на эту тему. А у ЛОРа наверняка есть мнение, даже несколько.

 

den73
()

Open Source в российском правовом поле

Форум — Development

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

Мне на ум пришли такие примеры для подражания:

  • шрифты PT, которые заказаны государством у паратайпа и написана лицензия, явным образом разрешающая всем пользоваться, но это не совсем то - тут законченное изделие, и к тому же не программа
  • IDEA IC - я не нашёл текста лицензии на русском, в т.ч. лицензия для студентов с русскоязычных страниц открывается тут https://www.jetbrains.com/legal/docs/toolbox/license_educational/
  • 1C-предприятие - у них открытый код конфигураций, который можно дорабатывать - пока не добрался до лицензии (а надо бы)
  • НИИ ЦентрПрограммСистем, который является ещё советским прототитом FSF

Ещё новость для контекста (лорчик сам подсказал, спасибо: Поправки в Гражданский кодекс вводят в закон понятие открытой лицензии)

Ваши идеи?

 , ,

den73
()

лучший российский линукс простого человека

Форум — Talks

Расскажите пожалуйста. Ходят слухи, что Альт достаточно давно и далеко отпочкован от мейнстрима Линукса. Для меня это первый критерий качества. Правда это или нет? Какой российский линукс наиболее хорош для установки на домашний или офисный компьютер?

Я понимаю, что тема холиварная, но зато я перестал ругать линукс и стал его рассматривать. Видите, как хорошо. Поэтому прошу тему не убивать, а вместо этого хорошо и подробно рассмотреть.

Между тем уже появились люди, которые за 3000 рублей предлагают пригласить мастера и поставить запасной Linux, «пока Windows и Mac OS не заблокировали и вы не потеряли свои данные». Выглядело бы резонно, если бы этим линуксом была не убунта.

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

Перемещено leave из development

 

den73
()

российские аналоги github/gitlab - 2022-03

Форум — Development

Поскольку недолго поднять локальную копию гитлаба, наверняка кто-то уже запилил «наш российский гитхаб» и наверняка таких гитхабов не один. Кто поделится ссылками?

 ,

den73
()

Как поживает внедрение Linux в управлении делами Президента?

Форум — Development

Была статья от 2018 года, что внедрение прошло не очень успешно. А что дальше было?

Вот прошлая тема про это:

Управление делами Президента РФ переходит на Astra Linux

Там есть ссылка на документ о графике перехода, он 404.

А вот статья про неудачу перехода:

https://itnan.ru/post.php?c=2&p=297819

 ,

den73
()

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