blok

Активность аудитории

Немного статистики.

В среднем на сайта в месяц бывает примерно 90 тысяч человек. Каждый месяц это число может быть меньше или больше. Например, в июне было 108 тысяч, а в августе — 77. Я недавно перелил большинство юзерпиков пользователей на «Яндекс.Фотки» и, делая скидку на людей с одинаковыми юзерпиками и именами (у меня для двух одинаковых имён сгенерируется один юзерпик), активная аудитория сайта порядка 1700 человек.

То есть более чем за 10 лет существования сайта (правда комментарии на сайте появились сильно позже) его посетила толпень народу, но комментрировали всего несколько тысяч. Похожая ситуация, судя по всему, у Экслера на его персональном блоге, в день его сайт посещает столько же народу, как меня за месяц, а комментариев в блоге — только несколько десятков к каждой записи.

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

Причин низкой активности я вижу две: всё-таки мне не удалось научить читателей подписываться на комментарии через RSS (и надо думать о том, чтобы как-то корректно высылать их на почту), вторая — отсутствие древовидных комментариев (но их-то я вводить не хочу, они провоцируют уход от темы и читать их все у меня не получится и не интересно, тогда вопрос — зачем стимулировать дискуссии, в которых мне не хочется участвовать).

Надо думать в сторону почты. Проблема с почтой, что её надо как-то подтверждать. Устроить какому-нибудь ящику «сладкую жизнь» очень просто (у меня даже была программа «Shit Streamer» на Перле и ПХП для этого) — достаточно подписать ящик на комментарии на куче ресурсов, ведь сейчас мало кто озабочен подтверждением подлинности ящика.

Увы и подтверждение подлинности через письмо не очень-то хорошая идея — кого угодно можно засыпать по брови письмами с подтверждениями.

Идея, которую я сейчас обдумываю такова: пользователю для первого подтверждения адреса почты (что будет доступно только для пользователей, которые авторизовались через OpenID), предлагается нажать на ссылку, сформированную специально для него.

Что-то типа: mailto:bolknote-confirmation+dy43udsj36HdshddkjdDds@gmail.com?subject=http://someopenid.example.org

Пользователь жмёт на ссылку, отсылает пустое письмо на этот адрес, с этого момента считается, что он подтвердил свой адрес. «Гмэйл» устроен таким образом, что на часть после плюса он внимания не обращает и эти письма будут попадать на ящик «bolknote-confirmation». Мой скрипт время от времени будет заходить туда, прямо по протоколу POP3, это текстовый простой протокол, мне надо только научиться работать с ним через TSL, получать список писем, их заголовки, подверждать адреса и удалять обработанное.

Не слишком неудобно получается?

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

Хочу поменять библиотеку для OpenID на сайте

Хочется поменять библиотеку, которую я использую для OpenID на сайте. Я сейчас использую Janrain OpenID, но она давно не обновлялась, генерирует варнинг и только с костылями и патчами работает с реализацией OpenID в ЖЖ (баг-репорт я писал в обе компании, бестолку).

Посоветуйте какие-нибуль альтернативы (на PHP). Я рассматриваю сейчас LightOpenID.

Требования — библиотека должна поддерживать OpenID 1.x и 2.x, SREG, предоставлять возможность хранить данные где я укажу (мне нужно на диске, а не в БД) и не должна использовать экзотические модули.

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

Юзерпики на «Яндекс.Фотках»

Вчера в Татарстане был выходной, поэтому пока мы ехали на машине за город, я сделал заготовку для хранения юзерпиков на «Яндекс.Фотках», а вечером её доделал. Сейчас все юзерпики в фоне переливаются туда в порядке запроса пользователем в закрытый альбом специального пользователя, которого я завёл.

До этого юзерпики по сложным правилам (с использование адреса почты из SRE OpenID или vCard, favatar, gravatar, pavatar, юзерпиков из «Ярушки» и ЖЖ и т. д.) получались для каждого человека в комментариях и загружались каждый раз с совершенно разношёрстных ресурсов.

