About Blog PGP Key

Archive for March, 2009

Wiki

Поставил себе на ноут локальную Wiki. Засунул туда все, что лежало в трех .txt файлах. Вроде как удобно.

Прогресс

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

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

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

Трёп

Может таки не так что со мной…

[00:07:43] <xxx> в домовых и полтергейстов ты тоже не веришь?
[00:08:08] <xxx> просто ты со всем этим не сталкивался и относишься скептически, вот столкнёшься и поверишь
[00:08:09] <dion> дальше читать вообще смысла не вижу
[00:09:20] <dion> домовые -- это те которые вымерли после того как в домах перестали печи ставить?:
[00:09:58] <xxx> нет, это те которые охраняют дом
[00:10:09] <dion> собаки?
[00:10:21] <xxx> хаха, очень смешно
[00:11:11] <dion> на википедии:
Домово́й (славянская мифология) --
[00:11:15] <dion> дальше читать не стоит =)
[00:11:31] <dion> к реальности имеет мало отношения
[00:12:24] <dion> ты и в некромантию веришь?
[00:12:55] <xxx> я спать пошла

friends

Не стоило даже пытаться встретиться с человеком, с которым общаешься >=2 года via internet.

VIM keybindings for Eclipse

Vrapper, в отличие от vimplugin, не засовывает embedded vim в табу Eclipse, а пытается повторять поведение vim-а. Поиск и навигация уже относительно работают, правда без regexp-ов. Замена — пока что нет. Макросов нету, но “.” вроде как работает.

Выглядит уже прикольно.

Сумерки

Смотрю вот фильм по совету знакомой. Ни о чем по сути.. До середины досмотрел, уже бросать лень.

player

Плеер, умеющий нормально играть ogg/flac, правильно понимать русские теги — это прикольно. И удобно.

Плеер

Купил себе таки плеер.  До этого слушал музыку исключительно с мобилки.

Remote X11

Попробовал я короче говоря запустить Qt4-апликуху на удаленном X дисплее. Выглядело это всё очень грустно. Окошко отрисовывается по 5 секунд.

В качестве спортивного интереса позапускал различный софт, который использует разные тулкиты. Результат очень даже удивил (упорядочено по скорости работы GUI):

  1. xcalc
  2. tkabber
  3. Java (Swing)
  4. Wine с запущеным обычным инсталлером
  5. Qt3
  6. GTK2
  7. Qt4

C xcalc все понятно. Он использует xlib напрямую. Tk рисует всё тоже весьма оптимально (хотя и помедленней).

Swing, который я всегда считал тормозом, работает на удивлени быстро. По скорости в принципе не отличить от Tk.

Почему wine оказался _заметно_ быстрей новомодных GTK/Qt я вообше не понимаю. Суть в том, что если вендовой аппликухой, запущенной в wine, можно пользоваться, то софтом, использующим Qt3/GTK2/Qt4 — вообще невозможно.

Падение Qt3 -> Qt4 — это вообще регрессия офигеть какая. Может на локальных дисплеях оно и быстрей стало, но по сети Qt4 — тормоз.

Походу на сетевые фичи иксов все тупо забивают. Собственно скоро X11 вообще будет ненужным. К сожалению.

C++

//Size optimization
#define class union
//Speed optimization
#define while if

Свет

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

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

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

Перекодирование видео

Сегодня была очередная попытка пережать все видео с фотика. Опять столкнулся с тем, что после mencoder-а звук не совпадает с видео. На #mplayer посоветовали выкинуть -mc 0 -noskip и дописать harddup в конце списка фильтров. Получилось нечто типа:

mencoder -of avi -vf pp=hb/vb/dr/al,harddup -ovc lavc -oac lavc \
    -lavcopts vcodec=mpeg4:vbitrate=1024:acodec=libfaac:abitrate=256
Поигрался с этим всем на парочке разного видео… Кое где звук таки умудряется рассинхронизироваться c видео. Кое где libfaac наворачивается. Попытался составить список разных форматов видео, которые у меня есть. Первые четыре:
Camera1: 
    VIDEO:  [jpeg]  320x240  24bpp  30.000 fps    0.0 kbps ( 0.0 kbyte/s)
    AUDIO: 7875 Hz, 1 ch, u8, 0.0 kbit/0.00% (ratio: 0->7875)
