Рейтинг популярных записей: что там в API?

18 комментариев

simplepieВесть о скором закрытии Рейтинга популярных записей в сервисе Яндекс.Поиск по блогам вызвала у многих интерес к API, который Яндекс обещал сохранить. Уже появилось несколько новых рейтингов на основе данных этого API.

Вот и я хочу поделиться некоторыми наблюдениями в этой области.

Итак, собственно, как воспользоваться данными API рейтинга? Простейший вариант — использовать класс SimplePie. Но у нашего фида есть особенности:

1. Он за каким-то чёртом поделен на страницы, и это не лечится.
2. Часть данных передаётся в расширенном формате, непонятном стандартными RSS-классам.

Первую «особенность» можно обойти, последовательно запрашивая все страницы фида, а для обхода второй для класса придётся писать расширение.

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

— Попасть в этот «топ» довольно просто — две-три ссылки со своих же блогов на других платформах обеспечивают пусть и не высокую, но всё же позицию. Лишь бы блоги были не новые.

— Большое число ссылок на сам блог или сообщество очень помогает. Например, почти все посты сообщества ru_mac попадают в топ за счёт этого.

— Намного больше шансов попасть в рейтинг у блогов на платформе LiveJournal.com. Отдельностоящих блогов там почти нет.

А теперь к досадному моменту: в фиде напрочь отсутствует какая-либо категоризация. Даже банальные теги из ЖЖ в фид не транслируются, что делает весьма затруднительным создание каких-либо тематических рейтингов на основе этого API. Я попробовал набросать некий алгоритм, выдающий записи на околокомпьютерную тематику, но эта идея потерпела фиаско — ни ручной отбор блогов, ни поиск ключевых слов в заголовках не дают нужного эффекта.

Поэтому я обращаюсь к читателям с просьбой предложить идею алгоритма, который выявил бы из рейтинга все записи наших коллег — IT-блогеров.



Гостевой пост: Микроформаты.

5 комментариев

Мы часто слышим, что интернет находится на переломном этапе своего развития. Такое мнение высказывается как в блогах, так и на различных конференциях. На примере многих новых проектов видно, что вскоре должна настать эпоха семантической сети: нельзя не заметить постепенный уход от интернета, направленного на работу с документами, и переход на содержание. На специализированных конференциях, таких как ISWC и SemTech, ежегодно обнародуются результаты исследований по данной теме.

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

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

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

«Natural Language Processing» позволяет анализировать естественно-языковые тексты посредством имитации действий читающего человека. При этом, как правило, текст разбивается на абзацы, а абзацы на предложения. Дополнительная структура позволяет раскрыть его семантическое содержание. Поисковый запрос в таком случае сможет идентифицировать и установить связь между лицами, местоположением, объектами и событиями, что заметно снизит количество ошибок поиска.

Следующая концепция носит название «Microformats». В июне 2009 года ей исполнилось четыре года. Идея строится на ручном расширении существующих html-страниц специальными элементами для адаптации их под поисковые системы. К примеру, существует такие обозначения для контактов, встреч и закладок. В настоящее время их используют такие известные платформы, как MobileMe, Facebook, Flickr, Google Maps и Technorati.

Модель «Resource Description Framework», разработанная W3C, описывает формат метаданных в семантическом вебе и подразумевает внедрение в страницы роботочитаемой информации. Однако подходы к реализации данного замысла отличаются друг от друга. Сообщество разработчиков микроформатов стремится к выполнению наиболее важных требований с наименьшими затратами. Тем не менее RDF ближе к «рекомендациям» и, скорее всего, она надолго заменит MF.

Семантический интернет может решить проблемы, связанные с поиском нужной информации и объединением данных из различных источников. Имеются стандарты описания информации из различных источников, которые являются общепризнанными, а также существуют методы освоения неявных знаний, усваиваемых только в процессе длительного обучения или в результате личного опыта. Концепции, касающиеся семантического анализа классических веб-страниц или наполнения их метаданными при помощи RDF, показывают, что переход к интернет-страницам нового типа возможен и уже начался. Перенос знаний из открытых баз данных («Википедия», все дела) — первый этап этого процесса.

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

