пятница, 28 января 2005 г.

Питон и прочее

Последнее время пишу всякие мелкие программки на Python'е. Рулез редкий, надо сказать. Я, кстати сказать, понимаю восторг одного своего приятеля по поводу Питона. Удивительно удобный язык. Из недостатков можно только отметить отсутствие контроля типов, но это уж кому как. Мне иногда хочется... типа ключика, какой-нибудь опции и т.п.
Java --- отстой по сравнению с Python ;)

И, в качестве прочего, --- неизвестные арбузы.

четверг, 27 января 2005 г.

Не знаю, о чем вы тут беседуете, но ехать надо

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

вторник, 25 января 2005 г.

У нас тоже началась зима

Да-с, в Питере уже два дня как идет снег. Понемножку, понемножку, но таки идет. И температура забралась наконец-то в ниже 0...
По этому поводу я начал играть в nethack. Очень пока рекомендую. Та самая вещь для зимних вечеров. Правда, я еще не очень крут, только разбираюсь и играю x11 вариант. Вообще говоря, есть много старых игрушек, про которые слышал, читал, видел в package-листе, но желание поиграть возникает очень редко.
Еще обнаружил, что напрочь забыл, как конфигурируется fvwm. Или за прошедшие 4 года (я его давно уже не использовал) он сильно изменился...

среда, 19 января 2005 г.

Я шизею...

На РБК есть статья "Российский чиновник торговал госсамолетами" (ссылка временная, скоре поменяется). Обалдеть: этих парней даже не посадили!

вторник, 18 января 2005 г.

libxml2. Часть последняя.

По крайней мере, пока.
Возвращаясь к xmlTextReaderPreservePattern. Все замечательно. Функция поиска, как таковая, уже не нужна; данный метод xmlReader'а ставит фильтр, а потом после прохода по документу (xmlTextReaderRead()) --- xmlTextReaderCurrentDoc(). Расслабляюсь 8-)

понедельник, 17 января 2005 г.

В su.c-cpp идет веселенький тред

Называется Веселые сишные фишки.
Вот некоторые выдержки из него (я ничего не комментирую :)):
1) x < 0 && x=-x;


2) А теперь сеанс жесткого порно :) Слабонервным лучше отвернуться.

#define unless(x) if ( x ) ; else
#define block for(int blk_guard_b12d8675_36f9_4f4c_9585_5b8e9db01d65=true; blk_guard_b12d8675_36f9_4f4c_9585_5b8e9db01d65; --blk_guard_b12d8675_36f9_4f4c_9585_5b8e9db01d65)
#define restart {++blk_guard_b12d8675_36f9_4f4c_9585_5b8e9db01d65;continue}

Использовать так:

block
{
Guard g(lock);
unless ( lock.reallyLocked() ) restart;
doSomethingUseful();
}

3) x = (flag ? sin : cos)( y );
x = (flag ? func1 : func2)(arg1, arg2, arg3, arg4);

4)
void copy( char *po, char *pi, int len)
{
int len8 = len / 8;

switch( len%8) {
do {
*po++ = *pi++;
case 7: *po++ = *pi++;
case 6: *po++ = *pi++;
case 5: *po++ = *pi++;
case 4: *po++ = *pi++;
case 3: *po++ = *pi++;
case 2: *po++ = *pi++;
case 1: *po++ = *pi++;
case 0: ;
} while( len8--);
}
}

5) x ^= y ^= x ^= y;

libxml2. Часть вторая.

Практически закончил изучать libxml2 (ну, пока только тот маленький кусочек библиотеки, который мне нужен).
Для совместимости с libxml1 и для того, чтобы при парсинге не создавать лишних текстовых нодов с форматированием, есть чудный метод int xmlKeepBlanksDefault(int).
Также немножко посмотрел на xmlReader, приятная штука. Сегодня, думаю, с ним закончу(остался, по большому счету, метод xmlTextReaderPreservePattern).

пятница, 14 января 2005 г.

JUG.Ru

Достался календарик с сабжевой символикой... Интересно, а вот почему нет, скажем, CUG.Ru? или C++UG.Ru?

...как libxml2

Поставил libxml2. Посмотрел, что там и как. Изменения на уровне DOM минимальны, за одним исключением: libxml2 "честнее" парсит xml, то есть, сохраняет всё форматирование, которое встречается в исходном тексте (libxml1 для содержимого XML_TEXT_NODE, например, выполняет trim()). С этим поэтому пришлось немного повозиться, ибо сразу ситуация с форматированием была неочевидна.

PS: наблюдение. Заметил, что несмотря на обилие указателей в структурах libxml, библиотека очень экономна в отношении используемой памяти (есть подозорение, что xml загружается целиком, потом размечается 0x00 и указателями, при необходимости создавая дополнительные копии). Заметил это, разбираясь с содержимым xmlNode и xmlAttr.

PPS: xmlReader еще не смотрел.

четверг, 13 января 2005 г.

Не так страшен libxml...

Потратил некоторое количество времени на изучение libxml (по скачанным примерам). Основная проблемы оказалась в том, что у меня установлена libxml1, а примеры основаны на libxml2. Общая структура у них одинакова, но часть методов имеет другие имена и/или список параметров, а часть методов в libxml1 вообще отсутствует. Идентичные по смыслу поля некоторых структур имеют разные названия (меня повеселило, что в структуре xmlNode поле children в libxml1 называется childs; правда, если задуматься, то неанглоязычные программисты делают еще те ошибки).
Читать и анализировать документ с помощью DOM-модели очень просто (у меня ушло 20 минут на написание полного дампера XML-файла), можно для моих целей только этим знанием и ограничиться. Писать SAX самому очень уж утомительно, поскольку там нужно задать дикое количество методов --- лениво :) Вот тут как раз и нужна завертка с C++-ный класс, сильно упростит дело. Сам писать не буду, попробую найти. Также достаточно просто создавать xml-документ на нуля.

PS. В libxml1 отсутствует xmlReader, а жаль - полезная штука. Ради этого поставлю все пакеты из libxml2.
PPS. Не нашел пока (может, и нету такого) поиска ноды по имени и типу. Возможно, придется написать ручками.

В качестве развлечения :)

HotBabe

USB Flash

А вот вопрос появился: есть сабж и WinXP (например). Хочу отключить флешку, щелкаю по иконе в трее, говорю отключить. Ура, отключается. Но в следующую секунду передумываю, хочу еще что-то на флешку скинуть. Не пойму, как ее обратно примонтировать-то?

вторник, 11 января 2005 г.

Lost In Time

или новогодний отходняк.
Пройден (заново, после долгого перерыва) LiT. Неплохая игрушка, хотя и забытая. Финал там подкачал (как во многих квестах), но в целом на 4+ вполне тянет. Идет легко под dosbox.
Жалко, что временная петля только одна, а то бы вполне к Myst'у в один рядок...

Спутник взлетает. Первая ступень отработала.

 И, кажется, неплохо: Посмотрим, что будет когда отработает вторая.