Jun 06 2008

Fac ce vreau si stiu ce fac(!?)

Category: English posts,MiscellaneousIuliana @ 8:55

Cica suntem o tara democrata. La fel si cei de la care ne-am inspirat, Us, Uk, Spania, Italia, etc. Si atunci daca suntem asa de democrati de ce pana mea ne doare capul ce fac altii si de ce atatea campanii impotriva consumului de tutun, alcool, avorturi, violenta domestica si restul? Chiar sunt organizatorii acelor campanii increzatori, ca doar privind o imagine sau privindu-i pe ei marsaluind se va schimba ceva? Se va lasa vreun fumator de fumat? O tipa care stie ca nu are cum sa isi ingrijeasca copilul nenascut nu va avorta? Un om al carui viata e praf si pulbere va renunta la cinzeaca de otrava care il ajuta pentru cateva momente sa vada totul in roz?Nu!Nici unul din cei enumerati mai sus nu va fi impresionat de campaniile respective. Pentru ca poate face o poza cat o mie de cuvinte, dar oamenii nu sunt impresionati de poze in asa hal incat sa-si shimbe viata. Nu sunt impresionati nici de documentare. Pentru ca daca ar fi asa si documentare ca Zitgeist, The Decline and Fall of America, The Awful Truth si-ar fi atins telul, deja am trai intr-o lume mai buna. Dar nimic nu s-a schimbat, mai mult totul merge inspre mai rau sau poate nu a fost niciodata mai bine, doar am fost eu destul de norocoasa sa traiesc intr-o micuta societate care m-a protejat ani buni de toate relele astea.
Omul este cel mai prost animal si exact ca si animalele nu se invata minte nici atunci cand sufera de pe urma prostiei lui. Oricat am fi de sus urcati pe scara sociala, oricat de educati si oricat de religiosi am fi, inevitabil suntem toti la fel. Si nu, nu ma exclud din categoria oameni, doar constientizez o trasatura umana pe care inteligenta mea nu o poate invinge, pentru ca la urma urmei sunt doar un om.

[English: I do what I want and I know what I do(!?)]

We say we are a democratic country. So are the countries that inspired us, US, UK, Spain, Italy, etc. So if we are so fucking democratic, why the hell do we care about what others do and why do we have so many campaigns against smoking, abortion, domestic violence and others? Do the guys that organize those campaigns really think that by watching an image or watching them marching will make a difference? Will a smoker quit smoking? Will a girl that knows the she can’t offer her unborn child a good life stop thinking about abortion?Will a man which life’s a mess give up alcohol, the only thing in the world that helps him see his life a little more pink?No!Neither of the ones mentioned will not be impressed by those campaigns. Because a picture might worth a thousand words, but people are not impressed by pictures that much as to change their lives. The are nor even impressed by documentaries. Because it it were so, and if documentaries like Zitgeist,The Decline and Fall of America, The Awful Truth wold have made a difference, we would already be living in a better world. But nothing is changed, everything seems to be going worse, even , or maybe it was never better and I just was one of the lucky ones that lived in a small society that protected me against some evils of this world.

Man is the worst animal, and exactly as animals, he never learns his lesson, not even when he ends up suffering from his own stupidity. No mater how rich we are, no mater how educated we are, or how religious we are, we are all the same. And no, I’m not excluding myself from the human race, I’m just stating a fact, no mater how intelligent I think I am, this cannot change the fact that in the end, I’m only human.


Jun 05 2008

Java Certification Exams again :D

Category: TechnicalIuliana @ 11:36

Given the exibit:
void waitForSignal(){
Object obj = new Object();
synchronized(Thread.currentThread()) {
obj.wait();
obj.notify;
}
}

Which statement is true?

  1. This code may throw an InterruptedExeption.
  2. This code may throw an IllegalStateException.
  3. This code may throw a TimeOutException after ten minutes.
  4. This code will not compile unless “obj.wait()” is replaced with “((Thread) obj)”

Chestia asta este destul de ciudata. La prima vedere putem spune ca metoda respectiva arunca o exceptie de tipul InterruptedException, exceptie tipica pentru lucrul cu apeluri asincrone. Avand in vedere ca metoda nu contine in semnatura ei clauza throws InterruptedException din start raspunsul este “This code does not compile. ” Varianta oficiala e B cica. Varianta corecta nu apare in lista de mai sus. Doar atat am gasit in varianta asta de teste pentru certificari java 1.5. Mai erau vreo cateva dar erau evidente greselile de sintaxa asa ca nu avea rost sa comentez.


