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

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 картинок).

Foursquare

Ось вже більше тижня граюсь новою іграшкою — сервісом Foursquare.
Суть його полягає в тому, що ви з мобільного відмічаєтесь, де знаходитесь саме зараз і це можуть бачити інші люди.
Але найцікавіше (для мене) в цьому сервісі те, що за його допомогою можна вивчати своє місто, дізнаватися про нові місця і т.п.

Для його роботи потрібен телефон з iPhoneOS, Android чи BlackBerry. На нього ставиться спеціальна програма, за допомогою якої і відбувається робота із сервісом.

Деякі дії, наприклад додавання та редагування місць, можна роботи на сайті. Раджу перед тим, як йти в якесь місце, перевірити, чи є воно в базі Foursquare, і якщо немає — додати його. Також з комп’ютера можна виправити інформацію про місця, додані з телефону (типографіка, адреса, телефон і т.п.)

Єдине, що мені не вистачає на їх сайті — великої карти з відміченими місцями з їх бази. Але існує сервіс FourWhere (скупчення точок та заході Києва — частково моя робота):

Якщо є технічна можливість та бажання — долучайтесь, в Києві ще багато «білих плям» 😉

Як читати всю стрічку LiveJournal в Google Reader

Пояснювати, що таке LiveJournal та Google Reader я не буду — якщо ви ними не користуєтесь — цей допис не для вас 😉

Здавалося, що ж складного читати LiveJournal в Google Reader, адже кожен ЖЖ має RSS та Atom стрічки?

Але в ці стрічки не потрапляють повідомлення користувачів, що доступні лише для друзів. Це очевидно і цілком логічно, адже ці стрічки — публічні. Але ми хочемо читати всі дописи в Google Reader, що ж робити?

LiveJournal може віддавати всі дописи в RSS та Atom стрічки, якщо ввести свій логін і пароль, але таку авторизацію не підтримує Google Reader. Тому я написав такий собі скрипт-«проксі», який авторизується в LiveJournal та віддає повні стрічки в Google Reader.
Для його роботи потрібно мати власний хостинг, мінімальні навички редагування файлів та роботи з ftp сервером.

Його вихідний код лежить ось тут: livejournal-to-google-reader.phps (ґуру в програмуванні — не лайте за код, писав «на колінці» за 20хв )

Зберігаємо увесь текст скрипта в *.php файл, редагуємо налаштування (хоча б обов’язкову частину):

і заливаємо цей файл собі на сервер.

Потім заходимо браузером на адресу http://your-site.com/folder/to/script-name.php і отримуємо *.opml файл, який потрібно імпортувати в Google Reader (Reader settings -> Import/Export -> Import your subscriptions).

От і все.

P.S.
Щодо безпеки — ваш пароль від LiveJournal зберігається в цьому файлі, тому не варто показувати його комусь ще.
Також раджу покласти файл на хостинг так, що його випадково не знайшли інші користувачі, інакше вони теж зможуть читати дописи ваших друзів (якщо не активований «Параноїдальний режим», що описаний нижче 😉

Додано 08.05.2010
Добре обміркувавши коментар, що залишив пан podarok про безпеку, я вирішив додати в скрипт 2 режими — «Параноїдальний режим» та «Супер Параноїдальний режим». Перший видаляє текст прихованого допису, другий — текст та заголовок. За замовчуванням активований «Параноїдальний режим».

Таким чином ви дізнаєтесь, що ваш друг написав новий допис зі статусом «лише для друзів» і можете перейти на сайт livejournal.com, щоб його прочитати, а інші люди, навіть якщо дізнаються адресу скрипту (наприклад через механізм розшарювання дописів в Google Reader), побачать лише посилання та час.

Всім, хто турбується про приватність ваших ЖЖ друзів — раджу оновити скрипт: livejournal-to-google-reader.phps 😉