Instalacija XDebug na XAMPP 1.7.3 za OSX

Xdebug-logoInstalacija XDebug na OSX ide ovako:

Prvi korak je pokrenuti fajl koji u sebi ima poziv za funkciju php_info. Fajl treba da izgleda ovako:

<?php

php_info();

Primetićete da nema zatvorenog php taga, što nije mnogo bitno za ostatak priče, ali je dobra navika da se <?php ne  zatvara na čistim php fajlovima, koji u sebi nemaju html, jer na kraju se višak razmaka i tabova prenosi na izlaz koji se vidi u browseru. Ovo zna da pravi problem ako treba da se pošalje neki podatak preko header funkcije ili recimo da se prosledi cookie u browser.

Zati se u browseru otvori ova strana: http://xdebug.org/wizard.php

Iskopirate celu stranu koju vidite kao rezultat php_info, i to ubacite u polje za unos teksta na ovoj drugoj strani. Nakon toga pratiti korake koji su tamo napisani.

Rezultat koji sam ja video izgeldao je ovako:

Xdebug Tailored Installation Instructions

Ispod ovog teksta postoji sekcija sa instrukcijama šta treba uraditi da bi se instalirala ekstenzija, koraci su jasni i nije potrebno ništa dodatno da se radi (barem u mom slučaju). Instalacija za windows je mnogo jednostavnija, i svodi se na kopiranje odgovarajućeg .dll fajla i ubacivanja u php.ini.

PHP header Content-Disposition filename – problem sa razmacima

Probem na koji sam naišao danas:

header("Content-Disposition: attachment; filename=". $file);

$file je izgledao ovako “Report – 995 – 2013-09-01-14-10-54.csv”. Sve je ovo deo koda koji generiše neki izveštaj i u browseru treba da pokaže prozor za snimanje.

Sve radi savršeno u Chrome, dok Firefox i Internet Explorer umesto imena dokumenta koji treba da se snim pokažu samo početak “Report” i prijave da je dokument tipa “text/csv”, barem je to ono što se vidi u FireFoxu.

Rešenja koja se pojavljuju po internetu je da se koristi urlencode, ali tada ime izgleda ovako: “Report+-+995+-+2013-09-01-14-10-54.csv”. Naravno klijent ne želi ovako nešto.

Na kraju sam pronašao da ime treba da stoji u dvostrukim navodnicima.

