Знову їду до США

Ось вже й кінець літа і ось вже 4 рік поспіль я їду до США (правда перший раз я їхав туди в кінці вересня).
Єдина різниця цього разу — я їду не в Сан Дієґо а в Пасо Роблес (теж Каліфорнія але значно північніше). Все, що я знаю про Пасо Роблес — він відомий своїми виноградниками (на фото ), решту дізнаюсь на місці.
Так що не дивуйтесь, якщо я буду відповідати в Jabber/Twitter серед ночі (по Києву) — в мене якраз буде день (-10 годин різниці).

LiveJournal, прощавай!

В зв’язку з останніми новинами вирішив позбутися свого ЖЖ (все одно я там не пишу, лише транслюю дописи з цього блоґу).

Всі дописи з ЖЖ вилучив за допомогою програми LJ-SEC (.Net або Mono).
Трансляцію з блоґу теж прибрав (це буде останній допис, що піде в ЖЖ), читайте мене безпосередньо на ньому.

Раджу усім своїм френдам лише в ЖЖ задуматися про перехід на інші платформи (або на stand alone блоґ), ЖЖ вже давно не те, що було раніше. Якщо потрібна допомога з WordPress (хостингами, доменами і т.п.) — звертайтесь.

LiveJournal, прощавай!

Нові фотоприбамбаси

2 місяці тому я описував свою фототехніку.
Тоді один з коментаторів порадив мені купити об’єктив AF-S DX NIKKOR 35mm f/1.8G.
І ось нарешті вчора я його отримав 🙂

Ще новинка — поляризатор NIKON 52MM Circular Polarizing Filter.
Раніше в мене вже був поляризатор від всесвітньо-відомої китайської фірми NoNaMe (точніше одного з її філіалів) але його якість була так собі…

Слідкуйте за новими фотографіями в моїй галереї

Google Buzz як центр Вашої активності в Інтернеті

Пройшло вже майже 4 місяці, як Google запустив свій новий сервіс Buzz. В нього одразу знайшлися як критики так і прихильники, але все ж таки він зайняв свою нішу.

Якщо розібратися, то Buzz це не «наша відповідь Twitter’у», це скоріше «наша відповідь FriendFeed’у», тобто можливість зібрати активність з усіх своїх сервісів в одному місці. Саме для цього я й використовую Buzz, зібравши там свій контент з Google Reader’а, Twitter’а, цього блоґу та галереї.

Ось як це працює.

1. Додайте всі сервіси, які ви хочете транслювати в Buzz, в свій Google Profile і поставте на них позначку «This is a profile page about me»:

2. Підтвердіть, що це дійсно ваші сторінки. Для цього потрібно поставити гіперпосилання з них на свій Google Profile з rel=me, наприклад:
<link rel="me" type="text/html" href="http://www.google.com/profiles/mrgallua" />
або
<a href="http://www.google.com/profiles/mrgallua" rel="me">Google Profile</a>

Це можна зробити через каскад сторінок, наприклад:
last.fm/user/MrGALL (rel=me) mrgall.com (rel=me) google.com/profiles/mrgallua

3. Дочекайтесь, поки Google проіндексує ці сторінки та знайде зв’язки між ними. Якщо не маєте сил чекати — скористайтесь сервісом SGAPI recrawl tool, ось як він виглядає в мене:

На жаль не всі сайти підтримують rel=me (з Фейсбуком все зрозуміло, але для Хабрахабру це значний недолік).

4. В Gmail зайдіть в Connected Sites і включіть трансляцію для потрібних вам сервісів. Якщо для Google Profile та Buzz ви використовуєте Google Account (тобто не @gmail.com адресу) то включити трансляцію можна на сторінці Google Dashboard а читати та писати коментарі — на сторінці Google Profile.

