LINUX.ORG.RU

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

XCB keycode в ASCII вопрос

Форум — Development

делаю

event = xcb_poll_for_event(...)
....
const xcb_key_release_event_t *key = (const xcb_key_release_event_t *)event;
switch (key->detail){кнопки...}

как из кодов key->detail сделать коды ASCII как в javascript или в виндовс

без подключения x11 (оно deprecated и на С++)

только Си

в доках стоит «TODO: Talk about getting the ASCII code from the key code.»

прочие интернет туториалы останавливаются на

You might expect that detail would identify the key using ASCII or Unicode. Alas, this is not the case. To determine the pressed key, an application needs to call functions from the xcb_keysyms.h header. These functions aren’t documented and I can find few examples of their use. Therefore, this article won’t explain them in any detail.

единственное что удалось нагуглить из qt5 чтото похожее на рабочее решение

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

 

svv20624
()

Немного серозной военщины

Галерея — Скриншоты

Собсно пилю потихоньку блок обработки для волоконно-оптического вибрационного извещателя

Рабочее место (моё) простенькое ибо не понимаю зачем нужна ДЕ, которая мешает больше чем помогает: таск бар + ярлыки под рукой+ генмон со статусом яндекс-диска (не нашёл под рукой удобный аплет, показывающий когда синхронизация завершилась и можно выключать ПК - так вполне понятно хотя места занимает не в коня)

Рабочее место (оператора, точнее это режим настройки для пуско-наладчика, у оператора просто план/зоны/события) в скучном сером свинге (штатная кросс-платформенная тема нимбус) - пытался привить им любовь к плюшевым цветам и лазурным кнопкам но словил фидбек из разряда «шта эта??? у нас глаза пухнут».
ДЕ у оператора ессно нет, голые иксы и одна программулька ибо нефиг.
Это версия софта в ранней стадии разработки, рабочая охраняет, помимо прочего, 4 аэропорта и прошла первый этам гос испытаний на военку :-)

Цимус в том что в течении года она станет бесплатной (точнее она и так бесплатная но пока без железа её не получить ибо смысла нет) и в обозримом будущем открытой, при этом она умеет не только в наше но и в болидовское железо (через с2000-пп) + onvif/rtsp и отлично пашет на расбери 3/4 (просто добавь USB->RS485 или ethernet->rs-485)

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

 , , , ,

rukez
()

Заброшенные Open source программы

Форум — Development

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

Начну пожалуй:

MyRuLib http://myrulib.lintest.ru/ https://github.com/lintest/myrulib/

Hddtemp https://savannah.nongnu.org/projects/hddtemp/

 , , ,

peregrine
()

Реальные вопросы на собеседовании

Форум — Development

Задавайте только реальные вопросы с собеседования. Кто хочет может отвечать на эти вопросы, задавший вопрос должен ответить зачтено или нет и провести разбор ответа, указать на ошибки и недостатки в ответе. Если зачета никто не получил в течении недели, автор вопроса сам дает ответ. Остальные естественно тоже могут участвовать в обсуждениях.

 

Lzzz
()

ThinkPad T480, 2 батареи и arch

Форум — Linux-hardware

Привет всем! 2 дня назад стал обладателем Thinkpad T480, снес сразу 10ку и устанавил arch и менеджер управления питания «tlp» и tp_smapi. Собственно вопрос для владельцев ноутбуков ThinkPad… Thinkpad T480 имеет две батареи(внутренняя и внешняя) разряжатся вроде как должна сначала внешняя, а потом внутренняя. У меня наоборот, сначала разряжается внутренняя, а потом уже внешняя. Может кто подскажет где можно поменять в конфигах системы чтобы сначала разряжалась внешняя батарея, а потом внутренняя? Может так и надо?

 

ShurikEEN
()

Racket Scheme. Разделить каждый элемент первого списка на каждый элемент второго списка.

Форум — Development

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

 ,

stzky
()

Менеджер паролей в 2020

Форум — General

Порекомендуйте, пожалуйста, максимально надёжный, бесплатный и кроссплатформенный (Linux, Windows, Android) менеджер паролей.

 , ,

Maxsize
()

текстовый редактор... для редактирования, блин, текстов

Форум — Desktop

