Browser Detection

I needed a simple PHP class that detect browser and OS based on user agent string. I’ve tried some free available classes on net like PEAR::Net_UserAgent_Detect, but none worked for me. They were either too big or didn’t worked well with most recent browsers (like Opera 8.5 or Netscape 8).

After I spent some time by looking to code that suit my needs, I’ve decided to write my own class which should be working fine with most recent browsers. It recognize most popular browsers (like IE, Firefox, Opera …) as well as it’s version and subversion number (like Opera 8.50, Firefox 1.0.6, etc.). I didn’t care to add support for ancient and no longer used browsers like Netscape 4.x etc.

Here is the class code. You can use it in your projects for free as long as you don’t change header information.

(more…)

Vreme promena

U jednom od prethodnih zapisa rekoh da se tokom perioda u kome je blog bio down dešavalo “svašta/nešto” (uh koja glupa fraza :) E danas sam nakon par dana ludila konačno nahvatao vremena da malo pišem o tome. E pa krenimo redom.
(more…)

MySQL 5.0 is Here

Dugo čekana “petica” konačno je izašla iz beta faze i deklarisana kao production stable!

Nova verzija donosi podršku za stored procedure, poglede (views) i trigere. Više informacija o MySQL 5.0 možete naći na dev sekciji MySQL sajta.
fp-mysql-5-is-here-b_t.gif

Dinke.net up and running

Nakon nekoliko dana downtime-a Dinke.net je ponovo online. Razlog downtime-a je krah hard diska na hosting serveru Boox Computersa gde je Dinke.net do sada bio hostovan. Obzirom da ni posle tri dana problemi nisu rešeni bio sam primoran da prebacim sajt na drugi hosting.

Moj izbor je pao na webair.com, obzirom da imaju prakticno sve što mi treba (PHP, Perl, MySQL, E-mail, SSH) po povoljnoj ceni od $10 mesecno.

U prethodnim danima dešavalo se “svašta nešto”, ali cu o tome malo kasnije. Bitno je da smo ponovo live.

Bice skoro propast sveta

Pre izvesnog vremena dobio sam ppt fajl na kome se nalaze eksplicitni dokazi o skoroj propasti sveta.

- Najbolji igrač golfa na svetu je crnac (Tiger Woods)
- Najbolji reper na svetu je belac (Eminem)
- Najviši igrač NBA je Kinez (Yao Ming)
- Grčka šampion evrope u fudbalu

Večeras smo svedoci još jednog od “znakova”. Fudbaleri SCG su se za razliku od košarkaša kvalifikovali za svetsko prvenstvo.

Čitanje Excel fajlova iz PHP-a

Verujem da je svako od developera bar jednom u svojoj karijeri imao potrebu da importuje podatke iz nekog Excel fajla. Bez obzira da li se radi o cenovniku ili listi leadova koji morate iz Excela importovati u bazu, postupak je gotovo uvek isti. Prvo što radite je export Excel fajla u običan txt fajl (csv, xml, …) a zatim parsovanje podataka (radi importa u bazu i sl.). Prilično zamoran postupak, pogotovo ako ga morate raditi često, recimo za update cenovnika i sl.

Zahvaljujući besplatnoj phpexcelreader klasi, gore opisan postupak može biti prošlost. Jednostavno, sa phpexcelreader klasom podacima u Excelu možete pristupiti direktno referencijanjem indeksa reda odnosno kolone. Što je najlepše od svega, ova klasa podržava UTF-8 encoding, tako da neće biti problema sa našim slovima. Evo kratkog primera kako to u praksi izgleda.
(more…)

Junk Comments

U prethodnom zapisu pisao sam o SCode (captha) Movabletype plugin-u koji sam nakon novog naleta blog spamera bio primoran da instaliram. Kao što sam i očekivao, metod se sjajno pokazao protiv spamera. Jednostavno, zahvaljujući captha kodu koji spamerski scriptovi nisu bili u stanju da prepoznaju, gomila spama je otišla pravo u junk.

MOVABLETYPE & CAPTCHA

Nakon novog talasa spama na mom blogu, rešio sam da se konačno pozabavim tim problemom i dodam neki metod zaštite komentara od spama. Moderacija komentara koja je jedina po defaultu dostupna u Movabletype-u nije opcija. Nisam ljubitelj “moderisanih” blogova ili foruma gde se postovi pojavljuju sa zadrškom, tj. tek nakon odobrenja moderatora. Na stranu što nemam ni vremena da pored svega što radim još i moderišem komentare. Dakle, sve u svemu, CAPTCHA mi se čini kao odlično rešenje.

CAPTCHA je skraćenica od “Completely Automated Public Turing test to tell Computers and Humans Apart”. Za one kojima ovo ama baš ništa ne znači, u pitanju su automatski generisane sličice koje sadrže slova i brojeve i najčešće se koriste za sprečavanje automatizovanih programa da vrše neograničen broj postova.

Da bi se CAPTCHA omogućila u Movabletype-u neophodno je instalirati SCode plug-in. Naravno, kod MT/a ništa nije tako lako kao što izgleda, tako da sam prvo morao da izvršim “upgrade” na poslednju verziju (3.2), pa tek onda krenem sa instalacijom SCode-a.

O herojima oktobarske revolucije

Danas je petogodišnjica takozvane “peto-oktobarske revolucije”. I dok tako prebirem po sećanjima na taj dan, jednostavno mi pripadne muka dok gledam sve ove naše političare kako se šepure na televiziji, utrkujući se ko će dati više interview-a, izigravajući nekakve “heroje revolucije”.

Pravi heroji oktobarske revolucije su hiljade građana koji su tog dana izabrali da ne sede kući. Pravi heroji su petog oktobra gutali suzavac, goloruki jurišali na kordone policije, lupali bubnjeve, vozili bager. Među njima, čovek koji nikada neće dobiti order, ikona revolucije, Bagerista Džo.
bagerista_joe.jpg

Danas pet godina posle, želim samo da podsetim političare i sve one koji upravljaju našim životima na jedan od slogana koje smo gledali na velikim bilboardima tih dana.