Archive for the 'Мысли вслух' Category
О вечном
WordPress, без малого, дорос уже до версии 2.9+, но до сих пор в нём существует дыра, позволяющая спам-ботам вставлять скрытый спам прямо в head-посты. Доколе? Почему я должен контролировать содержание своих постов и их ЧПУ на предмет влезшего в него бота? Каким нужно быть программистом, чтобы допускать подобные дырки?
з. Ы. PureMVC — говно.
5 commentsМенталитет
Разработчики, живущие на территории бывшего СССР в принципе не склонны уважать своих соотечественников, особенно, когда речь идёт об опенсорсе. Одновременно с этим они почти не допускают ничего подобного в отношении зарубежных коллег. Парадокс.
7 commentsКомпиляция шрифтов в Adobe Flash CS4
Жил-был Flash. Хорошо жил. От 1 до 9-ой версии.
А потом воспаленный мозг разработчиков новой версии IDE решил, что нужно «поправить» работу со шрифтами в CS4. И поправили.
Теперь я не могу скомпилировать либу с одним и тем же шрифтом, но разными начертаниями, дабы использовать оные в html-тексте. Простейший код:
This content requires Adobe Flash Player.
Заставить его работать в CS4, не прибегая к метатегу Embed вы не сможете. А для использования Embed вам нужен Flex SDK, написать класс, влепить переменную, порадоваться в итоге новым трем классам и одному интерфейсу в swf-ке (рутовый, класс шрифта и флексовый FontAsset на пару с IFlexAsset). Я уже не говорю про безумно казуальное указание диапазонов символов.
Зато в CS4 можете налепить кучу шрифтов с разными именами (Myriad Pro Bold, Myriad Pro Italic и т. п.) и стилем начертания regular. Браво, Adobe! 23 comments
Необходима помощь
Я не знаю лично Ивана Бондаря, но прекрасно знаю его друзей. 23 июня Иван попал в автокатастрофу, его друг Дмитрий Свиршов — погиб. Иван в коме. Узнать дополнительную информацию и помочь каким-либо образом вы можете здесь: http://ivanbondar.livejournal.com/760.html.
з. Ы.: Этот пост является моим подтверждением достоверности информации Ивана Дембицкого.
No commentsО троллях
В современном интернете, особенно в последнее время, развелось очень много маленьких жучков. Обычно их называют троллями (см. Троллинг@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):LoaderInfoLanguage Version : ActionScript 3.0
Player Version : Flash Player 9.0.115.0Returns 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, который создал объект, переданный в аргументе метода. Таким образом, описанной мной дыры теперь нет.
Проверить это сейчас у меня нет возможности, позже выясню этот вопрос.
4 commentsО дырах и багах
Обнаружил интересный баг работы события 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. 8 comments
Видеопособие по созданию прелоадера во Flash CS3
Jarrod Medrano из Portent Interactive опубликовал в своем блоге видеопособие по созданию AS3-прелоадера во Flash CS3. Thanks, Jarrod!
Медленный инкремент II
Возвращаясь к давней статье miramax-а «Медленный инкремент».
На самом деле инкремент и декременты не медленные, дело в том, что примеры кода тестировались в среде Adobe Flash CS3, которая создает новые поля класса вместо локальных переменных. Т.е. на самом деле, инкремент медленный в случае uint-поля класса. Пример:
This content requires Adobe Flash Player.
Запустив класс, вы увидите, что инкременты примерно одинаковы по скорости. Если же раскомментировать строчку с полем класса и закомментировать локальную переменную, то разница в скорости будет очевидна.
1 comment