в общем, понимаете ли, как бы это объяснть...))
короче, есть много всяких продвинутых текстовых редакторов. но они большей частью рассчитаны в основном на погромистов. то есть там есть подсветка синтаксиса для 100500 языков, code folding, отступы (tab/shift+tab), автоматическое закрытие скобок/кавычек/etc при наборе и прочие замечательные вещи.
это все здорово, но... я хочу чего-то для удобного редактирования текстов (зудожественных), а не кода, конфигов и прочей технической мурни.
поясню: обычно редакторы работают с категорией «символ», а не «слово». из-за этого возникает багофича: ровно что ты выделил, то и будет перемещено, удалено, вставлено-скопировано с точностью до символа.
пример из оффтопика: вот адобе indesign (и вместе с ним incopy, но с последним меньше людей имеет дело) работает именно с текстом и словами, а не «символами». то есть когда выделяешь слово (или несколько) по ctrl+стрелке или дубль-кликом, а потом перетаскиваешь мышкой - оно встает в указанное место, но при этом с пробелами до и после, а не прилипает к соседнему слову. а там, откуда ты его утащил, остается один пробел, а не два. аналогично при удалении, при вставке. если после слова стоял знак пренипания, а слово утащили/удалили - знак прилипнет к предыдущему слову, а не останется болтаться между пробелов.

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

Петя Маше сказал, что не приедет завтра.

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

или наоборот, перетаскиваю «сказал», на выходе не лучше:
Петя сказалМаше , что не приедет завтра.

хочу переделать вторую часть:
Петя сказалМаше , чтозавтра не приедет .

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

переставляем, получаем:
бла-бла. на следующий день Брат уехал...

и вот сейчас бы раз - и как indesign/incopy: контекстное меню - change case - sentence case, чтобы умная машина сама исправила выделенный фрагмент на
бла-бла. На следующий день брат уехал...

ну или хотя бы чтобы умело менять «слово» на «Слово», а не только на «СЛОВО».
а что-нибудь в духе «переместить слово под курсором левее/правее» по какому-нибудь условному alt+left/right и «удалить слово под курсором» (без беготни с ctrl+left/right, да еще с шифтом по пути, а просто то слово, на котором стоит курсор) - это было бы вообще киллер-фичей!

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

 

PerdunJamesBond
()

Beyerdynamic dt990

Форум — General

Всех приветствую, подскажите пожалуйста если не трудно по поводу наушников, всегда хотел купить себе хорошие наушники, но как-то все в пк апгрейдилось кроме наушников и не доходили до этого руки, но вот присмотрел себе эти наушники, почитал отзывы и прочее, и решил себе их взять, так вот, стоит ли к ним брать звуковую карту и какую? Смотрел в сторону SoundBlaster X G6, но мне кажется он слегка дороговата и встает в цену ушей, еще слышал про фио е10к, вообщем подскажите, я в этой теме не очень смышленный Что для меня важно: качественное позиционированние в играх и музыку вечерком послушать Сейчас материнка с ALC1200a (возможно её хватит без звуковухи?)

 , ,

AVpro
()

В чем нынче модно рисовать UML-диаграммы?

Форум — Development

Собственно, сабж. В чем нынче на онтопе принято рисовать диаграммы?

Начались у меня курсы по джаве, и там препод вещает про UML, «юзерстори» и прочие вещи… И восхваляет мелкософт. Вангую, что задание на нарисовать диаграмму будет включать в себя какое-нибудь Visio, коего у меня, естественно, нет.

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

З.Ы. Желательно не в виде вебни.


Dia умеет это мышевозить, даже есть раздел UML. Все, вопрос решен. За намек на plantuml тоже спасибо.

 

Zhbert
()

Universal UI for Rust

Форум — Development

Доброго времени суток.

Примерно полгода назад, когда я начинал изучать Rust, я обнаружил в нем фатальный недостаток - отсутсвие крейта, который бы реализовывал удобный и кроссплатформенный UI. Хотелось поддержки Linux/Windows/MacOS/WASM-web/Android/iOS и удобства использования уровня Qt с их сигналами-слотами.

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

#[derive(UWidget)]
struct MyWidget {
    #[uwidget]
    layout: LinearLayout,

    #[public_slot] // у структуры будет публичный метод, через который слот будет доступен снаружи
    #[uprocess(on_text_updated)]
    slot_set_text: SlotImpl<String>,

    slotproxy_set_text: SlotProxy<String>,

