papilio

Архив на January, 2008

SRV-записи для GTalk в Google Apps

Для того, чтобы плавно перейти из ICQ в Jabber, я решил настроить свой GTalk с обычным icq-транспортом.

Про этапы настройки достаточно много рассказано в интернете: надо просто соединиться с GTalk через какой-нибудь Jabber-клиент (например, Psi), а потом в нём добавить ICQ-транспорт (например, icq.jabber.org.ru).

У меня GTalk «висит» на Google Apps (в собственном домене). Однако, попытавшись просмотреть Service Discovery в Psi, у меня ничего не получилось увидеть:

Обнаружение сервисов в Psi

Немного поискав в интернете, я нашёл решение этой проблемы: всё дело оказалось в SRV-записях DNS.

В справочной службе Google написано следующее:

Хотя мы объединены через федерацию с рядом других служб, некоторые из них в настоящий момент недоступны в сети Google Talk, и ваши пользователи не смогут общаться в чате с их абонентами.

Если требуется предоставить пользователям возможность общаться в чате с людьми, подключенными к сети Google Talk через объединенные в федерацию сети, то необходимо изменить записи служб (SRV). Для того чтобы пользователи могли общаться в чате с другими пользователям Служб Google для вашего домена, изменять записи SRV не требуется.

То есть для нормальной работы необходимо настроить SRV. Запись SRV нужна, чтобы указать сервер для обработки комбинации сервис/протокол/имя домена. Например, эта запись помогает соединиться с SIP пользователем, так же как MX запись помогает доставить электронную почту на сервер адресата.

Я всё настроил, как было написано в справке, однако ничего не получилось. Оказалось, что они указали не полный набор SRV-записей. Я нашёл, что надо указывать:

_xmpp-server._tcp.gmail.com. SRV 5 0 5269 xmpp-server.l.google.com.
_xmpp-server._tcp.gmail.com. SRV 20 0 5269 xmpp-server1.l.google.com.
_xmpp-server._tcp.gmail.com. SRV 20 0 5269 xmpp-server2.l.google.com.
_xmpp-server._tcp.gmail.com. SRV 20 0 5269 xmpp-server3.l.google.com.
_xmpp-server._tcp.gmail.com. SRV 20 0 5269 xmpp-server4.l.google.com.
_jabber._tcp.gmail.com. SRV 5 0 5269 xmpp-server.l.google.com.
_jabber._tcp.gmail.com. SRV 20 0 5269 xmpp-server1.l.google.com.
_jabber._tcp.gmail.com. SRV 20 0 5269 xmpp-server2.l.google.com.
_jabber._tcp.gmail.com. SRV 20 0 5269 xmpp-server3.l.google.com.
_jabber._tcp.gmail.com. SRV 20 0 5269 xmpp-server4.l.google.com.
_xmpp-client._tcp.gmail.com. SRV 5 0 5222 talk.l.google.com.
_xmpp-client._tcp.gmail.com. SRV 20 0 5222 talk1.l.google.com.
_xmpp-client._tcp.gmail.com. SRV 20 0 5222 talk2.l.google.com.
_xmpp-client._tcp.gmail.com. SRV 20 0 5222 talk3.l.google.com.
_xmpp-client._tcp.gmail.com. SRV 20 0 5222 talk4.l.google.com.

Только вместо gmail.com необходимо указать свой домен. После этих настроек у меня всё заработало:

Записи SRV надо настраивать в управлении зоной своего DNS. Правда менять SRV можно не у всех хостеров.

Метки: , , , , ,

Скорость создания PNG в PHP средствами GD

Меня сейчас очень интересует, стоит ли работать с изображениями в PHP. Сомнения вызывает не возможности работы с библиотекой GD, а скорость создания PNG-изображений.

Для этого я создал небольшой PHP-скрипт, который генерирует случайный массив чисел с координатами для шестиугольника. А этот шестиугольник рисуется на изображении размером 250×250 px, которое сохраняется в файл. Скрипт работает в течение 10 секунд. Несколько раз запуская этот скрипт, который генерирует сотни изображений, я могу получить среднюю производительность (изображений в секунду).

Сам скрипт:

