Genial … dezamagit de rezultate

Nea Iliescu, dezamagit de rezultate … excelent montaj :)

http://www.youtube.com/watch?v=cJSfiMF9GUQ&feature=player_embedded

Tags: , , , ,

Export Illustrator layers individually


var ilVs = app.version.split(".",1)[0];
var dlg_opts = "";
ilVers = parseInt(ilVs);

if (ilVers != "NaN") {
for(j=8; j<=ilVers; j++) {
dlg_opts += (j != ilVers) ? j + ", " : j;
}
}

var dlg = prompt("Save to version:", "8", "Valid versions are: " + dlg_opts);

var myDoc = app.activeDocument;
var myLayers = myDoc.layers;
var mylastIndex = myLayers.length-1;

for(var lLoop1 = myLayers.length-1; lLoop1 >= 0; lLoop1--) {
for (var lLoop2 = myLayers.length-1; lLoop2 >= 0; lLoop2-- ) {
if(lLoop2!=mylastIndex) {
if(myLayers[lLoop2].locked == true) myLayers[lLoop2].locked = false;
if(myLayers[lLoop2].visible == false) myLayers[lLoop2].visible = true;
try { myLayers[lLoop2].remove(); } catch(ex) {}
}
}
var sv_file = myDoc.path.fsName + "/export_" + myLayers[0].name + ".ai";
exportFileToAI(sv_file, dlg);
mylastIndex--;
app.undo();
}

function exportFileToAI (filename, vers) {
if ( app.documents.length > 0 ) {
var saveOptions = new IllustratorSaveOptions();
var ai8Doc = new File(filename);
saveOptions.compatibility = (vers!=null) ? eval("Compatibility.ILLUSTRATOR" + vers) : Compatibility.ILLUSTRATOR8;
saveOptions.flattenOutput = OutputFlattening.PRESERVEAPPEARANCE;
myDoc.saveAs( ai8Doc, saveOptions );
}
}

Tags: , , ,

Vai de mama ei de tara

Cred ca am demonstrat cu varf si indesat ca ne meritam soarta, dar in seara asta la meciul de playoff al lui Dinamo am reusit sa accentuam, daca mai era nevoie, ca tara asta in majoritate e locuita de nevertebrate si urangutani(imi cer scuze urangutanilor) care in afara de faptul ca au un cap ca sa nu le ploua in gat, nu-i prea dau acestuia o alta intrebuintare. Dupa un joc  apatic al echipei Dinamo, nimicita la propriu de o echipa care si-a jucat sansa in cel mai frumos mod posibil, “suporterii” dinamovisti si-au dat frau pornirilor de primate si au decis sa intre pe teren ca sa ia “problema” in primire. Dupa meciul asta, UEFA va lua mai mult ca sigur masuri radicale impotriva cluburilor romanesti(ma-ndoiesc ca vor incerca sa fie obiectivi dupa evenimentele din seara asta).

BRAVO Romanica! La mai mare!

Tags: , , ,

The Sanctuary Tv Series Soundtrack

I`ve been watching once in a while lately, the the tv show called Sanctuary, which I must say isn’t quite what i`ve expected to be. It isn’t in my best serial list, but there is something around it that makes me watch it when i get some spare time. It must be the great soundtrack or the fact that ol` major Samantha Carter(Amanda Tapping) from Stargate SG1, which i respect alot for the general performance in Stargate, has the leading role. She interprets the role of a 147 years old woman called Helen Magnus(dun expect wrinkles and stuff like that, as Helen it’s some kind of an immortal), that leads a shelter for all kind of  creatures(let’s stick with creatures … monsters are normally humans). Her helpers are Dr. Will Zimmerman(Robin Dunne), her daughter, Ashley Magnus(Emilie Ullerup), Henry Foss(Ryan Robbinson) and a bigfoot-like creature, interpreted by Christopher Heyerdahl. I won’t comment any performance because until now there isn’t anything good to say about nor anything bad. I will stick though to Ian Browne, the creator of the soundtrack for this tv series, and which i find awesome. I found some parts of  “The Sanctuary” soundtrack on Ian Brown’s personal page. Here they are:

3 pieces of the Sanctuary Soundtrack

If i’ll find more, i`ll update this post.

Tags: , , , , ,

Calendarul sezonului de snooker 2009/2010

Cam astea ar fi turneele in sezonul 2009-2010, conform BBC(le-am postat mai mult ca sa nu caut dupa ele :) ))