    #[uprocess(on_button_clicked)]
    slot_button_clicked: SlotImpl<()>,
}

impl MyWidget {
    pub fn new(placeholder: String) -> MyWidget {
        let slotproxy_set_text;
        let slot_button_clicked = SlotImpl::new();

        let mut layout = LinearLayout::new(Orientation::Horizontal);
        layout.push_widget({
           let textedit = TextEdit::new(placeholder);
           slotproxy_set_text = textedit.slot_set_text().proxy();
           textedit
        });

        layout.push_widget({
            let mut button  = Button::new("Push me");
            button.signal_clicked().connect(&slot_button_clicked);
            button
        });

        return MyWidget{
            layout,
            slot_set_text: SlotImpl::new(),
            slotproxy_set_text,
            slot_button_clicked,
        };
    }

    fn on_text_updated(&self, s: String) {
        self.slotproxy_set_text.exec_for(s);
    }

    fn on_button_clicked(&self, _:()) {
        info!("button clicked!");
    }
}



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

pub fn new(placeholder: String) -> MyWidget {
    let layout = layout!(
        orientation: Horizontal,
        widget: text_edit!(
        	placeholder: placeholder,
        	slot_set_text: proxy!(slotproxy_set_text),
        ),
        widget: button!(
        	signal_clicked: connect!(slot_button_clicked),
        ),
    );

    return MyWidget{
        layout,
        slot_set_text: SlotImpl::new(),
        slotproxy_set_text,
        slot_button_clicked,
    };
}


Немного технических подробностей:
* Уже работает для Linux (Qt) и WASM (web-sys).
** В ближайших планах минимальная поддержка Windows/MacOS через Qt и поддержка Android (Java-jni, нативные виджеты).
** В среднесрочных планах поддержка нативных виджетов Win/Mac, поддержка iOS.
* Система сборки на build.rs-скриптах для cargo, которая позволяет из одних и тех же исходников собирать проект для любой платформы. Небольшой (2-5 строк) скрипт придется написать самому, используя готовые функции из библиотеки.
* В самой библиотеке есть еще Property, которые умеют хранить состояние и обладают встроенными сигналами/слотами. И немного других улучшалок.
* Никаких unsafe в интерфейсах для пользователя (внутри - только для работы с native-кодом).
* Никаких RefCell, Rc и прочих Arc в интерфейсах. Внутри их тоже практически нет, к релизу хочу выпилить совсем.


В основном вдохновлялся Qt, но изначально все писалось под web-sys, с последующим прикручиванием Desktop'а.


Тут хотелось бы обсудить 2 вещи (на самом деле 3):
1. Интересна ли вам такая библиотека.
2. Насколько удобным выглядит интерфейс.
3. Насколько Rust ущербен, порекомендуйте уже готовые библиотеки, и вот это вот все.

P.S. Буду держать вас в курсе, так что можете сразу ставить uniui тег в игнор.

 , , , uniui

trex6
()

Вопрос по начинке паяльника.

Форум — Linux-hardware

Встретил на Али вот такой паяльник на жалах t12 . Хотел узнать , там есть Термо стабилизация или нет. @K50 вроде ты ремонтом занимаешься , что можешь сказать сказать?

 

psiman
()

Вышла notcurses v1.4.1 — библиотека для современных текстовых интерфейсов

Новости — Open Source
Группа Open Source

Вышла новая версия библиотеки notcurses v1.4.x «the saga continues! wu-tang! wu-tang!»

Notcurses это библиотека TUI для современных терминальных эмуляторов. Буквально переводя – не проклятия (not curses). Она написана на С, с использованием C++-safe headers. Доступны обёртки для Rust, C++ (github.com) и Python.

( читать дальше... )

Видео демо с комментариями автора Книга «Hacking The Planet! with Notcurses» от автора

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

 , , ,

cocucka
()

Как научиться доказывать теоремы?

Форум — General

Здравствуйте! Например, читаю я книгу В. Чубарикова по матану и хочу доказать теорему сам, без подсматриваний. Но не могу этому научиться. Скажите, как это сделать, пожалуйста?

 

Alexandrietz
()

Простая геометрия. Объекты на прямой.

Форум — Development

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

Конечно же всё не очень просто. Все элементы с какими-то отклонениями по координатам. Но нужно найти те, которые находятся именно наиболее на одной прямой.

