Statistici despre organizațiile pentru tehnologii libere

Introducere

  • Ne dorim să facem o aplicație care scoate statistici despre organizațiile care promovează și crează programe libere
  • Aplicația se va realiza în mai multe etape, analizând câte un format al datelor de intrare posibile
    1. Liste de discuții, de tip pipermail
    2. Pagini web de prezentare, fără restricție la format și tip
  • Interfața web a programului Orgro
  • Grafice
  • Raport
  • Recenzor nu rulează în producție pentru că ar îngreuna dezvoltarea altor proiecte ale Cetei
    • În testare procesorul este utilizat la maximum și toată banda de net este folosită (ssh-ul are o întârziere de 2-3 secunde)
  • Pagina de prezentare a proiectului conține, pentru fiecare etapă
    1. Descrierea, prezintă specificații etapei
    2. Parte tehnică, care conține delatii de implementare

Echipa

  • Oamenii interesați să contribuie la acest proiect sunt
    1. Laurențiu Dascălu (sana) - coordonator
    2. Tibi Turbureanu (tct)

Etapa 1, liste de discuții

Organizație

  1. Informații despre membrii unei comunități
    • Numărul de mesaje scrise
    • Numărul de mesaje pe zi
    • Rata de scriere: peste câte zile va scrie un nou mesaj
    • Activ; un utilizator este activ dacă a scris cel puțin 10 mesaje, din care unul în ultimele 10 zile
  2. Existența organizației măsurată în număr de zile
  3. Numărul mediu de mesaje pe zi
  4. Lista și numărul de membri activi
  5. Informații despre programele libere promovate de organizație
    • Contoare pe cuvinte magice: linux, mozilla, fedora, ubuntu, trac, firefox etc

Organizații

  1. Ce procent din totalul organizațiilor promovează o anumită tehnologie
  2. Distribuția organizațiilor pe număr de membri

Implementare

  • Map-Reduce în Java cu Hadoop
    • Proiectul Hadoop vine cu licența Apache, compatibilă cu GNU/GPL v3.
  • Intrare: o listă cu adresele organizațiilor studiate - URL-uri
  • Ieșire: informații despre organizațiile ce promovează si dezvoltă programe libere
    • Rezultatele le punem într-o pagină web, care va folosi JavaScript pentru interpretarea datelor
    • plot/
      • index.php - afișează în diverse figuri (pie-chart, line-chart) datele agregate
      • mochi, plotkit

Resurse utile

  • Instalare Hadoop pe server-ul Cetei
  • Map
    • Determină informații despre o anumită listă de discuții
  • Reduce
    • Agreghează informațiile primite de la Map și calculează statistici la nivelul tuturor organizațiilor

Etapa 2, pagini web

Descriere

  • Specificațiile utilizator sunt aceleași ca cele de la prima etapă
    • Diferența este că această etapă suportă o mulțime mai mare a datelor de intrare

Implementare

  • Folosim un crawler, spre exemplu Nutch și scoatem rezultate din ce săpăm cu el
  • Lipituri (patches)
    1. fetcher/
      1. fetcher.py - script python folosit pentru analiza datelor aduse (crawled and fetched data) și scrierea informațiilor relevante în baza de date
    2. nutch-patch/
      1. deploy.sh - script folosit în urcarea datelor pe serverul Ceata
      2. export.sh - script folosit în exportul datelor din HDFS
      3. gather_info.sh - script folosit pentru rulare periodică (cron)
      4. run_nutch.sh - rulează Nutch-ul pentru un site
      5. run_orgro.sh - rulează modulul pentru analiza listelor de discuții
      6. run_recenzor.sh - rulează aplicația Recenzor, doar modulul de crawling bazat pe Nutch
    3. report/
      1. index.php - generează un raport pe baza datelor agregate

Resurse Utile

De Făcut

  1. "Vizualizare date":(#22)
  2. "Teste unitare":(#23)
  3. "Afișare cu buffer":(#166)
  4. "Adaptare Nutch":(#163 și #164) o parte din aceste tichete au fost implementate
  5. "Automatizarea generării rapoartelor":(#248)

Istoric

Disponibil și în: HTML TXT