29 сентября 2006 г.

Google Reader, вторая попытка

А вот на сей раз у них получилось вполне. Быстренько втянул OPML, почти всё правильно раскидал по папкам (да-да, теперь они использовали слово "папки"). Некоторые несмертельные огрехи есть, куда же без них.

Закладочка для браузера "Подписаться" удобна. Хорошо, что они не привязывают её к тулбару, которым я не пользуюсь. Обещают, что работает чтение с мобильника, но сейчас мне это не очень актуально. Проверю как-нибудь потом.

Подожду теперь, скажем, до завтра, пока все фиды наполнятся, попробую попользоваться. Может, и понравится.

28 сентября 2006 г.

Фиды, вроде, наладились

Сегодня заметил, что то ли на Блоггере починили публикацию фидов, то ли что. Но фиды снова публикуются целиком. А вообще, похоже, что их работа над beta.blogger.com иногда отражается здесь.

Usenet: жив, курилка!

Возникла у меня сегодня небольшая проблемка. Помучался-помучался, да и сдался. Решил спросить у коллективного сознательного. Задал вопрос на 3 форумах и в группе usenet. И откуда же пришёл самый первый ответ? Из юзнета, во! От сотрудника IBM. Вопрос-то был про SQL и (в меньшей степени) про DB2

27 сентября 2006 г.

Blogger глюканул, что ли

Заметил, что он начал публиковать ATOM, содержащий не полный постинг, а только начальный фрагмент. При этом я ничего не делал, это он всё сам. Несколько раз пытался переопубликовать весь блог, всего один раз это закончилось успешно, но фид это всё равно не вылечило. Зато заметил, что теперь ещё и публикуется RSS. Забавно. Раньше я такого не замечал. Посмотрел в RSS - а там полные тексты. Теперь вот пойду на feedburner, попробую поменять параметры.

Когда всё станет как было, снова извещу.

26 сентября 2006 г.

Apache + PHP + DB2: набор граблей для русского человека

Иногда размеренное течение жизни нарушается таким завихрением, что сразу и не понимаешь, пора тонуть или можно ещё побарахтаться. Вот, скажем, вчера. Обычная рутина. Разрабатывается некое приложение, хранящее некие данные в базе DB2. Доступ к ним, естественно, через web. HTTP-сервер - Apache. Сервер, с позволения сказать, приложений - PHP. Всё хорошо, приложение разрабатывается, данные из базы берутся, на странице показываются.

И вот я опрометчиво делаю странную вещь. Я решаю проверить, а как всё будет работать, если данные - на русском языке. Задумано, сделано. Посредством Control Center в базу вносится несколько записей с русскими буквами. Я обращаюсь к ним. Трах! Бах! На странице в нужных местах ничего нет.

Ну, думаю, у кого с первого раза такое получалось? Начинаю разбираться. Изучаю error.log сервера (сначала в этом месте я хотел написать "индейца". Для верности спросил у Лингвы. Ответ: апаш, бомж, хулиган, бандит, головорез. В общем, самое оно). И вижу запись, которая повергает меня в состояние ужаса.
PHP Warning: db2_fetch_array() [function.db2-fetch-array]: Fetch Failure in db2.inc on line NN
Должен признаться, что ни в Apache, ни в PHP я не силён. Так, постольку поскольку. Естественно, количество людей, использующих такую комбинацию софта, невелико. Подмножество тех, кому при этом небезразличен русский язык, наверное, пренебрежимо мало. Из них я знаю только одного человека. Да и то, я сам ему порекомендовал DB2. И с кем в этой ситуации мне было советоваться? В общем, стучусь к нему в асю, обрисовываю ситуацию, спрашиваю, ты как с этим справился? А он мне и отвечает: а я с русским ещё не работал. Называется, приплыли.

Ну что ж. Стали пытаться определить, где засада. В конце концов выяснил, что при запросе данных из БД возникает вот такая ошибка:
[IBM][CLI Driver][DB2/NT] SQLSTATE 01517: A character that could not be converted was replaced with a substitute character
Следом в сети был подсмотрен найденный кем-то эмпирически способ. Если запрашиваемые данные сконвертировать в blob, типа SELECT cast(column as blob) FROM..., то "иногда они возвращаются" ©. Проверил, сработало. Но понятно было, что это не решение проблемы. Например, потому, что данные в БД нужно ещё и класть. И тут этот метод точно не сработает.