Нет. Не каждые два элемента конечно, а так чтобы была выявлена «прямая» относительно большинства находящихся на этой «прямой» элементов.

Добавлю, что большинство элементов (например 6 из 10) находятся вполне точно относительно прямой, а остальные могут ощутимо отклоняться.

Есть ли быстрые и точные алгоритмы решающие подобные задачи?

 

HIS
()

Firefox VA-API/X11 (заброшен; смержили другую реализацию)

Форум — Development

Проект по добавлению VA-API/X11 в Firefox. Заброшен.
Текущее состояние на 3 июля 2020: (комментарий).

Текст от 25 марта 2020:
Атипичная простуда в очередной раз всех напугала и напомнила, что люди не вечные, причём часто внезапно. Было бы жаль совсем потерять результаты работы, поэтому выкладываю текущий вариант патча к Firefox с поддержкой VA-API под иксами.

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

  • если не подкрутить настройки, ест больше ватт, чем полностью программное декодирование;
  • с WebRender видео не видно; возможно роняет контент-процесс;
  • с layers-opengl нет видео, если не включить gfx.use-glx-texture-from-pixmap;
  • истерично переаллоцирует X11-пиксмапы, если под layers-opengl переключиться на другую вкладку.

Чтобы под layers-basic экономия от декодирования вообще имела смысл, нужно включить gfx.xrender.enabled. Без XRender чтение картинки обратно в память CPU ест больше энергии, чем просто декодирование сразу на CPU.

До рабочего варианта ещё далеко. Но если кто-то захочет собрать и потестить, ссылка внизу. Патчсет базируется на 74.0. Оригинальный репозиторий был в Mercurial, и файлы .gitignore там где-то игнорят нужное для сборки, поэтому не факт, что код как есть соберётся. Если так оно и есть, должно помочь использование релизных исходников от 74.0 с последующим накладыванием патча.

Для VP9 Firefox предпочитает ffvpx, особую сборку ffmpeg, которую таскает с собой. Чтобы VP9 декодировать через системный ffmpeg с поддержкой VA-API, нужно выключить media.ffvpx.enabled.


https://github.com/i-rinat/firefox/compare/master...vaapi

 , ,

i-rinat
()

Переехал на кучу утилит переписаных на Rust

Форум — Talks

Тег «угадай автора по заголовку».

Q: Зачем?

A: Ради эксперимента, повысится комфорт пользования терминалом или нет.

Q: Причем тут Rust?

A: Ни при чем, но из-за нативности и отсутствия GC на нем толпа людей побежала переписывать что ни попадя. С таким же успехом можно было бы и npm install, но тормозило бы. Ближе opam install или go get

Теперь мой терминал по истине свистит и пердит. Даю список если кому надо.

  • alacritty - GPU ускоренный терминал.
  • alias cat=bat- cat с хорошей подсветкой синтаксиса и нумерацией строк и пейджером.
  • broot - навигатор по каталогам, который одновременно показывает дерево, но адекватно себя ведет с громадными каталогами, показывая их по чуть-чуть.
  • dust - утилита для исследования места занимаемого каталогами, сортирует деревья файлов начиная с самых больших каталогов.
  • alias ls="exa -l --group-directories-first" ls с хорошими дефолтами, tree встроено.
  • rip Утилита для удаления файлов с разными удобными фичами и восстановлением
  • hors "How do I parse float in javascript?" - находит короткий ответ в интернетах и отвечает. Чуть лучше работает чем оригинал - howdoi.
  • mdcat - cat для Markdown, для отображения удобочитаемой формы документа. Ссылки делает сносками.
  • alias grep=rg - очень быстрый и удобный grep
  • starship - shell command prompt, показывает кучу полезной информации в зависимости от контекста, например git branch если в репозитории, версии софта и ЯП если в каталогах с сорцами, hostname если зайти по ssh.
  • tokei - сборщик статистики по ЯП и строкам кода в деревьях исходников.
  • hyperfine - бенчмарк утилита, time на стероидах.
  • tldr- сокращенная версия man, показывает как чем пользоваться в примерах, а не выдавая полную справку. Страницы поддерживаются сообществом для громадного количества утилит. Изначальный проект - https://tldr.sh/
  • topgrade - универсальная утилита обновления. При запуске пытается обновить все что видит - системные пакеты, vim пакеты и так далее.
  • runiq - быстрый sort | uniq с разными алгоритмами внутри.
  • fd - быстрый и удобный find, удобно чтобы не вспоминать заковыристые ключи
  • fselect - поисковик файлов с SQL-like языком запросов
  • sd - как sed, только интуитивный
  • i3status-rs - Сразу i3status+i3blocks. Плюс батарейки к i3blocks, которые как я понял автор решил убрать.
  • onefetch - Вроде neofetch, но для сорцов. Просто запустите эту штуку с корня любого git репа, клонированого локально
  • wasmtime - JIT runtime для WASI стандарта. Пускалка WebAssembly приложений.
  • scriptisto - «shebang-интерпретатор» для компилируемых языков, прозрачно собирает и кеширует нативные сборки кода

