Flash Ripper RSS Readers

Когда все поломалось, хотя должно работать: средство отладки и логгирования флэш-приложений на стороне клиента от Михаила Антипина

Заказчик пишет, что ничего не работает, а у вас при этом работает все? А как узнать, что именно там у него не пашет? Лог-файл с клиентскими действиями помог бы разобраться, но как получить лог из чужого флэш-проигрывателя?

Михаил 'Nox' Антипин порадовал сегодня ссылкой на универсальный отладчик флэш-приложений в самом флэш-проигрывателе, позволяющий такой лог вести и создавать.

Он прост в использовании и полностью открыт: добавляется во флэш-проект как простой отдельный мувиклип, и так же просто удаляется. Работает в AS1 и AS2. Вызывается на экран по шорткату и по нему же прячется. Фиксирует перемещения мышки и другие заданные вами моменты. Пишет обо всем этом лог-файл и может скопировать его в буфер обмена.

Как пишет автор:

"Куда писать тестовую информацию, как это сделать незаметно для пользователя и как узнать, что там натворил заказчик, у которого ваше произведение почему-то не работает."

Увидеть, попробовать, улучшить: флэш-дебаггр от Михаила Антипина.

P.S. Бывает так, что сделаешь для себя вещь и пользуешься, но особо не рекламируешь -- думаешь, что слишком она несовершенна, довести бы то, и это... хотя ведь -- все хорошо и так работает! ...и пользуешься с удовольствием год, два, три, а потом -- хлоп себя по лбу -- да это же может еще кому-нть пригодиться! Так и случилось с Дебаггром Михаила Антипина. С прозрением тебя, Нокс!

Писал Rost, 28 Июнь 2007 13:44

Найдены баги:

Рост, ты как напишешь, я начинаю чувствовать свое место в Истории. :))

Nox Noctis - 28 Июнь 2007 14:33

Все, конечно, здорово и автору респект. Но до сих пор не могу понять одной простой вещи: нафига изобретать велосипед? Ведь есть давно зарекомендовавшие себя принципы логгирования (тот же log4j), есть реализации для AS2 (в том же as2lib), есть logging api во Flex Framework (и все эти библиотеки поддерживают ту же идеологию log4j). И тут велосипед с _global.echo. Как будто вернулся года на три-четыре назад на машине времени.

Все эти библиотеки обладают настраиваемыми аппендерами, фильтруются по уровням и категориям, являются иерархическими, гибкими, настраиваемыми, удобными. Почему бы не использовать такой api (из того же as2lib'а)?

Ну а на самом деле со всей мощью существующих решений Farata Systems пошла дальше и сделали решение коммерческого уровня (платное): log4fx (доступно на www.myflex.org). Рекомендую (правда это решение только для Flex, но никто не мешает сделать аналогичное для Flash). Там имеется GUI-панель, которая позволяет фильтровать (в иерархическом виде) все доступные логгеры, выбирать, куда будет осуществляться логгинг (имеется большое количество готовых таргетов, в том числе в трэйс, XPanel, специальная панель в Eclipse, можно легко добавить панель, подобную предложенной Nox Noctis'ом с кучей опций и с настоящей иерархией, а не выделением цветами). Ну и ввиду того, что я принимал непосредственное участие в разработке этого продукта, могу проконсультировать по любым вопросам :)

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

Constantiner - 28 Июнь 2007 16:58

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

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

Проще своей написать за 2 дня и пользоваться как корпоративным (тем, который применяют все на твоей фирме), так и своим.

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

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

Нужно вылезать из детских штанишек. Вот. И не критиковать всеобщее "невежество", а грамотно преподносить свою идею. Список вкусных фич, бесплатную урезанную версию, крайне юсабилитный интерфейс взаимодействия, признание ведущими компаниями в области ПО, организация КОМПЛЕКСНОЙ обратной связи, программу поддержки бетатестеров с ДЕЙСТВИТЕЛЬНО ПОЛЕЗНЫМИ БОНУСАМИ и поощрениями.

Нужно вложить деньги и раскрутить продукт. Нужно нанять специалистов по раскрутки с МЕЖДУНАРОДНЫМИ сертификатами их квалификации, а не искать менеджеров по раскрутке на сайтах по работе с требованиями - "высшее образование, уверенный пользователь ПК."

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

;)

Евгений Н. - 28 Июнь 2007 17:40

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

А я пробовал и, прикинь, получилось. Пользовался - и нарадоваться не мог. Может, потому что не ленился расширять кругозор и изучить то, как это устроено в том же стандарте де-факто в мире Java log4j?

Стандартов де-факто у флешеров на счет логгера - нет.

Хорошо, что у флексеров есть :)

Ну а вот кому адресована бОльшая часть послания (Росту, Ноктису или мне) совершенно непонятно. Наиболее подхожу я, но к чему столько не относящегося к теме бреда? Или просто хвастаешь, что выучил новые слова? :)

Constantiner - 28 Июнь 2007 18:33

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

Кто-то ничего не понял, разругался тут.

Костик ты Костик. :-P

