marți, 13 ianuarie 2009

[IOM]Temele noastre 4

Interfata grafica pentru cautare de loguri de instant messenger

Sorin: C#


































Adelina:html+js





























Bogdan: Java2SE




















Titu : Jsp + HTML



[BORG]Si desertul ...

Tablete Toffee de caramel

* 6 x bomboaneToffee
* 1 1/4 cani faina
* 1/4 cana zahar
* 1/2 lg sare
* 1/2 cana unt, taiat in bucatele
* 1/4 cana unt, taiat in bucatele
* 2 lg sirop porumb
* 2 lg apa
* 1 1/2 cani fulgi de ciocolata


1.Tineti bomboanele în congelator pentru cel puţin o oră înainte de a face. De bază, combina făină, zahăr şi sare. Taiati ½ ceasca de unt cu degetele sau cu ajutorul a unui cuţit si puneti în tava. Lasati la copt 20 de minute, până ce marginile începe sa devina maro uşor. Se lasă să se răcească.
2. Pentru stratul de caramel , îndepărtaţi bomboanele de la congelator şi puneti-le într-o pungă etansa. Zdrobiti în bucăţi mici. Se toarnă într-o sosiera bucăţi mici si lasati o rezerva ½ ceasca de bucati. Adaugati ¼ ceaşcă unt, sirop de porumb pentru a topi la foc mediu, amestecand incontinuu. Coaceţi timp de 10 minute, până când fierbe caramelul. Se lasă să se răcească.
3. Pentru ciocolata de deasupra.Topiti fulgii de ciocolata cu restul de 3 lingurite de unt într-un castron în cuptorul cu microunde pe mediu de energie termică. Amestecati la intervale de 10 secunde.

luni, 12 ianuarie 2009

[IOM]Microsoft Surface - cutiuta cu minuni

Trezindu-ma asa de dimineata pornit sa scriu un articol nou nout pe blogul nostru cel de toate zilele, dau search pe google dupa un subiect "fierbinte". Incerc din rasputeri sa gasesc ceva tehnic deoarece managerul meu de proiect mi-a comunicat ca trebuie sa scriu ceva si din minunata si controversata lume a tehnologiei.
Ce-mi trazneste mie prin cap e sa caut pe google "minuni tehnologice 2009" si ce credeti ca gasesc? Aveti 3 incercari..ei bine ati ghicit, o noua inovatie in materie de tehnica de la Microsoft, si anume MIcrosoft Surface.
Oare ce este acest gadget? O "chestie" care seamana cu o masuta in partea de sus si cu o cadita de plastic acoperita in partea de jos. Ascuns bine in interior se afla un sistem ce ruleaza Vista, iar ca interfata utilizator are un ecran tactil (mai corect multi tactil :) ) de 76 cm si 5 camere video (probabil folosite la identificarea obiectelor).


E minunat sa ai un asemenea calculator care poate fi folosit si ca masa inteligenta pentru ca recunoaste obiectele care sunt asezate pe display si poate interactiona cu ele. Fantastic! Am vazut in prezentare cat de usor va fi sa descarcam pozele dintr-un aparat foto digital asezat pe masa Microsoft si cum putem sa le transferam la fel de usor in telefonul Pocket PC asezat si acesta pe masa-display, sau cum se pot realiza tranzactii financiare la fel de usor si natural cu cardul bancar asezat (ati ghicit) tot pe masa-display.
Bineinteles acest device nu este pentru oricine, doar pentru categoria VIP..deoarece costa in jur de 10000$. Cam scump pentru buzunarele romanilor,nu? Dar va las sa va faceti o idee din filmuletul urmator:

sâmbătă, 10 ianuarie 2009

[BORG]Burse de studiu in strainatate – investeste in tine

Cel mai greu pas in toata afacerea asta e sa afli de existenta unei astfel de burse si sa indraznesti. Poate ai vazut deja pe site-ul facultatii, poate ai zarit un afis la avizier (apar in special in perioada februarie-martie), ori intr-o revista ce se distribuie gratuit, sau ai prins o frantura dintr-o conversatie, etc. Mai ramane sa indraznesti. Eu am avut ocazia sa cunosc un beneficiar al unei burse Erasmus. Au fost de ajuns cateva minute ca sa ma faca constient de importanta detinerii unui astfel de atu si de usurinta cu care se poate obtine. Am sa iti impartasesc in continuare cateva impresii, sfaturi, informatii, in speranta de a te face curios si de a te ajuta sa iei o initiativa.


