LINUX.ORG.RU

Сообщения TripleGluk

 

Изменить тему KDE не под KDE (для KDE-шных программ)

Собственно трабла в том, что программы сделанные под KDE со штатной темой в свежей mint-xfce выглядят ужасно. Похоже там тема под hdpi рассчитана, все шрифты огромные (раза в 1.5 больше xfce-шных), на буке в экран влезают с трудом. У крузадера вообще иконки отвалились. Вопрос - как её поменять на что-то более приличное или хоть настроить как-нибудь ту, что есть без установки kde?

 ,

TripleGluk
()

Раздвоение личности std::string под minGW (сборка openCV)

Собственно openCV в итоге собрать удалось, но вот дальше началось непонятное. При сборке тестового проекта (стандартная шняга с открытием картинки) вылетает куча undefined reference. Опытным путём было обнаружено, что у всех функций, которые параметром имеют std::string (алиас cv::String) не совпадает сигнатура и линкёр их не видит. Поиск навёл на подобную проблему со сборкой под мак clang-ом. Там, вроде как, 2 версии разных библиотек с реализацийе std::*, причём сигнатуры как раз совпадают с моими. Вот только никакой информации о подобном раздвоении у minGW не нашлось. При сборке openCV, вроде, никаких подозрительных флагов не нашел и почему такая разница - непонятно. Может кто в курсе, где копать?

 

TripleGluk
()

minGW warning: 'thread' attribute directive ignored

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

 

TripleGluk
()

Mingw не компилит собственные хедеры.

