Away3D, Cocomo, Silverlight …

Únor 13th, 2009

Samé novinky se teď sešly. Na prvním místě musím zmínit nové dema u Away3D: http://away3d.com/away3d-23-feature-overload která se týkají možností releasu 2.3.   Pak tu máme zajímavé interview http://www.betanews.com/article/Adobe_Microsofts_Silverlight_has_really_fizzled/1234310146 o tom, jak Microsoftu se Silverlightem dochází dech, zatímco flashplayer jede vesele dál.  Poslední znímka pak bude patřit Cocomo projektu, který se nyní přejmenoval na Adobe Flash Collaboration Service ...delší název si už asi nemohli vymyslet :)

Silverlight, Flashplayer - statistiky

Únor 12th, 2009

Zajímavé srovnání penetrace flashplayeru a silverlightu nalezneme na stránkách: http://www.riastats.com. Není překvapením, že flashplayer vede na plné čáře. Pokud je porovnáme se statistikami na Adobe.com, není zde výraznějších odlišností, i když 7% rozdílu u fp10 by se mohlo zdát dost. Přeci jenom se ty oficiální statistiky musí nějak "popohnat" :) .  Silverlight se svými zhruba 18% zatím nijak výrazněji nedotahuje, zajímavá je i absence Javy na 24% strojích.

PayPal a Flash

Únor 11th, 2009

Nedávno mne jeden ze zákazníků požádal o vložení "Add to Cart" tlačítka do flashové prezentace, které by umělo vložit libovolnou položku do košíku v rámci systému PayPal. Řešení je velice jednoduché, potřebujeme k tomu pouze zdrojový kód tlačítka, který získáme na svém PayPal účtě:

<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="2988810">
<table>
<tr><td><input type="hidden" name="on0" value="Specify Your Requirement">Specify Your Requirement</td></tr><tr><td><select name="os0">
    <option value="Set Up & Year 1">Set Up & Year 1 $290.00
    <option value="Year 2">Year 2 $250.00
    <option value="Changes to template">Changes to template $25.00
    <option value="Add additional user to Group">Add additional user to Group $45.00
</select> </td></tr>
</table>
<input type="hidden" name="currency_code" value="CAD">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_cart_SM.gif" border="0" name="submit" alt="">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

Ve flashi pak stačí využít LoadVars třídu a jako atributy objektu uvedeme veškeré "name" atributy z poskytnutého kódu. Výsledek pak už jen odešleme jako POST na PayPal:

var PayPal:LoadVars = new LoadVars();
PayPal.add = 1;
PayPal.cmd = "_s-xclick";
PayPal.on0 = "Specify Your Requirement";
PayPal.os0 = "Year 2";
PayPal.currency_code = "CAD";
PayPal.hosted_button_id = "2988810";
PayPal.send("https://www.paypal.com/cgi-bin/webscr","nove_okno","POST");

IDnes a flashové video

Únor 9th, 2009

Portál IDnes oficiálně minulý týden uvedl přechod na "modernější" technologii , jak už jsem psal dříve, je pěkné, že byl konečně odstraněn WMV formát, ale je škoda, že se přehrávače chovají stále všelijak. Vynucená reklama jakoby běží, ale přitom neběží, samotné video se někdy objeví, někdy ne, tak snad se to povede časem vyladit do použitelné podoby a budeme moci tenhle projekt považovat za dobrou referenci flashové technologie.  Zatím to může působit spíše rozpačitě.

Flex 3.2 a export AIRu

Únor 8th, 2009

Při aktualizaci Flex Builderu 3.2 na AIR runtime na 1.5 je při exportu/testování zobrazena chyba:

Napravení exportu provedeme opravou xml konfiguračního souboru aplikace Nazev_aplikace-app.xml, kde v řádku:

<application xmlns="http://ns.adobe.com/air/application/1.5">

změníme verzi AIR prostředí na nově používané.

undo/redo textové pole

Únor 4th, 2009

Právě jsem se chtěl pustit do vytvoření jednoduché komponenty, která si bude pamatovat svojí historii a umožňovat tak undo/redo kroky. Náhodně jsem ale objevil, že už něco takového je k dispozici na google code: http://code.google.com/p/undo-textfields/ , vypadá to zajímavě

Očištění HTML textu

Leden 31st, 2009