Евгений Н. - 28 Июнь 2007 18:49

Костя, у меня закрадываются подозрения, что ты не читал статью, а только посмотрел первую картинку. :)


то, что ты говоришь о системах логирования и апи - все очень научно и круто, но как это применять в бытовых условиях?
велосипед, и был изобретен как раз те самые 3-4 года назад, о которых ты говоришь. :)

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

а проблемы такие: есть флэшовый сайт, нужно понять, что сломалось и желательно получить логи со стороны удаленного клиента. как это сделать малой кровью, не нарушая ничего в готовом проекте?

реализацию на АС2 такой штуки делать нельзя, потому что тогда она будет зависеть от архитектуры флэш приложения. хотя бы от того, в какой кадр экспортируются АС2 классы. именно поэтому там #initclip и вся прочая муть, от которой сейчас уже тошно любому.

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

и, пожалуйста, не приходи в такой шок каждый раз, когда узнаешь, что кто-то не знает ничего о "мире джава".

я только что узнал о log4j, прочитав твой пост. что тебе стоит объяснить, что конкретно можно изменить к лучшему?

Nox Noctis - 28 Июнь 2007 20:21

правда, я ожидал такой реакции.
но я думал, что Клишин выступит сначала. :))

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

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

Nox Noctis - 28 Июнь 2007 20:26

Ну тут все зависит от целевой версии плеера. Понимаю, что мне тут судить труднее, ибо я заточен на девятку и уж точно никак не меньше семерки. В любом случае для >=7 можно написать (или использовать) решение в виде компонента и чтобы оно базировалось на том же as2lib или похожем решении. Ну и даже на чистом AS1 можно реализовать подобное решение (никаких препятствий я не вижу, а для любителей динамического программирования все карты в руки). А вывод в локальную консоль приложения реализовать в качестве аппендера. И никаких выводов красным цветом или зеленым. Это напоминает использование HTML в оформительском, а не семантическом качестве. Только в виде уровней (all, debug, info, warn, error, fatal, none). А уже в настройках аппендера при желании можно указать, какому уровню какой цвет соответствует. Таким образом на уровне логгинга мы ведем вывод с использованием соответствующей семантики, а на уровне аппендера эту семантику интерпретируем в представление.

Также мы получаем возможность использовать тот же логгинг (без изменений в вызовах, только конфигурационные) в другом качестве. Например, выводить все результаты в трэйс. Или в серверный лог.

На самом деле достаточно глупо мне писать об этом в комментах ибо это повод для статьи или цикла статей. Достаточно взять грамотный материал по log4j или хотя бы flex logging api - там все концепции объяснены. Можешь постучаться ко мне в аську/gtalk/skype, можно обсудить проблемы детальнее. Возможно, я предъявляю слишком большие требования для инструмента, решающего простые задачи. Но я считаю, что если простой инструмент выносится на публику, то стоит вложить в него некий потенциал, который может быть использован для индивидуальных потребностей человека, инструмент использующего.

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

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

Constantiner - 28 Июнь 2007 22:08

Женя.
Все эти описания уже много раз были доступны на mxna.

Например:
http://flexblog.faratasystems.com/?p=148
http://flexblog.faratasystems.com/?p=213
http://flexblog.faratasystems.com/?p=210
http://flexblog.faratasystems.com/?p=180

Constantiner - 28 Июнь 2007 22:13

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

Спасибо, посмотрю. За последний месяц перечитал кучу материалов по блогам. Даже у Арышева. :-)

Евгений Н. - 28 Июнь 2007 22:38

спасибо за разъяснения!
концепция понятна.
и, ты прав, звучит красиво.

по поводу АС2 я выше упоминал, почему его нельзя использовать. если вдруг захочется поставить не первый кадр для экспорта классов АС2 - придется перемещать и клип с консолью. ну, или делать полную его генерацию скриптом (что по-моему довольно бессмысленно).

я собсно отталкивался от того, что мне реально действительно нужно. то, о чем ты рассказал, я бы с удовольствием использовал, если бы без магических действий мог легко втыкать в проекты. а они, проекты, до сих пор далеко не все на чистеньком и гладеньком АС2 (про АС3 вообще молчу - до сайтов он в полной мере еще хз когда докатится). до сих пор иногда приходится что-от делать в старых проектах, где всё черт знает как.

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

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

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

я не хочу сейчас писать на АС1 такую систему логгирования (какой бы архитектурно-прекрасной она ни была), которая реально практически для проектов до 9 версии не понадобится.

дело в области применения.
я не упираюсь рогами в свою реализацию и "мне больше ничего не нужно". но мне правда больше ничего в текущих условиях не нужно. :) надеюсь, скоро можно будет начать активно писать на АС3 - тогда посмотрим (такие вещи отработодателя сильно зависят... :( ).

Nox Noctis - 28 Июнь 2007 22:49

ах да, "мне не нужно" я в данном контексте перевожу в "вообще не нужно". самонадеянно, но для такой простой штуки другого не получается. :)

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

Nox Noctis - 28 Июнь 2007 23:19

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

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