Totul incepe cu un dosar pe care trebuie sa ti-l aprobe mai marii facultatii, in limita locurilor disponibile pentru tara/facultatea pt care ai optat (de cele mai multe ori e vb de o lista predefinita de optiuni). Informatiile in legatura cu ce ai nevoie pentru dosar se gasesc ori pe site-uri, ori la aviziere, e totul cat se poate de transparent. Cel mai usor e sa iei contactul cu un fost bursier (daca esti interesat iti pot oferi contactul pentru Erasmus). Ca sa nu te descurajezi din start, iti spun ca nu e nevoie de note mari, nici de foarte multi bani. In schimb, rabdare si vointa.
Formalitatile de plecare in strainatate variaza ca timp si volum in functie de destinatie. Pentru inceput e nevoie de ceva banuti pentru documente, bilet de avion si instalare. Bursa poate include cazare, plata integrala a studiilor, bani de buzunar suficienti cat si pentru ceva vizite si shopping. Este foarte important sa te asiguri de toate detaliile inainte de a pleca.


Odata ajuns acolo, iti dai seama ca efortul functionaresc pe care l-ai depus la inceput merita cu varf si indesat. De la cursuri, profesori, tehnologie,nivelul de trai, colegi, prieteni, mentalitati, atmosfera, totul e spre a te convinge ca meriti ceva mai bun.
Burse exista cu nemiluita: Erasmus, Socrates, Leonardo da Vinci, Fundatia Dan Voiculescu, Fundatia Dinu Patriciu si multe altele. La fel si informatii despre cum le poti accesa.
Ca sa pun si cireasa de pe tort, iti recomand ca si varianta artistica a incercarii de a te convinge filmul ”L’auberge espagnole” (impresiile unui Erasmus francez in Spania), un search pe youtube cu Erasmus sau aici si un site

Take the opportunity! Change your life!

[IE] Cum sa construiesti o interfata grafica cu NetBeans?

Voi face o mica prezentare despre cum puteti construi o interfata grafica in NetBeans. Versiunea pe care am folosit-o este 6.1 si o puteti descarca de aici. Pentru a crea un proiect cu interfata grafica mergeti in File->New Project si va aparea fereastra de mai jos
Dupa ce selectati Java Desktop Application apasati Next si va aparea aceasta fereastra
unde introduceti numele proiectului. Aici puteti alege intr-o aplicatie de baza sau o aplicatie CRUD(create,read,update,delete) care foloseste o baza de date.
Selectati Basic Application si apasati pe Finish.

In partea stanga sus apar pachetele create automat de NetBeans. Tot aici sunt si librariile(fisierele cu extensia jar) de care aveti nevoie pentru a rula aplicatia.
Selectati Source pentru a vedea continutul fisierului DesktopApplication1View.java sau Design pentru a previzualiza fereastra. In partea stanga sus apar componentele pe care le puteti adauga la fereastra (adaugati prin drag and drop).

[BORG]Mici sfaturi pentru o calatorie la Roma

Un bilet la Colina Palatina include si intrarea la Coliseu. Cumparand de aici biletul, veti evita cozile lungi formate la una dintre cladirile cele mai reprezentative.
Pentru a vizita Galeria Borghese orarul este marti-duminica, 9-19:30 si se intra din doua in doua ore de la 9 la 17; este indicat sa va faceti rezervare.
Din statia de metrou Termini se poate schimba magistrala de metrou si in aceasta zona sunt multe hoteluri de 2,3 stele. In zilele de sarbatoare programul de metrou este schimbat.
Seara privelistea din castelul Sant' Angelo e minunata.
Studentii prefera sa se duca prin barurile din Trastevere si din Campo de' Fiori sau in cluburile din Testaccio, ca si pe langa Fantana Trevi si Treptele Spaniole.
Obiectivele turistice pot fi vizitate printr-o multime de agentii, de la cele nationale, pana la municipale si private, asa ca preturile variaza. Muzeele nationale sunt gratuite pentru pentru cei sub 18 si peste 60 ani pentru aproape toate natiunile. Una dintre cele mai bune afaceri este biletul valabil o zi intreaga de 20,7 €, bun pentru Colosseum, Palatin, monumentele de pe Via Appia si pentru diversele muzee apartinand Muzeului National.
Muzeele din Vatican au intrarea libera in ultima duminica a fiecarei luni, dar acest lucru este foarte cunoscut asa ca atunci muzeele sunt ticsite (coada se intindea pe aproape un kilometru).

