Thursday, July 24, 2008

MyEtymology

Striving to be a universal etymological dictionary, myetymology.com provides an etymology for hundreds of thousands of words in dozens of languages, tracing their etymology to Latin, Greek or reconstructed Proto-Germanic and Indo-European roots.

Wednesday, January 16, 2008

PageRank

Page rank-ul este o valoare numerica ce reprezinta importanta unei pagini pe web. Faptul ca o pagina contine un link catre alta pagina, acest lucru e ca un vot acordat
paginii referite prin link de catre pagina ce contine linkul. Cu cat o pagina strange mai multe voturi/e referita de mai multe ori, cu atat mai importanta devine pagina. Concomitent, daca o pagina are un pange rank mare/este importanta, atunci creste si importanta voturilor pe care ea le acorda.
PangeRanku-ul este o notiune semnificativa pentru Google, pentru ca prin intermediul ei, si nu numai, Google decide importanta paginilor.
NU toate linkurile sunt luate in considerare de google, in special cele de pe link farms-urile stiute de Google, iar faptul ca un link al unui site se afla pe una din aceste siteuri tip link farm, poate duce la penalizarea siteului de catre Google.

Cum se calculeaza PageRank-ul?
Pentru calcularea PR-ului unui site, se iau in considerare toate linkurile care fac referire la situl in cauza.

Ecuatia care calculeaza PR-ul este:
PR(A) = (1-d) + d(PR(t1)/C(t1) + ... + PR(tn)/C(tn)),
in care t1 ... tn sunt paginile care au link catre pagina A, C este numarul de linkuri pe care pagina le are in continutul ei, iar d este o constanta -damping factor- de obicei cu valoarea 0.85 .

Tuesday, January 15, 2008

Un program Google in Java

Exista un API pentru programarea cu Google in java, care se numeste googleapi.jar si care permite trimiterea de query-uri catre google si primirea/interpretare rezultatelor. Pentru toata aceasta operatiune este nevoie doar de downloadarea jar-ului
si de obtinerea unui google API developer key, ce trebuie inclus/folosit in aplicatie.
Aceasta cheie se obtine de la selectand tipul "installed applications" si este nevoie doar de un cont pe Google pentru toata aceasta operatiune.
In continuare dau un exemplu de folosire a acestui API, reprezentat printr-o clasa
ce trimite un query primit din linia de comanda catre google si afiseaza apoi rezultatele primite:

import com.google.soap.search.GoogleSearch;
import com.google.soap.search.GoogleSearchFault;
import com.google.soap.search.GoogleSearchResult;
import com.google.soap.search.GoogleSearchResultElement;

public class GoogleQueryExample {

// google api developer key
private static String googleKey =
"ABQIAAAAS...................................................................................";


public static void main(String[] args) {
// e necesat un query de cautat dat in linia de comanda
if (args.length != 1) {
System.err.println("query");
System.exit(1);
}

// obiect GoogleSearch
GoogleSearch s = new GoogleSearch();
try {
s.setKey(googleKey);
s.setQueryString(args[0]); /* Google query din linia de comanda */
s.setMaxResults(10);

// query la google
GoogleSearchResult r = s.doSearch();

// preia rezultatele
GoogleSearchResultElement[] re = r.getResultElements();

// afisare rezultate
for (int i = 0; i < re.length; i++) {

String title = re[i].getTitle();
String URL = re[i].getURL();
String snippet = re[i].getSnippet();

// inlatura tagurile html
title = title.replaceAll("<[^>]+>", "");
snippet = snippet.replaceAll("<[^>]+>", "");

// afisare propriuziza
System.out.println(title);
System.out.println(URL);
System.out.println(snippet + "\\n");
}
} catch (GoogleSearchFault f) {
System.out.println("Exceptie GoogleSearchFault: " + f.toString());
}
}
}