Жилинский: Вот вроде написано много, а о чём? Я писал про микроформаты в 2007 году, с тех пор ситуация изменилась совсем чуть-чуть.

Автор гостевого поста — Fan Arsenala. 7bloggers.ru.



Поисковые роботы в статистике посещений

5 комментариев

Определение робота поисковой системыВниманию читателей (и себе на память, как обычно) предлагаю законченное решение по отсеиванию ботов поисковых систем — PHP-скрипт, анализирующий активность кроулеров ПС на сайте. Кстати, кроме аналитики такой скрипт может быть полезен, если какой-нибудь особо активный бот мешает нормальной работе сайта.

Скрипт написан на PHP (возможна работа как в режиме модуля Апача, так и в FastCGI), полностью валиден (в рамках соответствия стандартам xHTML1/Strict и CSS/3), имеет гибкую систему настроек и панель управления. Скрипт также может отображать историю активности ботов конкретной поисковой машины.

Скачать скрипт и получить инструкции по его установке можно на сайте его разработчика — Usings.ru, там же есть и демо-версия статистики, генерируемой скриптом.



Curl based HTTP Client vs. Snoopy

11 комментариев

Началось всё с того, что мне захотелось получать некоторые данные не прямым запросом, а через прокси. Переписывать много кода пришлось бы в любом случае, но на популярные грабли наступать не хотелось.

Задачу «отправить POST- или GET-методом данные и получить результат через прокси» взялись выполнить два PHP-класса.

PHPCurl HTTP Client — простая, но эффективная ООП-оболочка над библиотекой Curl. Содержит все методы, необходимые для получения данных со страниц, подмены referrer, авторизации, отправки POST-запросов, управления cookies и т.д.

Snoopy the PHP net client — PHP-класс, эмулирующий работу веб-браузера. Он автоматизирует получение содержимого страниц или, например, отправку форм. Запросы формирует функцией fsockopen().

Функции этих классов очень похожи. Оба они умеют получать содержимое страниц, отправлять любые значения полей User-agent и Refferer, передавать данные POST- и GET-методами, передавать Cookies, и ещё куча мелких бонусов у каждого класса.

Но работают они кардинально по-разному: одна использует системную библиотеку, а вторая PHP-функцию, поэтому я решил сделать замеры скорости для этих классов на одинаковой задаче.

Задача получилась такая: подключить класс, установить User-agent и Refferer, получить страницу с чужого сайта, вывести прошедшее время, повторить всё 100 раз.

Увы, результаты презентативными не оказались: классы показали одинаковую работу в одинаковое время с крошечным отрывом Snoopy в пределах погрешности. Так что можно пользоваться любым из них.



Мониторинг и анализ доступности сайтов

16 комментариев

МониторингЯ собрал в один список все известные мне сервисы, позволяющие следить за правильной работой сайта и сообщать владельцу, если что-то не работает или работает не правильно — этот процесс обычно называют мониторингом.

В моём списке сервисы упорядочены по увеличению Alexa Traffic Rank основного домена, то есть от самого популярного к самому альтернативному (кроме первого сервиса).

1. Webpinger.ru (уже отключен) — многофункциональный сервис для мониторинга сайтов и серверов. Сообщает о проблемах уведомлениями на электронную почту, ICQ и SMS. Поддерживает основные виды протоколов (http, https, ftp, pop, smtp, socket, dns). Большое число точек мониторинга по всему миру, их количество постоянно растет. Частота проверок от 5 до 60 минут. Подключение 10 первых сайтов бесплатное, большой выбор систем оплат за подключение платного тарифа.

2. Яндекс Метрика умеет проверять доступность сайтов и уведомлять об этом по SMS и e-mail. Хотя, говорят, не очень ровно и не очень вовремя. Необходима установка счётчика на страницы сайта.

