Tutorial servicii web: client pentru un serviciu web în PHP

Aşa cum am promis într-un articol anterior, în acest articol vă voi explica cum puteţi crea un client pentru un serviciu web. În tutorialul serviciului, am folosit limbajul Java, însă de această dată voi folosi PHP.

Veţi avea nevoie de următoarele:

  • Apache Web Server, sau un server similar care poate să ruleze script-uri PHP, recomand XAMPP.
  • Un editor PHP, eu folosesc Eclipse PDT.
  • Librăria NuSOAP , descărcaţi de la Sourceforge nusoap-0.9.5.zip .

Desigur, pentru ca clientul să funcţioneze, trebuie să aveţi serverul Tomcat pornit şi serviciul web descris în tutorialul precedent disponibil.

Crearea unui proiect nou în Eclipse PDT este foarte simplă, File -> New -> PHP Project. Alegeţi opţiunea de a crea proiectul din surse deja existente, şi cu browse navigaţi în directorul htdocs al XAMPP-ului, şi creaţi-vă un director pentru proiect, de exemplu ”wsclient”. Desigur dacă folosiţi un alt server acesta se poate avea alte denumiri ca www, wwwroot etc.
Creaţi apoi în directorul proiectului, wsclient, un director pentru librăriile nusoap, cu acelaş nume. Puneţi aici directoarele samples şi lib obţinute din arhiva nusoap-0.9.5:

Mergeţi apoi în Eclipse selectaţi proiectul şi daţi click-dreapta -> Refresh.
Pentru a fi mai uşor înţeleasă aplicaţia PHP va fi compusă din 3 fişiere, şi anume:

  • wsinit.php – aici definim endpoint-ul (URL-ul) serviciului web pe care îl invocăm şi iniţializăm o variabilă client;
  • set.php – trimite un nou număr serviciului web;
  • get.php – cere serviciului web şi afişează ultimul număr trimis.

Pentru a crea fişiere php, selectaţi proiectul şi mergeţi la File-> New -> PHP File. Introduceţi numele şi click Finish. Creaţi cele 3 fişiere şi puneţi în ele codul de la link-urile fiecăruia. În final structura proiectului va arăta aşa:

Acum, pentru a-l testa, asiguraţi-vă mai întâi că aveţi pornit serverul web, XAMPP.  Apoi navigaţi cu browser-ul web la adresa http://localhost/wsclient/set.php . Veţi observa formularul care vă cere să introduceţi un număr. Acesta va fi trimis serviciului web, iar pe a doua pagină, http://localhost/wsclient/get.php acesta va fi afişat.

Construirea unui client se reduce la câteva linii de cod, cu ajutorul unei librării specializate. Şi în Java se pot construi clienţi la fel de uşor cu ajutorul API-urilor AXIOM.

Google Chrome OS – primul contact

Google se pregateste sa lanseze un sistem de operare pentru PC-uri (notebook-uri, mini pc-uri etc.) si mai ales cred eu pentru un tablet PC marca Google. Adica mi se pare oarecum plauzibil: Apple iPhone – Google Nexus, Google AdSense – Apple iAd, Apple iPad – Google Tablet …. .   Un nume interseant mi s-ar parea gPad, rezoneaza nu!

Acum cateva zile, am dat de un torrent cu o imagine vdmk – un hard disk virtual ce continea versiunea 0.4.22.8 a Chromium OS, viitorul Chrome OS.

Aici e tutorialul de instalare a imaginii:

Cel mai bun lucru despre Chromium OS este ca e open-source, fiind bazat pe linux de altfel. Nu stiu daca si sistemul de operare de la Google isi va pastra aceasta calitate ramane de vazut.

Android: Tutorial – webImageLoader

In acest tutorial voi descrie pasii pentru realizarea unei aplicatii pe Android care incarca o imagine de la un url dat.
Aveti nevoie de:

Daca sunteti novice in acest domeniu, inainte de a continua acest tutorial, va recomand cu caldura tutorialul scris de Lars Vogel:  Android development with Eclipse, care acopera si configurarea AVD. Acestea fiind zise sa ne apucam de treaba:

Porniti Eclipse, mergeti la File -> New -> Other si din directorul Android alegeti Android Project si apoi faceti click pe Next. Se va deschide fereastra de preconfigurare a proiectului, pe care o completati astfel:

click Finish.

La urmatorul pas, vom da drepturi aplicatiei noastre sa acceseze resurse de pe Internet. Orice aplicatie Android care foloseste internetul, va avea nevoie de aceste drepturi configurate. Se procedeaza astfel:
Din partea stanga, din lista de proiecte, deschideti directorul proiectului webImageLoader si deschideti fisierul AndroidManifest.xml. Din partea de jos, navigati la tab-ul Permissions. faceti click pe Add. Apoi din lista ce apare alegeti “Uses Permission”. Observati ca in dreapta apare tab-ul Atributes for Uses Permission. Dati click pe sageata din dreptul atributului Name si din lista derulanta alegeti “android.permission.INTERNET”. La sfarsit trebuie sa arate asa:

Apasati Ctrl + S pentru a salva modificarile.

