среда, октября 07, 2009

Open Petition to Adobe (FP40 issue)

This is a notes on Adobe Flash Player FP-40 issue

If you'll try to create simple text input field in Adobe Flash and will type non-latin characters --- you'll fail if: you're using Linux, FreeBSD, Mac OSX, some Windows (Vista too), or swf-file was published with wmode=transparent or wmode=opaque options.

This is an known bug (know as FP-40). It was created two or more years ago in Adobe bugtracker.

Why it not fixed? I don't know. May be Adobe don't know how fix it. May be Adobe don't want fix it. Who knows? Who cares?

We care. We all spent many hours, day, week and months to find workaround for issue with no luck. There is no solution I seen! And many developers decide to switch to Java FX or Silverlight/Moonlight technologies. But it's impossible when you develop shared Flash application for posting in blogs, livejournal, facebook, myspace, etc - swf-embed support only.

So, I've started online petition to Adobe: http://www.petitiononline.com/3YUJUPHx/petition.html

This petition helps Adobe to change priority of FP40 issue and fix it faster than few years =)

If you, your friends or friend's of your friend is familiar with Flash/Flex - give link to this post, please.

Thanks a lot!

Открытая петиция к Adobe

Речь пойдет о баге FP-40 в Adobe FlashPlayer'e.

Если вы попробуете создать во флеше текстовое поле и ввести в него что-то по-русски и у вас получится, значит вам повезло и в вашей версии или сборке Windows текстовое поле нормально работает. В противном случае (некоторые Windows и любой юникс, включая OSX) вы увидите "персидскую вязь" =)

Под виндами это чаще проявляется когда флешку запускают в нестандартном режиме, который регулируется параметром wmode=transparent или wmode=opaque.

В общем, давно известный баг, года два точно, а то и больше - номер бага равен 40 =) Посмотрите на текущие номера багов в трекере Adobe =)

Беда в том, что Adobe либо не умеет исправлять это баг либо не хочет. Невозможность создавать на флеше кросс-платформенные приложения с текстовым вводом заставляет массу разработчиков извращаться со своими workaround'ами этой проблемы либо использовать другие технологии типа Java FX, Silverlight/Moonlight.

Мне это надоело и я открыл петицию к Adobe: http://www.petitiononline.com/3YUJUPHx/petition.html

Это американская система и я рассчитываю, что популярность петиции позволит Adobe ускориться в плане исправления бага. Это в наших силах.

Если у вас есть знакомые flash-разработчики или они есть у ваших знакомых - покажите им эту запись. Это здорово поможет нам всем. Хватит тратить время на исправление чужих ошибок.

вторник, февраля 10, 2009

PHP Array and Object Magic

Sometimes it will be useful to convert object to array or array to object: iterate, store, modify, etc.

It's simple with PHP5:
$myItem = array(
    "color" => "black",
    "size" => "medium",
    "pieces" => 100,
    "cost" => 44.99
);

$myItemObject = (object) $myItem;

echo "Array as object:\n";
print_r($myItemObject);
echo "\n";

$myItemArray = (array) $myItemObject;
echo "Object as array:\n";
print_r($myItemArray);

Output:
Array as object:
stdClass Object
(
[color] => black
[size] => medium
[pieces] => 100
[cost] => 44.99
)

Object as array:
Array
(
[color] => black
[size] => medium
[pieces] => 100
[cost] => 44.99
)

Be careful with protected and private class members:
class Casting
{
    public $pub = "I'm a public member";
    protected $pro = "I'm a protected from outlanders";
    private $pri = "I'm a hidden property";
}

$casting = new Casting();

print_r($casting);
print_r((array) $casting);

Output:
Casting Object
(
[pub] => I'm a public member
[pro:protected] => I'm a protected from outlanders
[pri:private] => I'm a hidden property
)
Array
(
[pub] => I'm a public member
[*pro] => I'm a protected from outlanders
[Castingpri] => I'm a hidden property
)