3. Pingdom.com — очень популярный англоязычный сервис мониторинга сайтов. Базовый тариф стоит $9.95 в месяц и позволяет контролировать 5 сайтов из множества точек и получать 20 SMS-уведомлений за оплаченный период.
Доступные протоколы мониторинга: HTTP/HTTPS, Ping, TCP/UDP, DNS, POP3/IMAP/SMTP, проверка содержимого страницы.

4. Host-Tracker.com — тоже популярный сервис, но с русскоязычным интерфейсом и бесплатным тарифом. Количество точек для мониторинга — 47. Позволяет бесплатно мониторить 2 сайта с интервалом проверки доступности 30 минут и получать еженедельные отчёты на e-mail.
Более продвинутый мониторинг стоит $5 в месяц (оплатить можно почти всем, даже Яндекс.Деньгами) и позволяет проверять каждые 10 минут до 5 сайтов, формировать отчёты, проверять содержимое страниц и получать до 10 SMS-уведомлений в месяц. Поддерживает отправку уведомлений в ICQ и Jabber.

5. Siteuptime.com позволяет бесплатно проверять 1 сайт. В конце месяца высылает отчёт, имеет много точек мониторинга и замеряет время отклика страницы. На бесплатном тарифе интервал мониторинга может быть 30 или 60 минут, протоколы — HTTP, POP3, SMTP, FTP, SSL, DNS, TCP, Ping, Content, HTTP Password Protection.

6. Site24×7.com — сервис довольно удобный, но тоже платный. Есть бесплатный сильно ограниченный тариф с интервалом мониторинга раз в 60 минут, но с возможностью замеров скорости отклика.

7. Internetseer.com — бесплатный тариф позволяет проводить мониторинг доступности раз в час, остальное — за деньги.

8. Hyperspin.com (они же Wembot.com) — платные сервисы. Полный набор стандартных возможностей (ping, HTTP, HTTPS, FTP, SSH, SMTP, DNS, POP3, IMAP, MySQL, уведомления по e-mail и SMS, 13 точек мониторинга). Расчёт стоимости происходит индивидуально, например, мониторинг 1 сайта по 1 порту раз в 15 минут стоит $2 в месяц, а отправка 1 SMS-уведомления — $0.20.

9. Mon.itor.us — невероятно мощный и функциональный сервис мониторинга сайтов, сервисов и сетей. Куча возможностей по опросу (HTTP, HTTPS, FTP, SIP,IMAP, SMTP, POP3 на любом порту, любой TCP или UDP порт, DNS, Ping) и отчетности, мониторинг из 3 точек, опрос каждые 30-45 минут, предупреждения высылаются на e-mail, ICQ, YIM, MSN, GTalk, SMS. Можно скачать и установить программу-агент (под Windows), который помимо мониторинга процессов, памяти и жестких дисков самой машины может выступать в роли еще одной точки опроса (HTTP и Ping).
Имеет платную премиум-часть — Monitis.com.

10. Montastic.com — бесплатный, простой и эффективный. Позволяет проверять до 100 сайтов, имеет 2 точки мониторинга и интервал проверок около 10 минут. Умеет формировать отчёт в виде RSS-канала.

11. BasicState.com — довольно полезный, и при этом бесплатный сервис. Каждые 15 минут он пытается определить IP-адрес сайта по DNS (resolve), установить HTTP-соединение и получить данные. При возникновении ошибки сервис отправляет уведомление об ошибке, этапе на котором она произошла и её характере. Позволяет мониторить неограниченное количество сайтов.

12. AreMySitesUp.com на бесплатном тарифе обещает проверять сайт раз в 60 минут или быстрее и сообщать в случае проблем, по возможности с анализом их причин.

13. UptimeInspector.ru — платный сервис с большим количеством услуг и сложной схемой подсчёта их стоимости.

14. Verinet.ru (уже отключен) — на бесплатном тарифе мониторит 1 сайт раз в 30 минут и отправляет уведомления на e-mail и ICQ. Платные тарифы от $1 в месяц.

