LINUX.ORG.RU

Сообщения hobbit

 

Удаление нацпола в Клубе

Господа, вы чего? Мне с год назад, когда я про мат месячной давности зарепортил, объясняли, что некромодерация - это фу. Я принял к сведению. Теперь в Клубе сносят комментарий 4-месячной давности по 5.3, которое в клубе отродясь не действовало, причём сносят с -20. И похоже, специально для того, чтобы Скотинку забанить?

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

 , ,

hobbit ()

Аналоги Kerbal Space Program

Добрый субботний вечер, ЛОР.

Существуют ли в природе опенсорсные аналоги Kerbal Space Program? А может, кто-то пытался написать таковой самостоятельно, хотя бы расчётную часть?

P.S. Вот в эпоху микрокалькуляторов хотя бы «Посадку на Луну» в «Технике-молодёжи» сделали...

 ,

hobbit ()

Активация меню по Alt или F10

Доброй ночи, ЛОР.

Я привык, что из большинства программ в разных ОС можно активировать меню, нажав либо Alt (без других клавиш), либо по F10. И дальше гонять курсор стрелками.

Только что обратил внимание, что в моём Debian Stretch с кутешными программами это не работает. Установлены Qt 4.8.7 и Qt 5.7.1 - проблема наблюдается с программами и под ту, и под другую версию. От DE, похоже, не зависит (проверял на KDE5 и LXDE). В GTKшном Firefox работает F10.

Вопрос: это в Qt сломано? Если да, то насколько давно? Если нет, то где? Если не сломано, то можно ли это как-то настроить?

Да, в приличных программах все пункты меню снабжены хоткеями вида Alt+буква. Но далеко не все программы с этой точки зрения приличны...

 

hobbit ()

Секретен ли Client secret?

Доброй ночи, ЛОР.

Слегка подразобравшись с кутешным модулем QtNetworkAuth, мне удалось авторизоваться в Google и заставить работать Contacts API. Правда, пришлось обойти несколько граблей как в Qt (модуль добавили в Qt 5.8, а в 5.10 уже успели поломать), так и с самим Google (контакты возвращаются в собственном велосипедном формате на основе XML, не vCard и даже не xCard). Но это всё не самое интересное.

Когда я регистрирую приложение в гугле, мне выдаётся несколько параметров для OAuth2, в т.ч. так называемый Client secret. Вопросы:

  • должен ли я хранить этот самый Client secret в тайне, на что намекает его название, или без доступа к моему аккаунту никакого ущерба для безопасности это не несёт?
  • если да, то как я в принципе могу это сделать в программе, распространяемой по лицензии GPL?

В некоторых источниках проскальзывает мысль, что секрета может и не быть, а в RFC 6749 вообще написано: «The client MAY omit the parameter if the client secret is an empty string». Вот только в панели управления гугла я не нашёл, как мне сгенерировать учётные данные приложения с пустым секретом...

 , ,

hobbit ()

Есть ли в Андроиде «стандартные» программы?

Добрый вечер, ЛОР.

В прошивке любого андроидфона есть набор более-менее обязательных программ: адресная книга («Контакты»), файловый менеджер. SMS/MMS и др. Есть ли какие-то стандартные реализации этих программ на уровне ОС Android, или каждый производитель телефона пишет свою реализацию телефонной книги и сам включает в прошивку?

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

К примеру, у меня есть старенькая Motorola Defy+ (Андроид 2.3.6) и более свежий аппарат от LG - Leon (H324, Андроид 5.0.1). В моторолке была такая фишка, как «История контакта»: при просмотре контакта можно ткнуть на отдельную кнопочку и получить полный список вызовов и SMS по телефонам этого контакта. В LG я такого не наблюдаю.

Есть и более интересные (для меня) отличия: «Контакты» Моторолы экспортируют адресную книгу в vCard 3.0, а «Контакты» LG - в vCard 2.1, хотя версия андроида (да и сам аппарат) куда свежее.

Правильно ли я понимаю, что в LG просто поставляют с прошивкой свою собственную звонилку, которую они написали сами (ну или нанятые индусы)? Или всё же есть некое Reference Contact Application от Гугла?

