LINUX.ORG.RU

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

Пакетная обработка видео

Когда-то под Windows была написана замечательная и даже в некотором роде юниксвейная программа AviSynth. Третью версию грозились выпустить и под линукс, но как-то всё затухло.

Для резки-склейки можно делать скрипты на баше, например, с mkvmerge (для меня принципиально, что это монтаж без перекодирования и, следовательно, без потерь):

#!/bin/bash

mkvmerge \
  -o "./Охотники1.mkv"  \
  -A "(" "../8mm Для монтажа/02.mkv" ")" \
  --split parts:\
02:56-03:25,\
+04:06-04:18,\
+04:42-04:48,\
+05:00-05:11

mkvmerge \
  -o "./Охотники.mkv"  \
  -A     "(" "./Охотники1.mkv" ")" \
  -A "+" "(" "./Охотники2.mkv" ")" \
  --append-to \
1:0:0:0

...и в принципе, почти все мои задачи эти скрипты покрыли. Осталось присобачить титры, сделанные из картинок. Я смотрел в сторону ffmpeg:

ffmpeg -loop 1 -i ./header.png header.mkv

Эта команда повторяет картинку в видеопотоке, пока не нажмёшь Ctrl+C. А есть ли что-то похожее, но с возможностью задать число повторений кадра?

 , ,

hobbit ()

NetworkManager 0.9.10 и pppoe

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

В общем, был у меня под наблюдением ноутбук, на котором стояла openSUSE 12.2. Аппарат ходил в интернет через FTTx от Ростелекома, по pppoe.

Решил я обновить систему до 13.2. Гладко обновить, к сожалению, не удалось, пришлось переставлять. В общем, ситуация штатная, /home на отдельном разделе, пользовательские данные и конфиги сохранились, а остальное, думал я, приложится.

А зря.

Интернет взлетать отказался категорически. NetworkManager там стоит 0.9.10, настраиваю через KDEшный апплет. Доходит до смешного: втыкаю шнур в соседний комп с дебианом (там NM, кстати, 0.9.4, как в старой openSUSE) - всё работает. Втыкаю в ноутбук - не хочет. Хотя сетевая карта как таковая видна, пиктограмма апплета NM на втыкание-вытыкание реагирует. (Система опознаёт её как AR8151 V2.0 Gigabit Ethernet.)

Куда хотя бы смотреть и какие логи тыкать? (Кстати, о логах - в этой новой openSUSe ещё и systemd стоит. Вероятно, и journal тоже, хотя могу ошибаться - как отдельного пакета его в списке нет, но утилита journalctl присутствует.)

То ли проблема самого NM, то ли KDEшного апплета, то ли ещё чего... У апплета, кстати, есть подозрение на багу, не знаю, связана ли моя проблема с ней: на вкладке PPP галку Allow Deflate compression ставь-не ставь, она всё равно не сохраняется.

Пробовал, кстати, запускать новомодный nmtui - такое ощущение, что он откровенно сырой: по команде Add нет типа соединения DSL, Edit и Remove не видят соединения, которое создавал KDEшный апплет. Традиционный nmcli, кстати, это соединение видит, но я пока не чувствую себя настолько уверенно, чтобы через nmcli параметры редактировать.

Куда копать?

 , ,

hobbit ()

Амнистируйте Царя, пожалуйста

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

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

 ,

hobbit ()

KDE не отдаёт мышь

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

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

Установленный в той же системе awesome работает нормально. Более того, даже в KDE из 3 учётных записей в одной безобразий не происходит, в двух остальных начали появляться внезапно. Поэтому есть подозрение, что полное стирание ~/.kde могло бы помочь, но уж очень не хочется настройки среды терять.

Может, это лечится где-то конкретно?

Debian Wheezy, KDE 4.8.4.

 ,

hobbit ()

Чудеса с flashplugin-nonfree

По весне была у меня проблема: отвалился флеш-плеер в iceweasel. Решил я проблему просто: снёс пакет flashplugin-nonfree и поставил его через aptitude заново.

Сейчас после последних обновлений пошли похожие сообщения. Удалил... а поставить не могу, пишет «Нет подходящей версии для flashplugin-nonfree, ни одного пакета не будет установлено, обновлено или удалено».

Debian Wheezy 64-разрядный.

Тут я внезапно вспоминаю, что не так давно заменил в источниках ftp://ftp.ru.debian.org на ftp://ftp.de.debian.org, ибо с первым были какие-то сетевые траблы. Сейчас заменил обратно на ru - ура, плагин нашёлся.

«Что это, Бэрримор?» Не все зеркала одинаково полезны?

 , ,

hobbit ()

Может, сузить понятие нацпола?

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

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

В результате из-за «запрета на разборки» взаимная неприязнь только увеличивается. Лучше уж поругаться и что-то для себя прояснить, чем молчать и копить злобу.

Уважаемые модераторы! Если целью запрета нацпола было обеспечить на ЛОРе здоровую атмосферу дискуссий, то в _данном_ случае оно не только не работает, но работает в обратную сторону. ИМХО.

P.S. Специально для троллей, которые хотят примотаться к конкретному примеру - к олигархам Украины и России и их государственным менеджерам я отношусь одинаково плохо, а вот то, что им удалось поссорить наши народы - это настоящая трагедия. Поэтому вопросом, какой из зомбоящиков мной управляет, можете не озадачиваться, это напрасная трата времени.

 

hobbit ()

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