luni, 5 ianuarie 2009

[IOM] GTK continuare

Aici voi prezenta fereastra de conversatie pentru messenger:

Crearea GtkWindow este la fel ca in cazul ferestrei de login

Din nou adaug un box pricipal ce contine toate elementele

main_box=gtk_vbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (main_box), 2);

Creare Text Area(aici se vede conversatia)

msg_text_area = gtk_text_new(NULL, NULL);

Setare ca fiind editabila

gtk_text_set_editable(msg_text_area, FALSE);

Dimensiuni:

gtk_widget_set_usize (msg_text_area, 750, 300);

TextBox in care se scriu mesajele:

msg_text_box = gtk_entry_new();
gtk_entry_set_editable(GTK_ENTRY(msg_text_box), TRUE);
gtk_widget_set_usize (msg_text_box, 600, 40);

Crearea tabelului:

table = gtk_table_new(3, 9, FALSE);
gtk_table_set_row_spacing(GTK_TABLE(table),0,30);
gtk_table_set_row_spacing(GTK_TABLE(table),1,30);
gtk_table_set_row_spacing(GTK_TABLE(table),2,30);
gtk_table_set_col_spacing(GTK_TABLE(table),0,10);
gtk_table_set_col_spacing(GTK_TABLE(table),1,10);
gtk_table_set_col_spacing(GTK_TABLE(table),2,10);
gtk_table_set_col_spacing(GTK_TABLE(table),3,10);
gtk_table_set_col_spacing(GTK_TABLE(table),4,10);
gtk_table_set_col_spacing(GTK_TABLE(table),5,10);
gtk_table_set_col_spacing(GTK_TABLE(table),6,10);
gtk_table_set_col_spacing(GTK_TABLE(table),7,10);
gtk_table_set_col_spacing(GTK_TABLE(table),8,10);
gtk_table_set_col_spacing(GTK_TABLE(table),9,10);

Buton de Send cu imagine:

msg_btn_send = gtk_button_new ();

Legaturile la click:

g_signal_connect (G_OBJECT (msg_btn_send), "clicked",
G_CALLBACK (callback_send), (gpointer) "send");
g_signal_connect (G_OBJECT (msg_text_box), "activate",
G_CALLBACK (callback_send), (gpointer) "send");

Adaugarea unui box cu imagine pe buton

box = xpm_label_box ("img/send.jpeg", "Send");
gtk_container_add (GTK_CONTAINER (msg_btn_send), box);
gtk_widget_show (msg_btn_send);

Adaugarea de emoticon (buton cu imagine) la click apare imaginea marita

msg_btn_em1 = gtk_button_new ();
g_signal_connect (G_OBJECT (msg_btn_em1), "clicked",
G_CALLBACK (callback), (gpointer) "img/Cry.png");
box_em1 = xpm_label_box ("img/Cry.png", "");
gtk_container_add (GTK_CONTAINER (msg_btn_em1), box_em1);
gtk_widget_show (msg_btn_em1);

adaug 8 astfel de emoticoane

Imaginea initiala de butonul cu imaginea marita:

imagine= gtk_image_new ();
gtk_image_set_from_file (imagine,"img/Default.png");

box_em9 = gtk_hbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (box_em9), 2);
gtk_box_pack_start (GTK_BOX (box_em9),imagine , FALSE, FALSE, 3);
gtk_widget_show (imagine);

Adaugare elemente in tabel:

gtk_table_attach(GTK_TABLE(table), msg_text_area, 0, 9, 0, 1, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), msg_text_box, 0, 8, 2, 3, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), msg_btn_send, 8, 9, 2, 3, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), msg_btn_em1, 0, 1, 1, 2, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), msg_btn_em2, 1, 2, 1, 2, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), msg_btn_em3, 2, 3, 1, 2, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), msg_btn_em4, 3, 4, 1, 2, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), msg_btn_em5, 4, 5, 1, 2, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), msg_btn_em6, 5, 6, 1, 2, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), msg_btn_em7, 6, 7, 1, 2, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), msg_btn_em8, 7, 8, 1, 2, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), box_em9, 8, 9, 1, 2, 0, 0, 0, 0);