Чел внес изменения в исходники и попросил меня кое -что поправить. Я пошел смотреть, что там случилось, а там - Сцены. Сцены. Старые добрые Сцены... чел для кадого видео-файла содавал новую сцену с проигрывателем. Очень не хотелось разбираться со всеми сценами... Но отказаться от проекта уже нельзя - во первых, дурацкая привычка допивать любой керосин до дна, во-вторых - люди хорошие, проект правильный по самой идее, в субботу будут отправлять в Тибет, Далай-Ламе показывать... короче, отказываться не буду. И я понял, что, будучи простуженным и фтыкающим, не имею ни желания, ни времени отучать его от сцен - я понял, что быстрее будет быстро просто закончить этот проект, чтобы он хорошо работал. В результате мне удалось все же избавиться от 16 дополнительных сцен, и вообще все заработало, все довольны, я не очень-то уверен, что это действительно будет смотреть Далай-Лама, но чорт побери мы сделали это, а у меня заодно появился свой класс для чтения субтитров в практически стандартном srt-формате и показа их в плейере, да еще с авто-ресайзом слишком длинных строк под ограниченный размер субтитральной области.

Да, к чему это... соскучился за вами! И за Сценами :)

МИР-ЖВАЧКА-УПЯЧКА!

Рост - 29 Июнь 2007 1:37

У меня для Далай-Ламы ничего не просили сделать [с завистью]...

Евгений Н. - 29 Июнь 2007 8:21

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

а сцены никогда добрыми не были. :)
даже те, кто в "серьезном" программинге ниче не понимал, во флэше на сцены забили уже в 6 флэше. но, что интересно, дизайнерам, и людям впервые приходящим во флэш, концепция сцен кажется удобной и наглядной. :)


Рост, а если я впишу свой почтовый адрес и нажму "Следить за комментами", поста будет в открытом виде светиться в подписи к комменту?

Nox Noctis - 29 Июнь 2007 10:44

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

Rost - 2 Июль 2007 12:10

По поводу AS 2.0...
Его вполне можно использовать.
Просто в конце концов сделать из мувика compiled clip, и его уже кидать на сцену.

От настроек компилятора он уже зависеть не будет.

P.S.
А вообще мне нравятся XRay и F7Debug.
Но это для себя. Заказчика ими лучше не грузить :)

Dan - 3 Июль 2007 18:38



Это запись из категории 'Debug'. 10 еще cвежих:

Архивы по категориям:

3D-18, Adobe AIR-30, Animation-1, Apache Ant-1, Architecture-1, ARP-1, Art-25, Articles-26, AS3-52, Books-7, Business-3, Cairngorm-2, CI-1, Classes-10, Coding-30, Community-113, Components-19, Contests-28, Cool-Job-5, Debug-18, Design-26, Development-84, EMO-1, Events-13, Extensions-2, FAQ-8, FDS-1, Flash and html-5, Flash Player-35, Flash Updates-8, Flash-scene-1, flash10-4, FlashLite-2, Flex-30, Flex 2-80, Flickr-1, FMS-1, FPUG-46, frameworks-1, Games-11, Good Job!-35, HaXe-14, Health-2, Humor-10, Ideas-13, JavaScript-1, Job-26, JSFL-8, Links-2, Linux-1, Maps-1, Math-8, Money-11, MXML-1, Open Source-15, Optimization-2, Patterns-2, Personalities-27, Politics-1, Preloading-3, Productivity-9, PureMVC-10, Pv3d-1, Rafpug-4, Red5-3, Remoting-11, Resources-21, Ruby-6, SAAS-1, Security-11, SEO-8, Silverlight-5, Sound-3, Strategy-120, Tamarin-1, Tools-113, Training-2, Trash-8, URAFPUG-13, Urgent-1, Usability-6, Video-6, VoIP-5, Wallop-1, Wishlist-2, Архив всех записей (большой)

За последние месяцы:

Июл 2008: Международная встреча разработчиков URAFPUG завершена, URAFPUG - трансляция студии Flex-фреймворка Mate, весь Июл

Июн 2008: Попытка предварительных выводов о встрече аниматоров, Онлайн трансляция встречи аниматоров в Донецке, весь Июн

Май 2008: Если 3D, то по-взрослому: официальный запрос в Adobe по поводу контроля над мип-маппингом. Нужна ваша поддержка!, В этом году «Russian Flash Awards» пройдет в «космическом стиле», весь Май

Апр 2008: Программирование под флэш платформу. Cтатья (местами спорная), Advanced Flash Components бесплатно раздает все свои AS2-компоненты, весь Апр

Мар 2008: Зарплаты программистов в 2007 году, FlashPhone как технология года? Технология года? В Рунете?, весь Мар

Фев 2008: ЙА ФПУГ — регистрация на первую встречу UAFPUG продолжается, Закулисы Flex и секрет успеха опенсорс-проекта, весь Фев





Примечания:
Статус документа
: в процессе
   2002-2007 Производство: Рост Прибыли · О проекте · Подписка на новости (RSS)