Что не зашло совсем

Все вышеперечисленое ставится через cargo install <package_name> (кроме alacritty), название смотрите на страницах. Сам cargo и Rust ставятся через

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

P.S. Призываю остальных взять ЯП вашей секты и поставить такой эксперимент и отписаться. Да-да, расскажите как вы пользовались ls на Java. Пользователей emacs прошу не беспокоить

 , , ,

vertexua
()

Что почитать по Guile

Форум — Development

Решил ознакомиться со Scheme и глаз зацепился за Guile. У них есть мануал, но я не уверен, насколько он полноценный.

До этого ни с каким лиспом дела не имел, но со скобочками я на ты (objc). Будет ли достаточно этого мануала, чтобы уверенно изучить синтаксис, семантику, ооп и тд? Есть ли еще мануалы с Best Practice и общепринятыми тулзами, типа линтеров, менеджеров зависимостей, юнит тестами, CI.

(в Talks постить не могу, так что сорян, если мимо)

 , ,

rbbtnspc
()

Брошенное СПО

Форум — Development

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

Например, был колоризатор логов ccze, который меня практически всем устраивал, кроме того, что тормозил и без патчей под Арчем уже не собирался. Я пофиксил сборку и оптимизировал всё, что тормозило. Остальное ничего не трогал, т.к. больше в программе под мои задачи дорабатывать было нечего: https://github.com/geekless/ccze-rv/commits/master (Надо будет, кстати, проверить сборку под новыми ОС снова. А то я как собрал бинарник несколько лет назад, так и пользуюсь им без пересборок.)

Если у вас есть примеры таких программ, дайте мне знать.

При этом в моём приоритете:

  • Программы либо на gtk2 (просто с этим тулкитом знаком лучше всего), либо чисто консольные.
  • В первую очередь, на чистом Си, а потом уже на всём остальном.
  • В первую очередь, программы, работавшие под GNU/Linux, во вторую - под FreeBSD, в третьих - всё остальное.
  • С небольшой кодовой базой. Форкать xulrunner я ради вас не собираюсь, естественно.
  • Не устаревшие на миллион лет. Вот был такой файловый менеджер deco, еще под фряхой в давние времена я пользовался им. Но «спасать» там уже нечего, пришлось бы всю программу переписывать с жесткой привязки к 8-битным кодировкам на современный utf8.

Также:

  • Предметная область и решаемые программой задачи должны быть мне понятны. Я не смогу вам помочь, если не понимаю, что вообще в вашей программе происходит.
  • Собирать пакеты под ваш любимый дистрибутив я не буду. Могу запустить образ системы в докере, чтобы проверить сборку и корректность работы. Пакет оформляйте сами, если нужно.
  • Конечно, я не буду браться за то, что мне не интересно.

Какой мой интерес в этом:

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

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


P.S.

Также я понемногу пилю форк http://mooedit.sourceforge.net/https://github.com/sde-gui/qk . Автор замахнулся на амбициозную цель переписать всё на C++, но что-то пошло не так, и очередной релиз редактора так и не вышел. Я форкнул код от стабильной версии на чистом Си. Но здесь я не просто исправляю баги, а постепенно хочу переделать существенную часть редактора.


UPD.

Интересное из комментариев:


UPD. 2

https://github.com/software-revive/about/wiki/Status

 , ,

Deleted
()

Применение Bash-скриптов в повседневности

Форум — General

Опишите примеры вашего применения баш-скриптов в повседневности. В частности дома. Что полезного создаете, упрощает ли это вашу жизнь, и сколько времени потратили на создание своего скрипта.

 , ,

shkolnik_2022
()