Это было плохо по трём причинам. Во-первых, они были все разного размера и приводились к моим 40×40 браузером, то есть пользователи грузили лишние килобайты. Во-вторых, частенько канал до сайта с каким-либо юзерпиком был плох и загружалось с него всё медленно, а то и вообще не загружалось. В-третьих, юзерпики иногда пропадают (сайты закрываются, пользователи их меняют), поэтому вместо картинок в старых заметках иногда зияли дыры.

Есть и четвёртая причина, не знаю насколько она значимая. Некоторые юзерпики (побайтно) повторяются, но так как браузер не знает, что с двух разных УРЛов грузится та же картинка, он грузит её два раза. У меня сейчас не так — я хеширую картинку и по хешу ищу совпадение. Есть вероятность совпадения хеша, но юзерпики не слишком-то важные данные, чтобы бояться коллизий.

Сейчас юзерпики грузятся только в фоне, то есть какое-то время он грузится с «настоящего» адреса и только через какое-то время — с «Яндекс.Фоток». Так как запросов в стеке пока очень много (сейчас загружено 779 картинок и их число растёт очень быстро), процесс перекладывания может растянуться на часы. В будущем, когда бо́льшая часть будет уже лежать на «Фотках», этот процесс сократится до минут.

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

У̶д̶о̶б̶н̶о̶е̶ новое цитирование в блоге

Долго думал как упростить цитирование у себя в блоге, наконец придумал. Ещё остались кое-какие шероховатости, но в целом должно стать лучше.

Сделал две вещи.

Во-первых, когда вы вставляете какой-то кусок текста в поле для комментариев, движок пытается догадаться не вставляете ли вы цитату и, если вставляете, расставляет значки цитирования („>“) перед каждой строкой.

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

О последнем расскажу немного подробнее. Устроено всё несложно, разберём на примере выделения полужирным.

Сохранённые звёздочки

Чтобы звёздочки скопировались вместе с остальным текстом, они должны в этом тексте присутствовать. И они там есть. Вокруг слова, выделенного жирным находятся звёздочки, написанные нулевым шрифтом и прозрачным цветом. Поэтому в тексте и при выделении их не видно, но в буфер обмена они попадают. Так же устроено сохранение остальной разметки — вырезанных частей ссылок, исходных УРЛов картинок.

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

Фотки можно добавлять ещё и с picplz.com

Внёс важное изменение в движок сайта — фотографии теперь можно добавлять ещё и с сайта «Пикплз». Вообще я переделал весь механизм добавления сайтов с картинками.

Во-первых, теперь добавить сайт (было бы у него АПИ) проще простого, достаточно создать регулярное выражение, привязать к нему функцию для работы с АПИ и всё уже работает.

Во-вторых, я теперь использую мультизапросы модуля «кУРЛ» — запросы на каждую картинку идут не последовательно, как раньше, а параллельно.

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

Какие ещё сервисы картинок добавить? Два жёстких требования — они должны быть с регистрацией (чтобы мне не постили всякую порнуху) и имели АПИ для получения информации о фото (чтобы я мог выбрать подходящие размеры картинки).

Добавлено позже: теперь ещё и «Фликр» работает.

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

Галереи теперь в трансляциях

Сделал, как многие просили, фотогалереи в трансляциях RSS. Теперь всюду, куда транслируется мой блог («Ярушка», ЖЖ и т. д.), видно бо́льшую часть фотографий (не более десяти). Галереи там, конечно, условные — с миниатюры ссылка ведёт на полное фото.

Фотогалереи в RSS (54.14КиБ)

Вот, кстати, о чём совершенно забыли создатели современной версий HTML — это форматирование HTML там, где всё плохо с CSS. В читалках RSS (тут CSS режется из соображений безопасности) и почтовых клиентах (те же соображения, плюс примитивные движки в некоторых приложениях). Я, пока отлаживал трансляции, убедился, что единственный способ всё отформатировать как надо — использовать таблицы и винтажные 0.gif. Но чем дальше, тем меньше можно сделать атрибутами тегов, да ещё и в условиях, когда лента встроена в документ, где уже есть стили (например из-за сброса стилей, на «ярушке» не работают атрибуты hspace и vspace у картинок).

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

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

