Archive

Archive for July, 2008

Parametri opționali

July 18th, 2008

Să zicem că avem o funcție, care trebuie apelată la un event, orice event. Funcția va fi definită la modul:

1
2
3
protected function doSomething(evt: Event):void {
// instrucțiuni
}

Dar ce facem dacă vrem să apelăm funcția și în alte circumstanțe? Poate la un moment dat e nevoie să o apelăm și altfel decât cu trigger un eveniment, ci mai degrabă la modul

1
doSomething();

Evident, vom primi o eroare gen:

1
1136: Incorrect number of arguments.  Expected 1.

Not good. O rezolvare pe care am folosit-o în grabă odată a fost pe principiul “firai a dracu, vrei parametru, na parametru”:

1
2
var nullEvent:Event = null;
doSomething(nullEvent);

Bye-bye eroare, dar ne-am procopsit cu o variabilă în plus. Există totuși și o modalitate de a face treaba cum trebuie.

Un parametru inițializat, devine un parametru opțional. Dacă rescriem, deci, funcția noastră la modul:

1
2
3
protected function doSomething(evt: Event = null):void {
// instrucțiuni
}

putem apela foarte liniștiți și cu, și fără parametru. Dacă funcția este apelată fără parametru, atunci valoare lui, evident, va fi cea de inițializare. Adică null în cazul de față.

(valabil doar in Actionscript 3)

evilpenguin programare ,

Flash Player 10

July 11th, 2008

Niciodată nu mi-a fost să văd pâna acum atâtea din problemele cu care m-am confruntat rezolvate. Iar modul în care sunt prezentate unele dintre ele, Other Community Requested Enhancements, mă bucură să afirm faptul că Adobe într-adevăr ia în serios părerile și cerințele developerilor. O să discut 3 dintre cele mai enervante probleme cu care m-am confruntat pâna acum:

  • Limited Fullscreen Keyboard Access: până acum, în Flash Player 9.0.124, în modul fullscreen, singura tastă ascultată era Esc, care nu putea să facă altceva decât să te întoarca la modul normal de vizualizare. Începând cu Flash Player 10, modul fullscreen acceptă scurtături pe tastele “non-printing”, adică săgețile, Ctrl, Space, Enter, etc. De-abia aștept să am imensa plăcere să apăs tasta Space în timp ce mă uit la un film online, pentru a face o pauză de mers și umplut paharul de Cola. Ca să nu mai zic de jocuri online în format fullscreen.
  • File Reference runtime access: dacă cumva vroiai să ai o aplicație online în Flash care să facă ceva cu o poză de pe calculatorul utilizatorului, gen upload-ul, cropul și resize-ul de la coaforul virtual, erai obligat să-i faci bounce-back de la server. Sub nici o formă nu puteai să o deschizi direct de pe calculatorul utilizatorului – nu exista funcție pentru așa ceva. Deci apucă-te și fă upload, pune poza în sesiune, și fă un loadMovie() la un server side care să-ti întoarca poza cu mime-type-ul de jpeg. Transfer inutil de date, timp pierdut, server load inutil și câteva zeci de linii de cod scrise în plus. De la Flash Player 10 tot acesc circ nu mai este necesar.
  • Dynamic Streaming: o serie de funcții care permit ajustarea automată a conținutului streamuit în funcție de modificarea lățimii de bandă disponibilă a clientului. Nu mi-e clar cât din asta va fi embedded în următorul Flash Media Server și cât va trebui implementat de mână, dar măcar vor exista niște tool-uri foarte cool, de exemplu NetStreamInfo.maxBytesPerSecond – care cică ar returna capacitatea maximă de transfer a clientului în orice moment de timp.

Rămâne de văzut ce și cum, dar viitorul suna bine. Pentru cine n-are ce citi pe budă, vă recomand release notes-urile de la Flash Player 10 beta. Injoy.

evilpenguin Internet ,

Diferențe culturale

July 11th, 2008

