Thursday, September 25, 2008

Bucuresti, al 8-lea cel mai mare oras din Europa

De curand am dat peste un document al Eurostat (biroul de statistica al Uniunii Europene) in care se face un "audit al calitatii vietii in orasele din Europa". Studiul include toate tarile membre UE + Turcia, Elvetia si Norvegia. Documentul il puteti gasi aici (PDF)

Pe pagina a doua a documentului apare un tabel frumos cu cele mai mari 15 orase din tarile care au fost incluse in studiu. Tinand cont de faptul ca Paris apare de 2 ori (o data cu tot cu suburbii si a doua oara aria mai restransa) si scotand din tabel Izmir si Ankara (care tehnic vorbind sunt in Asia) rezulta ca Bucurestiul e al 8-lea cel mai mare oras din Europa ca numar de locuitori :) Asta intr-un fel ma face sa ma simt bine (traiesc intr-o mare metropola europeana, yeah!), dar pe de alta parte imi dau seama ca pe baza principiului "unde-s multi preturile-s mari" Cassandrele care prezic o scadere de 30% a pietei imobiliare in Bucuresti probabil ca se inseala (chiar si in State cele mai mari scaderi de preturi in imobiliare au avut loc in suburbii, acolo unde e multa lume si aglomeratie, adica in buricul targului, scaderile au fost mai mici).

De la pagina 3-a a studiului apar si vestile proaste spre foarte proaste. Bacau, Piatra-Neamt, Targu-Mures si Sibiu sunt in primele 10 orase in ceea ce priveste procentul scaderii populatiei (Bacaul si Piatra-Neamtul chiar in primele 4, dupa un oras din Germania de Est si unul din Slovenia).

Si stirea ce ma doare cel mai mult e ca orasul meu de bastina, Calarasiul, e al 8-lea oras din Europa cand vine vorba de procentul somajului, cu 23,7% (what the fuck??). Asta explica partial de ce din cei 30 de colegi de-ai mei de liceu doar 3 s-au intors in Calarasi, si aceia pe posturi sigure si caldutze (sef de sucursala, consiliu judetean etc.)

Thursday, July 10, 2008

Coordonate geografice pentru zone din Bucuresti folosind Yahoo GeoPlanet

Baietii de la Yahoo! Developer Network au mai facut public un API cool, prin care poti afla coordonatele geografice ale zonelor din Bucuresti (n-am incercat inca pentru celelalte orase mari ca Timisoara sau Cluj). Noul serviciu (ma rog, nu e asa nou, e lansat acum 2 luni, dar vazand ca nu a scris nimeni despre el in .ro am zis sa ies din letargie si sa scriu eu :) ) se cheama Yahoo! GeoPlanet.

Cu copy-paste de pe site-ul lor:

Yahoo! GeoPlanet is a resource for managing all geo-permanent named places on Earth. It provides the geographic developer community with the vocabulary and grammar to describe the world's geography in an unequivocal, permanent, and language-neutral manner

Mai precis, si cu consecinte practice pentru aplicatii bazate in .ro se pare ca noul serviciu "stie" de zonele din Bucuresti.
De exemplu, daca vreau sa aflu coordonatele geografice ale cartierului Titan e de ajuns sa trimit o cerere catre serverul lor de forma:

http://where.yahooapis.com/v1/places.q('bucharest%20titan')?appid=c0Gvbt7V34EXlepMgWHQDyUpely540gTWbrWU4D9acUtlJx0.yBozNUPS07xaUAkfJ0

Rapunsul e de forma asta:

<places yahoo:start="0" yahoo:count="1" yahoo:total="1">

<place yahoo:uri="http://where.yahooapis.com/v1/place/22726129" xml:lang="en-us">
<woeid>22726129</woeid>
<placeTypeName code="22">Suburb</placeTypeName>
<name>Titan</name>
<country type="Country" code="RO">Romania</country>
<admin1 type="State" code="">Bucuresti</admin1>
<admin2/>
<admin3/>
<locality1 type="Town">Bucharest</locality1>
<locality2 type="Suburb">Titan</locality2>
<postal type="Postal Code">0100000</postal>

<centroid>
<latitude>44.41695</latitude>
<longitude>26.168961</longitude>
</centroid>
</place>
</places>