Ситуация осложняется тем, что в десктопных программах обычно есть окно About, позволяющее опознать разработчиков программы. В андроиде (по крайней мере, в «стандартных программах») такого не наблюдается.

P.S. Да, я припоминаю, мне ещё 6 лет назад объяснили, что никакого «дефолтного файлового менеджера» в Андроиде нет. Что... и с контактами так же? И с SMS/MMS? Каждый производитель по-своему SMSки показывает?

 ,

hobbit ()

Подсветка ноутбука

Добрый день, ЛОР.

Имею ноутбук Sony Vaio SVE1713W1R. Установлены Windows 8.1 и Fedora 25 с третьегномом. Большинство железа, включая звук и Wi-Fi, в федоре работает отлично. Исключением является подсветка клавиатуры: в винде работает, в федоре нет. Есть ли возможность как-то это вылечить?

Iron_Bug, ты как-то писала, что накатывала дрова для конкретного чипсета, и всё заработало. Я тогда сдуру не поинтересовался, относилось ли это именно к подсветке, и откуда вообще это берут?

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

P.S. Если вдруг окажется, что это гномопроблемы, а не ядерные (хотя сомневаюсь) - тоже приму советы, где с этим получше.

P.P.S. uname -a сообщает:

Linux localhost.localdomain 4.13.16-100.fc25.x86_64 #1 SMP Mon Nov 27 19:52:46 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

 , ,

hobbit ()

OAuth 2.0 из десктопного приложения

Добрый день, ЛОР.

В общем, научился я загружать в десктопную программу, написанную на Qt, контакты по CardDAV из ownCloud. Решил взять источник посложнее - контакты Гугла. И читаю в их документации следующее:

Client applications must use HTTPS, and OAuth 2.0 authentication must be provided for the user's Google account. The CardDAV server will not authenticate a request unless it arrives over HTTPS with OAuth 2.0 authentication of a Google account, and your application is registered on DevConsole. Any attempt to connect over HTTP with Basic authentication or with an email/password that doesn't match a Google account results in an HTTP 401 Unauthorized response code.

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

Я всё правильно понял? Более простых путей нет? Если да, то это довольно грустно, учитывая, что до сего момента я в своей программе успешно обходился и без QtWebkit, и QtWebEngine. Пишут ещё, что в Qt 5.8 появился некий QtNetworkAuth. Но я так понял, что это обёртка над теми же самыми средствами...

 , , ,

hobbit ()

Почему умер VRML?

Добрый вечер, ЛОР.

Вот смотрю я на то, что сейчас предлагается для трёхмерного веба, и недоумеваю. Был когда-то VRML. Достаточно высокоуровневый декларативный язык. Были привязки к JavaScript (правда, их стандартизовать толком не успели).

Полноценно он не взлетел, поскольку в конце 90-х и начале нулевых каналы были откровенно слабенькие, да и видеокарты с поддержкой 3D были не у каждого. Тем не менее, на VRML активно делались проекты энтузиастов, виртуальный мавзолей Ленина, например.

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

Но нет. Вместо этого потребовалось изобрести WebGL, низкоуровневый как ассемблер, но при этом жрущий такие ресурсы, которые и не снились компам, 15 лет назад спокойно пережёвывавшим VRML.

Почему?

Понятно, что очевидный ответ - «копроэкономика, сэр». Но может, есть какие-то объективные технические причины, которые я упускаю?..

 , ,

hobbit ()

Регулярка для анализа URL

Добрый день, ЛОР.

Задача: распарсить URL из кутешной программы. Регулярка взята из Приложения B к RFC 3986.

    QRegExp rUrl;
    rUrl.setPatternSyntax(QRegExp::RegExp2);
    rUrl.setPattern(
                "^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?");
    if (!rUrl.isValid())
        qDebug() << "Invalid pattern";

Программа пишет «Invalid pattern». Может, я всё-таки с синтаксисом промахнулся?

Upd: всем спасибо. Банально забыл удвоить обратную косую черту при внесении всего этого великолепия в текст на C++.

 ,

hobbit ()

NTFS partition is in an unsafe state

Добрый вечер, ЛОР.