Camera2: 
    VIDEO:  [MJPG]  640x480  24bpp  29.970 fps  9959.9 kbps (1215.8 kbyte/s)
    AUDIO: 44100 Hz, 1 ch, s16le, 177.0 kbit/25.09% (ratio: 22125->88200)
Camera3:
    VIDEO:  MPEG1  640x480  (aspect 1)  25.000 fps    0.0 kbps ( 0.0 kbyte/s)
    AUDIO: 32000 Hz, 2 ch, s16le, 64.0 kbit/6.25% (ratio: 8000->128000)
Camera4:
    VIDEO:  [MJPG]  640x480  24bpp  30.000 fps  5059.7 kbps (617.6 kbyte/s)
    AUDIO: 11024 Hz, 1 ch, u8, 88.2 kbit/100.00% (ratio: 11024->11024)

Дальше мне надоело. -oac mp3lame обламывается на первом. libfaac кажется на четвертом. С -oac copy на том же #mplayer сказали, что могут быть проблемы с синхронизацией.

Тупо менять sample rate для всего аудио (типа -af resample=44100:0:0) не хочется.

Надо составить нормальный список всего зоопарка что есть, натестить опций mplayer-у для них и только потом делать что-то дальше.

Qt4, X11

“But hey, this means we have tons of XPutImage calls as part of the repainting, doesn’t it?” you are probably thinking. Luckily not… The raster graphics system is using the X Shared Memory extension to allocate the bits shared with an XPixmap so the end of a paint is a mere XCopyArea, which happens in-place on the X server, so it is quite cheap. Needless to say this is a solution that works best on local displays, but that does cover most of the Linux desktops out there, so it should be a gain in general.

Если постоянно гонять туда сюда pixmap-ы, то про нелокальные дисплеи можно забить:

About remote connections with X11, I use the NX (http://www.nomachine.com/) improved protocol. I found Qt4 really slower than Qt3 through NX/FreeNX (In fact, at office, we use a big Linux server with KDE 3.5 and remote clients with NXclient and after some tests, KDE 4 seemed unusable).

Софт отстой

Софт отстой!

Первая глава

Надо будет купить себе такую…

Про смайлы

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

Быдлосмайлы

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

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

QSortFilterProxyModel

Есть такая вот вроде достаточно простая вещь, но реализовать её не получается. Есть рабочий Model, который представляет собой одноколоночное дерево, содержащее два типа узлов: каталог и файл:

Folder1
  File1.1
  File1.2
Folder2
  File2.1
  File2.2
Folder3
  Folder3.1
    File3.1.1

Есть фильтр, согласно которому хочется скрывать некоторые файлы (например, по имени). Также нужно скрывать “пустые” каталоги. Каталог считается пустым, если в нем нет файлов, которые пропускает фильтр.

Вроде всё просто. Отсабклассить QSortFilterProxyModel и реализовать filterAcceptsRow(). Проблемы начинаются, когда файлы могут “переименовываться” в оригинальной модели на лету. Модель корректно шлет dataChanged(). Во всяком случае вьюшка изменения показывает правильно. Смысл в том, что изменение изначально отфильтрованного “File3.1.1” может повлечь за собой то, что он уже будет пропускаться фильтром. Тогда ранее скрытый Folder3.1 нужно отобразить. И так по цепочке “Folder3”…

dataChanged() нужно говорить два ModelIndex-а: TopLeft и BottomRight (на одной ветке). Теоретически должно быть достаточно сказать dataChanged(Folder3, File3.1.1) или даже dataChanged(root, File3.1.1) но оно не работает. QSortFilterProxyModel не хочет перепроверить нужные узлы. Соответственно во вьюшке ничего не появляется.

Единственственное, что работает — дергать dataChanged() персонально для каждого узла в дереве от Folder3 и до File3.1.1. Но оно тормозит.

C интересом провел уже второй вечер =)

Посиделки

Посиделки до трех часов ночи с ноутом на коленях — зло.

Антиспам

На temp@inhex.net уже приходит достаточное количество разного спама. По идее уже можно автоматизированно обучать им какой-нибудь bogofilter…

last.fm

Поставил обратно mpdscribble. Все таки любопытно посмотреть на свой last.fm-профайл