Adobe Work & Play – DEV 1 Problema 5

Posted by donac on mai 14, 2011
Filed Under Adobiști, Distracție, Echipa, Educație, Evenimente | 17 Comments

Folosind una din bibliotecile disponibile la http://www.flickr.com/services/api/, scrieți un program care să afișeze cele mai populare 10 poze făcute în cele mai populare 5 locații dintr-o dată specificată ca parametru de intrare pt program. Pentru fiecare poză afișați titlul și url-ul.

Barem:

Soluție:

Nu există.

De ce?

Problema din enunț este de tip “open question” , iar API-ul de Flickr nu e suficient pentru a găsi un răspuns. As simple as that.

Ce vrem să vedem din codul trimis este modalitatea de abordare a problemei și inventivitatea voastră.

Ca guideline pentru stilul de codare, am adaugat mai jos o mică implementare în Java în care se utilizează biblioteca FlickrJ.

Rezultatul execuției acestei funcții este afișarea primelor 10 poze ca “interestingness” din fiecare din primele 5 locații din locații de top dintr-o anumită dată (adică 50 de poze în total). Pentru filtrul de căutare se poate utiliza și relevance în loc de interestingness, deci e ok și o astfel de implementare.

public void showActivity() throws FlickrException, IOException, SAXException {

        SearchParameters searchParameters = new SearchParameters();

        // create a date 2 months ago
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.MONTH,-2);
        Date lastDate = calendar.getTime();

        // get top places by location on the specified date
        PlacesList topPlaces = f.getPlacesInterface().getTopPlacesList(7,lastDate,null,null);

        for (int i=0;i<5;i++){

            Place place = (Place)topPlaces.get(i);
            System.out.println(place.getWoeId()+" - "+place.getName());

            // set search params to woe id, sort by interestingness,on max date
            searchParameters.setWoeId(place.getWoeId());
            searchParameters.setSort(SearchParameters.INTERESTINGNESS_DESC);
            searchParameters.setMaxTakenDate(lastDate);

            // get photos for location with search params and print some info
            PhotoList fotosForLocation = f.getPhotosInterface().search(searchParameters,20,1);
            for(int j=0;j<fotosForLocation.size();j++){
                Photo foto = (Photo)fotosForLocation.get(j);
                System.out.println(foto.getTitle()+ " "+foto.getUrl()+" "+foto.getComments());
            }

            // seems like i have to throttle this
            try{
                Thread.sleep(2000);
            }
            catch (InterruptedException e){

            }

        }
    }
Share

Comments

17 Responses to “Adobe Work & Play – DEV 1 Problema 5”

  1. Adobe Work & Play – Teste runda 1 : Despre Adobe Romania on mai 14th, 2011 09:06

    [...] Problema 5 [...]

  2. Alex on mai 14th, 2011 13:56

    Pot folosi API pt orice limbaj sau doar C++/C/Python/Java? De exemplu PHP?

  3. donac on mai 14th, 2011 14:03

    Poti folosi API pentru limbajul care iti e mai confortabil.
    Da, vorbim si PHP :)

  4. Alexandru on mai 14th, 2011 17:35

    Daca am inteles bine, trebuie afisate datele pentru 50 de imagini? Sau 10 in total, din toate cele 5 locatii stabilite?
    Si inca o intrebare, daca se poate, “popular” se refera la conceptul de “interesting” sau la altceva?

  5. K on mai 14th, 2011 17:41

    pe mine problema asta m-a doborat, de 4 ore caut si incerc, dar nu reusesc sa imi scoata “cele mai populare 10 poze făcute în cele mai populare 5 locații”

    m-am lovit si eu de interestingness, dar cand zice popular se refera la favourite sau views.

    interesting: “The photos you see here are a random selection of some of the interesting things discovered on Flickr “

  6. donac on mai 14th, 2011 17:45

    @Alexandru
    10 poze care sunt mai populare in cele 5 locatii. Poate fi de ex poza 1 din locatia 5, poza 2 din locatia 3, etc.
    Popularitatea e data de numarul de vizualizari.

  7. donac on mai 14th, 2011 17:46

    @K daca ne trimiti o intrebare, raspundem :)

  8. Razvan on mai 14th, 2011 17:52

    Deci pana la urma doar 10 poze in total ? EU am facut in modul urmator: am adunat 5 locatii populare (primele 5), si din fiecare am ales primele 10 poze populare.

    Deci daca ar fi doar 10 poze in total, eu nu inteleg de ce s-a specificat 5 zone populare. Daca poza populara Y este aflata in zona X, e logic ca zona X este populara din cauza pozei Y.

  9. donac on mai 14th, 2011 17:59

    @Razvan
    Ca sa facem un top 10 absolut

  10. Razvan on mai 14th, 2011 18:04

    Okey, deci primele 10 poze, nu ma intereseaza daca o zona are 3 poze populare si alta niciuna (asta insemnand 4 zone distincte).

    Sa speram ca am inteles bine de data asta :) .

  11. donac on mai 14th, 2011 18:12

    @Razvan
    Primele 10 poze din primele 5 zone :)

  12. K on mai 14th, 2011 18:33

    ce API ati folosit cand ati gandit problema? :)

  13. donac on mai 14th, 2011 18:44

    @K solutiile sunt afisate maine dimineata :)

  14. iuliux on mai 15th, 2011 00:29

    Si popularitatea unei locatii de ce e data?

  15. donac on mai 15th, 2011 01:56

    @iuliux
    Numarul de vizualizari

  16. iuliux on mai 15th, 2011 15:41

    O rezolvare mica, se poate? :)

  17. donac on mai 15th, 2011 20:13

    @iuliux
    Gata, se vede bine? :)

Leave a Reply