// current time
$time = time();
 
// create dir
mkdir ('test/' . $time, 0777);
 
// min and max values
$min = 0;
$max = 250;
 
// i
$i = 0;
 
while (time() < $time + 10) {
	// set up array of points for polygon
	$values = array(
            rand($min,$max),  rand($min,$max),  // Point 1 (x, y)
            rand($min,$max),  rand($min,$max), // Point 2 (x, y)
            rand($min,$max),  rand($min,$max),  // Point 3 (x, y)
            rand($min,$max),  rand($min,$max),  // Point 4 (x, y)
            rand($min,$max),  rand($min,$max),  // Point 5 (x, y)
            rand($min,$max),  rand($min,$max)   // Point 6 (x, y)
            );
 
	// create image
	$image = imagecreatetruecolor(250, 250);
 
	// some colors
	$bg   = imagecolorallocate($image, 200, 200, 200);
	$blue = imagecolorallocate($image, 0, 0, 255);
 
	// draw a polygon
	imagefilledpolygon($image, $values, 6, $blue);
 
	// save image
	imagepng($image, 'test/' . $time . '/' . $i . '.png');
	imagedestroy($image);
	$i++;
}

Изображения получаются примерно такими:

PNG-изображение

Итак, результаты:

  • 48 изображений в секунду на моём ноутбуке
  • 70 изображений в секунду на виртуальном хостинге

Результаты вполне нормальные :-)

Метки: , , , , ,

Перевод RSS в Yahoo! Pipes

Я не знаю китайский язык, поэтому мне недоступна очень большая часть интернета. Однако в последнее время стало появляться всё больше и больше он-лайн переводчиков. Например, я перевожу японские и китайские сайты с помощью Google Translate — его перевод меня вполне устраивает, так как суть текста становится вполне понятной.

Но что делать, если я хочу подписаться на RSS какого-нибудь китайского блога, но чтобы сразу читать на английском? Готовых решений я не нашёл, однако вспомнил, что есть Pipes от Yahoo, с помощью которого это наверняка можно реализовать. Итак, нам нужно получить в итоге переведённый RSS-поток, который можно будет вставить в любой RSS Reader.

Yahoo! Pipes — это графический инструмент, с помощью которого легко создать приложения, объединяющих RSS, сервисы, сайты и т.п. Можно создавать циклы, фильтры.

Сразу же после входа в систему Pipes меня встретили с предложением помощи перевести RSS. (После этого я долго думал, как они узнали о том, что я хочу?)

Welcome

Ссылка вела на презентацию, в которой подробно разобрано, как составить свой Pipes для перевода RSS с французского на русский:

Презентация

Сначала нам надо выбрать источник информации: для этого в левой панели из Sources выбираем Fetch Feed, в котором указываем адрес нашего RSS. Затем в Operators выбираем Loop для того, чтобы он циклично обходил каждый элемент из потока:

Sidebar

Оператор Loop состоит из трёх частей: что обрабатывать, как обрабатывать (поле в середине, куда можно вставить модуль обработки) и куда выводить:

Loop

В качестве модуля обработки выбираем Translate из String:

Sidebar translate

Переводчик мы размещаем внутри оператора цикла:

Translate in Loop

Соединяем два элемента между собой и выбираем в качестве цели и назначения перевода item.description:

соединение

Система Pipes устроена так, что в процессе работы всегда можно посмотреть, что получается на выходе каждого из элементов — это Debugger, который находится в нижней части рабочей области. Например, я щёлкнул по Fetch Feed и решил посмотреть, что у меня на выходе:

Ошибка

ой! А тут что-то не то. Почему-то на сайте настоящие иероглифы, а здесь какие-то непонятные символы. И посмотрев вывод элемента Loop, я не заметил перевода. Значит здесь что-то не так. Ничего более умного не придумав, я решил добавить этот RSS в FeedBurner, так как знаю, что он умеет «лечить» потоки:

FeedBurner

После этого я поменял адрес потока в элементе Fetch Feed на адрес, который мне выдал FeedBurner, и снова посмотрел в Debugger:

нормальный китайский