Пришлось искать дальше. Функция PHP db2_server_info показала, что кодовая страница БД - 1208 (юникод). Естественно. Я её такой создавал. Ровно оттого, что мне в ней хранить данные на довольно большом количестве языков. Функция db2_client_info сообщила, что кодовые страницы что приложения, что коннектора - 1252. Я, в общем-то с этом тоже не спорю. Потому что всё происходит на сервере, а устанавливать ему какую-то русскую кодовую страницу как-то странно.

И вот тут до меня начало доходить.

Естественно, сервер берёт юникодовые данные, смотрит на клиента. А по клиенту видно, что кроме Latin-1 он ничего не соображает. Ну сервер-то в такой ситуации ничего сделать не может - не соображаешь, получи отлуп. Стал искать, где приложению или PHP можно сделать facelift. В смысле, разрешить понимать юникод. Не нашёл. Пришлось действовать топором. Всему runtime client-у DB2 было сказано: понимать юникод.

После того, как перезагрузил весь сервер (по другому никак, PHP иначе не смог прихватить изменения), проверил. И СРАЗУ ВСЕ МОИ ПЕЧАЛИ УШЛИ. Всё заработало как и должно. Никаких заклинаний (cast) при извлечении данных, никаких ошибок. Всё возвращается как надо. Надо будет, конечно, проверить поиск, сохранение и т.п., но тут я уже почему-то уверен, что всё будет в порядке. До очередного облома.

Что же останется в сухом остатке, если не читать всю лирику сверху?

Чтобы не было проблем с русским или ещё каким-нибудь языками в комбинации Apache - PHP - DB2, необходимо (речь о форточках, что будет на линухе, не знаю, но думаю, то же самое):
  • Базу данных создавать с поддержкой Unicode (UTF-8), кодовая страница 1208
  • Колонки БД, которые могут содержать символы не английского алфавита, нужно создавать вдвое большей длины
  • Если клиент (Apache + PHP) и сервер DB2 находятся на разных машинах, на обоих в командной строке сказать: db2set DB2CODEPAGE=1208. Если всё установлено на одной машине, то работы вдвое меньше
  • Перезагрузить сервер. Если сервер не один - достаточно того, на котором установлены Apache и PHP. Впрочем, и сервер базы данных на всякий случай тоже можно
  • Убедиться, что всё волшебным образом заработало
  • Для отладки я использовал функции error_log, db2_stmt_error и db2_stmt_errormsg. Чего и вам желаю

20 сентября 2006 г.

Идеальное место для хранения данных

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

Так вот, учитывая, что на Земле всё меньше и меньше спокойных безопасных мест, где же организовать такое хранилище? New Scientist даёт ответ - на Луне. Место идеальное во всех отношениях. Организовать соответствующую сетевую архитектуру - задача нетривиальная, но вполне решаемая. Думаю, Гугль, ставящий целью оцифровать весь мир, просто обязан серьёзно заинтересоваться.

Правда, возникнет проблема расширения пространства имён. А то TLD сейчас не учитывают наличия Солнечной системы. Ни, если уж на то пошло, звёзд. А что? Межзвёздный интернет. http://regul8or.blogspot.com.earth.sol - неплохо выглядит.

А то - сертификаты на участки на Луне продавать.

(Via bb)

17 сентября 2006 г.

Игра в слова

Были тут с женой вчера в торговом центре. Одном из тех, что расплодились на МКАД. И как водится сверху там играет музычка вперемешку с рекламой. Именно поэтому я доносящееся фильтрую. А зря.

Сквозь ментальный блок до меня доходит что-то гениальное. К сожалению, больше этой рекламы я не услышал, поэтому дальше - только мои домыслы.
Девочка: Мама, а давай поиграем в слова!
Мама: Ну давай. А про что?
Д.: А вот про наш новый ковёр!
М.: Я хожу по ковру...
Д.: Ты ходишь пока врёшь! Он ходит пока врёт! Они ходят пока врут!
* * *
Лозунг: Такие-то замечательные ковры в такой-то секции на таком-то этаже
Если там были не эти слова, то креативщики - полные идиоты.

Куда делся DOM Inspector?

Вот ведь незадача-то... Вчера он был, а сегодня почему-то открывается пустым. Самое смешное, что между вчера и сегодня я точно ничего такого не делал. Браузер обновился за несколько дней до этого (версия 1.5.0.7, если это имеет значение). Форточки накатили себе обновлений тоже ещё на неделе.

А я так привык на него полагаться. Прямо чувствую себя как с выдернутыми руками.

Upd: Перестановка Firefox помогла. Но вот что это было-то? И перестановку затеял только оттого, что ничего внятного по этому поводу не нашёл. Плохо искал?

12 сентября 2006 г.

Ну вот, у меня угнали асю

Сегодня сижу, работаю и вдруг - фигак! получаю от Миранды сообщение, что я отключен от Аси, потому что кто-то ещё подключился вместо меня. Ничего себе, думаю. Пытаюсь перелогиниться - то же самое. Иду на сайт, пытаюсь залогиниться там - эффект тот же. Ну вот, думаю, дожил. Неприятно. Начинаю вспоминать, как из этого выбираться.

Сразу начинает происходить несколько процессов. Я на сайте ICQ ищу, где сбрасывается пароль. В компьютере ищу, где у меня сохранена соответствующая информация. Одновременно в Миранде по другим протоколам объясняю собеседникам, что в асе я - уже не я. Тут же мне начинают приходить письма от моих контактов, выражающих недоумение тем, что я занялся рассылкой вирусов. Приходится и тут разъяснять ситуацию. Мне сообщают, что в информации обо мне появилась ссылка на какой-то левый сайт. Иду туда - а это форум, где, похоже, такие же угонщики предлагают помочь. За деньги.

Наконец, нахожу всё что мне было нужно. На сайте ICQ ввожу требуемые сведения, получаю новый пароль. Ввожу его в Миранду - я в эфире. После этого осталось только пройтись по контакт-листу и сообщить всем что я - это снова я. Ну и отчитаться тут.

Итак, что мне потребовалось?
  • del.icio.us. Здесь у меня была сохранена ссылка на статью, в которой описывался метод восстановления пароля ICQ в случае угона. Статья была сохранена чуть больше года назад. Когда я пошёл её читать, выяснилось, что сайта по тому адресу уже нет. Пришлось спросить Гугль. Гугль помог. Адрес новой статьи я сохранил вместо старой.
  • Статья "Безопасность ICQ номера. Как защититься от кражи пароля". Прочтите внимательно, и если ещё не сделали того, что там рекомендуется, обязательно сделайте. Иначе, когда кому-то приглянется ваш номер, ничего не поможет.
  • Утилита KeePass Password Safe. Бесплатный опенсорсный менеджер паролей. Проект Sourceforge. С того момента, как я начал пользоваться этой программой, у меня на каждый сервис генерируется собственный уникальный пароль. Так что есть гарантия, что злоумышленник, овладевший каким-нибудь моим паролем, не сможет его применить больше нигде. А конкретно для ICQ - в поле "Примечание" у меня было записано всё, что нужно для восстановления.
Ну вот, примерно. Даже представить страшно, что было бы, если бы я соломки не подстелил. Наверное, следует ещё в телефон поставить противоугонную систему. Благо, соответствующих приложений для Симбиана хватает.

Upd: Я убрал ссылку на статью, потому что она находится на ресурсе таких же воров. Ну, и некоторые моменты там написаны совсем неправильно. Например, то, что восстановление по секретным вопросам скорее всего не поможет. Так вот: восстановление по секретным вопросам скорее всего поможет. Сейчас поищу более корректную ссылочку и добавлю.

Upd Upd: Нашлась нормальная статья на сайте ferra.ru: Как обезопасить себя от кражи номера ICQ.

1 сентября 2006 г.

She's got it!

Помните такое:
Wa!
She's got it,
Yeah, baby, she's got it!
В начале лета по какой-то причине мне подумалось, что вот эти слова из незабываемой песни "Venus" очень хорошо подходят в качестве сигнала SMS. Взял 2 варианта песни - от Shocking Blue и Bananarama, немного покромсал в редакторе и из 2-х вариантов оставил тот, что от Bananarama - уж очень он жизнерадостный. Получившийся результат установил в телефон жене. Не себе же, в самом деле.

Ну так вот, вернувшись из Турции, она меня ну очень попросила вернуть ей какой-нибудь нормальный сигнал. А то от этого вопля весь пляж на уши вставал. И на работе на неё косо смотрят. Тогда вроде убедил не убирать. Основной аргумент - невозможность ни с чем спутать.

А сегодня дочка врывается - поменяйте, говорит, этот сигнал, я не могу уроки делать, подпрыгиваю.

Есть альтернативы?

Кстати, у меня сигналом сообщения - вступление к композиции Kraftwerk - The Robot. Тоже очень к месту. А у дочки вообще все звуки в телефоне - от игры Worms. Типа "Получи, фашист, гранату".

Я тоже так считаю