May 16 2008

De pe ici pe colo

Category: Miscellaneous,TechnicalRpx @ 12:43

De pe ici pe colo am dat pe google peste blogul unui big lazy sysadmin (sau cel putin asa se autocaracterizeaza). Nu mai conteaza ca eu dadusem search pentru termenul “openvpn”, insa ce-am gasit pe acel blog m-a lasat cu o impresie placuta. La fel de agitat si acid ca si mine in domeniu, insa cu mult mai mult timp liber se pare :)

Anyway, la ce vroiam de fapt sa ajung, ceea ce a povestit el acolo m-a facut sa-mi aduc aminte de vremurile vechi (eh, poate nu chiar asa vechi, acum circa 10 ani) cand ministerul de interne folosea inca calculatoare 386/486 marca Packard-Bell, un  Novell Netware antic drept sistem de operare si modem-uri de 4800 bps pentru comunicare marca Hayes. Daca vi se pare ca aceste echipamente erau obsolete chiar si pentru acea perioada, nu va inselati deloc. Dar chestia si mai deranjanta era ca pe toata frontiera modovei (adica de la galati pana la suceava) era un singur sysadmin (dumnezeu sa-l odihneasca). Pe vremea aia, eu copchil mic si prost fiind, eram uluit de cate chestii stia si cat de vasta era “baza lui de date” cu cunostinte, insa remarc acum ca de fapt si de drept chiar si pentru acele echipamente si sisteme de operare, configurarile facute erau o varza totala (recunosc ca ma amuzam tare cand mama vlahoslovea 3 zile dupa ce venea sysadminul sa-si faca sesiunea de “mentenanta”). Se naste si intrebarea… de ce?…  si inevitabil, fara prea mult efort de gandire, aflu si raspunsul: Banii! Imi aduc foarte bine aminte cum omuletul isi plangea de mila cum ca primeste mai putini bani decat dactilografa de la centrul de comunicatii, insa n-avea ce face pentru ca nu vroia sa riste plecarea la un alt loc de munca.

Recent auzisem de la mama ca au angajat la MAI o suita de noi absolventi ca administratori de sisteme. Chiar sunt curios sa vad cat de bine sunt platiti in ziua de azi, desi probabil nu li se aloca nici in ziua de azi cine-ste buget. Trist, avand in vedere ca acesti oameni ar trebui sa fie o resursa vitala, mai ales in Ministerul Administratiei si Internelor…


May 08 2008

The next episode… Encodings

Category: TechnicalRpx @ 15:02

Cu totii (sau ma rog… marea majoritate) stim ce e un charset si cum sunt reprezentate caracterele pe biti. Cine a avut Windows ’95 (si chiar ’98 daca nu ma inseala memoria)isi poate aduce aminte clar de problemele ce apareau atunci cand vroiai sa deschizi un document cu caractere diacritice si nu aveai configurat sistemul pe “Eastern European”. Cel putin de la Windows 2000 incoace, UTF-8 ne-a rezolvat marea majoritate a problemelor de acest gen.

Nu de mult, a aparut “pe piata” noul UTF-16.Bineinteles, cum era de asteptat, nu e chiar backwards-compatible cu predecesorul sau, UTF-8. E lesne de inteles, avand in vedere ca reprezentarea sa necesita de 2 ori mai multi biti… De unde apare si problema, dar de aceasta data “pă net”. De la ce m-am luat?

Prima zi la noul servici, dupa ce mi-am instalat sistemul, domnul Firefox a decis de la sine putere sa se autoconfigureze pe UTF-16. Care si cum, juma’te din site-urile web nu mi se mai deschideau. Adica se deschideau ele intr-o parere, dar aratau doar caractere de’ampulea si chinezarii. Printre aceste site-uri se numarau Yahoo! Mail si http://java.sun.com. Pana una-alta, dupa cateva ore de umplut frigidere cu carne si chinuit firefoxu’, am rezolvat problema (evident, setand FF’ul sa foloseasca UTF-8).

In actualul proiect, trebuie sa culeg informatii de pe un server de web. Paginile intoarse sunt in format XML, iar serverul (IIS of course, cum foloseste orice companie ce se respecta) “cunoaste” doar pana la UTF-8. Proiectul face uz de libxml2 care vine de felul sau si cu un engine micut de FTP/HTTP. Si am zis eu… “de ce sa nu-l folosesc? De ce sa ma chinui sa trag o pagina XML in 20 de linii cand pot sa o fac intr-o singura linie de cod?” Se pare ca inevitabil am aflat si raspunsul la aceasta intrebare…

