LINUX.ORG.RU

Сообщения 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 ()

Зачем писать кроссплатформенное ПО

Я несколько раз встречался на ЛОРе с мнением, что те, кто пишет кроссплатформенное ПО, укрепляют не линукс, а винду. А для укрепления позиций линукса надо писать программы, работающие только под линуксом.

Я понимаю, откуда берётся эта позиция. Люди видят, что Microsoft и прочие корпорасты пользуются именно таким приёмчиком - людей держат на винде не только привычка, но и windows-only программы, драйвера, форматы, и др. И некоторым кажется, что если начать копировать приёмчики корпорастов - линукс победит.

Проблема в том, что это не работает.

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

Дело ещё и в том, что это не работает чисто практически. У майкрософта это получается потому, что на их стороне до сих пор численный перевес, человеческие привычки, ну и разумеется, средства на пиар. Люди воспринимают Windows как стандарт. Даже если они этим стандартом недовольны - всё равно стандарт.

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

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

Рассмотрим противоположный пример. Человек открывает для себя OpenOffice или Firefox и начинает им пользоваться в винде. А потом он вдруг видит линукс и видит под ним те же программы. И думает: «Ба, да этим же можно пользоваться!..» А уже потом он узнаёт, что с семёрочки придётся переползать на десяточку, и задумывается ещё сильнее...

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

Жду дискуссии.

P.S. Разумеется, есть специфичные случаи. Например, заказная система, которая никогда не будет переноситься под винду. В этом случае выбор linux-only средств иногда может быть оправдан. Но для софта общего назначения - см. выше.

P.P.S. Модераторам. Тема одинаково может относиться как к Development, так и в Talks. С одной стороны, это действительно нетехнические разговоры о разработке ПО для Linux. С другой - к разработке они таки относится напрямую (влияют на выбор тулкитов и др.), и те, кто читает Development, но не читает Talks, могут её не увидеть. Если считаете, что я неправ - перенесите в Talks.

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

 

hobbit ()

Простой счётчик для простого сайта

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

Есть ли простой способ воткнуть счётчик посещений на сайт, на котором есть SSI, но нет PHP? Не нужно продвинутой статистики, анализаторов, просто надпись типа «Вы 6666-й посетитель».

Среда: VDS с CentOS 6, nginx-1.6.2-1.el6.ngx.i386.

Раньше (для Апача) в таких случаях предлагали написать скриптик на перле и вызывать его через CGI. Но в nginx, как я понимаю, CGI по умолчанию отключен, #exec cmd тоже не работает. Некоторые предлагают эмулировать CGI через FastCGI с километровыми конфигами. Почему-то мне кажется, что для такой простой задачи это явное излишество и должно быть решение проще. Я не прав?

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

P.S. Сайт некоммерческий, чисто для себя.

 

hobbit ()

История коммитов перемещённого файла

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

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

 

hobbit ()

Библиотека для распознавания текста по шаблонам

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

Пример практического применения - сканирование чеков из магазинов. Вот например, FinPix (проприетарное, под Андроид) явно использует что-то подобное. Я пробовал, кстати, довольно неплохо распознаёт, только медленно. А есть опенсорсные библиотеки, которыми можно решить такую задачу?

 

hobbit ()

Отмена сортировки через прокси-модель

Добрый день.

Есть у меня табличная модель, наследница QAbstractTableModel. Отображается через QTableView. Захотелось мне ещё сортировку сделать. Написал наследника QSortFilterProxyModel, подключил. Вызвал у QTableView setSortingEnabled - сортировка работает.

Но хочется мне, чтобы сортировку можно было включать и отключать. И вот тут какие-то непонятки. Вызываю у view setSortingEnabled(true) - сортировка сразу включилась, появились значки в заголовке, работают. Вызываю setSortingEnabled(false) - значки вроде бы пропали, но View по-прежнему показывает данные в отсортированном порядке.

Там надо ещё что-то вызвать?

Нет, есть ещё конечно, как минимум два «лобовых» варианта:

  • при отключении сортировки просто выбрасывать прокси-модель и во view работать напрямую с оригиналом. При включении - восстанавливать цепочку. Но кажется мне, что это явно черезжопно по коду. Хотя тормоза на ненужную сортировку гарантированно исключает;
  • чуть усложнить lessThan в прокси-модели, чтобы при отключённой сортировке оно просто работало как предок. Код компактнее, но во-первых, сортировка, хоть и вырожденная, всё равно будет дёргаться, а во-вторых меня не покидает ощущение, что должен быть какой-то бескостыльный вариант. А этот всё равно костыльный, хоть и не настолько, как первый...

 , ,

hobbit ()

Fedora 23 на UEFI в дуалбуте

Ура.

Я вчера без плясок с бубном поставил Fedora 23 Workstation на ноутбук с UEFI (Sony Vaio SVE1713W1RB), где была предустановленная Windows 8, впоследствии обновившаяся до 8.1.

