Category Archives: Мысли вслух

О троллях

В современном интернете, особенно в последнее время, развелось очень много маленьких жучков. Обычно их называют троллями (см. Троллинг@WikiPedia). Как правило, они заселяют различные форумы и прочие места массового скопления и общения людей.
Вероятно, моя популярность достигла такого уровня, что у меня появился свой, персональный тролльчик. Как сказал Рост — «Кстати, с популярностью тебя! Незаметным не гадят :-) ».
Уж не знаю, чем я ему насолил, но я ему определенно нравлюсь, так как он ручной уже около года (ну, может быть, поменьше). В какой-то мере мне это даже льстит (ещё бы, персональный тролльчик!). Он прекрасно испражнялся в моем блоге, но после того, как я отключил комментарии без регистрации, он изобрел новое средство — писать от моего имени в других блогах. А посему, если вы видите комментарий, якобы от моего имени, с орфографическими и грамматическими ошибками (ну или без них), оскорбляющий вас или других людей, намеренно привлекающий к себе внимание каким-либо провокационным высказыванием или доказывающим свое мнимое превосходство в какой-либо области — это не мой комментарий. Будьте осторожны.

LoaderInfo Vulnerability Fixed?

Похоже, нас услышали.
В Flash 10 AS3 API обнаружилось изменение описания метода getLoaderInfoByDefinition класса LoaderInfo. Было:

getLoaderInfoByDefinition () method

public static function getLoaderInfoByDefinition(object:Object):LoaderInfo

Returns the LoaderInfo object associated with a SWF file defined as an object.

Player Version: Flash Player 9 Update 3.

Parameters object:Object — The object for which you want to get an associated LoaderInfo object.

Returns LoaderInfo — The associated LoaderInfo object. Returns null when called in non-debugger builds (or when debugging is not enabled) or if the referenced object does not have an associated LoaderInfo object (such as some objects used by the AIR runtime).

Throws SecurityError — The caller is not running in the local trusted sandbox.

Стало:

getLoaderInfoByDefinition () method
public static function getLoaderInfoByDefinition(object:Object):LoaderInfo

Language Version : ActionScript 3.0
Player Version : Flash Player 9.0.115.0

Returns the LoaderInfo object associated with a SWF file defined as an object.

Parameters
object:Object — A SWF file object.

Returns
LoaderInfo — The associated LoaderInfo object.

Т.е. теперь возвращается LoaderInfo того swf, который создал объект, переданный в аргументе метода. Таким образом, описанной мной дыры теперь нет.

Проверить это сейчас у меня нет возможности, позже выясню этот вопрос.

О дырах и багах

Обнаружил интересный баг работы события ADDED_TO_STAGE:

This content requires Adobe Flash Player.


Сколько раз будет вызван обработчик addedToStage для sp0? Я всегда полагал, что один раз. Оказывается, он будет вызван три (!) раза. Это о багах.

Теперь о дыре, обнаруженной BlooDHounD-ом вместе со мной. У класса LoaderInfo есть один интересный статический метод getLoaderInfoByDefinition, принимающий в качестве аргумента любой объект и возвращающий объект LoaderInfo. Дело в том, что LoaderInfo, который он возвращает, имеет ссылки на content (document class нашего приложения), а значит на stage и прочие объекты, доступ к которым, вообще говоря, должен быть ограничен. На лицо серьезная дыра, позволяющая обращаться к stage из любого объекта или класса, не говоря уже об ApplicationDomain, причем, независимо от того, в каком домене находится объект, вызывающий данный метод. Простой пример:

This content requires Adobe Flash Player.


Письмо о дыре будет отправлено в Adobe.

Видеопособие по созданию прелоадера во Flash CS3

Jarrod Medrano из Portent Interactive опубликовал в своем блоге видеопособие по созданию AS3-прелоадера во Flash CS3. Thanks, Jarrod! :-)

Медленный инкремент II

Возвращаясь к давней статье miramax-а «Медленный инкремент».
На самом деле инкремент и декременты не медленные, дело в том, что примеры кода тестировались в среде Adobe Flash CS3, которая создает новые поля класса вместо локальных переменных. Т.е. на самом деле, инкремент медленный в случае uint-поля класса. Пример:

This content requires Adobe Flash Player.

Запустив класс, вы увидите, что инкременты примерно одинаковы по скорости. Если же раскомментировать строчку с полем класса и закомментировать локальную переменную, то разница в скорости будет очевидна.

Resurrection

В ходе продолжительной битвы etc vs. WP Database победу одержал etc. В результате примения сложных тактических методов «PHPMyAdmin», «SQL-запросы» и «direct-редактирование» первый корпус армии WP Database был разгромлен.
Под чутким командованием etc и примением тайных китайских техник Цюань-фа, корейского тхэквондо и сложной техники PHP-шу, в купе с SQL-таолу и «custom database converter» второй корпус также пал.

Потери армии WP Database:

— Double utf-encoded posts & comments;
— cp1251_general_ci.

Потери etc:

— Double utf-encoded WP-user names :( ;
— 8 банок пива;
— Пара миллионов нервных клеток.

Всех с прошедшим праздником!

События

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

RAFPUG

RAFPUG — ахуенно. Да.

Документация к FontManager

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

Adobe Flex Builder 3 beta 3

На Adobe Labs выложили третью бету Flex Builder. Пока ещё не скачал, но надеюсь, что проблемы с автокомплитом, которые у меня наблюдаются во второй бете, будут решены.

Более подробно у Constantiner-а.