Кроме онлайн-сервисов для мониторинга состояния сайтов, сетей и сервисов можно воспользоваться десктопными приложениями. Стандартом де-факто тут является Nagios, альтернативой — Zabbix. Определённо, стоит упомянуть и о Monit.

Если вы знаете ещё аналогичные сервисы — пишите в комментарии, пополним список.



Обновления браузеров

61 комментарий

Пожалуй, главная новость интернета за эту неделю — это долгожданное обновление сразу двух популярных браузеров.

Google ChromeНовый браузер от интернет-гиганта Google Chrome получил новую бета-версию 2.0.169.1, которая, впрочем, более чем стабильна. По заявлению разработчиков и тестеров, скорость работы этой программы увеличилась на 25% за счёт перехода на более новые версии компонентов.

А ещё в Chrome добавили режим полноэкранного просмотра (спасибо от моего EeePC), автопрокрутки страниц и ещё несколько приятных мелочей.

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

Internet Explorer 8Вторая новость — выход Microsoft Internet Explorer 8, который как всегда «быстрее, безопаснее и удобнее», правда в сравнении всего лишь с собственными старыми версиями.

Из нововведений пользователям IE8 обещают «умную» адресную строку, более высокую скорость работы, поддержку акселераторов, веб-фрагментов,  улучшенную безопасность и более точное следование веб-стандартам.

Справедливости ради, стоит отметить, что этот браузер на самом деле лучше своих предыдущих версий, но всё равно хуже более надёжных и безопасных альтернатив: Opera, FireFox, Chrome, Safari…

В подтверждение моих слов: «Взлом браузера Internet Explorer 8 у немецкого студента занял около пяти минут. После этого он получил контроль над компьютером.»



Шабаш всех влюблённых в Unix

8 комментариев

Двоичные часы

UNIX-время или POSIX-время (Unix time) — способ кодирования времени, принятый в UNIX и некоторых других POSIX-совместимых операционных системах.

$ date -ud@1234567890
Fri Feb 13 23:31:30 UTC 2009

Фактически, unix time (или time_t по типу переменной) — это число секунд, прошедших с точки начала отсчёта, которой считается полночь (по UTC) с 31 декабря 1969 года на 1 января 1970 года, а время с этого момента называют «эрой UNIX» (Unix Epoch).

Фанаты, гики и энтузиасты ещё во времена Fidonet завели традицию — отмечать особо ровные даты в unix-time, и такие даты стали называть «time_t parties».

Вот самые круглые time_t-даты:

  • 9 сентября 2001 года в 01:46:40 UTC, биллениум Unix (1000000000)
  • 18 марта 2005 года в 01:58:31 UTC (1111111111)
  • 13 февраля 2009 года в 23:31:30 UTC (1234567890)
  • 13 июля 2012 года в 11:01:20 UTC (1342177280 = 0x50000000)
  • 18 мая 2033 года в 03:33:20 UTC , второй биллениум (2000000000).

Как видите, в ночь с 13 на 14 февраля этого года ожидается юбилей. Технически с учётом поправки на часовой пояс у нас это произойдёт уже 14-го в 31 минуту и 30 секунд первого. Забавно, что 13-е число приходится на пятницу, а 14-е — день всех влюблённых.

19 января 2038 года в 03:14:08 по UTC значение переменной типа time_t достигнет 231, что может привести к ошибочной интерпретации этого числа как отрицательного. Возможное решение «проблемы 2K38» —  использование не 32-х, а 64-битной переменной.



LiveStreet 0.2: свой собственный Хабр

18 комментариев

LiveStreet CMSНекоторое время назад в сети появился устойчивый термин «user generated content», который все долго и упорно связывали с более абстрактным понятием «Web 2.0». Суть его, как вы скорее всего знаете, в том, что содержимое сайта создаётся и управляется самими пользователями.

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

Именно эту проблему, скорее всего, хочет исправить автор бесплатного движка социального сервиса LiveStreet.

Этот движок написан на PHP5 и использует в качестве хранения данных базу данных MySQL. Внутреняя архитектура построена на принципе MVC (модель-вид-контроллер), естественно, с применением ООП.

