Danas mi pade na pamet ovo, i "izgooglam"!
Plavi slon: ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
PHP Credits: ?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
Zend Logo: ?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
PHP Logo: ?=PHPE9568F34-D428-11d2-A769-00AA001ACF42
Ako kojim slucajem i ne vidite ovo, u php.ini potrebno je setovati expose_php na on.

Kako kompanija HTC nece vise podrzavati hero update (zadnja je bila 2.1), resio sam da "ubijem" ekler i podignem 2.2.
Pre svega:
- Na telefonu je bila instalirana verzija 2.1
- Telefon nije skidan sa nicije mreze
EDIT: SVE OVDE NAVEDENO RADITE NA SOPSTVENU ODGOVORNOST
1. Skinuti Universal Androot
2. Skinuti AmonRa Recovery (kasnije promeniti naziv u recovery.img, ili nesto lakse sa pisanje)
Oba fajla kopirati na SD karticu bez ikakvih foldera, direktno
Skinuti neki fajl menazder (Astro)
Kroz fajl menadzer instalirati Universal Androot, u aplikaciji postoji padajuci meni : Superuser Android 2.0 - 2.2; Superuser Android 1.5 - 1.6, ja sam izabrao 2.0 - 2.2 (telefon je vec bio na 2.1).
Zatim tap na Root. Sacekajte da vas obavesti kako je uredjaj rootovan porukom "Woot! Your device is rooted!" ili slicno.
Na Android marketu skinite Terminal emulator, instaliratj i pokreni, upisati sledece:
su [enter]
flash_image recovery sdcard/recovery.img [enter]
reboot recovery [enter]
Trebalo bi da se restartuje u recovery modu. U nekom slucaju, reboot recovery prijavi denied, iskljuciti telefon, pa ukljuciti drzanjem power+home celo vreme dok se ne podigne recovery.
3. Skinuti ROM FroydVillain1.5.0 (hvala @smarkovic )
Telefon je i dalje u recovery modu, izabrati "USB-MS toggle" prikaciti telefon na USB, zip fjal kopirati na SD karticu direktno, kad se kopira [home]
Izabrati Backup/Restore, Nanad backup, potvrditi sa [home].
Kada odradi, [back] i selektujte redom (time to WIPE all):
- Wipe, data/factory reset [home]
- Wipe, cache [home]
- Wipe, Dalvik-Cache [home]
- Wipe SD:ext partition [home] - meni je samo ovde prijavio gresku, ali sasvim je nebitno :)
- [back]
- Izaberite Flash Zip from SD card
- Selektujte fajl (onaj zip FroydVillan) [home]
Bol i patnja u iscekivanju, da li cu upropastiti igracku ovako lako? Prolazi kroz glavu dok se sve to lepo raspakuje, instalira ...
Kad zavrsi izabrati reboot, i onda cekanje prvi boot je vecnost, ali je uvodna animacija je za pohvalu.
Resursi: http://www.villainrom.co.uk
Kada se pojavio Nexus One najvece odusevljenje sam doziveo njegovom galerijom slika.
Mocna 3D galerija koja podrzava sortiranja po geotaging-u, vremenu...
Jednostavna manipulacija slikama (rotiranje, crop), brza postavka izabrane
slike za kontak, pozadinu.
Deljenje slike/slika na skoro svim socijalnim mrezama, uvezivanje za
ostalim instaliranim aplikacijama recimo 3banana notes...
Kako je ovih dana prosao update (FOTA) na 2.1 za Hero, sve sto je potrebno za ovakvu galeriju a nemate nexus one, je da posetite cooliris i pogledate promo video (odlucite da li vam se svidja ), a sa lokacije 10x9.com/rn skinete apk fajl (najbolje sa mobilnog) i instalirate (ovo je omogucio http://cocaman.ch/wp/)
Za one lenje ( i koji imaju barcode scanner :) )
Cooliris - 2.1 provereno na HTC Hero
3Banana Notes ( radi na svim android platformama, samo je mnogo dobar )
Ako ste podigli svoju verziju PHP-a na 5.3, velika verovatnoca da ce vas zadesiti par upozorenja deprecated function koja se odnose na ugradjenu funkciju ereg ili eregi.
Nije za paniku radice skripta, i uvek moze da se potisne upozorenje sa jedno @ ispred problematicne funkcije, ali ipak je bolje da se sve lepo pretrese i ispravi kako bi sve bilo u skladu sa napredkom i novim verzijama.
Najjednostavnije resenje je da se ereg zameni preg_match :
ereg('.([^.]*$)', $a, $b);
Postace:
preg_match('/.([^.]*$)/', $a, $b);
Primetice te da sa dodao / / okolo .([^.]*$), sto su RegEx delimitri.
Ako ste koristili eregi sto je ereg varijanta koja nije osetljiva na velika i mala slova (case-insensitive), primeticete da ne postoji pregi ekvivalentna funkcija, jednostavno:
ereg('.([^.]*$)', $a, $b);
Postace:
preg_match('/.([^.]*$)/i', $a, $b);
Dodato je malo i posle delimitra. I sve radi po starom, stim sto preg_match okupira malo vise memorije nego ereg, ali sredice se to vec :)
I još po nešto...
RSS feed je opšte poznato, dobra stvar. Koriste ga svi, developeri, blogeri, surferi... E sad, ovo pišem za ovu moju vrstu, prvenstveno za početnike, ali...
RSS, je ustvari formatirani sadržaj sa nekog sajta/bloga/portala... u XML formatu(najprostije receno). Inace ovde možete da prostudirate sve o XML-u, a na W3 gomila primera i objašnjenja. Uglavnom XML je dobar za slanje i čuvanje odredjenih podataka.
Potrebno nam je dalje, cURL u PHP-u moram da napomenem,(podrazumeva se server sa instaliranim PHP-om). Curl(libcurl) je inače biblijoteka(library) i omogućava konektovanje i komuniciranje na server(različitih vrsta) i protokola. Inače dodata je od verzije 4.0 i meni bitno da podržava HTTP, HTTPS protokole, podržava još gomilu ali nisam imao prilika.
Za Linux - ekipu: "instaliranje" libcurl-a
sudo apt-get install php5-curl
a za Win korisnike, dovoljno je u php.ini fajlu da odkomentarišete liniju sa curl-mod ili slično :)
Dakle imamo sa jedne strane PHP sa cURL mogućnostima, a sa druge strane feed koji nam je potreban(razloga ima puno).
$r = curl_init("http://www.nekisajt.com/feed.xml");
Ovom linijom smo inicirali curl, konkretno sa ovom adresom
curl_setopt($r, CURLOPT_RETURNTRANSFER, true);
curl_setopt($r, CURLOPT_HEADERor: #339933;">, 0);
ove dve linije se odnose na konekciju, i prva ima tri parametra: $r tj. resurs sa koga se vuče ranije definisan, drugi parametar je jak o bitan CURLOPT_RETURNTRANSFER, jer podrazumevano libcurl samo šalje podatke i ne čeka odgovor (response), što je dobro u nekim slučajevima, ali kako nam je potreban rss feed moramo da sačekamo odziv kako bi server dozvolio konekciju :), treći parametar je vrednost koja se tiče drugog parametra i ona je bool (true ili false).
Sledeći korak je: izvršiti konekciju, sačekati odziv i zatvoriti. U dve linije koda:
$rss = curl_exec($r);
curl_close($r);
Sada je pola posla urdjeno, ostaje nam manipulacija podacima koje smo pokupili. Sada, postoje razne tehnike za parsovanje XML kao sto su regular exspressions,str_replace i jos po koja, ali sve te tehnike troše resurse malo više, mnogo koda za ništa i od petice(PHP) postoji SimpleXML!
Rad sa SimpleXML je jednostavan i u dokumentaciji ima desetak bibljoteka koje su lepo opisane, nema potrebe za posebnom instalacijom, već je ugradjeno u PHP.
Imamo $rss varijablu koja "nosi" celokupni xml, treba samo pozvati SimpleXML sa dva parametra:
$feed = new SimpleXmlElement($rss, LIBXML_NOCDATA);
Inicijalizovali smo, i prosledili nasu $rss varijablu, LIBXML_NOCDATA je parametar koji da se CDATA tretira kao tekst (više o ovome neki drugi put), može se proslediti i treći parametar koje je bool(true ili false) podrazumevano je false, da se prosledi treći parametar true, $rss bi morao da bude putanja do XML fajla a ne varijabla sa podacima. Tako da cURL nebi bio ni potreban :) teoretski.
Ako vas interesuje šta se dogadja i šta smo ustvari napisali koristite var_dump($feed) ili
print_r($feed);
Sad ide teži deo, pošto neko "pušta" feed u RSS, a neko u ATOM formatu, trebalo bi detektovati na neki način, ovakav recimo:
if(isset($feed->channel))
{
daj_RSS($feed);
}
if(isset($feed->entry))
{
daj_Atom($feed);
}
dobra stvar je ta što RSS ima a ATOM , tako da smo pomoći if proverili koji je ko. Pa shodno tome, pozvana je odgovarajuća funkcija.
RSS funkcija igleda ovako:
function daj_RSS($xml)
{
echo "".$xml->channel->title."";
$cnt = count($xml->channel->item);
for($i=0; $i<$cnt; $i++)
{
$url = $xml->channel->item[$i]->link;
$title = $xml->channel->item[$i]->title;
$desc = $xml->channel->item[$i]->description;
echo ''.$title.''.$desc.'';
}
}
rss je mnogo lakši za čitanje, jer ne sadrži previše atributa u tagovima, dok je sa atom-om situacija malo teža jer moramo da pročitamo atribut:
function daj_Atom($xml)
{
echo "".$xml->author->name."";
$cnt = count($xml->entry);
for($i=0; $i<$cnt; $i++)
{
$urlAtt = $xml->entry[$i]->link->attributes();
$url = $urlAtt['href'];
$title = $xml->entry[$i]->title;
$desc = strip_tags($xml->entry[$i]->content);
echo ''.$title.''.$desc.'';
}
}
Ostaje vam samo da u $r varijablu postavite neki link i testirate.