От і все, далі Buzz буде робити все автоматично (хоча і з невеликою затримкою 😉

Протокол WebFinger

Я полюбляю розбиратися з новими можливостями, що надає веб. На цей раз мене зацікавив протокол Webfinger, який розширює можливості електронної пошти та робить її аналогом OpenID.

Детальніше про нього можна почитати тут: Introducing WebFinger та тут: Implementing WebFinger.

В цьому дописі я хочу розказати, як працює цей протокол на прикладі інтеграції Webfinger з блоґом. На жаль поки Webfinger підтримується лише в Gmail Accounts та Google Accounts (бо його розробники — працівники Google), але це не забороняє використовувати Webfinger з будь-яким доменом та адресою.

Отже ми маємо користувача з адресою sample-user@gmail.com.
Перевіряємо, чи є на цьому домені файл gmail.com/.well-known/host-meta
Якщо є — шукаємо рядок <Link rel=”lrdd” template=”http://www.google.com/s2/webfinger/?q={uri}”> з адресою, за якою можна дізнатися додактову інформацію про цю поштову скриньку.

Якщо у вас є пошта на власному домені (наприклад як у мене mrgall [пес] mrgall.com), то підтримку Webfinger можна додати доволі просто: створюємо xml файл example.com/.well-known/host-meta з таким вмістом:

<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0" xmlns:hm="http://host-meta.net/xrd/1.0">
<hm:Host xmlns="http://host-meta.net/xrd/1.0">gmail.com</hm:Host>
<Link rel="lrdd" template="http://www.google.com/s2/webfinger/?q=mrgallua@gmail.com">
<Title>
Resource Descriptor
</Title>
</Link>
</XRD>

mrgallua@gmail.com це не поштова скринька, це мій Google Account mrgallua, зареєстрований на адресу mrgall [пес] mrgall.com (чому тут потрібно дописувати домен gmail.com — питання до розробників протоколу 🙂
Єдиний недолік цього методу — всі адреси @mrgall.com будуть мати одну і ту саму WebFinger адресу (але в мене є лише один поштовий екаунт на цьому домені 🙂

Якщо в адресі є параметр {uri} то його треба замінити поштовою адресою — має вийти щось типу:
http://www.google.com/s2/webfinger/?q=sample-user@gmail.com

За цією адресою отримуємо ось такий xml-файл:

<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
<Subject>
acct:mrgallua@gmail.com
</Subject>
<Alias>http://www.google.com/profiles/mrgallua</Alias>
<Link rel="http://portablecontacts.net/spec/1.0" href="http://www-opensocial.googleusercontent.com/api/people/"/>
<Link rel="http://portablecontacts.net/spec/1.0#me" href="http://www-opensocial.googleusercontent.com/api/people/101951818361875030944/"/>
<Link rel="http://webfinger.net/rel/profile-page" href="http://www.google.com/profiles/mrgallua" type="text/html"/>
<Link rel="http://microformats.org/profile/hcard" href="http://www.google.com/profiles/mrgallua" type="text/html"/>
<Link rel="http://gmpg.org/xfn/11" href="http://www.google.com/profiles/mrgallua" type="text/html"/>
<Link rel="http://specs.openid.net/auth/2.0/provider" href="http://www.google.com/profiles/mrgallua"/>
<Link rel="describedby" href="http://www.google.com/profiles/mrgallua" type="text/html"/>
<Link rel="describedby" href="http://s2.googleusercontent.com/webfinger/?q=mrgallua%40gmail.com&fmt=foaf" type="application/rdf+xml"/>
<Link rel="http://schemas.google.com/g/2010#updates-from" href="https://www.googleapis.com/buzz/v1/activities/101951818361875030944/@public" type="application/atom+xml"/>
</XRD>

Нас цікавить виділена адреса, за якою отримуємо json файл з базовою інформацією: ім’я, прізвище, адреса профілю та аватари (thumbnailUrl).

Я доволі просто інтегрував отримання аватарів за допомогою WebFinger в цей блоґ. Якщо користувач не має Google Profile або аватари на ньому — використовується старий спосіб — Gravatar.

Погратися з WebFinger можна тут: webfinger.org та тут: WebFinger client

На закуску: сторінка з аватарами (отриманих з Google Profile або Gravatar) усіх користувачів, які колись залишали коментар в моєму блозі в порядку спадання кількості коментарів: http://mrgall.com/site/wfa/test.php (>200 картинок).