lj-tagcloud


Сделал вот такой смешной tag cloud для ЖЖ-истов. На картинке не разобрать что это и как этим пользоваться, но пройдя по ссылке можно узреть как это выглядит вживую.

За основу взят флеш-ролик от чудо-плагина для WP от Roy Tanck

Вы можете использовать это так, как вам заблагорассудится – вставлять в жж, просто крутить облачко до умопомрачения или вообще забыть эту чудо{вищную} поделку как страшный сон.

Сделано just for fun, поэтому все спасибы и пожелания можно оставить в комментариях, а все претензии – в газете “Гудок”.

05.02.09  |  ,  | стань первым

Cross Domain XMLHttpRequest

Задачи обмена информацией ставятся и успешно решаются каждый день. Но обмениваться можно по-разному. Кто-то дарит удобоваримый доступ к своей базе посредством распространённых обменных форматов (xml, csv, json, lisiy_chert), кто-то реализует собственные API, а кто-то идёт другими путями.

Моя задача состояла в следующем – на ресурсах-сателитах необходимо разместить сложную форму. “Сложность” формы заключается в том, что данные подгружаются с главного ресурса и не могут быть загружены единовременно(при загрузке ресурса) или доставлены на ресурс-сателит заранее (так-так данных очень много и они достаточно быстро устаревают). Всевозможные API для доступа к информации основного ресурса в настоящий момент разрабатывать нецелесообразно, поэтому было решено для сателитов предоставлять некий готовый комплекс (аля plug-n-play).

Ещё до начала разработки я тщательно изучил уже имеющиеся механизмы для межсайтового обмена данными. Первым и самым перспективным был вариант использования flash-плеера, но единственный вменяемый пример FlashXmlHttpRequest был только лишь примером, а не законченным куском кода, которым бы можно было воспользоваться. jQuery на тот момент даже не содержала функции $.getScript, JSHttpRequest с созданием тега script удачно справлялся, но POST по понятным причинам делать не мог.

Данные с главного ресурса могут подгружатся посредством динамического создания тега script jQuery.getScript, с этим казалось бы проблемы нет. Но! Но последним шагом в указанной форме нужно отправить на основной сервер внушительный объём данных, которые могут не влезть в GET (тоже кстати говоря весьма интересный вопрос – а каково ограничение на длину URL в разных браузерах? в различных веб-серверах,прокси и фильтрах? – в RFC2616 об этом не сказано). Можно конечно изобрести какие-либо механизмы, например отправлять данные небольшими порциями GET-ом, но скорости такая схема явно не прибавит, поэтому такие варианты оставлены другим изобретателям.
(more…)

03.10.08  |  ,  | 4 comments

stop “click to activate and use this control”

Аллилуйя! Это-таки случилось. M$ получила лицензию от Eolas на метод внедрения медиа-контента на html-страницу. Назойливое сообщение уйдёт известным путём в известном направлении. Где-то в декабре эту мерзость можно будет убрать путём скачивания виндового апдейта. Ну а в апреле обещают xp sp3, который окончательно удалит эту мозоль. Поздравляю всех “затронутых”.

первоисточник

Technorati Tags: , , ,

10.11.07  |  , , ,  | 3 comments

Announcing the SWFFix project

Geoff Stearns и Bobby van der Sluis задумали осуществить маленькую революцию и наконец “устаканить” процедуру вставки flash-ек на web-страницы.

Товарищи(господа?) решили сделать “мега-супер-пупер” универсальную библиотеку для вставки swf в (x)html-страницы, избавляющую от вездесущих глюков и багов в MSIE различных браузерах, объединив функционал SWFObject и UFO и не упустив из виду другие популярные swf-related приложения (вроде SWFAddress и SWFUpload)

И дело анонсом не закончилось – уже есть сводная таблица методов внедрения swf и поддержкой оных в различных браузерах, которая впрочем пока (надеюсь только пока) не содержит linux-овых бродилок.

От всей души желаю товарищам(господам?) удачи!
Upd: “Это” скоро кончиться
Technorati Tags: , , , ,

20.02.07  |   | 2 comments

FlashTracer

Нашёл сегодня полезный (для web-разработчиков) extension для firefoxFlashTracer.

Суть должна быть ясна из названия – он “вываливает” всё что trace-иться (выводиться функцией trace) в swf-ках в sidebar браузера(разумеется флешка должна быть открыта в браузере). Крайне удобно отлаживать flash-приложения прямо в браузере (подгрузка-отгрузка и т.п. работа с внешними ресурсами крайне неудобна в отладке если работать во Flash IDE). Для работы этому чуду требуется debug-версия флеш-плеера(впрочем об этом написано по ссылке выше).

Из замеченных проблем – “кракозяблица” из кирилических символов независимо от кодировки оных – ну да что там – будем терпеть (потому как копаясь в коде я так и не понял каким-таким махером беруться данные от плеера) и ждать новой версии.

Update: расширение обновлялось-обновлялось и обновилось до версии 1.3.1 – и теперь проблем с кирилицей больше нет (ну и внешний вид поменялся в лучшую сторону).

P.S.
сайт mozdev лежит лежал… но как красиво ;o)

Technorati Tags: , , ,