На ноутбуке дуалбут: предустановленная Windows 8 64bit и Fedora 23. Диск размечен как GPT (не мной, производителем - я только место под линуксовые разделы отъел).

Пытаюсь примонтировать виндовый диск c: - в fstab прописал:

/dev/sda5               /media/win-c            ntfs-3g    noauto,user 0 2

Пишу под рутом mount /media/win-c, получаю дулю:

Failed to mount '/dev/sda5': Операция не позволена

The NTFS partition is in an unsafe state. Please resume and shutdown Windows fully (no hibernation or fast restarting), or mount the volume read-only with the 'ro' mount option.

При этом я точно помню, что Windows выключал как следует, никакой гибернации.

Монтирование с -o ro проходит успешно, т.е. в режиме чтения диск доступен.

Девять лет назад в старенькой генте NTFS монтировался тем же ntfs-3g на ура - и на чтение, и на запись. Правда, там была обычная MBR, не GPT. И не восьмёрка, а XP.

Куда копать?

 , ,

hobbit ()

Ищу *cloud с адресной книгой

Доброй ночи, ЛОР.

Имея преступный умысел подружить DoubleContact с CardDAV, поставил виртуалку с ownCloud из ova-файла от Bitnami (сборочка версии 10.0.2). К сожалению, адресной книги там не оказалось, а в мануале написано следующее:

The Contacts, Calendar, and Mail apps are not included in ownCloud 9, and are not supported. You may easily install them by clicking the Enable button on their respective Apps > Productivity entries.

Честно говоря, плохо ориентируясь в ownCloud, я так и не понял, где это надо делать. В настройках своей инсталляции ownCloud упоминания о приложении Contacts я не нашёл, в т.ч. в списке отключенных приложений. Я правильно понял, что его надо скачивать отдельно?

Пошёл шариться по сайту ownCloud. Есть apps.owncloud.com (объявлен устаревшим) и marketplace.owncloud.com. На первом можно скачать Contacts для разных версий ownCloud, последняя - 9.2. На втором есть вот это. Я правильно понял, что для скачивания приложений с marketplace необходимо дать своей инсталляции ownCloud доступ в интернет (пока что она болтается в изолированной виртуалке)? Или есть какое-то решение с офлайн-загрузкой?

Ну или как вариант - знатоки, подскажите сборочку ownCloud/Nextcloud/аналоги, где контакты будут работать из коробки. Я не то, чтобы отказываюсь от начатого пути, просто может, есть путь попроще.

Cast Aceler, MrClon, router и вообще всех знающих.

P.S. Сильно не пинайте, если поместил не в тот раздел. Да, по направлению моих хотелок это, скорее, Development, но по техническому содержанию вопросов, наверное, всё же Admin (т.е. я не собираюсь разрабатывать что-то под сам ownCloud/Nextcloud, меня, скорее, интересует, как их настроить - а знатоки этого вопроса, наверное, всё же в Admin).

 , ,

hobbit ()

Манипуляция в опросе

А давно на ЛОРе стало приличным подтверждать опросы с откровенно манипулятивными вариантами ответов? Стыдоба. И ведь автор честно поставил тег «тупняк» (но это не основание данный тупнях подтверждать). Или уже идей нормальных опросов нет? Когда-то ведь в очереди на подтверждение стояли...

 ,

hobbit ()

Во что конвертнуть h.264?

Добрый день.

Есть mov-файл с фотоаппарата. H.264, FullHD, в smplayer-е смотрится довольно прилично. Теперь надо порезать файлик и выделить для него материал для конкурса. Организаторы конкурса написали, что файл должен быть AVI либо WMV. Кодек не указали. :)

Я сначала запустил ffmpeg с -vcodec copy, но он мне всё равно перекодировал в MPEG4 и с довольно поганым качеством. Погуглил: говорят, что h.264 то ли нельзя запихивать в AVI, то ли можно, но будут проблемы. Вообще, странно: если такое сочетание кодека и контейнера действительно недопустимо, то от конвертора логично было бы ожидать сообщение об ошибке, а не молчаливое перекодирование в первый попавшийся кодек.

Вопрос номер один: для ffmpeg это действительно нормальное поведение, или я что-то намудрил с ключами?