JS CSS в одном файле у меня на сайте

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

Особых трудностей не встретил, только убрал все комментарии из файлов с JavaScript руками и добавил удаление BOM из файлов, браузеры как-то нервно реагируют на них, встретив их не в начале файла, а мой редактор кода зачем-то их вставляет.

Схема, в общем-то, не изменилась — если файл .cssjs есть на диске, отдаём его средствами веб-сервера, если нет, собираем необходимое, кладём на диск и отдаём браузеру.

Вот ещё тонкость, обязательно нужно добавить новый mime-тип:

AddType */* .cssjs

Я-то думал, что он нужен только для FF 2.xx, ничего подобного, последние «Опера» и FF так же отказались работать без этого заголовка.

Оказалось, что последний «Хром» ни в какую не хочет рендерить CSS с таким типом, пришлось заменить на «text/css,*/*» на «text/css», предыдущий вариант не работал в IE9.

Надо посмотреть как отнесётся к этому второй FF, а пока, если у вас «Хром» или IE9 и показывает неправильно, обновите, пожалуйста, страницу, чтобы она не из кеша взялась, всё должно нормально отрендериться.

Посмотрим «в поле» насколько это стабильно работает.

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

Черновики у меня в комментариях

Мне тут хочется пару проектов на PHP доделать, а я что-то давненько, порядка полугода, на нём не программировал вообще. Всё больше Пайтон и Google Go. Поэтому я взялся внести несколько изменений в движок своего сайта, которые давно руки чесались сделать.

В том числе сделал то, что давно просили — черновики в комментариях. Работает только в современных браузерах — IE 8.0+, FF 3.5+, Safari 4.0+, Chrome 4.0+, Opera 10.5+, а так же iOS 2.0+ и Андроид 2.0+. Только такой список, так как сохранение происходит в localStorage.

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

Кстати, я делал библиотеку эмуляции localStorage для IE 6 и 7 (используется behavior userData), но у себя использовать не буду, ни к чему поощрять некрофилию.

Работает всё следующим образом (детально можно посмотреть в исходниках любой страницы с комментариями): когда пользователь делает паузу в наборе комментария, мой JS вызывает localStorage.setItem, где ключём является URL страницы плюс имя поля (у меня их три — имя пользователя, сам комментарий и кому этот комментарий был адресова).

После отправки комментария в теле полученной страницы приходят вызовы localStorage.removeItem, которые удаляют сохранённые значения.

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

Вообще-то к localStorage можно обращаться как к массиву, но моя библиотека эмуляции localStorage этот интерфейс не эмулирует. На случай, если я сменю гнев на милость и захочу поддержать IE 6 и 7, я решил пользоваться явными вызовами методов.

Код, с использованием JQuery, получился вот такой:

// globalStorage — это для FF 2.0, но я не уверен, что это правда работает
var storage = window.localStorage || window.globalStorage && window.globalStorage[location.hostname] || null;

if (storage) {
    var savedraft = function s() {
         if (s.hnd) {
             clearTimeout(s.hnd);
         }
        	
         var o = $(this);
        	
         s.hnd = setTimeout(function() {
             try { // если не хватит места, будет исключение
                 var prefix = location.pathname + '#';
                 storage.setItem(prefix + o.attr('name'), o.val());
                 storage.setItem(prefix + '?', +new Date()); // сохраняю время, возможно в будущем буду подчищать старые черновики
             } catch (o) {}
        }, 500);
    }
    
    // каждый элемент, который надо сохранять, имеет класс draft	
    $.each($('.draft'), function(_, value) {
        var o = $(value),
              key = location.pathname + '#' + o.attr('name'),
              v = storage.getItem(key);

    if (savedsuccessfully) { // внешний флаг, что черновик больше не нужен — всё сохранено на сервере		
                  storage.removeItem(key);
              } else if (v !== null) {
                  o.val(v);
              }
              o.keypress(savedraft).change(savedraft);
        })
    }