Теперь я создал ещё один Loop для перевода заголовка (item.title) и соединил между собой элементы. Сначала Fetch Feed, затем чисто китайские данные из него идут на первый Loop, где переводится только заголовок. После от первого Loop частично переведённые данные идут на второй Loop, где происходит перевод текста:

-)

Вывод последнего Loop показывает, что всё правильно:

Description

Соединив последний Loop с Pipe Output, я завершил создание своего Pipe. Сохранив его, я получил страницу, на которой можно просмотреть переведённый поток:

Finish

На этой же странице находятся ссылки для добавления в популярные RSS-агрегаторы. Правда там не было Google Reader, поэтому я просто скопировал RSS-адрес моего Pipe, который затем добавил в Google Reader:

Google Reader

Вот так довольно быстро и просто можно создать переведённый RSS, который затем можно добавить в любимый RSS Reader.

Метки: , , , , , , ,

Поддержка IMAP в русском GMail

Два месяца назад в почте от Google появилась поддержка IMAP, но только в англоязычном интерфейсе. Соответственно, чтобы включить поддержку IMAP на своём аккаунте, необходимо было переключить язык с русского на английский. Однако, был один существенный недостаток: плохая работа с русскими кодировками.

Сегодня же многие пользователи заметили, что в русском интерфейсе появилась поддержка IMAP. Заметил и я:

Поддержка IMAP

Или поближе:

IMAP в GMail

То есть теперь нет проблем с русскими кодировками. Чтобы настроить почтовый клиент, надо использовать следующие настройки:

  • IMAP-сервер: imap.gmail.com. Порт 993. Использовать SSL.
  • SMTP-сервер: smtp.gmail.com. Использовать аутентификацию, STARTTLS (SSL, TLS). Порт 465 или 587.

В чём преимущества использования IMAP?

  • Письма хранятся на сервере, а не у клиента.
  • Метки (labels) превращаются в папки: очень удобно для организации почты. Отличие GMail от других служб в том, что письмо можно присвоить несколько меток.
  • Поддержка поиска на сервере. Нет необходимости скачивать с сервера множество сообщений для того чтобы найти одно нужное.
  • Возможность помечать письма, видеть статус (прочитано/не прочитано). При постоянном подключении мгновенно видеть изменение статуса.
  • И много других преимуществ.

Но на компьютере я всё-таки пользуюсь web-интерфейсом, который мне кажется более удобным. На сотовом телефоне я наоборот предпочитаю IMAP, так как трафика тратиться меньше по сравнению с POP3.

Метки: , , , , ,

Куда-когда.ру 2: начало

Этим постом этой статьёй я начинаю новый раздел: Ярославль. В нём я буду писать не вообще о Ярославле, а о Ярославском интернете и IT. Я уже как-то пробовал писать о нашил локальных ресурсах — это было в августе 2003 года, когда я написал статью про Ярославские форумы для издания «Компьютерра Плюс» (эту статью даже распечатали на целую полосу, правда сейчас я не смог найти в интернете архива, но кому интересно — могу прислать). С тех пор ЯрНет (название — по аналогии с рунетом) как-то не так активно развивался, чтобы о нём можно что-то периодично писать. Да и сейчас тенденция такова, что всё больше развиваются проекты всероссийского масштаба. Но тем не менее писать есть о чём, например, о изменяющемся куда-когда.ру:

Куда-когда: первая страница

Куда-когда — это ярославский информационный сайт о событиях в городе. В прошлом году на нём была информация почти обо всех развлекательных заведениях в городе и их событиях. Кроме этого в 2007 году было проведено несколько конкурсов, написано достаточно много рецензий, но, в основном, непрофессиональных, так как писали их посетители. К сожалению, сейчас практически нельзя увидеть, как и что было на сайте, однако кое-что нам всё-таки сохранили. Положительные моменты:

  • Практически единственные ресурс с информацией о событиях в Ярославле, поэтому ценность сайта высока для посетителя.
  • Сложившийся круг постоянных и лояльных посетителей. Плюс поддержка со стороны модного lift.project — оперативно появлялась информация об интересных фильмах, перформансах, выставок, культурных событий.
  • Свои акции: например, свидание в слепую.

