Archiwum z Marzec, 2007

Wymuszanie odśmiecania pamięci

środa, Marzec 28th, 2007

Jakiś czas temu magnum pytał się mnie jak wymusić działanie garbage collectora w AVM2. Pamiętałem wtedy, że gdzieś czytałem o takim myku, jednak za cholerę przypomnieć sobie nie mogłem. Dziś znalazłem, więc postuje creme de la creme:

Actionscript:
  1. //(...)
  2. public function gcHack():void
  3. {
  4. // unsupported hack that seems to force a full GC
  5.     try
  6.     {
  7.         var lc1:LocalConnection = new LocalConnection();
  8.         var lc2:LocalConnection = new LocalConnection();
  9.  
  10.         lc1.connect("name");
  11.         lc2.connect("name");
  12.     }
  13.     catch (e:Error)
  14.     {
  15.     }
  16. }
  17. //(...)

Podana lokalizacja, oprócz miłego komponentu MXML MemoryMonitor zawiera garść kolejnych linków do tematu GC.

CS3 webcast

wtorek, Marzec 27th, 2007

I po ptokach. Chłopakom zepsuł się kabel od wyjścia na ekran i z 60 sek. przerwy zrobiło się dobre pół godziny. Pokazali parę fajnych bajerów w Photoshopie - m.in. Smart Objects: GENIALNE! Było troszkę Fireworksa, Dreamweavera i malusio Flasha. Generalnie nacisk położony był na pokazanie integracji (głównie przez Bridge) i prostoty dochodzenia do celu przy pomocy nowych featuresów. Można se obejrzeć tu:


Update:
Oficjalna premiera, czyli uwolnienie bestii ;-) spodziewana jest DOPIERO na 20 kwietnia 2007.

Siostro, defibrylator! Zmartwychwstajemy ASDT!

poniedziałek, Marzec 26th, 2007

W przeddzień (mam nadzieję) premiery (na żywo) pakietu CS3 dostałem mejla w sprawie dawno zgłoszonego buga w dawno zapomnianym już ASDT. Zapomnieć, nie zapomniałem o co cho, jednak pewnie trochę czasu mi zajmie przygotowanie środowiska odtwarzającego problem. W każdym razie po wejściu na autorskiego bloga, okazało się, że projekt wraca do życia. Można se obessać wersję testową 0.0.9. Fajnie, bo jedyną alternatywa, oprócz płatnego FDT, był lekko niewygodny, bo pozbawiony pożądnej obsługi SVN FlashDevelop, który nota bene również ostatnio lekko przyspał. Chociaż słyszałem, że trwają już testy wersji 3.

Wiosna panie sierżancie!

Flex 2.0.1 SDK Hotfix 1

piątek, Marzec 23rd, 2007

Pojawił się pierwszy hotfix do fleksowego SDK. Nie wiem jak u innych, ale u mnie spowodował problemy z debagowaniem aplikacji Apollo. W razie co majkrosoftowe wyjście: deinstalacja i ponowna instalacja Apollo Extensions pomaga.

Akcesory w inline’owych komponentach.

środa, Marzec 21st, 2007

Gdy zachodzi potrzeba zastosowania tzw. komponentów inline, czasem występuje problem z dostepem do pól komponentu. Nie zawsze chcemy się odwoływać poprzez mojKompo.mojLabel.text, wygodniej byłoby skorzystać z właściwości get/set mojKompo.text. Oczywiście najłatwiej byłoby użyć tagu ddd i tam zdefiniować akcesory. Ale ja czuję parcie na szkło, więc użyje rozwiązania czysto bez-tag<mx:Script>'owego. Zamiast ustawiać "ręcznie", w kodzie można zastosować czyste bindowanie:

XML:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*" layout="absolute">
  3.  
  4.     <mx:Component className="MojaKlasa">
  5.         <mx:Canvas>
  6.             <mx:String id="text"></mx:String>
  7.             <mx:Label text="{text + ' (z innej beczki)'}"/>
  8.         </mx:Canvas>
  9.     </mx:Component>
  10.    
  11.     <local:MojaKlasa text="{inputText.text}" y="10" x="10"/>
  12.     <mx:TextInput id="inputText" text="Wpisz coś..." y="30" x="10"/>
  13.    
  14. </mx:Application>