localStorage не резиновое, у разных браузеров значения различаются, но в целом, там около 5МБ на домен, да и диск пользователя забивать жалко. Поэтому я сохраняю время записи, возможно когда-нибудь буду вычищать очень уж старые черновики.

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

Перевёл свой сайт на PHP 5.3.4

Решил поднять свои старые проекты на PHP под MacOS, чтобы на ноуте их нормально разрабатывать. В том числе, перетащил свой сайт. У меня движок сплошной эксперимент, так что используются различные тонкие вещи (например, ленивые вычисления при помощи __toString), которые в PHP 5.3 (который у меня на «Маке») как-то поломали. На хостинге у меня 5.2.x, убил около часа, чтобы всё портировать.

Мелочи вспоминать не хочется, из того что запомнилось — PHP 5.3 нервно, с какой-то невнятной ошибкой, среагировал на «&new», оставшиеся в коде со времён PHP4 (там объекты не передавались по ссылке и объект, порождаемый через «new» копировался при присваивании, если явно не указать, что его надо передать по ссылке), помимо этого, вызов метода объекта через call_user_func работает теперь как-то иначе (не выяснял как именно), но пришлось менять на явный вызов через $object->$method.

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

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

Почему я использую «Семажик», чтобы постить в блог

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

Когда я писал движок своего блога (а я его именно писал, а не взял готовый, мне было интересно попробовать кое-какие новые идеи), один из принципов, которыми я руководствовался, был «используй готовое где только можно». Клиент для ЖЖ тогда имелся для любой платформы и его использование полностью освобождало меня от написания админки для сайта.

Я просто реализовал протокол ЖЖ (на деле даже два — Flat и Metaweblog) и несколько лет, не зная горя, писал в блог даже с телефонов, где нет ничего, кроме J2ME.

Так что «выкинь „Семажик“ и пиши через веб» — это совет от незнания, чтобы постить через веб, нужно обеспечить такую возможность, а у меня нет времени и желания этим заниматься, мне просто не интересно.

Так что я просто потратил немного времени и нашёл себе клиент, который меня устраивает — это Phoenix. Он не такой удобный, как «Семажик», но, в целом, неплох.

Добавлено позже: не знаю как так вышло, но почему-то этот сран… клиент, который меня устраивает, этот Phoenix удалил мне запись вместе с комментариями.

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

Лайки (не про собак)

Хочу провести эксперимент — поставил под каждым постом «лайки» с трёх социальных сетей («Вконтакте», «Фейсбук», «Твиттер»), посмотрим что получится, если я их правильно настроил, конечно.

Пока меня смущает, что они очень медленно загружаются.

Добавлено позднее: из-за «Хрома» придётся убрать «лайки» внутрь поста, иначе он подвисает секунд на 10.

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

Логин через OpenID ЖЖ

Ура, появился патч, который исправляет проблему библиотеки OpenID JanRain, которую я использую, с ЖЖ.

Теперь, у меня должно логинить через OpenID и пользователей ЖЖ.

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

Сменил дизайн сайта

Одиннадцатого ноября 2000 года я запустил свой сайт на бесплатном хостинге chat.ru, дизайн его не сохранился, но это к лучшему. В то время я занимался довольно прогрессивным движком чата (обновление без перезагрузки, оптимизация под узкий канал тогдашних dial-up), который стал использовать у себя на сайте Алекс Экслер.

Он предложил мне хостить сайт у себя. Под сайт потребовался более приличный дизайн и мне его сделала дизайнер Наталия Морозова. Сейчас тот дизайн не выглядит дизайном, но тогда большинство сайтов выглядело похоже.

Второй дизайн моего сайта (20.26КиБ)

Читать эту историю полностью
В этом виде сайт просуществовал до октября 2003 года. В феврале того же года у меня появился блог на движке «Регистр», который мы писали втроём — Дима Смирнов, я и Кукуц. Его дизайн неоднократно менялся, один из первых вариантов перед вами.