От варианта автоматического разбиения и воздержался, сказал, что разобью вручную. У меня уже был ext3 на /dev/sda8 (остался от давней установки Росы R2), пометил его как /. Ещё инсталлятору требовался GPT-раздел для /boot/efi, и я указал в качестве такового существующий GPT-раздел, хотя были большие сомнения, останется ли после этого работоспособной винда.

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

Остаётся вопрос к спецам по Федоре: что сейчас считается «автоматическим разбиением», которое предлагается по умолчанию? Снос существующих разделов с гибелью всего, как это было раньше, или какой-то более интеллектуальный вариант? Если первое, то если я буду рекомендовать этот дистрибутив знакомым новичкам, придётся делать оговорки.

P.S. Для тех, кто скажет «ну и что, это всё уже давно работает»? Ещё года полтора-два назад не работало или работало на везде. По крайней мере, тогдашнюю Убунту я на UEFI просто не смог взгромоздить, а РОСА встала и заработала, но после этого перестала грузиться винда. Так что, возможно, этот текст поможет кому-то решиться.

 , ,

hobbit ()

Ссылки в комментариях к пользователю

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

Нельзя ли сделать в движке ЛОРа так, что если я в комментарий к профилю пользователя добавляю одну или несколько ссылок, они в профиле и отображались бы именно как ссылки, а не как простой текст?

Перемещено Klymedy из linux-org-ru

 

hobbit ()

И снова про дуалбут на UEFI

Нашёл вот такой мануал.

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

 ,

hobbit ()

«Сам попросил» - это нормально?

Тут недавно тему удалили по причине «сам попросил». Это вообще нормально?

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

Но тут-то чел задал изначально нормальный вопрос, и ему серьёзно отвечали, аргументировали. Потом ТС решил, что из темы «жир потёк», попросил удалить. Удалили.

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

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

 

hobbit ()

Текст для convert из параметра bash-функции

Добрый день.

Вставляю convert в bash-функцию. Вот такая картинка из текста получается нормально:

    convert -fill black \
        -pointsize 42 -font DejaVu-Serif-Bold -draw "$2" \
        -pointsize 14 -font Courier-Oblique -draw 'text 200,560 "Из киноархива N.N. NNN"' \
        "${VDIR}/blank720x576.png" "${VDIR}/header$1.png"

В качестве $2 подставляется что-то типа

'text 150,240 "8. На озере"'

И так всё работает...

А нельзя ли пойти дальше и оставить в $2 только содержательную часть, а text 150,240 пусть будет внутри функции, что-то типа

-draw 'text 150,240 "$1"'

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

Но может, это можно как-то разрулить?

 ,

hobbit ()

Обновил Wheezy до Jessie

Домашний десктоп. Железо почти 6-летней давности. Intel Core Quad Q8200, нвидия GeForce 9600 GT, 4 гига ОЗУ.

Не стал ждать субботы :) Обновил на систему, сделал dpkg autoremove, перенастроил список источников, сделал update, upgrade и dist-upgrade.

При перезагрузке GRUB отказался запускать меню. Написал file not found (какой именно file, не уточнил) и вывалился в rescue console.

Почесал репу, откопал DVD с инсталлятором (ещё от Squeeze), загрузился. Тьфу-тьфу, разделы на месте. Загрузил в rescue mode систему с /dev/sdb1, где у меня был корень. update-grub2 не помог. Сделал grub-install /dev/sdb1. Заработало. Оба дебиана (64-разрядный, который я обновлял, и 32-разрядный, его пока не трогал) грузятся.

Самая главная интрига - с обновлением в мой дебиан прилетел systemd.

Плюс - субъективно система стала грузиться чуть быстрее. Разница могла быть больше, но у меня грузится куча всякого софта, который для десктопа не очень типичен, но нужен мне для работы: PostgreSQL, несколько виртуалок и др.

Минус - если раньше при загрузке на экран выводился подробный отчёт о загружаемых компонентах, то теперь выводится только несколько строчек. Такое ощущение, что линукс скатывается в винду. Может, systemd позволяет это где-то настраивать?

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

Виртуалбокс сломался, буду разбираться. (Подозреваю, надо пересобрать какой-нибудь ядрёный модуль.) Точки монтирования флешек переехали из /media в /media/<username>. Кроме qt4, появилась qt5, но devel-пакеты я пока не ставил.

 , ,

hobbit ()

Срок давности для 5.1

Недавно в этом разделе кто-то сомневался, стоит ли тереть сообщения с матом 5-летней давности. Я, в общем, согласен, что 5 лет - это перебор. А что насчёт сообщений, которые были месяц-два назад? Они ведь создают ресурсу вполне конкретную репутацию? Вот, например, раз, два и три. Ссылки в спецтеме на эти комментарии были, но модераторы не отреагировали. Здесь есть какая-то закономерность?

 ,

hobbit ()

Создание новой картинки

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

А можно ли средствами ImageMagick создать новую картинку с нуля? convert и mogrify, похоже позволяют только преобразовывать существующие.

Да, можно ему на вход подать какой-нибудь blank720x576.png и далее уже его преобразовывать, но может, есть более красивое решение?

 

hobbit ()

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