marți, 22 noiembrie 2011

Gastronomix API

In vacanta de vara in lipsa de ocupatie, intre o sesiune si practica am decis sa imi ocup timpul testand Google Maps V3 impreuna cu Fusion Tables.
Combinatia a fost una de succes, si (destul de) usor de integrat. Aceasta dupa vreo luna de erori, folosind FireBug pentru depanare, diagrame, si toate uneltele atat de dragi programatorului cand are o eroare.
Pe viitor voi reveni cu mai multe detalii de implementare legat de solutia aleasa si cu o documentatie mai generoasa( poate fi gasita aici).
Un singur sfat mai am pentru cei care doresc sa foloseasca aceasta combinatie: mai intai sa faceti un brain-storming serios pentru a intelege cele 2 API si sa va faceti o diagrama a plicatiei, apoi sa codati. Este timp si de cod....

Ca de obicei aplicatia va fi inclusa in gastronoMix.ro, insa momentan se gaseste pe pagina de teste, impreuna cu sursele.
Cei interesati de aplicatie, sau care doresc mai multe informatii despre API-urile folosite pot sa imi trimita un mail.

duminică, 19 iunie 2011

Festivitate absolvire UTC-N Calculatoare romana

Pentru ca sunt de la Poli, si sunt tare mandru de acest fapt, atasez discursul predarii chei.
Protagonisti: Cipri& Mena(an 4) si Demi& Raluca(an 3)
Enjoy:

joi, 30 decembrie 2010

marți, 30 noiembrie 2010

miercuri, 3 noiembrie 2010

Cantinele din Cluj Napoca


View Cantine Cluj-Napoca in a larger map
Doresc sa dezvolt aceasta harta astfel incat sa includa posibilitati de cautare, filtrare a rezultatelor, posibilitatea folosirii tehnologiilor mobile. Gasiti aici ceea ce am lucrat pana acum. Am folosit Google Maps API V3, geolocalizare, geocodare, JavaScript, Google Fussion Table, DOM, CSS, HTML.
Cei interesati sunt rugati sa trimita un mail la
cantineCluj@gmail.com
cu subiectul "In legatura cu Gastronomix API".

joi, 20 mai 2010

Linux Thread app


/*Se presupune că într-un fişier text numbers.in, pe fiecare linie se găsesc
două numere întregi. Să se scrie programul C, care citeşte, pe rând, toate
liniile din fişier şi pentru fiecare linie citită creează un nou thread, căruia îi
transmite ca parametri (în cadrul unei structuri) cele două numere aflate pe
linia respectivă. Fiecare thread va prelua cei doi parametri, va face media
lor aritmetică, va scrie în fişierul result_threads.out, pe o linie, cele trei
numere şi identificatorul propriu de thread şi, în plus, numărul ce reprezintă
media aritmetică îl va transmite ca parametru funcţiei pthread_exit. După
terminarea citirii fişierului numbers.in, thread-ul main va prelua toate
rezultatele transmise de thread-urile create şi le va scrie în fişierul
results_main.out, fiecare rezultat alături de identificatorul thread-ului care
l-a produs. Să se compare, apoi conţinutul celor două fişiere.
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#include <pthread.h>


void *print_message_function( void *ptr );
typedef struct inregistrare{
int a;
int b;
}INREGISTRARE;

INREGISTRARE *aux;
//*aux=(INREGISTRARE *)malloc(sizeof(INREGISTRARE));
FILE * pOut;

int *resultat;

main()
{
FILE * pFile,*file2;
int n = 0,a,b,iret;
pthread_t thread;
pFile = fopen ("numbers.in","r");
pOut = fopen ("result_threads.out","w");
file2 = fopen ("result_main.out","w");

if (pFile==NULL) perror ("Error opening file");
else
{
while (!feof(pFile)) {
fscanf (pFile,"%d",&a);
fscanf (pFile,"%d",&b);
//printf("Perechea[%d]: %d - %d\n",n,a,b);
n++;
aux=(INREGISTRARE *)malloc(sizeof(INREGISTRARE));
aux->a=a;
aux->b=b;
//printf("Perechea: %d - %d\n",aux->a,aux->b);
iret = pthread_create( &thread, NULL, print_message_function, (void*) aux);
pthread_join(thread,&aux);
printf("\nRez intors de fct: %d %d\n",aux->a,aux->b);
fprintf(file2,"media: %-3d ID: %d\n",aux->a,aux->b);
}
}


exit(0);
}

void *print_message_function( void *ptr )
{
int media;
INREGISTRARE *message;
message = (INREGISTRARE *) ptr;
printf("Perechea: %d - %d\n",message->a,message->b);
media=(message->a+message->b)/2;
fprintf(pOut,"a: %-3d b:%-3d media:%-3d ID:%d\n",message->a,message->b,media,pthread_self());
aux->a=media;javascript:void(0)
aux->b=pthread_self();
pthread_exit((void *)aux);
}