About Blog PGP Key

All articles, tagged with “wtf”

Про Грабового

Задолбали уже эти фанатики и проплаченные пеарщики:

Про Грабового

Qt, MySQL

Понадобилась мне мелкая Qt-ная апликуха, которая бы умела выгребать данные из MySQL базы. Наступил на какие-то непонятные грабли.

Вот такой вот запрос работает:

SELECT COUNT(*) FROM table;

Возвращается 807 — количество записей. А вот такой запрос возвращает по какой-то причине всего 37 записей:

SELECT * FROM table;

Путем добавления всяких ORDERED BY и LIMIT/OFFSET удалось подобрать запись, на которой всё стопается. Вот такой вот запрос не возвращает ничего:

SELECT * FROM table WHERE id=1234

(Запись с id = 1234 существует). Дальше пришло в голову вот такое:

SELECT COUNT(*) FROM (SELECT * FROM table WHERE id=1234) as tbl;

Такой запрос вернул цифру “1”. То есть запись на самом деле есть.

Дальше я взял в руки GDB и начал дебажиться по libqt4-sql-mysql. За несколько проходов понять ничего не вышло. Потом я увидел следующий код ($QTDIR/sql/drivers/mysql/qsql_mysql.cpp, конец функции bool QMYSQLDriver::open()):

#if MYSQL_VERSION_ID >= 40108
    d->preparedQuerysEnabled = mysql_get_client_version() >= 40108
                        && mysql_get_server_version(d->mysql) >= 40100;
#else
    d->preparedQuerysEnabled = false;
#endif

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

Выглядит это всё очень странно. Command Line клиент пользуется обычными Query без Prepare/Execute.

PS. Qt 4.5.1.

Про GIMP

Интересно, кому в голову пришла мысль проименовать кисти цифрами (не по порядку), при чем так, что эти цифры не совпадают с размером. К тому же поля размера по дефолту скрыто…

GIMP brushes

PS. Зарегился в ихнем багтрекере и зарепортил #581629

Прогресс

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

Покупать билет в интернете и потом топать за ним в кассу — это конечно круто.

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

Свет

Задолбали уже свет отрубать.

Вот я хоть и с ноута, но при отрубании света отключается Wi-Fi точка доступа…

Интересно, если купить UPS и воткнуть туда только точку доступа, на сколько глупо это будет смотреться…

Про смайлы

Собственно вот:

Быдлосмайлы

Осталось каждому смайлу присвоить GUID вида {986c11d0-f340-11d4-9075-0010a4e73d9a} и хранить их список в вендовом реестре…

/me в поисках другого глобуса.

Ядро 2.6.28, X.org 1.5, hal

Собрал себе свежее ядро. После загрузки отвалился тачпад на ноутбуке. Точнее не отвалился, а перестали работать всякие вкусности вроде скроллинга, нажатий одним/двумя/тремя пальцами.

Раньше он определялся просто как PS/2 мышь, все эти фичи, как я понимаю, у него реализованы аппаратно. Теперь оно выглядит как “ETPS/2 Elantech Touchpad” и, по идее, должно работать с иксовым драйвером “synaptics”. Но, как оказалось, не работает.

Нагуглилось, что нужен synaptics из X.org версии 1.5, а в Debian Unstable еще 1.4. Поставил из experimental. Всё равно не завелось. Вот тут написали:

The Debian archive presently does not contain a new-enough version of xserver-xorg-input-synaptics; 0.99.1 or later is needed (0.99.3 is current). 0.99.2 is available in packaged form from http://alioth.debian.org/~dsalt-guest/eee/ (you'll need to use dpkg -i to install it). [Correct as of 2008-12-27.]

Пакет по указанной урле на X.org 1.5 не ставится. Пересобрал версию 0.99.3. Поставилось. Нарисовал в xorg.conf секцию InputDevice, указав что используем synaptics. Загружаю иксы, все вкусности тачпада продолжают неработать.

Полез в логи. Вижу, что грузится synaptics, определил тачпад, сказал что его поддерживает и всё хорошо. И тут, непонятно зачем и почему, начинает выпендриваться hald:

(II) config/hal: Adding input device ETPS/2 Elantech Touchpad                                       
(II) LoadModule: "evdev"

Я конечно понимаю, что выгребание настроек про железо из HAL — это типа круто, но какого черта это должно быть приорететнее руками указанной секции “InputDevice”?

Первым делом попробовал самое простое: снес xserver-xorg-input-evdev. Иксы запустились, тачпад работает, но перестала работать клавиатура и USB-ная мышь. Вернул пакет на место и сел разбираться с hal.

Если теперь _это_ предлагается в качестве замены xorg.conf, то это клиника. Вместо одного файла теперь это куча размазаных по /usr и /etc конфигов, при чем в офигеть каком user friendly формате — XML. Те куски XMLя, которые лежат в /usr ковырять, как бы, нельзя, ибо при обновлении затрется. Соответственно нужно копировать в /etc и править уже там.

После чтение мануалов у меня вышло примерно следующее:



  
    
        synaptics
        True
    1
    2
    3
    1
    1
    1
    
  

Раза в три больше кода, чем для случая с xorg.conf. Тем не менее, после рестарта hald, тачпад таки заработал.

X.org 1.5 вроде относительно стабилен, не считая того, что падает после запуска KDE4, если включено композитное расширение. На nV News посоветовали отключить BackingStore. Помогло.

uptime…

% uptime
 17:49:04 up 3071 days, 17:36,  2 users,  load average: 0.06, 0.11, 0.14
dion@laptop:~% ps aux | grep " init"
root         1  0.0  0.0   1924   684 ?        Ss    1999   0:04 init [2]

Никак не пойму, как такое может быть..