Tym sposobem możemy zupełnie ukryć implementację komponentu przed samym sobą (idealne dla schizorfeników!), ponieważ mx:Label nie potrzebuje juz pola id. A tak mniej więcej wyglądałaby MojaKlasa z małą pomocą ze strony AS:

XML:
  1. <mx:Component className="MojaKlasa">
  2.     <mx:Canvas>
  3.         <mx:Script>
  4.             <![CDATA[
  5.                 public function get text ():String
  6.                 {
  7.                     return lbl.text;
  8.                 }
  9.                 public function set text (text:String):void
  10.                 {
  11.                     lbl.text = text+' (z innej beczki)';
  12.                 }
  13.             ]]>
  14.         </mx:Script>
  15.         <mx:Label id="lbl" text="{text}"/>
  16.     </mx:Canvas>
  17. </mx:Component>

MaliFox ;-)

środa, Marzec 21st, 2007

Ostatnio wszystkich ogarnia szał pisania przeglądarek, więc kolej i na mnie w tym owczym pędzie. Przeglądarka z zakładkami w mniej niz 3024 linijkach kodu ;-). W instalatorze plik mxml ze źródłem.

Actionscript:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:ApolloApplication layout="absolute" xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*">
  3.     <mx:Component className="HTMLView">
  4.         <mx:Canvas label="{htmlPanel.location}" showEffect="{inFx}" hideEffect="{outFx}">
  5.             <mx:String id="location">about:blank ;-)</mx:String>
  6.             <mx:Parallel id="outFx" duration="500">
  7.                 <mx:children>
  8.                     <mx:Fade alphaTo="0.0" alphaFrom="1.0"/>
  9.                     <mx:Blur blurXFrom="0.0" blurXTo="10.0" blurYFrom="0.0" blurYTo="10.0"/>
  10.                 </mx:children>
  11.             </mx:Parallel>
  12.             <mx:Blur id="inFx" duration="500" blurXFrom="10.0" blurXTo="0.0" blurYFrom="10.0" blurYTo="0.0"/>
  13.             <mx:HTML id="htmlPanel" location="{location}" left="0" bottom="0" right="0" top="0"/>
  14.         </mx:Canvas>       
  15.     </mx:Component>
  16.     <mx:AddChildAction instanceClass="{HTMLView}" target="{vs}"/>
  17.     <mx:TabBar id="tab" y="40" dataProvider="vs" left="43" right="43"/>
  18.     <mx:ViewStack id="vs" right="0" left="0" bottom="0" top="70">
  19.         <local:HTMLView location="http://maliboo.pl"/>
  20.     </mx:ViewStack>
  21.     <mx:ComboBox id="myCombo" editable="true" left="10" right="10" y="10" enter="(vs.selectedChild as HTMLView).location = String(myCombo.value);" text="{vs.selectedChild.label}"/>
  22.     <mx:Button y="40" label="+" width="25" click="vs.addChild(new HTMLView())" left="10"/>
  23.     <mx:Button y="40" label="X" width="25" click="if (vs.getChildren().length> 1) vs.removeChildAt(vs.selectedIndex)" right="10"/>
  24. </mx:ApolloApplication>

Dzięki Marcin za pomoc przy bindowaniu.

Złośliwe oprogramowanie firmy Microsoft ;-)

wtorek, Marzec 20th, 2007

Złośliwe oprogramowanie firmy Microsoft
Autoironia? ;)

Kto rano wstaje Apollo dostaje

poniedziałek, Marzec 19th, 2007

W końcu publiczna alfa Adobe Apollo. Teraz czterolinijkowe przegladarki wyrosną jak grzyby po deszczu. Może jeszcze dziś zapodam kod przeglądarki z zakładkami. A tym czasem, miłego dnia:

XML:
  1. <mx:apolloapplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"></mx:apolloapplication>
  2.  
  3. <mx:html left="10" right="10" bottom="10" top="42" location="{uerel.text}"></mx:html>
  4.  
  5. <mx:textinput id="uerel" top="12" left="10" right="10"></mx:textinput>

PS
Zdaje sie kolorowanie kodu się sra :/ i zamienia mi < na & l t ;

Prawie po polsku

piątek, Marzec 9th, 2007

http://www.adobe.com/pl/

Będziemy mogli się prawie niedługo prawie cieszyć prawie polskim adobe? W IV RP?

Dzień kobiet, dzień kobiet, niech każdy się dowie…

piątek, Marzec 9th, 2007

Kobity dostały kwiatki (obywatelki IV RP pończoch nie dostają), a ja prezent dla prawdziwego faceta:
DSC_7661
Aż chce się powiedzieć: "Uwielbiam zapach świeżej instrukcji o poranku".

Długo nie pisałem, więc dla dwóch osób parę słów wyjaśnień.

niechemisienawetwstawiacspacji

Generalnie stan taki utrzymuje się od świąt ;-). Jesienno-zimowa depresja, mimo braku tej drugiej pory, w powiązaniu z nadmiarem pracy owocuje nicniechceniem. Z rzeczy ciekawszych ostatnio siedzę w FMS. Przy porządnym frameworku client-side i mniej porządnym server-side da się w tym całkiem miło robić cuda na kiju. Jeśli ktoś jeszcze nie wie, to deweloperska wersja umożliwia korzystanie z serwera również komercyjnie do 10 połączeń. Mimo istnienia RED5, czy Wowza Media Server, mnie jakoś bardziej leży programowanie w tak zwanym server-side ActionScript, czyli w rzeczywistości jakiejś tam mutacji JS. Całe to javowanie, robienie durnych przelotek, rekompilacji, etc. na darmowych i mniej-płatnych alternatywach jakoś mnie nie jara. Owszem, jeśli ktoś chce "tylko" strumieniować media, to będzie w niebo, lub dwa wzięty. Ale to co moje, jest moje, co jara mnie, to przede wszystkim łatwe (czytaj szybkie) programowanie po stronie serwera.

A teraz parę słów o zamawianiu Flexa. Jak już pisał inou, czego niestety znaleźć nie mogę, jest problem z zamówieniem towaru w Polsce bezpośrednio ze sklepu Adobe. Zamówiliśmy więc towar u dealera. Czas oczekiwania jak na takie deficytowe i lukratywne cudo długi nie był - raptem pełen cykl kobiety. To co mnie i naszego sprzedawcę zdziwiło, to oświadczenie jakie musiała wypełnić moja firma. Na oświadczeniu o sposobie wykorzystania produktu, oprócz pełnych danych firmy (użytkownika produktu) i danych sprzedawcy trzeba było również wyjaśnić sposób użycia produktu i zobligować się do tego, czy produkt będzie wykorzystywany do przetwarzania i przesyłania informacji niejawnych. Całe szczęście e-learning, to nie teczki IPN, więc obyło się bez zaznaczania tego punktu. Jeśli jednak tak by było, dowiedziałem się, ze trzeba by było załatwiać dodatkowe papiery z MSW. Trochę sporo jak na program za 500$. W dodatku oparty o otwartoźródłowego Eclipse'a i darmowe SDK. Całe to zamieszane podczepione jest ponoć do:

art.21c ust.1 ustawy „o obrocie z zagranicą towarami, technologiami i usługami o znaczeniu strategicznym dla bezpieczeństwa państwa, a także dla utrzymania międzynarodowego pokoju i bezpieczeństwa oraz o zmianie niektórych ustaw” (Dz. U. z dnia 28 grudnia 2000 r.)

i brzmi groźnie ;-). W każdym razie pamiętajcie o zdjęciu turbana, przed zamówieniem. Jeśli ktoś zamawiał po nowym roku (ponoć w 2k6 nie było takich problemów) to prosiłbym o jakiś komentarz.

Jeśli chodzi o pięć faktów, to będą, kiedy będą. Muszę je najpierw stworzyć ;-).