Pare corect, coordonatele 44.41695,26.168961 fiind ale unui punct situat pe undeva pe langa Billa. Interesant ca "stie" ca Titan este cartier/suburb (vezi tagul "placeTypeName").

M-am jucat un pic cu el si am mai incercat si alte zone: Floreasca, Drumul Taberei sau Crangasi, cu care pare ca se descurca binisor. Ca de obicei in cazul API-urilor Yahoo!, exista o limita maxima de 50.000 de cereri pe zi per aplicatie. Ramane acum sa vad cum putem integra cat mai usor serviciul asta cu imoo.ro :)

via Simon Willison, de la care am aflat ca serviciul e folosit si de Flickr pentru a-si geolocaliza pozele in functie de taguri.

Friday, May 09, 2008

imoo.ro - Agregator anunturi imobiliare

Dupa lansarea autoo.ro (agregator anunturi auto) si tinand cont de faptul ca totusi Creditlink este un broker de credite imobiliare, logic ca urmatorul proiect pe lista a fost imoo.ro - agregator de anunturi imobiliare.

Imoo.ro este bazat pe Django/Python + SOLR, la fel ca autoo.ro. Pentru moment anunturile provin de la aproximativ 40 de surse, si sper eu ca oferta este destul de variata :)

La acest proiect au lucrat Andu, Ana (care cu ocazia asta a facut primii pasi in Python si care tot n-are blog :) ) si cu mine, cu Martin manager sef :)

In continuare ne jucam cu niste lucruri interesante pe imoo.ro, speram sa nu ne prindem degetele pe undeva :) Si cineva, candva, in internetul romanesc, ar trebui sa faca o analiza a site-urilor care transmit query-uri sql prin GET, in anul de gratie 2008.

Monday, November 12, 2007

autoo.ro - Agregator anunturi auto

Ma uitam si am vazut ca a trecut aproape jumatate de an de la ultimul post, asa ca m-am gandit sa scriu vreo doua vorbe despre inca o chestie faina pe care am facut-o at work: www.autoo.ro.

Autoo.ro este un agregator de anunturi auto care se bazeaza pe munca lui Andu, a Anei (fara blog inca, a promis ca o sa-si faca :) ) si a mea. In spatele site-ului sta Django (varianta svn) asezonat cu o serie de scripturi Python pe post de "lipici", ChickenFoot - extensie scrisa de un tip de la MIT care intre timp a fost vanat de Google si SOLR, un proiect open-source al Apache Foundation.

Din punctul de vedere al unui programator autoo.ro e interesant mai ales prin faptul ca este rezultatul combinatiei mai multor proiecte open-source, la prima vedere fara prea multe puncte comune: Django (scris in Python), SOLR (java-based) si ChickenFoot (JavaScript-based).

Si chiar si mai interesant este ca prin autoo.ro incercam sa familiarizam utilizatorii din .ro cu un nou concept de navigare, navigarea bazata pe facet-uri.

Din pagina Wikipedia:
The most prominent use of faceted classification is in faceted navigation systems that enable a user to navigate information hierarchically, going from a category to its sub-categories, but choosing the order in which the categories are presented. This contrasts with traditional taxonomies in which the hierarchy of categories is fixed and unchanging.

Mai pe romaneste :), din pagina de help de pe autoo.ro:

Pentru a va face experienta navigarii prin site cat mai usoara si intuitiva, autoo.ro foloseste filtrarea anunturilor folosind facet-uri/categorii.

De multe ori vi s-a intamplat poate sa ajungeti pe un site, sa va intereseze informatia de pe acel site, dar anunturile de pe prima pagina sa nu va fie de nici un folos. Cel mai probabil ati incercat sa folositi motorul de cautare al acelui site, dar sunt cazuri in care aveati doar o idee generala despre ceea ce va interesa si nu stiati dupa ce termeni anume sa cautati.

Filtrarea bazata pe facet-uri/categorii va scuteste de toate aceste probleme, deoarece puteti vizualiza si selecta foarte usor anunturile care va intereseaza, fara a folosi boxuri drop-down si fara a fi nevoiti sa completati nenumarate campuri obligatorii doar pentru a ajunge la o pagina cu rezultate.