Urmeaza sa definim interfata, respectiv layout-ul aplicatiei. Pentru asta expandati directorul res al proiectului si deschideti din directorul layout fisierul main.xml. In bara de sus la Config selectam “Portrait” (emulatorul configurat are un display de acest tip).  Selectati din bara de jos main.xml pentru a vedea xml-ul ce defineste aceasta interfata. Stergeti tot de aici si inlocuiti cu xml-ul de definit la Pastebin: webImageView XML Layout  .
In final trebuie sa arate asa:

Acum urmeaza sa importam libraria Droid-Fu pe care mai intai o descarcati de aiciin format jar. O salvati undeva pe calculator, si o importati la proiect astfel: Click dreapta pe directorul webImageLoader din lista de proiecte din stanga si se alege Properties. In fereastra de proprietati, in meniul din stanga se navigheaza la Java Build Path apoi click pe tab-ul Librairies din lista de tab-uri din dreapta de sus.  Aici dam click pe butonul “Add External JARs…” . Se navigheaza in directorul in care am salvat jar-ul droid-fu il selectam si dam OK. Mai dam un Ok la fereastra de proprietati pentru a salva.

Mai ramane de facut codul sursa al aplicatiei – unde vom folosi o clasa a librariei droid-fu care ne va usura foarte mult munca. Navigam in directorul src al proiectului si deschidem pachetul “webimageloader.main”  si deschidem fisierul java – webImageLoader.java. Vom sterge tot codul autogenerat si il inlocuim cu codul din Pastebin: webImageVew Java Code .

Pentru a rula aplicatia in emulator dam click-dreapta pe directorul proiectului Run As -> 1 Android Application.

Rezultatul:

Scriem url-ul unei imagini in campul pentru text si apasam butonul “Load Image”. Unele imagini de dimensiuni mari se pot incarca mai greu.
Daca vi se pare ca asteptati prea mult verificati daca emulatorul are “semnal”, respectiv daca exista cel putin una-doua linii pline albe la indicatorul de semnal de langa indicatorul 3g; acesta indica daca emulatorul este conectat la internet.

Sper sa fie util ;) .

Tutorial de instalare driver nVidia pe Fedora

Am sa descriu in cele ce urmeaza cum se instaleaza un driver grafic pe Fedora. Eu am fedora 7 si o placa video nVidia insa procedura este asemanatoare pentru toate distributiile linux bazate pe rpm (PCLinuxOS, YOPER, BerryLinux etc, o lista completa gasiti aici).

Daca ai placa video ATI poti afla multe informatii pe forumul Fedora , altfel pentru alte placi video cel fi bine sa te documentezi intai pe sit-ul producatorului. Sa trecem la treaba:

  • In primul rand va trebui sa downloadezi de pe site-ul nvidia diver-ul. Eu il recomand pe 169.12, evitati cele “legacy” deoarece pot provoca probleme ciudate pe linux.
  • Vei downloada un fisier .run, pe care iti recomand sa il muti intr-un director sub userul tau (de exemplu root/ sau /)
  • Deschide consola si scrie init 3 dupa care dai Enter. Vei trece in modul consola, si e nevoie sa te loghezi ca root.
  • Apasa ALT+F2 introdu “root” si parola si apoi ruleaza in consola: sh , unde reprezinta calea catre fisiserul .run pe care l-ai downloadat. De exemplu daca am downloadat fisierul NVIDIA-Linux-x86-169.12.pkg1.run si se gaseste in Downloads atunci comanda va arata asa: sh /root/Downloads/NVIDIA-Linux-x86-169.12.pkg1.run . Apesi Enter si urmezi instructiunile.
  • Ti se va cere la un moment dat sa faci un update la kernel, deoarece driverul s-ar putea sa nu gaseasca kernelul potrivit, poti sa alegi NO adica sa nu downloadeze kernelul de pe ftp de la nvidia, iar setup-ul isi va compila singur kernelul.
  • dupa ce s-a terminat aceasta faza, daca computerul nu se restarteaza automat scrie in consola reboot .
  • Dupa restartarea computerului, ar trebui sa apara logo-ul nVidia ceea ce inseamna ca ai instalat driverul corect, daca nu nu e nici un motiv de ingrijorare, inseamna ca vom avea de editat manual fisierul xorg.conf.
  • Du-te in diretorul /etc/X11/ si deschide cu un editor de text fisierul xorg.conf si editeaza-l cum scrie aici: Manually Editing the Configuration File
  • Apasa Ctrl+ALT+Backspace pentru a restarta serverul X.
  • Pentru a verifica daca ai acceleratie 3D scrie in consola glxinfo. Pe primele linii trebuie sa vezi: direct rendering: Yes. Inseamna ca driverul tau e instalat corect si functioneaza.

Pentru cei care vor sa se bucure de efecte graice va recomand XGL si Beryl. Tot pe forumul Fedora se gasesc instructiunile de instalare, cauta topic-ul Howto for F7.
Fedora + Gnome +XGL:

https://youtube.com/watch?v=uoaXtNP8CeE%26hl%3Den