Пытаюсь перейти на GCC (с уже не маленьким проектом). Проект вполне нормально собрался под Watcom. По ходу дела возникла непонятная проблема: Вылетают тонны ошибок на его собственные хедеры. Типа (..\lib\gcc\mingw32\4.7.1\include\c++\exception):

  class exception
  {
  public:
    exception() _GLIBCXX_USE_NOEXCEPT { }
    virtual ~exception() _GLIBCXX_USE_NOEXCEPT;

..\lib\gcc\mingw32\4.7.1\include\c++\exception|65|error: expected identifier before '(' token|
..\lib\gcc\mingw32\4.7.1\include\c++\exception|65|error: expected ')' before numeric constant|
..\lib\gcc\mingw32\4.7.1\include\c++\exception|65|error: expected ')' before numeric constant|
..\lib\gcc\mingw32\4.7.1\include\c++\exception|65|error: 'exception' declared as function returning a function|
..\lib\gcc\mingw32\4.7.1\include\c++\exception|65|error: expected ';' at end of member declaration|

На выходе препроца:

  class exception
  {
  public:
    exception() ((0) ? (void)0 : _assert("0", "../lib/gcc/mingw32/4.7.1/include/c++/exception", 65)) { }
    virtual ~exception() ((0) ? (void)0 : _assert("0", "../lib/gcc/mingw32/4.7.1/include/c++/exception", 66));

Другой пример (..\lib\gcc\mingw32\4.7.1\include\c++\new):

  class bad_alloc : public exception 
  {
  public:
    bad_alloc() throw() { }


..\lib\gcc\mingw32\4.7.1\include\c++\new|59|error: expected ')' before numeric constant|
..\lib\gcc\mingw32\4.7.1\include\c++\new|59|error: expected ')' before numeric constant|
..\lib\gcc\mingw32\4.7.1\include\c++\new|59|error: 'bad_alloc' declared as function returning a function|
..\lib\gcc\mingw32\4.7.1\include\c++\new|59|error: expected ';' at end of member declaration|
..\lib\gcc\mingw32\4.7.1\include\c++\new|59|error: expected unqualified-id before numeric constant|
..\lib\gcc\mingw32\4.7.1\include\c++\new|63|error: expected identifier before '(' token|
..\lib\gcc\mingw32\4.7.1\include\c++\new|63|error: expected ')' before numeric constant|
..\lib\gcc\mingw32\4.7.1\include\c++\new|63|error: expected ')' before numeric constant|
..\lib\gcc\mingw32\4.7.1\include\c++\new|63|error: 'bad_alloc' declared as function returning a function|
..\lib\gcc\mingw32\4.7.1\include\c++\new|63|error: expected ';' at end of member declaration|
..\lib\gcc\mingw32\4.7.1\include\c++\new|63|error: expected unqualified-id before numeric constant|
..\lib\gcc\mingw32\4.7.1\include\c++\new|66|error: expected ';' at end of member declaration|

Было подозрение, что там потерян какой-то дефайн, но на выходе препроцессора вроде всё норм. Может кто сталкивался с таким раньше?

В качестве иде - codeBlocks, mingw из его комплекта.

 ,

TripleGluk
()

Универсальный формат файла

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

Собственно изначальная идея была - добавление мета-данных в ЛЮБЫЕ файлы. В т.ч. и те, в которых ничего такого нет (типа TXT например). Чтобы ЛЮБАЯ программа с минимальными усилиями могла понять, с чем имеет дело, без встроенной поддержи тысячи и одного формата. Этакая общая обёртка. В идеале - на уровне системы. Т.е. если программа знает такой файл, то работает с ним как хочет. Если не знает - ос просто при открытии отдаёт ей только поток "по умолчанию"

Немного развив:

Не секрет, что ныне существует туева хуча файлов с внутренней фс или её аналогом..
С ходу вспоминаются wad, psd, exe(pe), jpg, tiff, mp3, doc, xls, mdb, odf, avi, ogg, образы дисков, архивы и т.д.
Собственно идея - сделать полностью универсальный формат файла с внутренней фс. Или считать файл архивом с простейшай структурой (т.е. файлы не сжаты, цельны. если ресурсов хватает - можно и жать)

Добавить туда поддержку каталогов. Ресурсы файла хранить не в ехе, а внутри архива отдельными файлами. Туда-же добавить мета-данные, mime-тип, описание, и пр...
Указать там поток "по умолчанию". т.е. если запускать файл, то запускается именно конкретный файл из архива.. Там-же можно отдельным файлом добавить список известных программ, которые этот формат понимают, например. Т.е. если такой файл у тебя не прописан, но есть одна из этих программ - то откроется он ей.. и т.д.
Возможностей море.
В запускаемых файлах можно хранить альтернативные куски кода для разных платформ, причём в варианте, например - win-exe + elf + java + perl-script

Были мысль сделать это на базе ФС (помнится ntfs потоки поддерживает) но про переносе на др. фс всё терялось.. Да и при копировании, если программа не знала о потоках..

>>>

TripleGluk
()

Perl+Base64 для БОЛЬШОГО файла

Задача загнать файл произвольного объёма в base64.
MIME::Base64::encode (как я понял) нормально работает только если ей дать сразу весь файл, что по причине его нескромных размеров проблематично.
Бить на куски не прокатило. Обратно не декодируется.
Можно ли как-то порезать его на куски, чтобы не получалось 'висящих' окончаний строк?

TripleGluk
()

Perl: Http через proxy

Задача - получить файл через http-proxy

proxy, по ходу дела, кэширующий. отправляю запрос на proxy_host:proxy_port -> получаю редирект на host:new_port

Вопрос - что делать дальше? Пытался запросить с прокси через этот порт - получил тот-же редирект. Через радной - тоже.

Пытался поставлять порт в запрос - тоже самое...

TripleGluk
()

PERL, перехват STDIN и STDOUT одновременно

Как можно из PERL выполнить программу, сначала слив ей в stdin инфу, а потом получить из её stdout-а результат?

после поисков нарыл такой вариант:
--parent--------
$text="123456789";
use IPC::Open2;
$pid = open2(*CHLD_OUT, *CHLD_IN, $name);
print CHLD_IN $text; #уходят без проблем, ничего не блокируется
close(CHLD_IN);
while (<CHLD_OUT>) {print ;} #отсюда получаем только "t1t2"
close(CHLD_OUT);
--child----------
print "t1";
while(<STDIN>){print ;} #тут пусто
print "t2";
-----------------
частично это работает, т.е. данные из stdout читаются.
но вот с первой частью проблема. данные уходят(ничего не блокируется даже если их много), но вот куда они приходят выяснить пока не удалось. :-(

TripleGluk
()

Скроллинг меню в KDE

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

TripleGluk
()

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