Один из первых дизайнов моего блога (26.74КиБ)

В октябре блог полностью замещает сайт и становится основным его содержимым. В августе 2004 года я делаю дизайн, который просуществовал более шести лет. Столько же просуществовала и вёрстка, с небольшими изменениями.

Дизайн до недавнего времени (56.83КиБ)

Месяц назад моему сайту исполнилось 10 лет. Я планировал к этому времени выложить новый дизайн сайта (и кое-что поменять в юзабилити), а так же сконвертировать материалы старой версии. К сроку я ничего не успел — был целиком и полностью занят проектом перевода Вики в «Яндексе» на UTF-8. Какое-то время назад я этот проект закончил и каждый день посвящал по 15—30 минут в день на переделку сайта.

Теперь всё готово.

Старые материалы я пока не сконвертировал, но буду работать над этим в будущем.

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

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

ЖЖ, OpenID и мой блог

Good news, everyone!

Я взял примеры, которые идут с библиотекой OpenID от JanRain, которую я использую. И оказалось, что OpenID ЖЖ в примерах работает нормально. Это означает, что это я с библиотекой делаю что-то не то. И значит это можно поправить. Буду править. Оказалось, что не все тесты работают нормально. Значит, надо искать ошибку в библиотеке. Ох.

Добавлено позднее: а пока написал в JanRain и ЖЖ по письму с полным описанием бага.

Оставить комментарий

Сконвертировал старые комментарии

У меня тут набралось уже порядочно что можно сконвертировать из старых материалов в этот блог — ЖЖ и заметки первой версии сайта. Мне как-то не спится и, чтобы потренироваться, я сейчас сконвертировал старые комментарии сайта 2003-04 гг., когда у меня сайт был на движке «Регистр».

Вроде как прошло успешно, теперь у старых заметок есть комментарии.

P.S. Следующим буду конвертировать ЖЖ

Оставить комментарий

Анонимные комментарии включены

Анонимные комменты (38.85КиБ)

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

Пока решил не делать цвет анонимных комментариев каким-нибудь блеклым цветом, но если пойдёт спам, то поставлю Akismet (ключ к API уже получил) и буду менять цвет анонимных комментариев.

Естественно, для анонимов недоступен RSS-поток их комментариев.

Добавлено утром: ну вот, спам уже попёр. Придётся делать резалку.

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

Анонимные комментарии

У меня есть идея пустить-таки на сайт анонимных комментаторов. Вообще, OpenID делался для того, чтобы пресечь потоки

ш͂к̵̗̤̩͎͇͍̂̒ͦо̺͇͍̯̮̔̑ͯ̈́̂л̱̘̫̗͓̺̟ͮ̚о̼̰̖̦͉̥ͮ͗̑ͣт̰̼̩̑̄ͫ͛ы̛́ͭ͗ͦ̿̔̚,

которая неинтересна чуть более, чем полностью, и умеет постить только что-то вроде «НЕТ ТЫ».

Очень жаль, но значительное количество умных людей, видимо, не имеет OpenID аккаунта. Читателей у меня около 3-4 тысяч, а комметрируют меньше тысячи. Последние изменения для поддержки OpenID2 сделано, в том числе, и для того, чтобы больше людей, которым есть что сказать, смогли высказаться.

Впрочем, у меня ощущение, что этого недостаточно. Я подумываю о том, чтобы разрешить вводить в поле для OpenID любой URL. Если OpenID на этом URL не обнаруживается, то комментарий будет считаться анонимным. А само поле будет подписано как-то навроде «введите адрес вашего блога».

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

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

Обновления на блоге

Как многие уже почуствовали, я начал чуть-чуть обновлять движок блога. (Да, я знаю, что мысль сделать галерею на CSS была неудачной, переделаю).