Вопрос номер два: если так - во что лучше перекодировать и с какими параметрами, чтобы и качество не сильно потерялось, и кодек был мейнстримным?

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

Обновление: всем спасибо, мне удалось заставить работать -vcodec copy, но для большей совместимости с продукцией ребят из Редмонда я всё же выбрал кодек mpeg4 с принудительным указанием качества. Ключи для обоих вариантов приведены в комментариях ниже.

 ,

hobbit ()

Ищу калькулятор на чистом Qt/C++

Без применения кедолиб и питона. Гугл ничего не дал. Есть что-нибудь похожее, с функциональностью чуть поболее, чем пример калькулятора из поставки Qt?

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

 

hobbit ()

МТС блокирует ЛОР, или?..

Сегодня утром (т.е. глубоко ночью по Москве) попытался зайти на ЛОР со смартфона, подключенного к МТС. Заходил так несколько лет. На сей раз сначала я получил ругань «У этого сайта проблемы с безопасностью - название сайта не соответствует названию в сертификате», а потом меня перекинуло на block.mts.ru, который жизнерадостно сообщил, что «Доступ к запрашиваемому вами ресурсу ограничен». То же самое с лентой.ру, другие сайты открываются нормально.

Сейчас добрался до нормального интернета - ЛОР в порядке. От сердца отлегло. Но на смартфоне проблема осталась.

Вопрос к пользующимся мобильным интернетом МТС: это действительно козни оператора, или же это хулиганит мой старенький Андроид?..

 ,

hobbit ()

Как пропатчить osmo под Debian

Добрый день.

Решил я поинтересоваться современным состоянием этого PIM. В Debian Jessie из репы main ставится 0.2.12. Но запустить его не удаётся:

osmo: error while loading shared libraries: libical.so.0: cannot open shared object file: No such file or directory

В системе стоит пакет libical1a, обеспечивающий libical.so.1. Пакет libical0 поставить не получается. Вывод apt-get:

Package libical0 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libical0' has no installation candidate

Я, конечно, понимаю, что бывают проблемы с зависимостями, но чтобы пакет из main конфликтовал с библиотеками из main же - такого давненько не видел.

Ладно, пробуем собрать из git, тем более в репе явно не последняя версия.

Пакет разработки для gtk поставил. Последнее, что у меня затребовал configure - это webkit2gtk. (Без этого программа собиралась без поддержки контактов, а меня сами-знаете-почему интересовали именно они.)

Поставил libwebkit2gtk-4.0-dev версии 2.6.2. Configure удовлетворился, но make прерывается с сообщением:

utils.o: In function `utl_create_webkit_web_view':
utils.c:(.text+0x24e4): undefined reference to `webkit_web_view_set_editable'

Насколько я понял, эта функция была в libwebkitgtk, но не в libwebkit2gtk. Но старую версию конфигуратор osmo обнаруживать не желает.

Кто виноват, и что делать? Варианты с запуском пакета из репозитория тоже интересуют.

 , ,

hobbit ()

Статистика релизов

Доброй ночи, ЛОР.

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

 

hobbit ()

Подпроект из исходников

Добрый вечер, ЛОР.

В qmake есть возможность разбивать проект на подпроекты не только «физически» (загрузочные файлы, статические и динамические библиотеки), но и «логически» (есть каталог с исходными текстами, который может использоваться разными программами в пределах одного проекта). Это делается созданием файла .pri, в котором перечисляются все включаемые файлы.

Вопрос: как то же самое сделать в cmake? Официальная документация наталкивает на мысль, что в родительском проекте нужно вызвать add_subdirectory(). А вот как при такой схеме написать CMakeLists.txt для каталога-библиотеки?

Гугление «cmake подпроекты» находит только примеры с подпроектами, являющимися самостоятельными библиотеками. Ну ещё нашлась тема на кутешном форуме шестилетней давности, где ТС ответа так и не получил.

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

 

hobbit ()

Travis CI + Coverity Scan + Qt

Добрый вечер, ЛОР.

Прикрутил я к исходникам своего менеджера контактов Travis CI. Работает, компиляет, плашки рисует.