И кое-что с другой стороны:

  • Очень странная навигация: нет сквозных ссылок, поэтому тяжело перейти с одного раздела в другой.
  • Поиск только по одному дню и только на неделю вперёд. Нельзя искать по промежутку, труднодоступные события отдельного заведения и отдельной категории.
  • Ссылки со знаком вопроса, равно и т.п. Нелогичные.
  • Юзабилити было совсем непонятным. Сразу же на первой странице было много мелких ссылок. При переходе на страницы из меню ссылки в меню никак не менялись и т.п.

Я долго ждал, когда сайт поменяется, и теперь он меняется.

Да, он выглядит по-другому. А что же у него внутри? Внутри PHP 5, что легко доказывается. Хотя я долго думал над ссылками, заканчивающимися на kk, но потом догадался, что это аббревиатура их названия. А это означает, что они сделали ЧПУ — теперь ссылки стали красивыми и понятными. Например, так они выглядят в календаре:

http://kuda-kogda.ru/events/2008/01/17/

Да, появился календарь:

Куда-когда: календарь

Теперь можно просматривать события либо за любой конкретный день, либо за весь месяц. Как просмотреть за промежуток (например, за неделю), я не нашёл. (Нашёл, но можно просмотреть только за текущую неделю. А если это воскресение? Или неделя считается, начиная от текущего дня? Жаль, что в календаре не подсвечиваются дни просмотра.) Хотя это очень легко реализовать прямо в их интерфейсе: достаточно добавить либо номер недели, либо какую-нибудь ссылку в календаре или сделать выделение при наведении.

Можно заметить появление облака тегов вообще на всём сайте. Есть облако тегов для блогов, а есть и для категорий событий. Этот момент достаточно спорный, так как понятно, что хоккейных и футбольных матчей всегда больше, чем спектаклей, поэтому хоккей и футбол будут самого большого размера, затмевая, например, выставки. И это не означает, что посетителя интересует то, чего больше. А вот для блогов такая идея подойдёт — сразу понятно, на что акцентируют внимание на сайте.

Список событий по сравнению с предыдущей версией изменился почти только визуально:

Куда-когда: список событий

Странно, что в каждом блоке не пишется дата события, хотя всё остальное оформлено приятно: есть и информация о разделе, которому принадлежит событие, об заведениях и о количестве отзывов. Мне также понравилось, что пишется продолжительность.

Если нажать на ссылку с названием события, то ничего не изменится:

Куда-когда: событие

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

На сайте появились блоги! Хотя вроде бы они были, только чуть завуалированно. Сейчас же они с небольшими приколами: прогуляемся чуть-чуть по сайту, то есть нажмём на Ищем баги:

Куда-когда: блоги и начало

И оказываемся на странице поста:

Куда-когда: блоги и конец

Почему-то тот текст, что был в списке постов исчез, зато появилось продолжение. Ни разу не видел подобной реализации. В принципе, довольно концептуально, но вот что делать тем, кто пришёл по прямой ссылки и увидел, например, только следующую надпись:

У них будет куча работы ;)

...и всё. Я иногда читаю только заголовки постов в блоге, открывая отдельно каждую статью во вкладках браузера, чтобы почитать позднее. Так я сделал и на этом сайте. Я сначала долго не мог понять, почему люди обсуждают одну какую-нибудь футуристическую фразу, пока не просёк фишки не понял, как устроен механизм.

На сайте появился обновлённый раздел с новостями (который я сначала из-за названия принял за обычные новости сайта):

Куда-когда: новости

В новостях сразу же говорят о главных событиях, что очень хорошо. По-моему, это отлично бы смотрелось и на первой странице сайта.

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

  • ой! А как же дизайн? Я о нём вообще не упомянул. Сделал я это умышленно, так как для информационного сайта дизайн менее важен, чем эргономичность юзабилити, однако для эстетического восприятия дизайн важен для любого ресурса. Субъективно дизайн хуже, чем в предыдущей версии, в которой дизайна в принципе и не было. Хотя плюс, что сайт расширился, стал лёгким и не таким распадающимся. Хотя всё также все элементы без опоры «висят в воздухе».
  • эх! Сайт всё-также не дивный, а свёрстанный с помощью таблиц. Хотя чуточку код стал лучше.
  • У сайта стало много различных удобных фишек.
  • Хотя ссылки в меню всё также не подсвечиваются и иногда пропускаются запятые.
  • Но сайт развивается в лучшую сторону! Но информации почему-то стало меньше.