Adaugarea tabelului la conta

gtk_container_add(GTK_CONTAINER(main_box), table);

Vibilitatea elementelor:

gtk_widget_show (box);
gtk_widget_show (box_em1);
gtk_widget_show (box_em2);
gtk_widget_show (box_em3);
gtk_widget_show (box_em4);
gtk_widget_show (box_em5);
gtk_widget_show (box_em6);
gtk_widget_show (box_em7);
gtk_widget_show (box_em8);
gtk_widget_show (box_em9);
gtk_widget_show(msg_text_area);
gtk_widget_show(msg_text_box);
gtk_widget_show (msg_btn_send);
gtk_widget_show(table);

/* Sets the border width of the window. */
gtk_container_set_border_width (GTK_CONTAINER (window),10);

Adaug vertical box la fereastra

gtk_widget_show (main_box);
gtk_container_add (GTK_CONTAINER (window), main_box);

Buton cu imagine

static GtkWidget *xpm_label_box( gchar *xpm_filename,
gchar *label_text )
{
GtkWidget *box;
GtkWidget *label;
GtkWidget *image;

Creaza box pentru imagine

box = gtk_hbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (box), 2);

image = gtk_image_new_from_file (xpm_filename);

Label pentru buton:

label = gtk_label_new (label_text);

Impacheteaza imaginea si label in box

gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 3);
gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 3);

gtk_widget_show (image);
gtk_widget_show (label);

return box;
}

static void callback( GtkWidget *widget, gpointer data )
{

strcpy((char*)img,(char*)data);
strtok(img,".");
strcat(img,"M.png");

Aici adauga imaginea marita; aceasta are un M concatenat la sfarsit

gtk_image_set_from_file (imagine,img);
gtk_box_pack_start (GTK_BOX (box_em9),imagine , FALSE, FALSE, 3);
gtk_widget_show (imagine);

}

static void callback_send( GtkWidget *widget,
gpointer data )
{
buf=gtk_entry_get_text(msg_text_box);
memset(buffer,0,100);
if (strcmp(buf,"")!=0){
strcat(buffer,"sender:");
strcat(buffer,buf);
strcat(buffer,"\n");
gtk_text_insert(msg_text_area, NULL, NULL, NULL, buffer, strlen(buffer));
}

gtk_entry_set_text(msg_text_box,"");

}

Se obtine:

[IOM] GTK

GTK este o librarie pentru crearea de intertefe grafice. GTK este de fapt un API orientat pe obiect.Desi scrisa complet in C e implementata folosind idea de clase si functii de callback.

Compilarea unui program folosind gtk :

Pentru a compila aplicatii GTK+, avem un tool pkg-config care returneaza metadata despre librariile instalate.

gcc example.c -o example `pkg-config --cflags --libs gtk+-2.0`

Exemplu foarte simplu:

#include

int main( int argc, char *argv[])
{
GtkWidget *window;

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);

gtk_main();

return 0;
}


gtk_init(&arsgc,&argv); //initializarea librariei gtk

GtkWidget *window; //declara un GtkWindow widget

window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //crearea unei fereastre de tipul GTK_WINDOW_TOPLEVEL acestea au bara de sus si margine.

gtk_widget_show(window);//afiseaza fereastra

gtk_main();//intra in loop-ul principal GTK+

In urma rularii se obtine fereastra:

















Acum voi arata exemple de ferestre pentru un Messenger folosind gtk:

Fereastra de sign-in:

GtkWidget *window;

GdkColor colorWindow;

colorWindow.red=204*256;
colorWindow.green=255*256;
colorWindow.blue=224*256;

gdk_color_parse ("honeydew2", &colorWindow); //culoarea de background a ferestrei

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

gtk_window_set_title(GTK_WINDOW(window),"Name"); //titlul ferestrei

gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);//pozitia ferestrei

gtk_window_set_icon_from_file (GTK_WINDOW window),"kite_icon2.jpg",NULL);
//adaug o imagine