Захотелось мне ещё Coverity Scan прикрутить, тем более, уверяют, что они вместе отлично работают. Почитал официальную доку. Посмотрел, как это сделано в Stellarium. Вроде, почти всё понятно. Почти...

Для начала два вопроса:

1) Там отдельно надо указать build_command_prepend (в моём случае это, видимо, будет qmake) и build_command (ну тут, вроде, make без вариантов). Вопрос: означает ли это, что ВЕСЬ проект должен собираться одной командой? У меня просто в проекте два исполняемых файла - графический и консольный, и сейчас я в своём конфиге для трависа просто собираю их по очереди. Могу, конечно, над ними надстроить ещё верхний файл проекта, это не сложно, но хочу сначала понять, нужно ли это. UPD: надстроил.

2) В доке рекомендуют сначала сделать руками cov-build на своей машине и заслать его к ним на сайт вручную, а потом уже делать полную интеграцию. Собственно, для чего это нужно, и сильно ли необходимо? Нет, если это поможет избежать проблем «всё погибло, а вас предупреждали» - я сделаю, конечно.

 , ,

hobbit ()

Как готовить кроссплатформенность в GTK

Доброй ночи, ЛОР.

Ну начать с того, какую систему сборки использовать, например. Вот в Qt, если без претензий, я могу пользоваться qmake, с ней хорошо всё интегрировано, IDE и все модули. Если с претензиями - можно залезть в cmake. В двух словах: имея Qt SDK, я могу разрабатывать свой проект под линуксом, а потом быстренько сделать сборку под винду, не просиживая в ней слишком много и не затаскивая туда половину линуксового юзерспейса. С макосью чуть похуже, там для работы Qt надо ещё XCode из эппловского магазина поставить. Но больше, вроде, загонов нет.

А как бы аналогичный процесс организовать, если писать на Си с применением GTK, ну и при необходимости, других Gnome-библиотек? Требования те же - пишу под линуксом, потом собираю под виндой, желательно без боли и страданий (ну или с минимумом оных).

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

Gnumeric - судя по исходникам, используется, Autotools. На сайте в разделе Download висит гордая надпись «We do not currently release or distribute Windows binaries». Тем не менее, в интернетах болтаются какие-то сборки гнумерика под винду, но качать их и рекомендовать знакомым виндузятникам после этого реально страшно: непонятно, кто и как их собирал.

AbiWord - снова Autotools. В документации (docs/build/BUILD.TXT) описано несколько способов сборки, причём под первым номером идёт «Diving make using MSYS and MINGW». Но я не понял, как оно работает, там же сразу в лоб предлагается запускать make, а Makefile где?

HomeBank - ну вы поняли, да. Снова Autotools, и в файлике INSTALL обычные формулировки про ./configure; make; make install. Тем не менее, сборки под винду на офсайте имеются.

Пожалуй, самая содержательная информация оказалась в исходниках GIMP. Тут тебе и инструкция по кросскомпиляции с mingw64. и манифест для Visual Studio...

Здесь анонимус наверняка спросит: а собственно, какое отношение система сборки имеет к GUI-библиотеке? Да формально, конечно, никакого. Только должны же быть какие-то best practice в виде набора не то, что бы связанных, но хотя бы проверенно не конфликтующих с собой инструментов. Ну например: ни в одном из проектов, на которые я посмотрел, не используется cmake. Это случайность или закономерность? Допускаю, что у меня выборка нерепрезентативная.

Далее: если уж при написании GTK-программ путь джедая - это autotools, есть ли какая-нибудь IDE, облегчающая с ними работу? Ну не так, как Qt Creator с qmake, допустим, ну хотя бы частично? Тот же вопрос, кстати, и к cmake относится. Там, конечно, синтаксис попроще, чем у Autotools, но всё же...

Наконец, я припоминаю, что в старых книжках по GTK рекомендовали применять Glade. Да и сейчас на хабре по нему можно найти статьи. Но насколько я понимаю, это не полноценная IDE с поддержкой Си-проекта, а именно средство визуальной разработки UI, т.е. это аналог, скорее, Qt Designer, чем Qt Creator?..

 ,

hobbit ()

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