Acum poate reusesc sa il conving pe Andu sa scrie mai multe despre SOLR si facet-based filtering pe blogul lui, el fiind maestrul dintre noi toti din firma pe aceasta tehnologie :). Sau sa incerc sa-l conving sa faca o prezentare SOLR pentru urmatoarea intalnire wurbe? Timp sa fie, ca in rest ... :)

Labels: , , , , ,

Sunday, June 24, 2007

Infractiuni Bucuresti - Mashup cu harta infractiunilor din Bucuresti

In weekend-ul asta se vede ca am avut chef de munca, prin urmare am reusit sa aduc "the finishing touches" si pentru un alt proiect care ramasese la stadiul de 95% cam de vreo 4-5 luni.

Este vorba despre Infractiuni Bucuresti, un mashup intre stirile privind Politia Romana publicate de catre agentia de presa Amos News (mai precis arhiva acesteia) si hartile oferite de Google Maps si Microsoft Local Live.

Mai multe amanunte despre acest proiect puteti afla in pagina Despre "Infractiuni Bucuresti", dar cateva dintre ele o sa le insir si aici.

Mai intai, acesta este un proiect personal, pentru a incerca sa arat ca se pot face lucruri interesante atunci cand informatia de interes general este pusa la dispozitia publicului larg pe internet. In al doilea rand, tin sa precizez ca nu am nici o legatura cu Politia Romana, in sensul ca nu am colaborat si nici nu am lucrat vreodata pentru aceasta institutie.

Si in al treilea rand, dar la fel de important, locatia stirilor pe harta nu este 100% exacta.

A fost un proiect "fun", care a plecat de la o frustrare mai veche de-a mea. Din pacate stirile acopera doar intervalul 2002 - 2005, si desigur ca nu toate infractiunile din aceasta perioada de timp si-au gasit locul in stirile publicate de catre Politia Romana pe Amos News. Deasemenea, cum informatia privind localitatea si adresa la care au avut loc diferitele evenimente erau incluse in "raw text", nefiind formatate (think XML) marcate prin micro-taguri sau orice altceva, a trebuit sa scriu un mic script care sa incerce sa extraga stirile asociate orasului Bucuresti si adresele din acele stiri. De multe ori mi-a reusit, dar probabil ca sunt si cazuri in care am marcat o stire din Onesti (de exemplu) ca avand loc pe o strada oarecare din Bucuresti.
Have fun, and don't be scared :)

Saturday, June 23, 2007

MogNews reloaded

Dupa luni intregi de stat in debara, la pastrat, MogNews se intoarce mai robust, cu mai multa informatie si cu cateva noi mini-aplicatii care sa-i aduca sporul de gust.


Mai intai despre robustete. MogNews poate fi accesat de acum incolo la o noua adresa: http://djapp.creditlink.ro/news/. Asta inseamna un server nou, de "firma" (cu cel putin 95% uptime), ruland un Debian, in locul celui vechi, de apartament, pe care chinuiam un Windows 2000 cu 128 RAM :). Dupa aceea, am hotarat ca e mai normal ca totusi sa folosesc Django ca web-framework, in loc sa ma chinuiesc cu request.write() direct din mod_python (am totusi circumstante atenuante pentru asta, acum doi si jumatate cand am inceput sa pun MogNews pe web nu existau prea multe web framework-uri Python "light-weighted" decente, sau cel putin care sa fie usor de utilizat).


De asemenea, am decis sa renunt la credinta "purista" ca as putea salva si manipula datele din spatele MogNews folosind numai fisiere text, si am decis sa folosesc MySQL pentru stocarea articolelor. Totusi, in continuare indexul pe care se bazeaza cautarea si categorizarea articolelor este pastrat in fisiere text.


Cautarea este mai rapida (sau cel putin asa imi arata testele mele :) ). Aceasta cu toate ca numarul de surse si implicit cantitatea de informatie a crescut, de la 13-15 la 28-30, cu un accent sporit pus pe ziarele cu aparitie locala si regionala (sunt un provincial care traieste in Bucuresti de 8 ani, stiu ce inseamna sa nu gasesti nici un articol despre orasul/judetul tau in presa centrala).


Am ajuns si la partea de mini-aplicatii noi, care sper ca vor mai aduce un pic de sare proiectului. Le puteti gasi in DevZone, asta deoarece pentru moment se afla intr-un stadiu "pre-beta".