Při načítání externích dat se občas vyskytne potřeba "očistit" předané texty od HTML tagů a získat tak pouze samotný text, bez jakéhokoliv HTML formátování. V případě XML dat pak navíc můžeme řešit problém s nadbytečnými konci řádků, které oddělují odstavce. Jako užitečná se pak jeví následující třída, která zajistí veškeré odstranění přebytečných tagů a konců řádků:

package
{
    public class HtmlStrip
    {
        private static var removeHTML:RegExp = new RegExp("&lt;[^&gt;]*&gt;", "gi");
        //odstranění HTML tagů
        public static function stripHTMLTags(src:String):String{
            return stripMe(src);
        }
        //odstranění konců řádků
        public static function removeNewLines(src:String):String{
            return removeLines(src);
        }
        //odstranění tagů a konců řádků
        public static function clearMyString(str:String):String{
            var pomStr:String = stripMe(str);
            return removeLines(pomStr);
        }
        //odstranění HTML tagů
        private static function stripMe(src:String):String{
            return src.replace(removeHTML, "");
        }
        //odstranění nových řádků
        private static function removeLines(src:String):String{
            return replaceString(src,"\n","");
        }
        //nahrazení textu
        private static function replaceString(src:String, text_what:String, text_for:String):String {
            return src.split(text_what).join(text_for);
        }
    }
}

Použití je pak velice jednoduché, pro odstranění HTML tagů a konců řádků se použije zápis:

var novyText:String = HtmlStrip.clearMyString(textHTML);

Norsko - Hjorundfjord 2008

Leden 29th, 2009

Některé fotky jsou poznamenané zamlženou čočkou(tedy spíše vodou v objektivu), takže je výraznější aberace a rozmazání v rozích, škoda... Ale jinak to byl překrásný výlet.

Charles

Leden 27th, 2009

Výbornými pomocníky jsou proxy debuggery, kteří umožňují sledovat komunikaci mezi klientem a internetem.  Z vlastních zkušeností mohu vřele doporučit program Charles, který nabízí přehledný souhrn veškeré komunikace, kterou potřebujeme sledovat.

Po jeho spuštění získáme detailní přehled o tom, co se děje během našeho brouzdání po webu, které skripty jsou spouštěny, včetně parametrů a proměnných, které odesílají a stejně tak máme detailní přístup k odpovědím, ze strany serverů.

Výborným pomocníkem je Charles i v případě lazení skriptů, kdy potřebujeme jistit, co naše aplikace desílají za data a stejně tak potřebujeme mít detailní přehled o tom, jak server odpoví. Například při programování flexové aplikace, kde využíváme Flex/Flash remoting se nám bude Charles určitě hodit. Máme možnost vidět objektovou strukturu jak dotazů, tak odpovědí.

A když už práce omrzí, na youtube si najdeme oblíbené video, přehrajeme a díky Charlesovi si můžeme zjistit jeho přímou adresu a stáhnout si jej.

FLV videa na iDNES - ostuda, bohužel

Leden 25th, 2009

Zpravodajský portál iDnes už od počátku zveřejňuje videa ve WMV formátu, což s sebou pro běžné užvatele nese různá úskalí (mě osobně se jejich "vychytaný" player objevuje až po několikerém kliknutí do "černé díry" v okně, a to nemám nijak restriktivně nastavený prohlížeč) .

O to více mne překvapilo, když jsem v sekci "Hobby" naleznul Flexový přehrávač pro flashová videa. Že by se konečně ledy pohnuly a i ten "nejdůvěryhodnější" portál přešel na jednoznačně lepší řešení videí, než měl dosud? Obávám se, že to asi tak jednoduché nebude, ale kdoví... Je ale škoda, že ani ten nový přehrávač nefuguje na 100%. Asi po minutě čekání na reklamu jsem se videa o příšerkách nedočkal :( Podobná situace se opakuje i u dalších videí, škoda. Je to mrzuté, protože takhle ostudně zpackané streamované video(teoreticky by to mělo ject přes rtmp) těžko přidá na prestiži flashe.

A ještě jedna poznámka k iDNESu. Poslední dobou mě vyskakuje error okno debug verze flashplayeru, což by samo o sobě nebylo neobvyklé, chyby se tu a tam objeví, ale zajímalo mě, o co se jedná. Po stažení 66kB flexového souboru a jeho dekompilaci jsem zjistil, že jediné, co tento soubor dělá, je volání JS funkce v HTML stránce (které mimochodem vyvolává zmíněnou chybu). Celkem zajímavé řešení, 66kB na jeden příkaz mi přijde jako docela velké plýtvání, ale možná se mýlím a má to nějaký hlubší význam...