Подождём окончания ввода новой версии и посмотрим, что изменится. Именно тогда я и поставлю оценку этому ресурсу.

*надеюсь на лучшее*

Метки: , , , , , ,

Prophotos: профессионально о фотографии

В новогоднем посте я упомянул, что в 2007 году стал больше интересоваться фотографией, то есть находить хоть какую-то информацию о фотографах, известных работах, техниках и методах фотографирования. На самом деле, это не так просто сделать, так как это искусство у нас овеяно какой-то тайной, известной только настоящим мастерам. А книги же по фотографированию стоят немалых денег. Единственным источником информации для меня стал интернет.

Конечно, в англоязычном сегменте можно найти очень много информации, но мне хотелось в этом случае именно материалы на русском, так как это всё-таки не техническая литература. Очень много познавательного я нашёл на портале Фотография в Википедии. Однако чего-то всё-таки не хватало, пока я случайно не узнал про сайт Prophotos.ru. Профессионально о фотографии:

первая страница сайта

О нём-то и пойдёт речь =)

Первое, что сразу же бросается в глаза, — это интересный элемент интерфейса, мгновенно обозревающий весь сайт:

элемент интерфейса

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

Существенную часть сайта занимает раздел уроков фотографии, где можно почитать как непосредственно о методах фотосъёмке, так и об обработке фотографий. Например, очень интересно написано об основах инфракрасной съёмки:

уроки фотографии

В каждом разделе всегда есть примеры фотографии с подписями о названии и об авторстве. Причём всё сделано так, чтобы по сайту можно было очень долго гулять, так как, например, те же надписи об авторстве являются ссылками на статью о фотографе. Кстати, статьи о фотографах оформлены тоже достаточно интересно:

о фотографах

На странице о фотографе представлены фотографии (в похожем элементе интерфейса, как и на главной странице — то есть можно просматривать фотографии не перезагружая страницу), написано о жанрах, биографии, наградах и дана даже ссылка на сайт фотографа.

Довольно много написано о фотоаппаратах, да и вообще о фототехнике. Для каждого устройства есть как минимум спецификация:

фототехника (фотоаппараты)

Конечно, интереснее читать обзоры и тесты, которое есть практически ко всем популярным моделям. Эти обзоры подготовлены довольно тщательно: например, можно скачать фотографии-образцы работы камер, причём даже в RAW-формате.

Самым интересным для меня, кроме, конечно, о самих фотографах, оказались разделы об истории фотографии и о жанрах:

жанры фотографии

Довольны несложным языком описывается история, приёмы и характерные черты присущие данной эпохе или данному жанру. На этих страницах всегда есть примеры фотографий. Кроме того, в левой части сайта расположены небольшие информационные блоки, посвящённые этому же сайту. Например, список фотографов или список выставок. Специально не замечал, но мне кажется, что эти блоки всё-таки связанны с основным содержимым: то есть если речь идёт об пейзаже, то слева будет список фотографов, сделавших фотографии в этом жанре.

Очень удобно организован поиск по сайту, и, особенно, по фотографам:

поиск

В поиске можно выбрать сортировку по годам, по странам, по жанру и т.п. Всё крупно и удобно. Удобно ещё и тем, что можно сортировать уже отсортированное. Например, сначала по стране, а потом страну по годам.

На сайте ещё существуют новости, на которые можно подписаться по RSS. А ещё — в основном для Москвы и Питера — существует расписание фотовыставок.

Итог: сайт сделан так, чтобы по нему можно было очень долго путешествовать. Сразу видно, что всё сделано по современным технологиям. Единственное, что плохо развито на сайте — это социальные сервисы. Комментирования практически нет (хотя вроде бы оно существует), как нет оценок и возможности что-либо добавлять или предлагать. Но я думаю, что со временем и это будет. Советую!

@@@@@@@@@@ (10/10)

Метки: , , , , ,