In primul rand este vorba despre API-ul MogContext, cu ajutorul caruia puteti afla "programatically" cuvintele cheie ale oricarui text (de preferat scris in limba romana). Ca exemplu, puteti folosi acest API pentru a genera automat tag-uri pentru textele de pe site-urile/blogurile voastre. In caz ca nu stiati inca, MogContext este o unealta din seria "motoarelor de cautare contextuala" (puteti afla mai multe despre el aici).


Si "last but not least", este vorba despre MogNews Zeitgeist, o aplicatie ce face o analiza cantitativa a cuvintelor cheie din articolele pubilcate in ultimele 5 saptamani. In urma acestei analize sunt intocmite niste clasamente ce corespund ultimelor 5 saptamani, cu cele mai "hot" cuvinte cheie aparand primele in lista. De asemenea, puteti vizualiza si evolutia evolutia unui anumit cuvant cheie, cum ar fi basescu, tariceanu, becali sau tiff (asta in caz ca va place filmul :) ).


Si care ar fi fost hazul intocmirii unui zeitgeist daca nu as fi dat posibilitatea efectuarii de comparatii :) . De exemplu, pasionatii de politica poate vor fi interesati de basescu vs. tariceanu vs. voiculescu vs. geoana, in timp ce microbistii vor putea raspunde la intrebarea "ce echipa este favorita presei?": dinamo vs. steaua vs. rapid vs. poli. Cativa dintre noi vor fi interesati de lucruri mai inalte (plesu vs. liiceanu vs. cartarescu vs. dinescu), in timp ce micul grup al cinicilor anonimi inevitabil va ajunge aici: becali vs. plesu vs. liiceanu vs. cartarescu :) .


In concluzie, iata o lista de linkuri care va va ajuta sa stiti si mai multe despre MogNews si MogContext:

Wednesday, February 21, 2007

Lansare www.rez.ro - Portal de ansambluri rezidentiale si blocuri noi

Dupa cum spunea si Andu, dupa lupte seculare care au durat doua luni am reusit sa lansam www.rez.ro - Portal de ansambluri rezidentiale si blocuri noi. Site-ul e bazat pe Drupal, foloseste Google Maps si un pic de Django si Python.
Am folosit ahitectura www.trn.ro pentru a afisa pe harta Ansamblurile rezidentiale nou construite sau aflate in faza de constructie. De exemplu, aici puteti vedea pe harta o parte din Ansamblurile noi din Bucuresti (exista o limita de 100 de Ansambluri ce pot fi afisate la un moment dat, trebuie sa faceti "zoom in" pe o anumita zona pentru a fi siguri ca vedeti toate Ansamblurile in detaliu). Daca sunteti interesati unde mai exact se construiesc locuintele noi in Cluj, Brasov, Timisoara sau Constanta, nici o problema :), aveti totul pe harta. La fel de interesant este si daca faceti un "zoom out" la nivelul intregii tari. Foaaarte mult "galben" in zona Bucurestiului, Ardealul, Banatul si zona litoralului sunt reprezentate destul de bine, in timp ce Moldova si zona de campie a Munteniei par sa fie codasele (si aici se aplica regula cu maxim de 100 de Ansambluri afisate, trebuie sa faceti "zoom in" pe zona care va intereseaza pentru a putea vedea mai multe Ansambluri). Folosesc un termen uzat, dar harta aceasta chiar este o "radiografie" a tarii in care traim mai mult sau mai putin bine :).
Una din chestiile interesante pe care le-am facut pentru www.rez.ro a fost instalarea aplicatiei Exhibit pentru a realiza o filtrare rapida a Ansamblurilor dupa pret, localitate, tip locuinta etc. Puteti vedea ce a iesit aici. Exhibit in sine e o aplicatie destul de interesanta (se vede ca e scrisa de baietii destepti de la MIT :) ). Practic, folosind API-ul Exhibit, un fisier .html si unul .json ce contine datele ce trebuiesc afisate si filtrate, puteti construi un mini-site in toate puterea cuvantului, cu pagina de Detalii, o Harta, pagina de Thumbnail-uri, filtrare, Timeline. Lucrul interesant e ca toate acestea sunt realizate client-side, prin JavaScript, fara a fi nevoie de o baza de date si fara a realiza "conversatii" costisitoare intre browser si server.

Update: Reparat link catre Exhibit.