C точки зрения пользователей, LiveStreet предоставляет следующие возможности:

  • Полная поддержка кодировки UTF-8
  • Ведение персональных блогов
  • Возможность создания коллективных блогов
  • Система рейтингов блогов, топиков, комментариев, пользователей
  • Система голосования за блоги, топики, комментарии, пользователей
  • Возможность добавлять топики в избранное
  • Автоподстановка тегов
  • Коллективная внутренняя почта
  • Система контроля доступа(ACL) к различным возможностям сети
  • Система инвайтов
  • Топики-ссылки
  • Топики-опросы
  • Администрирование своих блогов
  • Назначение модераторов блогов
  • Настройки оповещений на e-mail.

Иными словами, движок предоставляет основные возможности для создания своего социального сервиса на основе блогов по модели Хабрахабра.

Для установки LiveStreet необходим хостинг со следующими возможностями: PHP5 +mbstring, MySQL 5, Apache (httpd) +mod_rewrite.

Большинство современных хостингов удовлетворяют этим требованиям.

Процесс установки LiveStreet:

  • 1. Скачать исходник LiveStreet.
  • 2. Разархивировать полученный архив на свой хостинг
  • 3. Создать базу данных и залить в неё SQL дамп sql.sql
  • 4. Настроить параметры соединения с базой данных в config/config.db.php
  • 5. Настроить параметры в config/config.php
  • 6. Дать права 777 каталогам logs, uploads, templates\compiled, templates\cache и каталогу для хранения временных файлов tmp

По умолчанию в системе создается администратор admin с паролем admin. Ответы на большинство вопросов по использованию движка LiveStreet можно найти на сайте проекта.



Устанавливаем русский Movable Type 4.21

18 комментариев

Movable type 4.21 RUЯ не приверженец Movable Type (я использую WordPress), да и вообще веб-приложений, написанных на языках, которые я плохо знаю. Но читатели в комментариях к статье про тюнинг WordPress-блогов убеждали меня, что это — «замечательная платформа, которая всегда впереди WP по многим пунктам.» Я решил всё-таки проверить это, тем более на днях вышла новая официальная русская версия.

Идём на русский сайт MT и качаем архив с последней версией движка. Распаковываем в какой-нибудь каталог, в который есть доступ у веб-сервера. В моём случае это Apache 2.2.8 (httpd) и каталог /home/www/mtblog. Можно попробовать после этого открыть в браузере этот каталог (адрес зависит от настроек веб-сервера), в моём случае — http://localhost/mtblog/. Страница приветствия уже работает, но это пока всё.

Читать далее »



QR-code. Бар-коды в современном интернете

34 комментария

Слово «бар-код» в русском языке появилось благодаря англичанам. Среди значений их глагола bar — «испещрять полосками, зарешечивать». В некоторых словарях этого слова нет вовсе, но в тех, где присутствует, оно пишется через дефис: бар-код. Хотя, не исключаю, что впоследствии его причешут до «баркод» — по привычке.

qr-code

На данный момент самым популярным и перспективным стандартом кодирования бар-кодов является QRQuick Response. Это сейчас стандартный для Японии способ кодировать текстовую и графическую информацию в форме маленьких картинок, которые легко отсканировать сотовым телефоном. Если вы напечатаете такую картинку и проведете по ней сотовым телефоном, то закодированный текст автоматически распознается, лишая вас сомнительного удовольствия долго вводить требуемый e-mail или веб адрес, пользуясь крошечными кнопками с клавиатуры телефона. Такие коды в Японии печатают на продуктах, в рекламе, на формах заказа и так далее. Вы можете сами найти такой баркод на процессоре своего компьютера — именно так производится их учёт в Intel и AMD.

QR была разработана в Японии, компанией Denso в 1994 году. Ключевое отличие QR от аналогичных стандартов — учет специфики японского языка средствами UTF-8, что для нас означает возможность спокойно шифровать и русские буквы в QR-кодах.

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




© 2007-2010 Блог разработчика, страница об авторе.
При использовании информации ссылка на источник обязательна.