Pull to refresh

Яндекс для разработчика

Reading time 4 min
Views 5.6K
Как всем известно, у Яндекса и Гугла есть сервисы со схожей функциональностью. И я считаю, что это очень хорошо: конкуренция заставляет двигаться вперёд обоих конкурентов, а это выливается во много приятных бонусов для простых пользователей. (Если не вспоминать про такие сомнительные случаи, как покупка Яндексом Смилинка)

Но мне кажется, у руководства или разработчиков Яндекса довольно странное отношение к сторонним разработчиками. Я приведу только два примера, с которыми столкнулся, и надеюсь, что, возможно, благодаря этому посту ситуация изменится в лучшую сторону.


Поиск на сайте


Однажды мне потребовалось установить поиск на сайт. Оказалось, что Google не очень хорошо индексирует наш сайт, и я захотел поставить форму Яндекса. Когда я увидел код, то испугался.
<style type="text/css">div.b-yandexbox * { font-size: 12px !important; margin: 0 !important; } div.b-yandexbox a img { border: 0 !important; } div.b-yandexbox input, div.b-yandexbox label { vertical-align: middle; } div.b-yandexbox table { font-size: 12px; width: 100%; border-collapse: collapse; border: 0; background: #96a8c8; } div.b-yandexbox table td { padding: 7px 0 6px 0; white-space: nowrap; vertical-align: middle; } div.b-yandexbox .b-yandexbox-image { padding: 6px 6px 0 6px; } div.b-yandexbox .b-yandexbox-search { width: 100%; padding: 0 6px; } div.b-yandexbox .b-yandexbox-search table { margin: 0; padding: 0; background: none; } div.b-yandexbox .b-yandexbox-search .b-yandexbox-txt { width: 100%; padding-right: 6px; } div.b-yandexbox .b-yandexbox-text { position: relative; width: 100%; } div.b-yandexbox .b-yandexbox-text input { float: left; width: 100%; padding-right: 0; border: 1px solid #7f9db9; } div.b-yandexbox .b-yandexbox-search .b-yandexbox-submit { padding: 0; } div.b-yandexbox .b-hint-input { position: absolute; z-index: 100; left: 0; display: none; width: 30px; height: 11px; margin: 0.16em 0.2em !important; cursor: text; line-height: 0; background: url(http://site.yandex.ru/i/ysearch_small.png) no-repeat; } div.b-yandexbox .button-search { width: 19px; height: 15px; outline: none; cursor: pointer; border: none; background: url(http://site.yandex.ru/i/search.png) no-repeat; }</style><!--[if lte IE 8]><style type="text/css">*:first-child+html div.b-yandexbox .b-hint-input { position: absolute; margin-top: 4px !important; } * html div.b-yandexbox .b-hint-input { position: relative; bottom: -0.5em; left: 0.3em; float: left; display: block; margin: 0 0 -1em !important; }</style><![endif]--><script type="text/javascript">/*<![CDATA[*/(function(Lego){ if (!Lego) Lego = window.Lego = {}; Lego.clean = function(a) { var p = a.previousSibling; if (p) { a.onblur = function() { if (!a.value) { p.style.top = ""; } }; p.style.top = "-9999px"; } }; Lego.cleanIfNotEmpty = function(id) { var e = document.getElementById(id); e.previousSibling.style.display = "block"; var f = function() { if (e.value) { Lego.clean(e); } }; setInterval(f, 100); }; })(window.Lego);/*]]>*/</script>
<div class="b-yandexbox"><form method="get" action="http://dev.xxxx.ru/search"><table><tr><td class="b-yandexbox-search"><table><tr><td class="b-yandexbox-txt"><div class="b-yandexbox-text"><label for="yandexbox-text" class="b-hint-input" onfocus="Lego.clean(this)" title="Яндекс"></label><input name="text" id="yandexbox-text" onfocus="Lego.clean(this)"/></div><script type="text/javascript">Lego.cleanIfNotEmpty("yandexbox-text")</script></td><td class="b-yandexbox-submit"><input type="hidden" name="searchid" value="128506"/><input type="submit" value="Найти"/></td></tr></table></td></tr></table></form></div>


* This source code was highlighted with Source Code Highlighter.

Не беда, подумал я. Начал аккуратно убирать страшную мешанину из кода, стилей и javascript, заменять таблички на div'ы. Но, как оказалось позже, пункт 4 пользовательского соглашения в явном виде запрещает менять полученный на Сервисе код поисковой формы.

Что же нам предлагает гугл?

<form action="http://www.google.com/cse" id="cse-search-box">
 <div>
  <input type="hidden" name="cx" value="000576298720900936897:0dw8trymppo" />
  <input type="hidden" name="ie" value="UTF-8" />
  <input type="text" name="q" size="31" />
  <input type="submit" name="sa" value="Поиск" />
 </div>
</form>
<script type="text/javascript" src="http://www.google.com/cse/brand?form=cse-search-box&lang=ru"></script>

* This source code was highlighted with Source Code Highlighter.


Всё просто и чисто. Никаких запретов на изменение (требуется только сохранить логотип Гугл). (Впрочем, такой код даже менять не хочется).

Фотки


Я считаю Яндекс фотки лучшим фотохостингом. Серьёзно. У них нет странных запретов, как на Flickr; удобный и быстрый интерфейс, в отличии от Picasa Web.

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

Наверное, все видели, какие потрясающие приложения позволяет делать Flickr. И я стал изучать API Яндекс фоток на предмет того, как всё это сделать. Всю информацию, естественно, можно закодировать в теги, даже если нет дополнительных полей для данных (признаться, не знаю, есть ли они во Flickr). Но оказалось, что API не позволяет получить доступ к тегам фотографий. Совсем.

Вместо заключения



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


Будьте открытыми, и разработчики сами потянутся к вам, принося новых пользователей и славу.

P.S. Я написал этот топик не для того, чтобы очернить Яндекс, а чтобы они прислушались и стали чуточку лучше.
Tags:
Hubs:
+109
Comments 67
Comments Comments 67

Articles