Septembrie 7-13  2009:  Masters-ul  de la Shanghai, desfasurat la Shanghai Grand Stage

Octombrie 2009:  Grand Prix, desfasurat la Venue TBC

Decembrie 5-12 2009: UK Championship, desfasurat la Telford International Centre

Ianuarie 10-17 2010: Masters-ul, desfasurat la Wembley Arena

Ianuarie 25-31 2010: Welsh Open, desfasurat la The Newport Centre

Martie 29 -  Aprilie 4 2010: China Open, desfasurat la Beijing University Students Gymnasium, Beijing

Aprilie 17 – Mai 3: Betfred World Snooker Championship, desfasurat la The Crucible Theatre, Sheffield

Tags: , ,

Un milion de euro pe beculete? De ce nu :)

Nu mai mira pe nimeni ca nevertebratele care ne conduc fac afaceri de milioane de euro pe spatele celor tampiti, care mai au bunul simt sa plateasca taxe catre stat. Partea tragica e ca nici nu ai nevoie de prea multa inteligenta sa furi in tara asta. Oricum intr-o tara in care mentalitatea “te votez pentru un litru de ulei” este la moda, nu prea are cum sa fie altfel. Sunt prea putini cei care sa nu priveasca televizorul ca maimutele  si sa ia de buna orice stire care este comunicata de o televiziune sau alta. Probabil ca multi au impresia ca media este obiectiva si reda cu acuratete toate aspectele unei probleme. Oricum totul e minunat: functionari cu sporuri de xerox, de lucru in cimitir sau de lucru la zoo si mai nou un primarel de o inteligenta indoielnica care se p…a pe interlocutori la figurat, si, de ce nu, pe viitor, poate chiar la propriu. Nu cred c-ar mai mira pe cineva ultima parte … pahare de apa s-au revarsat, scuipaturi s-au impartit, iar o chestie de genul asta n-ar face decat sa intregeasca peisajul(alaturi de imaginea lu` Boc cosind, sau a lu’ Nuti Udrea tricotand ca o bunicuta zeloasa).

Intamplator am dat azi peste un comentariu vizavi de acest subiect, al domnului Mircea Badea. Desi nu intotdeauna( pe motive logice si intemeiate pana la urma daca stai si-ti fortezi neuronii vreo 5 secunde), domnul Badea este, de cele mai multe ori, un critic obiectiv al realitatilor cotidiene ale acestei tari minunate, unde paradoxurile tin loc de normalitate. Oricum ar fi bine ca cineva sa propuna la guvern ca treaba cu beculetele sa se extinda la nivel national  … fondurile de la FMI cred c-ar fi mai bine investite in beculete si reni cu trotinete sau schiuri, sau eventual iepurasi Playboy cu sanii desenati ca niste oua de paste si imbracati in costume ca si cele de la carnavalul de la Rio, sa fie fericit si primarul de la Constanta, nea Mazare. Sa extindem “sarbatoarea” la scara nationala … sunt sigur ca beculetele vor tine sufletele “calde” la iarna, ca la pretul intretinerii, multi vor ramane doar cu culdura sufleteasca. Numai asha ne putem depasi starea de muritori de rand … prin caldura beculetelor. Solomoane, io zic sa tragi si-o sarbatoare campeneasca cu porc la rotisor si vin cald, da’ sa fie macar de 2 milioane de euro, c-altfel nu e reusita. Faci si-un promo pe Eurosport de vr’un milion de euroi, sa vina turistii sa dantuiasca, sa manance si sa bea la Craiova, si,daca va fi si ceva zapada, poti inchiria si vreo 20,30 de sanii pe vreo 4, 5 milioane de euro si nici nu-si dau seama turistii ca strazile nu-s asfaltate. Doamne, doamne, gradina …

Tags: , , , , , , ,

Cele mai mari greseli in programare

Faptul ca un software poate sa-ti dea batai de cap, prin faptul ca, dintr-un motiv sau altul, contine una sau mai multe greseli de programare, nu mai e pentru nimeni un secret. Doar am trecut cu totii prin “epoca” Windows, si, desi nu este singurul exemplu care sa intre in aceasta categorie, este cel mai notoriu exemplu. Cum era de asteptat, au aparut o multime de site-uri care sa trateze acest aspect al lumii IT, in principal al lumii software. Dintre acestea, probabil cel mai cunoscut este site-ul CWE Mitre care trateaza 25 dintre cele mai frecvente si periculoase greseli care pot aparea de-a lungul conceperii si realizarii unui software.

  1. Validarea incorecta a datelor provenite de la utilizator
    Asigura-te mereu ca datele primite corespund cu datele de care ai nevoie pentru buna functionare a programului. Validarea corecta a datelor provenite din surse externe, evita situatii (aplicate plaiurilor mioritice) in care, pe majoritatea userilor tai ii va chema 1234, vor avea adresa de email m..e.mah#sa_ti_fac_si_sa_ti_dreg.beep, vor locui pe 0745123456, vor avea numar de telefon apa_calda si multe altele . Gafe de genul asta NU-ti vor aduce “bunastarea” afacerii si nici simpatia clientilor.
  2. “Necuratarea” corecta a rezultatului unei operatii/interactiuni
    Aceasta eroare este baza pentru majoritatea atacurilor de tip injection, pornind de la cele de tip XSS pana la cele de alterare a continului unei baze date sau a destinatarilor/continutului unui email din pagina de contact.
  3. Alterarea unei comenzi SQL (bine-cunoscutul ‘SQL Injection’)
    La acest capitol nu stiu daca sunt multe de spus … daca ai un site bazat pe relationarea intre un limbaj de scripting/programare si o baza de date, iar acesta e susceptibil la astel de atacuri, atunci la categoria “ce se poate intampla”, intra mai mult de o gramada de posibile scenarii … partea proasta ca nici unul nu ti-e favorabil. De la “ocolirea” securitatii sau sustragerea unor date sensibile, SQL Injection e prezent.
  4. Alterarea, de catre surse externe, a structurii unei pagini web (sau ‘Cross-site Scripting/XSS’)
    Intr-o lumea web in plin avant, interactiunile, sa le zicem “e-sociale”, implica nevoia schimbului de date intre un site si alte elemente ale web-ului(exemple: un widget cu starea vremii, un widget cu ultimele tendinte bursiere, un widget cu starea cursului valutar etc.). Nevoia de informatie si/sau servicii duce la interactiuni simple sau complexe intre aceste elemente. Neverificarea corecta a informatiilor din sursele externe duce la posibilitatea ca un atacator sa “posteze” in cadrul unei pagini web elemente “nocive”(javascript, vbscript, php etc.), pentru useri, si, implicit, pentru proprietar. Combinatia intre browserele moderne si structura flexibila a protocolului HTTP, face ca posibilitatile vizavi de aceasta greseala de programare, sa fie pe cat de variate, pe atat de periculoase.
  5. Alterarea unei comenzi executata ulterior de sistem (sau ‘OS Command Injection’)
    Daca pagina web se manifesta ca si o interfata intre utilizator si sistemul de operare, iar datele provenite de la acesta nu sunt “curatate” asa cum ar fi nevoie, urmarile pot fi tragice. De la executia unor procese, care prin natura serviciului ar trebui sa nu fie accesibile utilizatorului, pana la controlul total asupra intregului sistem, nu e decat un pas. Urmarile pot fi tragice, totul depinzand de gradul erorii si de drepturile pe care un utilizator le poate obtine in urma exploatarii respectivei erori de programare.
  6. Circulatia datelor in forma bruta
    Datele “sensibile” nu ar trebui niciodata trimise in forma lor bruta. “Drumul” lor de la utilizator la serviciu trece printr-o “padure” de noduri. Daca un atacator are la dispozitie accesul la unul dintre noduri sau access la o interfata catre acesta, datele ar putea ajunge in cu totul alte locuri decat era initial prevazut. Efecte? … Suport: Buna ziua! Cu ce va puteam ajuta azi? Client: In contul meu arata ca tocmai am cumparat un apartament si l-am donat unui oarecare X?!?! Ce se intampla? Support: ……….
  7. Cross-Site Request Forgery (CSRF sau XSRF )
    Cross-site request forgery este realizat prin trimiterea catre site-ul tinta, a unui “pachet” HTTP, fara cunostiinta prealabila a userului vizat(care este “cunoscut” de site-ul tinta), a carui origine pare a fi “autentica”. Ca si exemplu … utilizatorul X este logat pe site-ul unei banci, dar logat de asemenea pe un forum de discutii, unde citeste raspunsurile la un topic despre programare. Un alt user Y, membru pe acelasi forum, poate sa posteze o imagine in cadrul topicului vizualizat de utilizatorul X, cu forma <img src=”http://banca.com/depunere.php?suma=1000&moneda=RON&to=Y” alt=”Cele mai tari site-uri de programare” />(consideram ca depunere.php alaturi de cele trei variabile sunt forma standard pentru o depunere pe site-ul respectivei banci). In momentul in care utilizatorul X va intra pe pagina respectivului topic, va “dona” 1000 RON utilizatorului Y, fara sa aiba cunostiinta de acest lucru decat in momentul in care isi va verifica balanta. Cum se intampla acest lucru? Simplu … userul X este autentificat pe site-ul bancii, iar in momentul in care va intra pe pagina cu imaginea postata de userul Y, browserul va trimite un request catre presupusa imagine, care de fapt se refera la pagina de depunere a site-ului bancii si care, deoarece request-ul este trimis de browserul userului X, va considera cererea ca si “legitima”. Forma requestului va fi asemanatoare cu:

    Host: banca.com\r\n
    GET /depunere.php?suma=1000&moneda=RON&to=Y\r\n
    ….
    Cookie: [.....]\r\n
    Connection: close\r\n\r\n

    Finalitatea acestui exemplu? Tocmai ai devenit “donator” fara voie.

  8. Race Condition
    Race Condition este probabil unul dintre cele mai periculoase atacuri existente. Atacatorul se bazeaza pe accesul deplin, castigat asupra unui proces din cadrul unui sistem, folosindu-se de acesta pentru a crea coruperea datelor sau incetarea/ingreunarea functionarii intregului sistem. Cele mai cunoscute efecte ale acestor atacuri  sunt DDoS(Denial of Service) si coruperea datelor. In functie de scara la care sistemul afectat este implementat, efectele pot fi locale sau globale.
  9. Mesaje de eroare care contin date sensibile despre structura sistemului
    Este cert faptul ca, in momentul implementarii unui sistem, mesajele de eroare sunt foarte importante pentru cel care-l implementeaza. Fie ca e vorba de corectarea unor greseli anterioare sau este vorba de imbunatatirea unor interactiuni intre diferite procese ale sistemului, mesajele de eroare sunt foarte eficiente pentru a depista si indrepta potentialele probleme. Reala problema intervine insa cand aceste mesaje, impreuna cu informatii despre structura sistemului sau despre procesele acestuia, sunt afisate catre un utilizator, in momentul in care faza de implementare a luat sfarsit. Dintr-o pornire de “marinimie”, acesta se poate folosi de aceste informatii pentru a afla date sensibile despre sistem si ulterior, pentru a face mici” retusuri” sistemului. Consecintele acestora depind in general de imaginatia userului bine-voitor.
  10. Greseli de alocare si/sau respectare a spatiului de memorie alocat
    Sunt sigur ca toata lumea a auzit, cel putin de o duzina de ori, in aceasta viata despre “overflow” … buffer overflow, integer overflow, mathematical overflow etc. … ca e “buba mare”, cred ca o subintelege toata lumea. In fond termenul suna “periculos”. Probabil ca asta este unul dintre cele mai vechi greseli in programare si unul dintre cele mai dezastruoase. La ce se refera? Este exact ca si cum ti-ai cumpara un pahar de 100ml pentru a bea o sticla de bere de 500ml(ca presupun ca asta beau programatorii moderni :) ). Daca incerci sa torni tot continutul sticlei in pahar, la un moment dat, mai da pe-afara. Cam pe acelasi principiu se bazeaza si overflow-urile din programare. Sa spunem ca cineva concepe un serviciu de plati online, iar valoarea unui parametru este definita ca si Int32(care ia valori intre minus 2,147,483,648 si plus 2,147,483,647). Daca un utilizator neatent sau doar cu “dorinta de afirmare”, va trimite o valoare de genul +2,147,483,648(unde numarul este mai mare cu 1 decat limita superioara a Int32), iar datele nu vor fi verificate de serviciu corect, actiunile ulterioare ale sistemului si consecintele acestor actiuni sunt total imprevizibile. Ce este totusi previzibil … ati dat de belea!

  11. Stocarea datelor importante in locuri accesibile tertilor
    In zilele noastre, aplicatiile depind de informatiile stocate anterior pentru a realiza diferite actiuni. De la  datele folosite personalizarea unei aplicatii(font, culori, nume etc.), pana la date de autentificare la un serviciu, toate acestea au nevoie de un “loc” in care sa fie stocate. Problema intervine cand cele din urma sunt accesibile unei tert, a carui interactiune in logica procesului alocat respectivei actiuni, poate modifica actiunile ulterioare ale aplicatiei. Fie ca este vorba de date stocate ca si cookie-uri, valori in registri, variabile de sistem, parametrii URL sau campuri ascunse in corpul unui form, cineva se va gandi mereu cum sa faca in asa fel incat lucrurile sa mearga prost. Si de obicei, cand lucrurile merg prost, fiti siguri ca vor merge mai prost, decat cea mai sumbra estimare pe care ati avea-o. Encodarea base64 sau encodarea URL, NU asigura securitatea sau integritatea datelor.
  12. Alterarea unei cai spre un fisier sau director, prin “ajutorul” nemijlocit al unui utilizator
    In momentul in care aplicatia se bazeaza, pentru o actiune asupra unui fisier sau director, pe datele venite de la user, iar acestea nu sunt verificate corect, scenariile pot fi extrem de sumbre. Un exemplu tipic ar fi incarcarea unui fisier de cod, exterior explicatiei, pe baza inputului unui user, pentru a raspunde nevoilor acestuia. Daca in mod normal calea ar fi /server/user/include/actiune.php, dar userul introduce ../secret.php, fara verificarea corecta a datelor primite, aplicatia va ajunge sa ruleze cu totul altceva. Din nou acelasi utilizator “marinimos”, ar putea sa va “ajute” sa va stergeti complet baza de date … GRATIS, sa modificati fisiere, care in mod normal, sunt interzise pentru editare utilizatorilor obisnuiti etc. Scenarii similare se pot construi pe baza accesului exterior  la un fisier pe baza unui link simbolic, care permite editarea/salvarea unui fisier fara ca utilizatorul sa aiba acces expres la respetivul fisier.
  13. Includerea si folosirea fisierul din locuri neverificate sau nesigure
    Furnizarea unei cai verificate si sigure este foarte importanta pentru buna functionare a aplicatiei si pentru evitarea interactiunilor “neprevazute”. Daca un utilizator reuseste alterarea acestei cai, acesta va putea incerca  propriile resurse, fisiere de configurare sau librarii.
  14. Controlul deficitar asupra codului executat (sau ‘Code Injection’)
    Probabil ca acesta este unul dintre cele mai vaste capitole ale erorilor de programare si ale urmarilor acestora. Generarea si rularea dinamica a codului este unul dintre cele mai frumoase lucruri ale programarii zilelor noastre. Problema intervine cand acest cod este furnizat de catre o persoana din exteriorul sistemului sau executia codului poate fi modificata de persoana respectiva sub o forma sau alta. Sunt sigur ca toata lumea a auzit de hack-uri in WoW, Lineage sau alte jocuri, crack-uri pentru diferite programe, patch-uri pentru aplicatii si cate si mai cate. Acestea sunt exemple directe ale “code injection”( in cea mai mare parte), si ofera  o privire de ansamblu asupra urmarilor unei astfel de brese.
  15. Rulare de cod, fara verificarea in prealabil a acestuia
    Cred ca nu exista programator sau utilizator in zilele de azi care sa nu fi downloadat macar o data in viata, o bucata de cod, un program, un instrument pentru “usurarea” muncii, un player de filme, un fisier piratat sau mai stiu eu ce alt program sau fisier. Acum si partea frumoasa … un atacator ar putea prelua controlul asupra site-ului preferat de download sau sa foloseasca metode ca DNS spoofing sau cache poisoning pentru a va “servi” un fisier la promotie … 2 in 1 sau aplicatia/fisierul dorit plus un mic “cadou”. In functie de cadou, veti regreta mai mult sau mai putin  momentul in care ati apasat “Download” si veti privi sau nu, cu ochii goi, tavanul, intrebandu-va “De ce tocmai eu?”. Daca veti realiza ca ati introdus si parola de administrator, atunci cand sistemul v-a intrebat blajin “Esti sigur ca vrei sa faci asta?”, regretul  va persista probabil pana la urmatoarea reinstalare.
  16. Stergerea incorecta a datelor folosite, la terminarea sesiunii
    La momentul terminarii ciclului de viata al unei aplicatii este foarte important ca toate resursele utilizate sa fie sterse si/sau neinitializate. Nerealizarea acestor actiuni da posibilitatea unui potential atacator, sa obtina si sa mentina controlul asupra respectivelor resurse, pentru scopuri care nu au vreo legatura cu aplicatia sau cu buna functionare a acesteia. Ganditi-va ce-ar face un potential “fan”, de exemplu, cu pagina personala de la banca sau cu contul de PayPal. Vorba reclamei: mouse …  30 lei, tastatura … 50 lei, internet 100 lei … satisfactia de-ati vedea cardul folosit de inca 10 persoane … nemasurata.
  17. Initializarea incorecta
    Initializarea incorecta a variabilelor sau resurselor unui program, pot da sansa unui atacator sa sustraga informatii vitale despre aplicatie sau sa initializeze aceste variable “inaintea” aplicatiei. Daca acestea contin date de autentificare sau alte date importante, asociate unui grad de securitate mai mare decat cel al unui utilizator obisnuit, poti sa spui din tot sufletul “Houston! We have a problem!”.
  18. Matematica bat-o vina
    Neverificarea corecta a valorilor numerice introduse de utilizator poate avea efecte distrugatoare. Sa luam ca si exemplu un program care afiseaza cate beri din lada proaspat cumparata, ii revin fiecarui programator, in functie de numarul acestora. Un utilizator care nu agreeaza acest lucru, si anume ca programatorii sa bea bere, nici chiar in timpul liber, ar putea introduce valoarea 0. Din pacate 24/0 o sa rezulte intr-o eroare numita “Division by zero”. Urmarile in cadrul aplicatiei nu pot fi prevazute cu exactitate, dar este cert ca aplicatia nu va functiona cum era prevazut fara o verificare a valorilor introduse de utilizator.
  19. Verificare incorecta a autentificarii pentru o intreprinderea unei actiuni
    Cred ca aceasta eroare nu mai are nevoie de nici o prezentare … in cazul in care codul asociat  verificarii autenticitatii unei autentificari contine erori de logica sau de programare, mai e doar o linie de cod de adaugat print “Game Over”;
  20. Utilizarea unor metode criptografice vulnerabile
    Nu mai e pentru nimeni un secret, ca, spre exemplu, MD5-ul s-a dovedit a nu fi un algoritm de hashing perfect, cum se credea la inceput. Matematicienii au demonstrat ca e susceptibil la hash collision, care mai babeste inseamna ca exista doua valori pentru care va fi mereu generat acelasi hash. Intrucat acest algoritm s-a folosit(si inca se mai foloseste) la scara larga pentru securizarea parolelor in bazele de date, putem sa ne amintim de maxima … un sistem este la fel de sigur ca si cea mai slaba veriga din cadrul sau.
  21. Parolele Hard-Coded
    Hard-coding -ul presupune integrarea direct in aplicatia, a unor valori sau resurse pentru uzul ulterior. In general aceste resurse sunt folosite pentru metodele software antipiracy sau pentru date sensibile cum ar fi parole sau date de autentificare. Problema apare cand acestea sunt descoperite de un programator destoinic/reverse-engineer, iar respectiva resursa este folosita in cadrul aplicatiei  la nivel larg. Problema se adanceste in momentul in care este nevoie de “corectarea” problemei …
  22. Alocarea incorecta a permisiunilor pentru resursele critice
    In general in momentul implementarii, nimeni nu-si bate capul cu permisiunile fisierelor in mediul de test. Problemele apar in momentul in care aplicatia este pusa la lucru. Un exemplu, ar fi un CMS a carui fisier de configurare are acces public, pentru a scrie niste valori de initializare la prima rulare, iar ulterior scrierii acestora, ramane cu acelasi nivel de acces. Posesorul acestui CMS va experimenta in mod sigur, “creativitatea” catorva dintre utilizatori. Asadar, pe cat posibil, in momentul “livrarii” unei aplicatii este important ca aceasta sa vina cu setarile de securitate corecte. In marea majoritate a cazurilor, cei care folosesc aplicatiile nu cunosc implicatiile unei astfel de “omisiuni” si-n cele mai multe cazuri probabil ca vor inrosi linia telefonica intreband “Unde e site-ul meu? Era aici acum 2 minute. Sa se fi stricat ceva fiindca am apasat pe Logout?”.
  23. Datul cu zarul nu e intotdeauna cel mai sigur
    Majoritatea programelor depind de valori aleatoare pentru a fi folosite in sesiuni, nume de fisiere, valori stocate in cookie-uri etc. In general sunt folosite Pseudo-Random Number Generators (PRNG), singura problema fiind faptul ca in momentul in care un atacator va afla algoritmul folosit, va fi capabil sa anticipeze seria valorilor aleatoare generate. Probabil ca in prima faza vei fi tentat sa citesti pe wikipedia mai multe despre Merlin, dar acest tip de atac nu are de-a face cu magia, cat are de a face cu matematica si cunostiintele informatice. Depinzand de scopul in care sunt folosite valorile aleatoare, impactul asupra sistemului poate fi mai mic sau mai mare. In general tinde spre a doua varianta.
  24. Persistenta privilegiilor mai mult decat e nevoie
    Probabil ca aceasta greseala este foarte familiara multora din vremurilor Microsoft Windows 98, Me, chiar si XP(SP1 daca nu ma insel). Combinatia intre lipsa de cunostiinte a utilizatorului si/sau lipsa de informare din partea sistemului de operare asupra riscurilor care le implica rularea acestuia cu drepturi de administrator, a dus de multe ori la pierderi de date, virusi care de care mai hrapareti si instalari nesfarsite ale sistemului de operare. Asadar, perpetuarea drepturilor in cadrul aplicatiei asupra resurselor critice, mai mult decat este nevoie, duce in cele mai multe cazuri la probleme grave.
  25. “Increderea” in corectitudinea datelor verificate de catre client
    Intr-o arhitectura, server-client, niciodata nu ar trebui sa acordati “incredere” datelor primite de la utilizator, doar pentru ca software-ul care serveste drept “client” are implementate proceduri de verificare a datelor. Reverse-engineering-ul e o realitate a zilelor noastre, iar la multitudinea de debuggere  existente pe piata si la capacitatile lor tot mai avansate, cineva s-ar putea “familiariza” destul de repede cu modul in care functioneaza aplicatia si sa-si “incropeasca” un client facut special pentru a va “roda” aplicatia. Singura problema este ca, cel mai probabil, acesta nu va va trimite benchmark-urile sau vreo sugestie binevoitoare.

    Cam asta ar fi topul celor mai frecvente si periculoase greseli in programare. Multe dintre ele probabil ca toti le-am facut la inceputul vietii de programator, probabil ca unele le vom mai face(sper sa fie din cele care au ramas in afara topului). Oricum Microsoft si Linux Foundation au pus temelia unei colaborari in vederea eradicarii situatilor in care bug-urile software-urilor comerciale provoaca pierderi de partea clientului, dar acesta nu poate face nimic intrucat user agreement-ul cu care a fost de acord la instalarea programului, spune ca realizatorul software-ului nu poate fi acuzat de eventualele consecinte negative ale functionarii anormale a acestuia. Pana una alta sa speram ca Windows 7 nu va fi fiasco-ul pe care-l intrevedem multi dintre noi. :) )

Tags: , , , , , , ,

SHOC: Corbii vor fi capabili sa navigheze pe Internet

Probabil ca pentru moment, acest lucru nu se va intampla :) , dar ce este cert, conform ultimelor experimente conduse de cercetatorii de la Oxford, ca aceste animale sunt capabile de o logica impresionanta. In urma unui recent experiment, corbii au reusit sa demonstreze ca fabula lui Esop este de fapt un lucru cat se poate de real, dupa ce, au reusit sa bea apa dintr-un vas inalt, umplut pe sfert cu apa, aruncand pietre in interiorul acestuia pentru a ajunge la pretiosul lichid. Tot in cadrul acestui experiment, cercetatorii au demonstrat de asemenea, in alte conditii, capacitatea corbilor de a folosi diverse obiecte spre a ajunge la apa sau mancare, acestia dovedind o ingeniozitate apropiata de cea umana.

Pana la momentul actual doar urangutanii sunt cei care pot rivaliza cu aceste pasari la nivelul de inteligenta.

Pana una alta, un fimulet care atesta inteligenta corbilor:

Tags: , , , , , ,

Snookerul international in Romania

Nu stiu cati romani urmaresc la momentul de fata competitiile internationale de snooker, dar este cert ca in Romania snookerul nu se bucura de sprijinul pe care ar trebui sa-l aiba un astfel de sport nobil. Si cand spun nobil, nu exagerez cu nimic. Sunt sigur ca sunt multi cei care s-au saturat de toti tembelii care se-njura si se spurca la meciurile de fotbal, sau distrug diverse lucruri, doar pentru ca, prin faptul ca sunt suporterii unei echipe, se cred mai speciali sau deosebiti ca si altii.

Oricum – revenind la subiect – anul 2010 ofera sansa Romaniei de a organiza Campionatul European de Snooker, una dintre cele mai prestigioase evenimente din domeniul snooker-ului amator si totodata, in acest an, va lua fiinta Liga Nationala de Snooker, unul dintre lucrurile pe care sincer le astept de ceva vreme. “Ostilitatile” se vor desfasura la hotelul Rin Grand Hotel din Bucuresti,  anuntandu-se surprize de proportii, referindu-ne la cei care vor face parte din invitatii acestui turneu(sper ca numele vehiculate sa nu fie doar pentru a spori “interesul” pentru acest eveniment). In fond sunt sigur ca sunt multi cei care ar vrea sa-i vada pe O’Sullivan, Day, Maguire, Murphy,Hendry, Higgins,Selby, Fu sau oricare dintre jucatorii celebrii de snooker, care m-au/ne-au uimit de-a lungul ultimilor ani cu prestatiile lor pline de maiestrie si ne-au entuziasmat cu loviturile lor de multe ori, geniale.

Desi, pentru moment, Romania, nu detine jucatori de talia numelor enumerate mai sus(cel mai bun break de pana acum realizat de un “roman” a fost cel al lui Babken Melkonyan, pe 30 ianuarie 2008 la turneul King’s Club, de 103 puncte), cred cu tarie ca Romania, cu putin suport din partea iubitorilor acestui sport, va putea ajunge in cativa ani, sa poata concura cu fruntea sus in competitiile internationale de snooker. In fond asta pare a fi si intentia Federatiei Romane de Snooker si anume promovarea in cativa ani a unui sportiv roman in liga profesionista de snooker.Totul tine de noi, iubitorii acestui sport, sa ducem numele si mentalitatea acestui joc, “where no one has gone before” si anume in Romania actuala, unde sporturi de acest gen ar trebui pretuite si incurajate. Sa speram ca aceasta initiativa nu va sfarsi ca oricare alta … si anume sa moara la nastere.

Urez de pe acum succes snooker-ului romanesc si sper sa ne vedem in 2010 la RIN Grand Hotel, iar dupa aceea, peste cativa ani, in competitiile de top ale lumii snooker-ului.

romanian snooker, romania snooker, romanian snooker fan

Tags: , , , , , , , , , , ,

Awaiting for Merlin season 2 …

I never thought that series like Merlin will catch my attention, but well …. it did. Merlin is a production of BBC Wales, with a first season of only 13 episodes.

Though i was skeptic in the begining about this serial, i must  agree that i was wrong :| .
I found in this serial one of the best castings ever  and most of all, i`ve heard one of the most incredible soundtracks ever written by who else, but Robert Lane. The soundtrack simply transfers you into another world by its genius and gets you right in the middle of the action. Though there are some “weak” moments in the plot and some hesitation in some of the acts, Merlin is still one of the best serials i`ve ever watched. Colin Morgan does more than a wonderful job in the role of Merlin, as Bradley James does the same wonderful job in the role of Arthur. The same goes for Richard Wilson(the most convincing role, outstanding performance), Katie McGrath(Morgana) and Angel Coulby(Guinevere).To be honest i never heard before of any of these actors(silly me), but they’re doing a wonderful job in these series. I’m surely waiting for the next season of Merlin, because it seems to be one of the most promising serials around(of course only if you’re tired of all of the crappy Hollywood-like soaps).

However, the serial is coming back with a new season, as BBC signed up for it, which apparently will be shoot starting with the first part of 2009, and go public around the end of september 2009 for the UK viewers.

It appers that the new season will bring to stage some well-known actors like: Charles Dance(the witchfinder Aredian), Adrian Lester(the schemer Myror), Mackenzie Crook(Cedric), Sarah Parish(Lady Catrina) and finally Santiago Cabrera(whose performance I enjoyed in the first season) will be back as Lancelot.

Till a new season of Merlin, i invite every1 who’s interested to listen to the marveleous soundtrack of Merlin, written by the genius Robert Lane.

Robert Lane – The Call of Destiny/Titles

Robert Lane – Merlin Lost

(* hoping that
John Hurt, Colin Morgan, Bradley James, Anthony Head, Richard Wilson, Katie McGrath and Angel Coulb will be back VERY soon)Merlin, Merlin Series, Merlin wizard

(Thanks for some of the information go to imdb.)

Tags: , , , , , , , , , , ,