2012

Про Look and Feel

Пользователи мак-версии RawDigger вероятно заметили уже, что окошко гистограмм очень широкое.

А широкое оно оттого, что контролов много. Окну же сказано уменьшаться только до тех пор, пока все контролы видны.

А вот как это отрисовывает Qt под разными ОС (окно завернуто в минимальную ширину):

По клику откроется полный размер.

Сверху вниз:
  • Mac Native (и такой spacing так и задуман) - ширина окна 1088 пикселов и меньше не делается.
  • Результат применения setStyle(QStyleFactory::create("windows")); - 908 пикселов, на 20% меньше.
  • Win7 Native (без каких-то настроек spacing) - 821 пиксел, еще на 10% меньше.
Эксперимент не полностью чистый: маковский десктоп 1920x1200 и никаких настроек шрифтов не делалось, на винде шрифты увеличены (115%), а разрешение монитора 2560x1600. В полностью одинаковых условиях винды, скорее всего, будут еще компактнее (пробовать страшно, потрогав размер шрифта у винды есть риск обратно не вернуться).

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

Update: Добрые люди подсказали про Qt::WA_MacMiniSize. Результат - 859 пикселов ширины. Чуть хуже винды, но непринципиально. Хотя, конечно, спинбоксы по мне выглядят чуть мелковато.

Qt+Xcode = !

По следам вот этой записи:

Changes 4.8.1 (Qt):

.....
Qt for Mac OS X
....
- Add support for XCode 4 into qmake [QTBUG-17247]
...

Похоже, мой блог читают :)

Update: переваливается через борт и сразу тонет все одно не работает. Примерно то же говно, что и было раньше.

RawDigger 0.9.10 - версия для Mac

Продублирую анонс на radigger.ru тут, с небольшими комментариями.

Обещал Mac-версию в течение марта? получите.

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

Отличия от Windows-версии:

  • Функциональность соответствует версии 0.9.10 для Windows за исключением Drag-n-Drop на иконку приложения (Drag-n-drop в открытое окно программы - работает).
  • Все функциональные Ctrl-кнопка стали Command-кнопка, за исключением Ctrl-H (показ окна гистограммы всего изображения), которая стала Option-H. Патамучта Command-H уже занято.
  • Порядок следования кнопок в Preferences немножко отличается от Windows-версии (но все элементы находятся на своих табах). Это нормально, этот новый порядок будет и в очередной Windows-версии.
  • Текущая версия - только 64-bit. Universal-binary варианты (Intel 32/64, а может быть и PPC 32/64) будут позже. Все понятно что делать, но Qt пересобрать придется, а это серьезное такое (по времени) развлечение.
  • Тестировалось на Mac OS X 10.6 и 10.7. Работает.  На 10.5 протестировать не удалось т.к. она оказалась на 32-битном процессоре (точнее, та виртуальная машина, которую я готовую скачал - 32-битная по мнению Mac OS).
  • Английская версия будет через несколько дней. Анонсировать русскую версию в англоязычных форумах не надо. А то обидимся совсем. Тот шабаш, что был с анонсами русской 0.9.6 - не понравился вовсе.

Про разработку под Макос имею сказать отдельно:

RawDigger 0.9.10 (EN)

Пользователям английской версии RawDigger имею сообщить: версия 0.9.10 вышла. По функциональности она полностью соответствует русской версии, английская версия отличается только языком руководства/readme/changelog.

Ссылки:

Анонсы в англоязычных форумах, сообществах и т.п. - приветствуются, заранее спасибо!

Картинка дня

Кто не понял про что это - смотрите теги :)

Qt - рулит. Ну то есть я не разобрался (пока?) с динамическими библиотеками, Frameworks и прочими страшными словами, поэтому с LibRaw слинковался статикой.

Ну, естественно, повылезало всякого, но умеренно:

С++: invalid initialization of non-const reference of type 'foo&' from an rvalue of type 'foo'

Вот представим себе такой вот зачин:

class foo
{
public:
 foo(int aa, int bb) : a(aa),b(bb){}
 int A() { return a;}
 int B() { return b;}
private:
 int a,b;
};

int func(foo& f) { return f.A()*f.B();}
Почему передача по reference? Ну это, типа, дешевле. Для структуры из двух полей вероятно плевать, а если там std::string содержащий "Войну и Мир"? При передаче по значению оно же должно скопироваться?

А теперь пытаемся это использовать:

int main()
{
    return func(foo(1,2));
}
g++ (4.6, если важно) ругается и говорит:
error: invalid initialization of non-const reference of type 'foo&' from an rvalue of type 'foo'
А Visual Studio 2010 жрет нормально.

RawDigger 0.9.10

Продолжаем анонсировать новые версии RawDigger.

Детальный анонс и ссылка на скачивание

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

Чуть более подробный список изменений - под катом. Прежде чем к нему перейти - просьба:

Инсталлятор - подписан ключом LibRaw LLC и, по идее, должен работать как положено. Если вы заметите какие-то странности, которых, как вам кажется, не должно быть - не поленитесь про это рассказать (в каментах или личной почтой или в топике для багрепортов на rawdigger.ru), наши границы не будут знать никакой благодарности.

Qt+Xcode = ?

Делаем так:

qmake -spec macx-xcode somefile.pro
Дальше напускаем туда (на получившийся pbproj) Xcode 4.2, Xcode с грохотом падает. Ну то есть известная проблема, как выясняется, но ведь ей минимум полгода?

Качаю Xcode 3.2 (4гига однако, еще где-то час).

Чтобы два раза не вставать. Я правильно понимаю, что если я соберу некий варез как 64-битный, то он не будет работать на Intel Macs с Core Solo (т.е. на очень старых Mac Mini) ну и естественно на PPC. А на всех остальных - будет, независимо от битности ОС, верно?

Разгадки Code Signing (окончательные)

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

Первая гипотеза была в том что UAC oчень умный и о чем-то таком догадывается. Похоже, это не мой случай - в моем тестовом окружении подписанная программа без слова Setup (Install, Update) в имени файла (и в детальной информации о файле - тоже) - все одно ругается лишним предупреждением.

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

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
        </requestedPrivileges>
    </security>
</trustInfo>
А у "хорошего" ACDSee (равно как у Orfo, других не смотрел) прямо в манифесте требуются права администратора:

Про Infiniband и FreeBSD (again)

Все-таки Infiniband на линке FreeBSD-FreeBSD получается какой-то очень мучительный:

  • Datagam Mode - устойчиво теряет несколько процентов пакетов на ping -f (icmplim, естественно, задран до небес, разрешающее правило в ipfw - первое). Ну и всякие iperf работают в лучшем случае на гигабит, а обычно и меньше.
  • Connected Mode на первый взгляд лучше: packet loss 0%, гигабитов эффективных примерно 5, но:
    • Установить эту самую Connected Mode между двумя машинами получается не с первого раза. Иногда надо ifconfig down сказать, иногда хватает с одной стороны, иногда надо с двух.
    • Могучий tcp-поток с одной из моих машин на вторую (ftp get /dev/zero /dev/null) может отправить ее в ребут или просто в транс. При этом в другую - все в порядке и я даже zfs send/zfs receive на 6Tb в середине недели успешно исполнил.
При этом на тех же картах, портах, кабелях связка FreeBSD - Windows работает отлично и tcp-потоки никого никуда не отправляют. Но только в Datagram Mode. С нулем потеряных пакетов. Я уже вторую неделю так живу на своей WS, ни одного Ethernet, только IB (только хардкор!).

Да, попытка поднять Connected Mode между FreeBSD и Windows один раз таки удалась. После каких-то перезагрузок, подниманий-опусканий интерфейса и т.п. При этом отвалились пинги с Windows, а вся конструкция прожила минут 20, а потом FreeBSD-шная сторона перезагрузилась.

Не исключено, конечно, что какое-то железо где-то как-то криво, но с Windows все, повторяю, работает.

Такие вот вести с полей.

Pages