//pun ca background culoarea
gtk_widget_modify_bg (window, GTK_STATE_NORMAL,&colorWindow);
gtk_widget_modify_bg (window, GTK_STATE_PRELIGHT, &colorWindow);

gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (gtk_main_quit), NULL);

g_signal_connect (GTK_OBJECT (window), "delete_event",
GTK_SIGNAL_FUNC (gtk_main_quit), NULL);


Iata cum se creeaza un box vertical ce va contine tot si va fi continut apoi in window

GtkWidget *main_box;

main_box=gtk_vbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (main_box), 2);


Tabel 2x2:

GtkWidget *table;
table = gtk_table_new(6, 2, FALSE);
gtk_table_set_row_spacing(GTK_TABLE(table),0,80);
gtk_table_set_row_spacing(GTK_TABLE(table),2,20);
gtk_table_set_row_spacing(GTK_TABLE(table),3,60);
gtk_table_set_row_spacing(GTK_TABLE(table),4,200);

Adaugarea unei imagini:

image=gtk_image_new_from_file ("kite1.jpeg");

Crearea unui label:

sigin_lbl_username = gtk_label_new("Username:");
sigin_lbl_password = gtk_label_new("Password:");

Entry:

sigin_username_entry = gtk_entry_new();
sigin_password_entry = gtk_entry_new();

Entry care pentru password este ascuns

gtk_entry_set_visibility( (GtkEntry *)sigin_password_entry,
FALSE );

Crearea unui check button:

sigin_ckb_invisible=gtk_check_button_new_with_label ("Invizible for all");


Crearea unui buton de logare:

sigin_bt_signin = gtk_button_new ();

Aici se apeleaza functia de callback la click pe butunul de logare:

g_signal_connect (G_OBJECT (sigin_bt_signin), "clicked",
G_CALLBACK (sign_in), (gpointer) "cool button");

Userul poate declansa sign_in si dupa ce introduce parola si executa enter

g_signal_connect (G_OBJECT (sigin_password_entry), "activate",
G_CALLBACK (sign_in), (gpointer) "data");

box = xpm_label_box ("access_16x16.gif", "Sign In");
gtk_widget_show (box);

Adaug boxul la buton:

gtk_container_add (GTK_CONTAINER (sigin_bt_signin), box);
gtk_widget_show (sigin_bt_signin);

Link catre alta fereastra:

event_box = gtk_event_box_new ();
sigin_lbl_signup = gtk_label_new("New Account");
gtk_container_add (GTK_CONTAINER (event_box), sigin_lbl_signup);
gtk_event_box_set_visible_window (GTK_EVENT_BOX(event_box),FALSE);

gtk_widget_set_events (event_box, GDK_BUTTON_PRESS_MASK);
g_signal_connect (G_OBJECT (event_box), "button_press_event",
G_CALLBACK (cont_nou),NULL);

Adaugarea de elemente in tabel

gtk_table_attach(GTK_TABLE(table), image, 0, 2, 0, 1, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), sigin_lbl_username, 0, 1, 1, 2, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), sigin_lbl_password, 0, 1, 2, 3, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), sigin_username_entry, 1, 2, 1, 2, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), sigin_password_entry, 1, 2, 2, 3, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), sigin_ckb_invisible, 1, 2, 3, 4, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), sigin_bt_signin, 1, 2, 4, 5, 0, 0, 0, 0);
gtk_table_attach(GTK_TABLE(table), event_box, 1, 2, 5, 6, 0, 0, 0, 0);

Toate elementele adaugate sunt vizibile

gtk_widget_show(table);
gtk_widget_show(sigin_username_entry);
gtk_widget_show(sigin_password_entry);
gtk_widget_show(sigin_lbl_username);
gtk_widget_show(sigin_lbl_password);
gtk_widget_show(sigin_lbl_signup);
gtk_widget_show(image);
gtk_widget_show(sigin_ckb_invisible);
gtk_widget_show(event_box);

gtk_container_add(GTK_CONTAINER(main_box), table);

Seteaza marginile:

gtk_container_set_border_width (GTK_CONTAINER (window),50);

Adaugarea vertical box la fereastra

gtk_widget_show (main_box);
gtk_container_add (GTK_CONTAINER (window), main_box);