Acum vreo 6 luni, începeam un proiect care, după spusele celui care îl concepuse, urma să revoluționeze lumea site-urilor de social networking. Tipul e din State. După multe diferențe de opinie, un naming pe care îl consideram absolut stupid și pretenții de ce n-a făcut hi5-ul în 3 ani să facem cu patru oameni, part time, în 2 luni, ne-am lăsat. Asta a fost cam acum 4 luni.

Anularea colaborării a fost de comun acord, discutată foarte pe scurt. Tipu a plătit niște bani, chipurile ca avans, după care ne-a dat un email în care zicea că să considerăm banii ăia ca plată a serviciilor noastre pâna acum, servicii de care nu va mai avea nevoie. Eu i-am scris un mail înapoi în care îi ziceam că regret că s-a terminat așa, că consider că vina ne aparține și nouă, bullshit, bullshit. Cu accentul pe “și”. Îmi place să las loc de “bună ziua” și, în plus, puteam și noi să ne dam mai mult interesul și să depunem mai mult efort. Ce-i drept, era genul de client care se bagă să-ți zică și cum să-ți scrii codul, gen de om cu care mie mi s-a luat să lucrez.

După cum ziceam, au trecut 4 luni de-atunci. Ieri am primit un e-mail, o să spicuiesc din el părțile total harmless, dar importante pentru ce vreau eu să zic:

Hey,

I’m in need of some help. [...] The website that they (nr: cei care au lucrat după noi) built for me is very shoddy, the CSS implemented very poorly. But that isn’t your concern.

I’m working on a new incarnation of the website that requires retooling the code to fit in some new ideas and eliminating some old bad ones. There are several pieces of the project that need to be adopted by various parties. I’ve finally learned PHP, but my skills are not quite adequate yet to lay down a foundation and begin laying down my ideas. I need help with the following (you may choose some, all, or, of course, none of these):

  1. New, heavily simplified (in terms of color pallet) interface succeeds in a charming homemade feel, rather than a botched attempt at professionalism.
  2. CSS
  3. Work on laying out the database.
  4. Work on the guts of the site, the PHP and AJAX.

Și acum vine partea cea mai interesantă a mailului:

I’m asking for help as a favor, as an appeal to your conscience. You have the opportunity now to do good, to make right the way in which you wronged me. Here is something that can be fulfilling for you.

Ok.. Deci mi se oferă ce? Onoarea de a lucra la proiectul lui? Șansa de a mă reabilita în fața unui om pe care l-am considerat enervant și absurd, în repetate rânduri, și i-am spus-o? Cred că am atins o barieră de care nu pot să trec. Greșesc dacă dau vina pe diferențele culturale dintre un american cu influențe latino și mine, un român crescut în Titan?

Chestia e că tre să-i dau omului un răspuns pâna la sfârșitul zilei și nu reușesc să-mi dau seama dacă ar trebui să-mi înfrânez tentația de-al trimite la origini sau nu. Dacă ar trebui să mă prăpădesc de râs și să trec mai departe sau chiar să mă gândesc serios la “propunerea” lui. Omul o zice cu atâta convingere încât încep să am dubii despre sistemul meu de valori și modul în care îmi duc viața…

evilpenguin Internet ,

Conversațiile mele preferate

July 10th, 2008

Hai să luam următoarea situație ipotetică: n-am mai vorbit de câteva luni, pentru că nu avem tangențe, de când a dispărut un anume context comun. Cum crezi că e cel mai bine să reiei legătura cu mine? Care ar fi cea mai bună temă pentru o primă conversație după ce luni de-a rândul nici măcar nu m-ai întrebat ce mai fac? Avem câteva variante:

Varianta 1:

fii atne
vreau sa fac un drop down in flas
si problema Read more…

evilpenguin lumea reală , ,

Reclama mea preferată

July 10th, 2008

De pe un articol pe deceblog.net aflu că cineva s-a apucat să strângă reclame amuzante. Și ghici ce, au deja reclama mea preferată.

evilpenguin publicitate ,