Vorgurakendused 2 prax 2: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
Resümee puudub
Resümee puudub
1. rida: 1. rida:
[[Vorgurakendused_2_prax_2 2009| siit leiad 2009 praktikumi arhiivi]]
[[Vorgurakendused_2_prax_2 2009| siit leiad 2009 praktikumi arhiivi]]


9. rida: 8. rida:


Ülesanne, mida lahendada, on objektide (hoonete vms) ehitusaastate leidmine suurt hulka veebilehti läbi otsides ja enimleitud aasta väljaselgitamine.
Ülesanne, mida lahendada, on objektide (hoonete vms) ehitusaastate leidmine suurt hulka veebilehti läbi otsides ja enimleitud aasta väljaselgitamine.
== Ülesande detailid ==


Konkreetsemalt:
Konkreetsemalt:
36. rida: 37. rida:




== Hindamispõhimõtted ja realiseerimissoovitused ==


Töö arvestamiseks peab ülalkirjeldatud põhifunktsionaalsus töötama ning pead suutma seda demonstreerida kahe otsitava objekti peal (vali ise huvitavad objektid). "Parem variant" funktsionaalsusi ei pea realiseerima.


Töö hindamisel vaadatakse, kas on täiendavalt realiseeritud mõned "parem variant" funktsionaalsused või lisatud ise mõni huvitav/praktiline funktsionaalsus või tehtud huvitavaid uuringuid.


 
Näiteks, võid katsetada erinevaid stsenaariume (üks masin X klienti, Y masinat, ...) ja koguda ajastatistikat - kas mitu klienti tegid kiiremaks/aeglasemaks/kui palju, kuidas masinate/klientide arv mõjutas jne - ja teha sellest väike raport.
 
 
- konkreetsem ülesanne on leida hoonete ehitamisaegu
 
  veebist crawlides
 
 
 
  - koordinaatoril on N urli
 
 
 
  - jagab urlid laiali, igaühele M tk
 
 
 
  - igaüks tõmbab urlilt lehe ja otsib kas leiab
 
    mingil moel arusaadavalt ehituse aja
 
   
 
  - koordinaator võtab ajad kokku ja vaatab, mis
 
    on kõige rohkem vastatud aeg ja valib selle
 
 
 
  - Aastaarvu otsimise põhimõte:
 
 
 
    otsingu jaoks vaja fraas ja url
 
    tõmbame urlilt htmli
 
    splitime htmli lauseteks punktide järgi
 
    võib visata välja ülipikki lauseid
 
    vaatame, kas lauses on etteantud fraas
 
    vaatame, kas samas lauses on aastaarv kujul
 
    1250 või 2004 vms (neli numbrit) või sajand
 
    kujul 12th või 20th vms.
 
   
 
  - NB! tingimata vaja M urli läbi käia ja leida
 
    lõpuks kõige rohkem esinenud aasta

Redaktsioon: 10. november 2010, kell 14:50

siit leiad 2009 praktikumi arhiivi


Praktikumi eesmärk on mahuka rehkenduse paralleliseerimine, arendades vajaliku funktsionaalsuse esimeses praksis tehtud rakenduse külge.

Selleks pead realiseerima süsteemi, kus üks rakendus - tööde koordinaator - jagab mahuka ülesande tükid teistele rakendustele, viimased täidavad need tükid, raporteerivad tulemused kordinaatorile, kes omakorda väljastab lõpptulemuse.

Ülesanne, mida lahendada, on objektide (hoonete vms) ehitusaastate leidmine suurt hulka veebilehti läbi otsides ja enimleitud aasta väljaselgitamine.

Ülesande detailid

Konkreetsemalt:

  • koordinaatoril peab olema hulk URL-e, mille taga on harilikud veebilehed, mis tõenäoliselt (aga mitte tingimata kõik) sisaldavad infot ühe konkreetse objekti ehitusaasta kohta. Need URL-d võid võtta kas
    • ise objekti googeldades (näiteks "Eiffel tower") ja tulemused käsitsi faili kirjutades, mille koordinaatorile ette annad
    • või siis - parem variant - lastes koordinaatoril endal seda objekti googeldada, kasutades näiteks Google search API-t.
  • koordinaatoril peab olema mingi hulk IP-sid ja porte, kust ta otsib töötavaid rakendusi, millele ülesandeid jagada:
    • kas lihtsalt kontrollides etteantud IP/pordipaare (et kas seal on töötav rakendus)
    • või - parem variant - tehes eraldi rekursiivse/iteratiivse otsingu, leidmaks juurde IP/pordipaare, kus on töötav rakendus
  • koordinaator peab jagama ülesanded leitud töötajate vahel:
    • kas jagades N urli M töötajate vahel enamvähem võrdsetes osades
    • või - parem variant - jagades ülesanded väiksemate portsude kaupa, eeldades, et mõni töötaja saab varem valmis ja talle võiks anda järgmise portsu
  • töötaja peab leidma võimalike aastaarvude loetelu koos esinemiskordadega:
    • võtab tsüklis järgmise urli talle antud portsust, tõmbab endale urlil oleva teksti (misiganes formaadis)
    • jaotab teksti punkide järgi "lauseteks" ja visates välja ülipikad "laused". Osa lauseid ilmselt ei ole inimkeelsed "normaalsed" laused, vaid on näiteks css või javascripti tekst vms: sellest pole midagi. Ülipikad "laused" lihtsalt on suure tõenäosusega mitte-inimkeelsed ja neid pole ilmselt mõtet arvestada.
    • otsib välja kõik laused, kus on sees uuritava objekti nimi (näiteks "Eiffel tower") ja vaatab, kas selles lauses esineb aastaarv.
    • aastaarvuna käsitleme mistahes neljakohalist numbrit, näiteks 2010 või 1234 või 1889.
    • jätab meelde kõik selliselt leitud aastaarvud (st aastaarv lauses, kus oli objekti nimi) ja nende esinemiskordade arvu: võid nimelt leida hulga erinevaid arve, mõned lihtsalt on sagedamini esinevad.
    • raporteerib leitud aastaarvude/esinemiskordade loendi tagasi koordinaatorile
  • kui koordinaator on saanud raportid kõigilt töötajatelt, koostab ta omakorda koondnimekirja aastaarvude/esinemiskordadega ning trükin välja kõige enam leitud arvu kui tõenäolise vastuse, pluss huvi mõttes kogu nimekirja aastaarvudest/esinemiskordadest
    • parem variant: kui mingi N sekundi jooksul kõigilt töötajatelt vastuseid ei saa (mõni läheb näiteks offline) siis trükkida ikkagi tulemus välja hetkeseisuga


Hindamispõhimõtted ja realiseerimissoovitused

Töö arvestamiseks peab ülalkirjeldatud põhifunktsionaalsus töötama ning pead suutma seda demonstreerida kahe otsitava objekti peal (vali ise huvitavad objektid). "Parem variant" funktsionaalsusi ei pea realiseerima.

Töö hindamisel vaadatakse, kas on täiendavalt realiseeritud mõned "parem variant" funktsionaalsused või lisatud ise mõni huvitav/praktiline funktsionaalsus või tehtud huvitavaid uuringuid.

Näiteks, võid katsetada erinevaid stsenaariume (üks masin X klienti, Y masinat, ...) ja koguda ajastatistikat - kas mitu klienti tegid kiiremaks/aeglasemaks/kui palju, kuidas masinate/klientide arv mõjutas jne - ja teha sellest väike raport.