Простые советы веб-мастерам
1) При заходе на несуществующую страницу – используйте Soft 404 вместо редиректа на главную страницу. (Хороший ответ на вопрос «почему» – можно посмотреть в рекомендациях от Google).
2) Все страницы с личными данными пользователя, или страницы корпоративного характера, или страницы закрытых сайтов помечайте мета-тегами noindex и nofollow. Так они случайно не попадут в поиск. Так же пользуйтесь robots.txt.
3) Используйте атрибут rel=»nofollow» тега <a> для не-важных ссылок. Например, рекламных, или ссылок с профилей пользователей. Такие ссылки нужны для пользователей, но вы совершенно не обязаны «передавать PageRank и ТИЦ» всем сайтам подряд.
4) Пользуйтесь разметкой schema.org - она делает ваш сайт более понятным для поисковых систем.
5) Следите чтобы содержимое страниц не зависело от порядка следования cgi параметров.
PS: Полезно знать (возможно, в будущем, это нам поможет, сейчас это слабо актуально):
noindex - как тег, сообщает поисковику, что текст внутри данного тега поисковым системам учитывать не надо, в него надо оборачивать всяческие служебные тексты, не относящиеся к смыслу (контенту) страницы или рекламу.
Развитие поисковых систем
Постараюсь без особых сложностей и подробностей рассказать о существенных вехах развития поисковых систем.
Этап I. Текстовый поиск.
Первый этап – это текстовый анализ. Каждая страница разными метриками (независимо от других страниц) оценивалась на соответствие тексту запроса. Сначала слова, потом леммы (основы слов или N-граммы). Потом tf / idf и т.д.
Но несмотря, на то что текстовый анализ стал довольно сильной научной дисциплиной, которая бурно развивается до сих пор, довольно скоро одного его стало недостаточным.
Этап II. Ссылочный анализ.
Интернет – связанная структура. Люди активно пользуются ссылками – размещают их на страницах для удобной навигации пользователей. Эту информацию, оказалось, можно успешно использовать для улучшения качества поиска. На самом деле, здесь есть две области направления работы. Обе до сих пор очень активно развиваются, и на эту тему до сих пор пишется много статей:
- анализ текста ссылок: встречается ли текст запроса хотя в ссылках, которые ведут на данную страницу; есть ли на данную страницу ссылка, текст который полностью содержит текст запроса; анализ околоссылочного текста и т.д.
- PageRank и ему аналогичные. Основная суть – хороша та страница, на которую введет много ссылок со страниц, на которые тоже ведет много ссылок. Во многом, именно с этим алгоритмом связан прорыв поисковой системы Google. Есть множество его модификаций, например TrustRank, HostRank… Есть и альтернативы, например HITS.
Однако, со временем, поисковым системам даже этой информации стало мало, и они пошли дальше.
Этап III. Анализ поведения пользователей. Тулбары.
Оказалось, что очень сильный поисковый сигнал несет в себе информация о том, как ведет себя пользователь на той или иной странице. Данную информацию разные поисковые системы получали или получают через т.н. Тулбары. Например, Google Toolbar. Какой может быть такая информация? Например, сколько времени человек проводит на странице (ее информативность), куда он ходит (можно понять какие ссылки «живые», а какими – никто не пользуется) и т.д.. Используя данную информацию, можно построить разные поисковые алгоритмы, например Browse Rank.
(Офтоп: со временем Гугл прикрыл проект Google Toolbar, однако он, по сути уже и не нужен, т.к. Google Chrome и так по умолчанию отправляет Компании Добра всю необходимую информацию).
На данную тему можно найти очень много информации – ищите «web/browsing log analysis».
Этап IV. Плюс Один.
Новейшим направлением поисковых алгоритмов является анализ данных «+1″. Это могут быть разные варианты, например, facebook «+1″, Twitter «+1″, Vkontake «+1″ и т.д. В чем суть? Люди ставят плюсик только тем страничкам или сайтам, какие им нравятся. А раз страничка кому-то нравится, то наверно на ней размещена хорошая информация. В некоторых системах можно ставить и -1, но это совсем не обязательно.
В принципе, собирай такую информацию (сколько какой странице пользователи поставили плюсиков) и живи счастливо. Но! Хотелось бы понять, а какому плюсику можно доверять, а какому нет? Ведь накрутить 100500 плюсиков может любой робот.
Для этого надо систему «+1″ завернуть в социальную сеть. Зачем? А чем больше мы доверяем пользователю, тем его плюс важнее. Отношение «доверяем» может быть выражено, например, таким образом: «у человека много друзей» или «он активно пользуется системой» или «он не размещает запрещенного контента». Я был на конференции Google Developers’ Day. Там докладчик говорил «Если ПлюсОдин ставит спаммер, это легко определить, т.к. никто не дружит со спамером».
Ну, а раз, пользователь вовлечен в социальную сеть, то можно извлечь и море другой информации, например анализировать интересы пользователей. Допустим, John любит цветы и ядерную физику, а Mary любит модную одежду. Тогда, возможно, если John поставит +1 некоторому сайту, то сайт будет о цветах или ядерной физике, а если Mary – о модной одежде.
Кажется мы только что придумали Google+. Но наверно, все же, то что Google поисковик и то что Google+ – это социальная сеть с «+1″ кнопкой – совпадение. Кто знает?..
Microfost пошел дальше и создал so.cl: «So.cl combines social networking and search, to help people find and share interesting web pages in the way students do when they work together.». Честно, ничего не скрывая.
Этап V. Будущее.
Интересно, как дальше пойдет технологический процесс? Как будут развиваться поисковики? Я затрудняюсь сказать, оставлю данные размышления для другого поста.
Напоследок, хотелось бы еще упомянуть 2 важных составляющих любых поисковых систем.
Золотая нить поисковых технологий. User feedback.
Золотая нить – это user feedback, анализ взаимодействия поисковика с поисковой системой. Поисковая система запоминает на какой запрос на какие страницы пользователи переходят, а на какие – нет. И обучается.
На эту тему можно погуглить, например: «click analysis».
Серебрянная нить поисковых технологий. Персонализация.
Персонализация – это священный грааль поисковых систем. Или даже Золото Инков для поисковых систем. Заключается он в том, чтобы научиться каждому пользователю показывать информацию, наиболее релевантную конкретно для него.
Очень многие пытаются осилить эту тему (см. например Гугл). На данную тему существует бесконечное множество публикаций. Нельзя сказать, что поисковые системы ничего в этой области не достигли, но и про особые успехи говорить пока трудно. Данная тема всегда интересовала ученых, занимающихся поиском. Она становится популярной, потом непопулярной, потом о ней начинают говорить вновь… Впрочем, персонализации, я лучше посвящу отдельный пост.
Удачи всем и доброго дня! Надеюсь, моя статья оказалась вам полезной.
В основном это касается C++, но для других языков, думаю, тоже будет полезно.
1) Используйте простые типы минимального, но необходимого размера. Если хватает int32 – берите его, если нет – берите int64. Если хватает точности float – берите его, если нет – double.
2) Следите за компактностью структур. Самое простое – это расположение полей структуры в порядке убывания их размера.
3) Не используйте map и set, там где в этом нет необходимости. Необходимость – это возможность создавать и читать данные по ключу в произвольном порядке.
4) Мудрое использование vector:
4.1) Обязательно делайте reserve, если число элементов известно заранее.
4.2) Освобождайте память вектора, если он больше не нужен. Не забываем, что clear() освобождение памяти не гарантирует. Для vector<int> x делаем x.swap(vector<int>()).
Удачи вам в экономии памяти!
Буду рад, если поделитесь своими правилами
Yet Another Conference 2011
Хотел написать про конференцию Яндекса, которую мне удалось посетить в этот понедельник.
Но мой друг, Миша Нокель, опередил меня
. Впрочем, я все равно постараюсь поделиться своими впечатлениями.
Кратко о Сабже: эту, уже вторую по счету, конференцию проводит Яндекс, раз в год, чтобы показать что мы не хуже других свои научные достижения. Проводилось это дело в World Trade Center в Москве.
На прошлой конференции мне, увы, не удалось побывать, но я смотрел часть докладов по архивам (кстати, советую это сделать и вам), где мне очень понравились доклады «Сбор данных по примерам» (частично, его идеи я использовал в своей дипломной работе) и «Basic Optimizations».
В этом году я побывал на следующих докладах, и потому буду судить только о них:
1) Поисковая технология Яндекса «Спектр»
2) Кроссплатформенная разработка мобильных приложений
3) Программирование под Android на C++
4) «Зачем обычному программисту знать языки, на которых почти никто не пишет»
5) «C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abrahams, BoostPro Computing»
6) Beyond HTML5. Charles McCathieNevile, Opera Software читать полностью…
Google Maps API Family
Долго хотел понять как у Google обстоит дела с Maps API (меня лично интересует Java для Android).
Наконец-то нашел страничку с описанием того, что есть: http://code.google.com/intl/en/apis/maps/index.html.
Подсветка кода – апокалипсис
Здравствуйте, дорогие читатели.
Совершенно эпичный случай можно наблюдать сейчас в мире wеb-дизайна.
На сайтах, посвящённых программированию, очень распространено вставлять автоматическую подсветку исходного кода – это улучшает читаемось и вообще красиво смотрится.
Так вот, все плагины сейчас работают но основе комплекса скриптов, который недвусмысленно называется syntax hightlight. ![]()
Не так давно комплекс обновился, вышла новая версия, а вот плагины пока не обновились. И обновятся видимо не скоро.
В итоге на огромном количестве wordpress сайтов (возможно не только wordpress) слетела подсветка кода.
Связано это с тем, что в новой версии syntax hightlight есть сразу две версии системы – старая, и новая.
Раньше скрипты и css файлы подключались так:
... ...
Сейчас эти пути уже неверны. Пришлось вручную всё исправлять. Теперь верные пути выглядят примерно так:
... ...
Ну, всё перепрописал, подправил для красоты стиль, поправил все записи где есть код, чтобы всё везде работало (как хорошо что smikler не так активно их пишет =)).
Результаты можно наблюдать тут, тут и на других страницах этого замечательного сайта.
Тест: объединяю дневник с блогом
Друзья, теперь вы можете читать и комментировать мои записи и на Я.ру — smikler!![]()
Для робота: 2553588.109421131.1314114998.71ddc934081f7004401bee39b22cc32d
bash. Отфильтровать один файл другим
Задача:
необходимо выполнить некоторую операцию над всеми строками первого файла, которые не встречаются во втором.
Решение:
for ip in `grep -v -f FILE1 FILE2; do do-something done
Machine Learning Online Free Course
Стенфордский Университет объявил о бесплатном online курсе по машинному обучению (Machine Learning).
Ну что же, отклик я подал, буду теперь ждать появления формы для участников и записываться!!!
Вот официальный сайт курса: http://www.ml-class.org/. Все дело сопровождается видеолекциями by Professor Andrew Ng, заданиями и сдачами, вопросами и ответами.
Если весь курс пройдешь – дадут корочку СУ о прохождении курса.
Буду стараться писать в блог об изменениях/новостях/впечатлениях.
PS: вот бы курс на русский перевести…
Apple – самая большая компания в мире?!
Насколько я понял, Apple стала самой большой компанией в мире, на небольшой срок опередив какого-то нефтяного гиганта. Общая капитализация Apple – уже за $300B.
Лично для себя я считаю данное событие крутым, но не эпохальным, хотя и стала именно IT компания самой большой в мире.
Будем честными, Apple не совсем уж чистый IT, кроме софта она еще производит всякие макбуки и iPhon’ы, что уже является железом. (хотя Microsoft тоже клавиатурками балуется и т.п.).
Эпохальным я буду считать день, когда на ТОП-1 выйдет компания, которая делает чисто-софт. Впрочем, я вполне верю что это реально.
Напоследок процитирую новость с источника, где я ее взял:



