Rezultate

Digikam

“În cadrul RSoC, echipa Digikam a lucrat la plug-in-ul FlashExport. Iniţial plug-in-ul era fără maintainer şi depindea de un modul extern. Modulul extern a suferit ceva modificări şi plug-in-ul nu mai funcţiona. Faza iniţiala a fost de a modifica plug-in-ul pentru a funcţiona cu noul modul. Au urmat mai multe modificări precum introducerea afişării tagurilor şi a sortării imaginilor în ordine crescătoare.

A doua etapă a fost efectuarea unor modificări importante în interfaţa grafică(implementarea unui Wizard, în loc de simple ferestre) şi adăugarea suportului pentru alte 3 module externe. La acest moment interfaţa grafică este gata(cine doreşte să testeze, codul este disponibil în brach-ul /develoment/flashexport din repozitoriul kipi-plugins), iar suportul pentru module este în curs de implementare. Cel mai probabil, noul plug-in va fi gata în versiunea 2.2.3 planificată la sfârşitul lui noiembrie 2011.”

Medsoft

“Echipa Medsoft a realizat în această vară un software open source pentru gestionarea pacienţilor, şi serviciilor oferite
de medicul de familie. Cele mai importante dintre funcţionalităţile oferite de acest proiect sunt administrarea bazei de date cu pacienţi (căutare, ştergere, adăugare, modificare şi vizualizare) şi gestiunea serviciilor (concedii medicale, reţete, bilete de trimitere, investigaţii paraclinice, servicii la domiciliu şi servicii în cabinet).

O componentă esenţială a acestei aplicaţii o constituie interfaţa cu utilizatorul, care permite completarea automată a unor date despre un anumit pacient, verificarea validităţii codurilor numerice personale, securitatea (accesul la anumite date este restricţionat pentru anumiţi utilizatori în timp ce utilizatorul privilegiat, medicul, are dreptul depline) şi uneltele auxiliare : calculator pentru IMC şi MDRD, calendar şi un mic client pentru trimiterea mailurilor.

Tehnologiile folosite la acest proiect au fost Java (trasformarea informaţiilor din XML în obiecte, interacţiunea cu baza de date, interfaţa grafică şi extragerea medicamentelor şi bolilor din fişierele .xls) şi PostgreSQL (dbms).”

OSM

“Vara aceasta am lucrat în cadrul RSoC la proiectul OsmPoint, un site pentru explorarea punctelor de interes (cafenele, restaurante, teatre etc.) de pe OpenStreetMap. Aplicația permite:
* căutarea unui anumit punct (cafeneaua X) sau unui grup de puncte (toate benzinăriile Y) după nume
* filtrarea punctelor după tipul lor
* posibilitatea utilizatorilor de a se loga cu contul de Google
* adăugarea unui nou punct în baza de date locală
* posibilitatea administratorilor de a edita punctele locale și de a le trimite server-ului OSM prin crearea unui changeset

Mentorul meu a fost Alex Morega. El m-a ajutat de fiecare dată când am avut nelămuriri. Împreună am stabilit la început o listă cu task-uri iar pe măsură ce le rezolvam, adăugam altele. Astfel, în continuare există o listă cu TODOs la care am de gând să mai lucrez.

Proiectul este implementat în Python, cu API-ul OSM și cu Flask pentru server, și în JavaScript pentru client. Înainte de RSoC, aplicația permitea adăugarea punctelor în baza de date locală și logarea utilizatorilor.

Principalele feature-uri pe care le-am realizat sunt o pagină pentru listarea punctelor locale, o pagină individuală a fiecărui punct local de pe care administratorii îl pot edita, șterge sau trimite și o pagină pentru explorare pe care sunt afișate atât toate punctele locale cât și punctele de pe server-ul OSM (cu ajutorul API-ului OpenLayers, ele sunt reprezentate pe hartă de câte un marker clickable și au atașat câte un pop-up cu numele și tipul lor). Am validat toate informațiile trimise serverului de către client cu ajutorul WTForms (coordonatele punctelor nu depășesc valorile standard, anumite câmpuri sunt obligatorii, etc.) și am implementat filtrarea punctelor după tip și căutarea unui anume punct după nume. Am creat un fișier yaml în care este reținută lista cu amenities pentru a putea fi importată și schimbată ușor și am implementat un script pentru downloadarea arhivei cu punctele din România de pe OSM (în format .pbf) și parsarea acesteia pentru a extrage doar punctele din București de un anume tip. Fiecărui feature i-am testat funcționalitatea printr-un set de teste.

Overall, a fost o experiență foarte plăcută și am dobândit foarte multe cunoștințe noi: pe lângă limbajele Python și JavaScript și tehnologiile html și css, am învățat să lucrez în git și să folosesc API-uri. Mai mult decât atât, am învațat și ce înseamnă să contribui la un proiect open source.”

Redmine Plugins

“In cadrul acestui proiect am proiectat si implementat o serie de plugin-uri pentru Redmine. Am început mai întâi prin a ne familiariza cu limbajul Ruby, iar mai apoi cu framework-ul Ruby-on-Rails. Apoi, am reusit sa instalam si sa configuram o instanta de Redmine, iar pe urma am invatat cum se scrie un plugin. A fost o experienta utila si interesanta, de pe urma careia am invatat ce inseamna sa lucrezi in cadrul unui proiect Open Source.

Pluginurile realizate in cadrul proiectului sunt:

WHC

Sistemul WHC este o colectie de aplicatii/utilitati care servesc la dezvoltarea, managementul si executia codului OpenCL in cadrul unei retele eterogene. Sistemul a fost in primul rand dezvoltat avand in vedere unitatile de procesare CPU si GPU. Desi este construit/axat in jurul limbajului/frameworkf-urilor OpenCL se poate (cu nu foarte multe modificari) decupla si adapta catre alte limbaje/framework-uri similare (precum CUDA).

Sistemul cuprinde urmatoarele :

  • Mediu de dezvoltare (IDE) – scris in Qt, portabil Linux-Windows
  • Aplicatie Server – boss ( Linux ) / Sentinel – estimare ( Linux )
  • Aplicatie Client – worker (Linux )
  • Module specifice transport cod/date, scheduler, module detectare erori/prabusire, module monitorizare.

Probleme intampinate

  • Instabilitate framework-uri OpenCL ( Amd SDK < 2.2, Nvidia SDK < 3.2 ), probleme executie atat din punct de vedere al corectitudinii rezultatelor cat si al stabilitatii platformei (blocari)
  • Imposibilitatea executiei cod OpenCL pe GPU fara X Server (sisteme Unix)
  • Blocari irecuperabile, corupere imagine
  • Necesitatea adaptarii codului OpenCL cu platforma pe care se compileaza/executa nu doar pentru performanta ci si pentru corectitudine/stabilitate in rezultate/executie
  • Dezvoltare slaba pe sisteme Unix – putine unelte de dezvoltare comparativ cu platforma Windows
  • Ineficienta multiplexarii unei resurse (indeosebi GPU) mai multor procese ce executa cod OpenCL (probleme serioase pe Linux privind blocari irecuperabile – Amd SDK )
  • Probleme limitare timp executie per proces si/sau limitare resurse retea indiferent de ocupare. Daca se executa astfel un cod defectos pe intreaga retea ?
  • Dificultati in monitorizare stare client (WHC Client Worker) si/sau stare server estimator (WHC Server Estimator).
  • Comunicare terminare executie/progres executie catre WHC IDE

Concluzii generale WHC/OpenCLOpenCL este inca la inceput si framework-urile curente nu au ajuns la un nivel de maturitate la care pot garanta intr-o buna proportie o executie normala care sa genereze rezultate corecte. Sistemul propus incearca sa abstractizeze si mai mult, mergand la nivel de retea si considerand procese ce pot fi interconectate din punct de vedere al rezultatelor. Pana in acest punct am reusit definirea unei arhitecturi si am identificat numeroase probleme atat la nivel conceptual/ implementare cat si la nivel de framework (ce nu tin de noi).