03.10.06  |  ,  | стань первым

Третья и недеюсь заключительная часть эпопеи вокруг IE, Flash и ActiveX.

Исходные данные:

  • есть html с swf-ками
  • есть IE
  • есть рамка вокруг swf-ок и hint с напоминанием о том что для использования объекта надо сначала его активироваит кликом
  • есть вполне себе самодостаточный инструмент для внедрения флеша в html, который помимо того что замечательно детектит версию плеера, показывает альтернативный контент для тех у кого не обнаружилось необходимого плеера и вообще супер-комбайн – SWFObject, заодно избавляет от этих злосчастных рамок.
  • ну и наконец есть “сто тыщ милёнов” уже созданных страниц со флешем.

Имея эти данные и не имея желания переписать все уже созданные страницы для использования SWFObject я задался целью найти менее трудоёмкий путь к избавлению от “рамок”.

“Путь” желающие могут изучить по предыдущим постам, а я лишь резюмирую случившееся:

  1. В первый же день когда я обнаружил рамки, нашёлся неочевидный выход – если через document.write(‘<object … ><param…./></object>’) IE отображает объект без уродской рамки, то разработчики IE в попыхах сделали заплатку,которая рисует рамку только вовремя рендринга страницы, проверка “на вшивость” показала, что конструкция object.outerHTML=object.outerHTML; даёт тот же эффект, что позволило пройтись по всем getElementsByTagName(‘object’) и провернуть над ними “экзекуцию”.
  2. Но выяснилось что при этом теряются flashvars (в наших проектах весьма часто используемых) – пришлось весьма шаманским способом их “сохранять” при “магическом переписывании”.
  3. Далее выяснилось что подобная операция приводит к утечке памяти и краху IE. Попытки бороться с этим только “оттягивали конец” (гусары – молчать!)

Тем временем в новых проектах я уже использую SWFObject, максимально упростив работу по его внедрению посредством плагина к smarty, publish extension-а к Flash-у и матерного слова.

А мысль о том как же бороться с проклятым IE меня не покидает…

В итоге решение оказалось на поверхности – использовать swfobject для переписывания уже внедрённых флешек:

  1. берём object, добавляем перед ним div
  2. создаём swfobject, копируем необходимые данные из object
  3. удаляем object из DOM-дерева
  4. Повторяем до потери пульса

Итоговый код можно скачать по прежнему адресу flash_replacer (v 0.7) (особо отмечу что для работы НЕОБХОДИМ swfobject.js, который надо включать в html до flash_replacer-а)
В нём в данный момент нехватает аналогичного “прогона” по embed-ам, а в остальном вполне рабочий код, который на тестовых системах не вызывает падения IE.

Upd: “Это” скоро кончиться

Technorati Tags: , , ,

05.07.06  |   | 19 comments

Flash, ActiveX & IE update. part II

Эпопея с рамками вокруг флеша продолжается…

Сперва обнаружилось, что код, который я приводил в прошлом посте не работает в IE версий ниже 6-ой (точнее он работал, но не совсем так как задумано ;o) ) . Пришлось его немного подточить – flashvars теперь беруться не из тега PARAM, а из свойства altHTML у тега OBJECT (это свойство доступно только в IE и содержит html код с тегом EMBED), и вот код работает в IE 5.5 и IE5… но…

Но были замечены падения браузеров (5-го и 5.5) после переписывания outerHTML…
С другой стороны рамки вокруг ActiveX в этих браузерах мною замечены не были… посему код flash_replacer.js теперь исполняется только в IE6 (седьмой покамест beta – на него не рассчитываю).

Собственно код находиться здесь. (v.0.3.1) (v.0.4)(v.0.4.1)(v.0.5)(v.0.5.1)(v.0.6)(v.0.7)

Нуждающиеся в нём могут качать и пользоваться.
Знающие могут помочь мне с ответом на вопрос – в IE версий ниже 6-ой рамки есть или нету?
Баги и вообще любые фидбеки приветствуются…

UPDATE:
Исправил маленький “глюк”, переименовал файл – теперь последняя версия называется flash_replacer_latest.js (находится по ссылке выше). Просьба к товарищам ссылающимся на данный файл поменять ссылку на файл (заранее спасибо за изменения и за ссылку вообще ;o) )

27.04 – Поправил проверку classid и сделал аналогичный прогон по embed-ам вне object-а

11.05 – Поправил регулярку, с помощью которой вытаскивались flashvars(они могут быть многострочными)

23.05 – удаляю outerHTML на window.unload (ie иногда падал из-за memory leak), flash_replacer теперь запускается только в winxp ie6+. Подробнее чуть позже опишу в третьей части “эпопеи”…
24.05 – workaround для flashvars, которые вставляются как get-параметры в src мувика

30.06 – теперь используется SWFObject для внедрения “переписанных флешек”, в связи с этим баги с падением IE исчезли, но “маленько” уменьшилась функциональность – восстановлю на днях работу c embed и flashvars, которые передаются get-параметрами в src мувика

Уже месяц висит draft-пост про “завершение эпопеи”… но похоже конца этой “эпопеи” нет и не предвидится ;o)
Продолжение следует…

Technorati Tags: , ,

24.04.06  |   | 20 comments