Aparent, libxml2 cauta in sistem sa vada care e cel mai “vast” charset disponibil (evident UTF-16 pe mai toate sistemele Linux moderne). Nu stiu cum si ce face el ca sa converteasca pe acolo, insa rezultatul obtinut numai XML nu era (din nou… barzauni si chinezarii). Caut eu ce caut si gasesc prin doace ceva ceva… Fara a ramane mirat, aflu ca trebuie sa-i specific charsetul manual (dooh!). Dar, (intotdeauna exista un “dar”) pentru a face asta, trebuia sa creez un context HTTP, sa declar headere-le si modul de preluare (GET/POST) si toate celelalte balarii ale protocolului. Cu alte cuvinte, ajunsesem inapoi la cele 20 de linii de cod de care am incercat sa scap cu atat de mult zel.

Heh… cel putin merge :)


May 07 2008

Cu si despre pointeri…

Category: Miscellaneous,TechnicalRpx @ 22:47

Lucrez de o vreme la un proiect de dimensiuni relativ mari (pentru o singura persoana) si ma tot lovesc de diferite probleme si problemute. In general, nu dureaza prea mult pana la gasirea unei solutii, insa sunt niste detalii care uneori iti fac viata amara. Pointerii sunt unul dintre aceste detalii.

Cu totii stim de transmiterea parametrilor in C. Prin valoare, prin referinta… in functie de ce ne trebuie. Asta e clar… insa imaginati-va urmatorul scenariu:

Am un pointer (sa zicem la int). Am o metoda in care vreau sa modific adresa respectivului pointer. O solutie (aparent evidenta) ar fi:

void f(int* p){
p=10;
}
int main(){
int *p;
p=5;
printf("%d\n",p);
f(p);
printf("%d\n",p);
return 0;
}

Output:
5
5

Solutia corecta?

void f(int** p){
*p=10;
}
int main(){
int *p;
p=5;
printf("%d\n",p);
f(&p);
printf("%d\n",p);
return 0;
}

Output:
5
10

Deci teoretic (cat si practic) pentru a modifica adresa pointata de catre pointer, trebuie sa declar parametrul ca pointer-la-pointer si sa trimit la apel adresa variabilei pointer… Nu stiu cat de evidenta e varianta a doua pentru majoritatea coderilor in C, insa mie mi-a luat putin sa ma prind de ce pointerii mei nu-si modificau adresele retinute…


Apr 14 2008

Starcraft goes “No-CD”

Category: Miscellaneous,TechnicalRpx @ 14:56

Vesti bune pentru fanii jocului Starcraft.

Blizzard a decis sa nu mai ceara jucatorilor verificarea CD-ului Starcraft.

——————————————————————————–
– patch 1.15.2
——————————————————————————–

Feature Changes

– StarCraft and StarCraft: BroodWar no longer require the CD while playing the
game.  To play without the CD, please follow the following instructions:

– Windows Users:
– Make sure you have “Hide extensions for known types” unchecked under
Explorer Folder Options.
– If you own only StarCraft, copy “INSTALL.EXE” from the StarCraft CD to
your StarCraft folder and rename it to “StarCraft.mpq”.
– If you own StarCraft: Brood War, copy “INSTALL.EXE” from the StarCraft:
Brood War CD to your StarCraft folder and rename it to “BroodWar.mpq”.

extras din Patch notes

Pe langa elimitarea necesitatii CD-ului din unitate (sau a unei imagini pe hard), acest lucru va elimina necesitatea loader-elor virtuale sau a crack-urilor NO-CD si va permite in acelasi timp update-ul jocului fara a fi necesara si cautarea unor noi versiuni de crack/loader pentru cei ce nu s-au gandit sa cumpere jocul.

Acesta nu e primul exemplu de acest fel. In patch-ul 1.66, acum un an, Bioware a eliminat verificarea CD-ului in jocul Neverwinter Nights.


Apr 12 2008

Welcome back Demonoid!

Category: Miscellaneous,TechnicalRpx @ 11:58

Dupa cum bine stiti, acum 6 luni de zile, trackerul Demonoid a fost fortat de catre autoritatile canadiene sa isi inceteze activitatea.

Se pare ca intr-un final, dracusorul verde si-a regasit drumul spre utilizatorii sai pe 11 Aprilie, adica ieri :)

Inregistrarile de useri noi sunt inchise pentru moment, insa se pare ca userii vechi inca se pot loga.

Long live Demonoid!!