Se obtine:




















duminică, 4 ianuarie 2009

[Sfantu5]Reminder

Echipa Sfantu5 are pe aceasta cale placerea de a va reaminti de existenta site-ului nostru la adresa www.sfantu5.xhost.ro.

Problemele cu care site-ul s-a confruntat de-a lungul timpului (incluzand aici stergeri accidentale si mai putin accidentale pe motiv de upgrade a intreg continutului) au fost trecute toate cu bine si avem un site mai bun, mai puternic, mai drept si mai bleu decat am fi putut visa vreodata.

Va asteptam cu drag, sa revolutionam topurile si rankurile pe vecie!

[IE] Cinci intrebari despre API-uri

Pentru intalnirea de astazi am pastrat un interesant interviu cu renumitul domn Google Search

- Bunaziua! Bine v-am gasit.
- Bunaziua! Ma bucur ca m-ai gasit, dar eu te-am gasit primul. Ha ha ha.
- Cum va place sa vi se spuna: Domnul Google sau domnul Search?
- Acum imi este indiferent. La inceput tineam la denumire, dar acum ma stie toata lumea. Oricum, dupa atatia ani de exercitiu fara pic de pauza, parca as vrea sa mai inchida cate un server ochii ca sa ma odihnesc si eu un pic... Poti sa imi spui Google si atat.
- Stiti, ma gandeam sa va pun niste intrebari despre niste API-uri, primele intrebari care ar veni oricui in minte, dar la care sa raspundeti din punctul dumneavoastra de vedere.
- Nici o problema, sunt obisnuit cu intrebarile. Si foloseste persoana a II-a singular. In fond, sunt un bun de larg consum.
- Prea bine. Deci sa incepem cu intrebarile?
- Chiar acum!

- The best API?
- Cum prima mea optiune nu prea merge (http://www.blinklist.com/tag/api/), raspunsul meu este "Cel mai bun API ar puea sa nu fie nici un API". Se pare ca PubChem si Protein Data Bank, care contin informatii de interes despre modele moleculare pe care oricine le poate vizualiza. Insa API-urile sunt greoaie si pe site-ul respectiv sunt prezentate metode simple in python si ruby de a obtine datele dorite.
Mai multe informatii la: http://depth-first.com/articles/2007/08/13/the-best-api-may-be-no-api-at-all-pubchem-and-pdb
PubChem: http://pubchem.ncbi.nlm.nih.gov/
Protein Data Bank (PDB): http://www.rcsb.org/pdb/home/home.do

- The worst API?
- Un baiat destul de suparat s-a decis sa impartaseasca lumii experienta sa neplacuta in folosirea API-ului de la Technorati. Se pare ca acest API nu are timp de raspuns adecvat, nu poate face o interogare cu succes si nici nu a auzit de mine.
Mai multe la: http://www.simonecarletti.com/blog/2007/11/technorati-probably-the-worst-and-less-reliable-api-service-i-have-ever-developed-with/

- The most used API?
- La asta raspunsul meu este: http://developer.novell.com/wiki/index.php/TID100515_(NDSSTART)_-_nds_:most_used_api%27s. Aici gasesti un top al celor de la Novell despre cele mai utilizate API-uri.

- The less used API?
- Ai intrebat pe Google si Google raspunde: o pagina despre cum sa realizezi API-uri in C++ in stilul Qt. Contine sfaturi despre ce e bine sa faci si ce e bine sa eviti, cateva reguli simple despre cum sa gandesti un API si ce trebuie urmarit in procesul de design.
Pentru detalii suplimentare: http://doc.trolltech.com/qq/qq13-apis.html

- The evil API?
- Asa cum este evident, raspunsul la aceasta intrebare este http://googlesystem.blogspot.com/2007/01/google-search-feeds-and-soap-api-not.html.
Aici, isi bat joc de mine, cum ca nu as avea feed-uri pentru search si ca ofer un API greoi. Hmpf, e din 2007... multe s-au schimbat de atunci.


- Va multumesc pentru timpul acordat. As mai avea totusi o singura intrebare. Cum reusiti sa gasiti toate lucrurile pe care si le doreste lumea?
- He he! Raspunsul la aceasta intrebare este banal. Magie dragul meu, Magie!