header('Content-Disposition: attachment; filename='". $file . '"');

 

Studiraj i ti IT

studiraj-i-ti-it… ili kako smo zakasnili. Sve ovo je kasno smišljeno, akcija je trebala da se dogodi pre pet godina, najmanje, tako da studenti koji su završili školovanje, sada mogu da traže posao i da već rade. U momentu kad Srbija čeka datum za početak pregovora i kad se bude to bude desilo, od tog momenta počinje da otkucava sat kada ćemo biti primljeni u EU. Ovo za sobom vuče sređivanje visina plata, jer EU će i to zahtevati, da se ne bi desila velika seoba Srba v2.0 u pravcu razvijenijih članica EU. Ako recimo očekujemo da se prijem u EU desi u narednih 10 godina to znači da će svršeni studenti doći na nivo plata koji je recimo 2/3 onih u EU, možda i viših. Sve ovo znači da nećemo biti više tako privlačni za outsourcing kao što smo bili kada je sve započelo (tj. danas) i da neće biti toliko poslova ovog profila koji se danas traži.

Sledeći veliki problem su fakulteti koji delimično prate potrebe tržišta rada. Šta je trenutno potrebno? Dve vrste programera, prva su oni koji poznaju mobilne platforme – Android, iOS, Windows… Druga su serverske tehnologije (PHP i JavaScript, tj Node.js sa odgovarajućim bazama podataka MySQL, MongoDB…), manje-više obe zahtevaju znanje HTML5, CSS3, JavaScript. Retko koji fakultet danas ima u svom planu i programu sve ovo na jednom mestu. Nisam skoro naišao na nekog ko je završio fakultet i da zna da radi u PHP. Na fakultetima se forsiraju Mikrosoftovi jezici i serveri, Java i Oracle. Kada se pogleda sve to, osim Jave sve ostalo se slabo traži.

Skoro je jedan prijatelj rekao “biće navala programera, doći će do zasićenja tržišta, smanjenja plata!”. Lično ne mislim da će se ovo desiti, jer do sad svi koji su znali da programiraju već se bave time, bez obzira na završenu školu, isto će tako biti i u budućnosti. Bez povećanja kvoti za upis na smerove koji se zaista traže, sve će biti kao što je bilo. Za mene je programiranje pre svega ljubav, i zato mi nije teško da sednem i da odvojim vreme da naučim nešto novo. Budući studenti treba da shvate da je IT oblast koja se stalno menja, i da se, više nego u bilo kojoj drugoj oblasti, mora raditi na sebi svakodnevno, a to znači stalno učenje. A posla uvek ima i biće za svakoga ko hoće da radi.

Kako instalirati Composer na OSX

Composer

Da ne ulazim u detalje šta je tačno Composer, rećiću samo da služi za lakše upravljanje projektom, da na standardizovan način napišete od kojih vanjskih projekata zavisi vaš projekat. Kasnije kada neko treba da instalira kod sebe vaš projekat dovoljno je da pokrene ovu skriptu koja će sve završiti automatski. Skinuti vaš projekat sa interneta, i sve ostale koji su potrebni za rad vašeg projekta.

Za više detalja o Composeru posetite http://getcomposer.org/. Continue reading

Spor odziv lokalnog web servera na Mac OSX 10.8

Pre nekih dva meseca sam prešao na OSX 10.8 (Mountain Lion), pre toga sam radio na 10.6 (Snow Leopard), koji je bio odličan za rad. Posle instalacije potrebnih aplikacija i startovanja lokalnog servera, primetio sam značajno usporenje u radu. OD momenta kad sam primetio problem, počeo sam da tražim rešenje ali ni jedno koje sam našao nije uspelo da ubrza lokalni server. Inače koristim XAMPP 1.7.3, pre toga sam na 10.6 koristio Zend Server CE. Danas ponovo iznerviran što se na lokalu trivijalne stvari otvaraju po 5-10 sekundi reših da potražim rešenje. Za lokalne domene (VirtualHost) sam već godinama uveo praksu da se završvaju sa .local i do sad je to funkcionisalo bez greške. Međutim Apple je u rešio da za prisvoji .local za svoj Bonjour, i na svaki upit prema nekom .local domenu je prvo morao da prođe proveru od strane sistema, pa se čekalo da vreme istekne (nekoliko sekundi) i tek tada se konsultovao hosts fajl da bi se razrešila putanja. Sad sam rpeimenovao sve instalirane projekte tako da se zavrsavaju sa .dev i problemi su nestali – svaka strana se otvara za manje od sekunde.

Zend Server CE 5.6.0 SP4 – ne prikazuje greške

zend-server Skoro sam uradio nadogradnju Zend Server CE 5.6.0 na verziju Zend Server CE 5.6.0 SP4. U novoj verziji je iz nepoznatih razloga isključeno prikazivanje grešaka. Kažem iz nepoznatih jer je CE verzija (Community Edition) je namenjena programerima, barem je takav moj doživljaj iste, možda grešim, ali nije ni bitno za sve ovo.

U poslednjoj verziji je isključen prikaz grešaka i ceo server je podešen za instalaciju na neki live web server, a ne za loklanu development mašinu. Tako umesto ispisa grešaka dobijate prazan ekran ili Internal Server Error – HTTP Error 500, što je daleko od korisnog.

Da bi ste ispravili ovo potrebno je uključiti prikaz grešaka. to možete na dva načina. Prvi je direktno u kodu:

ini_set('display_errors', 1);
error_reporting(E_ALL);

Možda je i preporučljivije tako, jer možete da kontrolišete kada ćete prikazati greške, u zavisnosti od tipa servera na kojem radite.

Drugi način je bolji za vaš lokalni server, jer ćete tako podesiti prikaz grešaka za sve vaše aplikacije na jednom mestu. Takođe treba imati na umu da se nema svaki put pristup php.ini fajlu.

error_reporting = E_ALL
display_errors = 1

Za više informacija pogledajte

Eclipse izgubio SVN info projekta

Subversion

Skoro, da kažem, redovna pojava, nakon nepravilnog gašenja Eclipse IDE-a projekat izgubi informaciju o SVN. Ovo važi za sva razvojna okruženja koja su zasnovana na Eclipse – Zend Studio, Aptana, PHP Development Tool (PDT). Zna da bude velik problem ako je bilo mnogo izmena.

Ukoliko nije došlo do oštećenja skrivenog .svn direktorijuma, onda je dovoljno kliknuti desnim dugmetom na projekat, i zatim izabrati Team > Share Project…

Posle ovoga potvrdite lokaciju SVN repositorija i Eclipse će ponovo povezati projekat sa SVN-om, kao što je bilo pre pucanja IDE-a.

Meni je ovo zatrebalo mnogo puta, jer radim na laptopu i ne obazirem se na upozorenje o trajanju baterije, pa se laptop jednostavno ugasi. Posle ovoga svi otvoreni projekti izgube vezu sa SVN repositorije. Tražio sam i ranije rešenje za ovaj problem ali nisam uspeo da ga pronađem sve do danas. Nadam se da će ovo nekom pomoći.

Programiranje, dizajn i još po nešto