Сейчас я изменил алгоритм определения и вывода аватаров, а так же заменил библиотеку OpenID с страшной, как смерть, Simple OpenID на огромную (почти полмегабайта!) PHP OpenID от JanRain.

В частности, это значит, что у меня теперь работает OpenID 2, что даёт возможность, например, авторизовываться пользователя Flickr. Кроме того, должна вернуться возможность логиниться тем ЖЖ-пользователям, у которых логин начинается и/или заканчивается подчёркиванием.

Легко что-то можно отвалиться. Например, несколько минут назад комментарии вообще отвалились. Сейчас, кажется, всё уже ок.

P.S. Нет, не ок. Лучше пока не комментрировать.

P.P.S. Починил, но пока не работают ответы. Работают.

P.P.P.S. Ещё бы библиотеку для разбора hCard на PHP хорошую. hKit глючит, например, профиль на «Хабре» он не разбирает. А ещё в CSS media query нехватает запроса «это мощный компьютер?».

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

Идея: кнопка добавления в Google Reader

В комментариях к одному из постов, меня попросили сделать кнопку добавления RSS комментариев в «Google Reader» (если я правильно помню суть просьбы).

Мне эта идея не нравится, потому что я не знаю какое количество моих читателей пользуется «Google Reader», остальным, понятно, эта кнопка ни к чему. Я тут подумал — хорошо было бы ставить эту кнопку тем, что этим сервисом «Гугла» пользуется. Но как узнать кто пользуется, а кто нет?

Сейчас меня осенило (впрочем, скоро это не будет работать в Firefox, когда выйдет версия 3.7). Всё просто — надо найти URL по которому заходит только авторизованный пользователь «Google Reader», причём URL этот должен быть инвариантен пользователю, может это какая-то картинка или CSS/JS. Далее, на моей странице делается ссылка на этот URL и через псевдоселектор «:visited» ей ставится какое-то свойство CSS, которое я смогу проконтролировать через JavaScript.

Далее всё просто — у данной ссылки есть то свойство, значит пользователь недавно логинился в «Google Reader», если нет, не логинился. На основании этого можно ставить или убирать кнопку добавления RSS в этот сервис. Можно ещё выставить куку, чтобы в дальнейшем основываться уже на её наличии (если есть — пользователь пользуется «Google Reader», нет — ничего не значит).

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

Картинки в комментариях на моём сайте

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

Итак, вставляются картинки только из сервиса «Яндекс.Фотки». Инструкция: идёте в любой альбом, тыкаете там в публичную фотку, берёте URL, который получился, указываете его в заметке, отправляете комментарий. Всё.

Приложенная фотка в комментариях (17.90КиБ)

В это время мой сервер просматривает урлы вашего комментария, находит три первых, похожих на урлы «Яндекс.Фоток» (отсюда ограничение — вставляются так только три первых картинки, остальные будут простыми урлами), идёт с ними в API фоток, берёт из присланного обратно XML урл картинки, выставляет формат «не более 500 пискелей в любую сторону» и вставляет полученное как картинку.

Есть способ обойти ограничение, закрою позже, если кто-нибудь будет баловаться.

Принимаются советы, например, не много ли это — 500 пикселей, может сделать меньше? Доступные размеры есть на сайте документации API «Яндекс.Фоток».

P.S. Расскажу сразу почему «Яндекс.Фотки», а не любой другой сервис? Причин несколько — наличие API, которое доступно (в нужном мне функционале) без регистрации и авторизации.

Второе — неограниченный размер хранимых изображений на сервисе.

Третье — сервис закроется не раньше, чем закроется «Яндекс», то есть это маловероятное событие.

Четвёртое — кража домена исключается, взлом крайне маловероятен, значит с сервиса мне придут данные, которым я могу доверять. Это тоже важно.

К сожалению, есть недостаток — картинки могут заливать только зарегистрированные пользователи. Но если вы знаете другой сервис, где выполняются все четыре условия, скажите мне, я подключу и его.

P.P.S. Это топик добра, в нём можно тестировать как работает вставка этого добра на страницу.

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

← 1 2 3 →