Koji programski jezik učiti

Pitanje iz naslova jedno je od najčešće postavljenih pitanja svršenih diplomaca ili ljudi koji ulaze u svet programiranja. Pitanje nije trivijalno iz jednostavog razloga što dobro odabrana tehnologija znači veće mogućnosti za pronalaženje posla, bolje plaćen posao, … u najkraćem – svetliju budućnost.

Sve do juče na pitanje iz naslova bez mnogo razmišljanja odgovarao bih – PHP. Jednostavno, PHP poslova uvek ima, PHP se relativno brzo nauči, tako da za relativno kratko vreme možete doći do posla. Čak i za one bez ikakvog iskustva, otvorenost Web platforme omogućava početnicima da naprave sopstveni sajt, sajt komšijine prodavnice, prijatelja … whatever … i tako za kratko vreme steknu kakve takve reference i iskustvo – stvar koju tako mnogo tražimo mi koji tragamo za kvalitetnim developerima.

Elem, pre nekoliko dana kolega iz FBM-a zamolio me je da otvorim novu poziciju za iPhone developere, nakon čega sam nažalost jako brzo saznao da se broj iPhone Developera u Srbiji može nabrojati “na prste” jedne ruke.

Međutim situacija u svetu a naročito u USA je dramatično drugačija. Broj downloada iPhone aplikacija na Apple Application Store-u bliži se cifri sa 9 nula, a trenutno na listi najprodavanijih knjiga na Amazonu u kategoriji Računari i Internet možete naći samo nekoliko programerskih knjiga, od kojih su apsolutno sve vezane za iPhone. Ista priča je i kada odete i na kategoriju Programming gde su tri od prvih pet naslova knjige o razvoju iPhone aplikacija!

iPhone Development Books
iPhone Application Develpment Books

Nažalost cene Apple računara i nedostatak zvanične iPhone podrške u Srbiji i dalje je veliki problem u ovoj priči. No, za one za koje taj problem nije nepremostiv, današnji odgovor na pitanje iz naslova definitivno bi bio Objective C. Nisam siguran da ću čak i ja odoleti iskušenju …

Browser Detection Update

Danas sam sticajem okolnosti bio u prilici da nakon duzeg vremena updatujem svoju klasu za detekciju browsera. Radi se o klasi koja omogucava detektovanje tacne verzije Browsera/OS-a na osnovu user agenta browsera.

Npr: Mozilla Firefox 3.0.4 / Mac OS X

Može biti od koristi u slučaju da želite da korisnike određenih browsera redirektujete na posebne strane, kod pravljenja sopstvene statistike korišćenosti browsera itd.

Update sadrži dodatu podršku za Google Chrome, iPhone i Windows Vista OS.

Kompletan kod sa primerima možete downloadovati ovde

Izlaz scripta na ekranu i fajlu

Zbog prirode svog posla gotovo svakodnevno se bakćem sa raznoraznim php cli scriptovima. Često su u pitanju programi koji rade jako dugo (satima, neki čak i danima), ponekad praveći veliku količinu outputa, te zbog toga praktikujem da iste startujem unutar screen sesije, kako bih uvek mogao da se ponovo ulogujem u sesiju i bacim pogled kako stoje stvari.

Veoma je dobro logovati kompletan output skripta u fajl, za slučaj da je nešto pošlo naopako, ali nekako sam uvek voleo da onako “live” vidim na ekranu šta se dešava, umesto da mi ceo izlaz stoji u nekom tamo log fajlu. No, zahvaljući unix tee komandi i ovom postu, danas sam naučio da mogu imati obadva.

./script.php | tee out.log

Ovo će kreirati fajl out.log i usmeriti kompletan output scripta u njega, ali će isti biti prikazan i na ekranu (STDOUT). U slučaju da želite samo da dodate (append) output u postojeći log, nema problema:

./script.php | tee -a out.log

Konačno novi WordPress

Da, kao što i sam naslov kaže, konačno sam odradio upgrade sa vremešnog 2.0.4 na poslednji 2.3.2. Upgrade WP-a??? Big deal, reći će neko. No nije tako.

Ono što ovaj Blog izdvaja od ostalih je višejezičnost (isti Blog na dva jezika, tj. srpski i engleski), koja je postignuta zahvaljujući Gengo pluginu. Zgodan plugin koji vam omogućava da pišete postove na dva ili više jezika, dok korisnik sam bira preferirani jezik, ili mu se čak isti prikazuje na osnovu njegove geografske lokacije (GeoIP). Cool stvar.

No, ono što nije cool jeste da se Gengo prestao razvijati pre izvesnog vremena, tako da možete furati doveka stari WordPress ili deinstalirati Gengo, uz rizik da izgubite mukotrpan rad oko prevoda sadržaja i sl.

Current development on Gengo seems to have stopped . We have not heard anything from the developer for some months now. I hope that everything is fine for him. Unfortunately the latest release of Gengo is not compatible with WordPress 2.3 so f you want to continue to use Gengo “as is” you should not upgrade.

http://wp-multilingual.net/2008/01/26/gengo-and-wordpress-232/en/

Već vidim mrzitelje Open Source kako likuju. Eto vidiš, neki tamo programer je kreirao nešto, ti si se primio i uzeo to da koristiš na svom production sajtu i eto, taman kada ti je zatrebala podrška on je zapalio. Možda je prezauzet preživljavanjem, možda ga je udario kamion, šta god. Zarobljen si u zastarelom rešenju koje ne možeš upgrade-ovati, nema izlaza. No, sačekajte …

Open Source ima i dobru stranu, a to je da taj kod možete uzeti i nastaviti razvijati, a upravo to se i desilo u slučaju Gengo-a. Par naprednijih korisnika se organizovalo, zasuklo rukave, i eto novog Genga. Zapravo, ne još pošto je u pitanju još uvek alfa, ali koliko se pokazalo ima dovoljnu funkcionalnost da može ići na ovaj Blog. Zapravo bilo je potrebno malo je hakovati zbog problema koje sam i sam prijavio developerima, no bitno je da to sve (nadam se) fercera, dovoljno dobro, tj. bez vidljivijih bugova :)

Browser War Again

U jednom od ranijih postova pisao sam o ratu browsera . I dok se novi rat zahuktava, ovih dana došlo je vreme za odavanje počasti žrtvama prethodnog.

Da, u pitanju je Netscape Navigator, koji ovih dana odlazi na smetlište istorije nakon što je AOL objavio prestanak podrške i samim tim definitivan kraj za ovaj browser. Kao jedan od ljudi koji je svoje prve dane na Internetu provodio uz Netscape Navigator, moram da priznam da osećam izvesnu dozu sete kada se setih browsera koji je suvereno vladao sve do kraja devedesetih.

netscape.jpg
Netscape 2.x

Naravno, Microsoft ne planira da nakon decenije dominacije i njihov browser krene istim stopama, naprotiv razvoj novog IE8 je u punom jeku, a upravo ovih dana developeri IE-a objavili su da je IE8 sa uspehom prošao ACID2 test. I pored implementiranja najnovijih standarda, MS developeri su najavili da će kompatibilnost sa prethodnim verzijama biti u potpunosti očuvama. Kako to zamišljaju da urade, to bih baš voleo da vidim :)

Acid2

Ajax Animacija

Ajax je definitivno “in”, a za poboljšanje korisničkog doživljanja, efektna animacija prilikom akcija korisnika je od neprocenljivog značaja. Srećom zahvaljujući sjajnom AjaxLoad sajtu ne morate se patiti sa kreiranjem animiranih gifova ili flash animacija. Jednostavno odaberete tip animacije, podesite boje, kliknete na generate dugme i … voila! Vaša animacija je spremna za download.

ajaxloadinfo.gif

MySQL – Backup velikih MyISAM tabela

Ako ste ikada morali da backup-ujete ili prebacujete podatke iz jedne ili više MySQL tabela, znate da se za to koristi mysqldump utility, pomoću kojeg jednostavno podatke iz MySQL-a “dumpujete” u neki mojetabele.sql fajl, koji zatim možete sačuvati kao backup, prebaciti i importovati na neki drugi MySQL server, itd. Ovu proceduru koristio sam milion puta do sada, i ona se generalno svodi na izvršavanje sledećih komandi u linuxu:

export:

mysqldump -udinke -pmojpass -hhostname.prvog.servera ime_baze tabela1 tabela 2 tabelan > dump_fajl.sql

import:

mysql -udinke -pmojpass -hhostname.drugog.servera ime_baze < dump_fajl.sql

Tu i tamo pojavi se problem kada prebacujete dump sa novije verzije MySQL-a na stariju, i tada je poželjno specifirati i odgovarajući compability flag prilikom izvršavanja mysqldump komande (--compatible=name gde name može biti mysql323, mysql40, postgresql, oracle itd.).

Elem, pre nekoliko dana zbog prebacivanja MySQL servera sa jedne lokacije na drugu, morao sam da odradim dump solidno velikih MySQL tabela (10-tak tabela gde je svaka imala preko 2 miliona slogova). Nakon užasavajuće duge procedure dumpa, gzipovanja i scpovanja na drugi server, konačno sam startovao import. Međutim, nakon 3 sata (tri sata) umesto standardne "no news is a good news" poruke, kada sam bacio pogled na status dočekala me je sledeća poruka ...:

[dinke@um-917 ~/public_html]$ mysql -udinke -p325ewfwt23rasf
keyword_discovery < es_miner_data.sql
ERROR 1582 (23000) at line 163833: Duplicate entry '1167548' for key
'PRIMARY'

WTF? Prebacivao sam podatke sa starije verzije na noviju, što znali da import mora proći glatko! Ovo bi trebalo da znači da je MySQL negde nešto pobrljavio sa indexima, i umesto da čekam još 2 sata da se odradi check & repair, odlučujem se da napravim ponovo dump fajl, ovaj put sa ignore opcijom, kako bi svi inserti u dump fajlu bili "insert ignore" tako da u slučaju ovakve greške ne bi došlo do pucanja. Ne preterano pametno, ali podaci nisu extremno osetljivi i mogu da dozvolim luksuz da izgubim desetak slogova, ali ne i desetak sati za import!

Naravno, novi dump, zip, scp ... to je traajalooo ... toliko dugo da sam posle par sati nakon startovanja importa krenuo da mozgam sa administratorom (kuki) oko alternativnih rešenja. A rešenje je bilo jednostavno ali efikasno. Prekopirali smo sve MySQL data fajlove sa jednog servera na drugi (*.MYI, *.MYD i *.frm fajlove), a zatim odradili myisamchk kako bi sredili pomenute tabele, jer nismo smeli da spuštamo server prilikom backup-a što generalno može da prouzrokuje dosta problema (tipa oštećene tabele) ako se na ovaj način backupuju fajlovi.

Sve u svemu, ova operacija prošla je jako brzo (najduže je trajalo kopiranje fajlova sa jednog hosta na drugi), i za manje od pola sata cela procedura bila je završena.

Zaključak do koga smo došli je da je kod velikih tabela zbog dužine trajanja operacije dumpovanje praktično neprihvatljivo kao backup rešenje, i da se samim tim kao jedino rešenje nameće kopiranje MySQL data fajlova. Kod MyISAM tabela to nije nikakav problem, jer su one "platform safe", tj. binarni fajl kreiran na jednoj platformi (recimo *.MYI fajl na linuxu) radiće bez ikakvih problema na drugoj platformi (recimo isti *.MYI fajl na Windowsu).

Google Street View

I taman kad pomislite da vas više ničim ne može iznenaditi – Google to uradi ponovo!

Nova zvezda zove se “Street View” i deo je Google Maps aplikacije. Street view, kao što i sam naziv kaže omogućava vam da se šetate ulicama gradova, rotirate sliku itd. Za sada podrška je ograničena na nekoliko gradova u USA (San Francisko, Las Vegas, Denver, New York, Miami), ali i to je sasvim dovoljno da se oduševite.

Evo nekih od lokacija koje su meni bile Interesantne.

Golden Gate Bridge
Golden Gate Bridge

Las Vegas
Las Vegas

miami_beach.jpg
Miami Beach

ny_central_park.jpg
NY, Central Park

Foxmarks – Bookmark Synchronizer

Ako poput mene koristite više od jednog kompjutera(recimo laptop i vaš kućni Desktop), sigurno ćete pre ili kasnije poželeti da nekako centralizujete vaše bookmarkove. Ako koristite Firefox, rešenje je tu na dohvat ruke – Foxmarks.

foxmarks.gif

Foxmarks ekstenzija vas nakon instaliranja vodi kroz čarobnjak koji vam omogućava da lako otvorite nov foxmarks nalog, a zatim će se vaši bookmarkovi snimiti na server. Nakon toga svaka promena u vašim bookmarkovima će biti transparentno sinhronizovana sa serverom. Nakon što instalirate ektenziju na neki drugi računar(laptop na primer), foxmarks će vam ponuditi sinhronizaciju, gde možete na primer da kombinujete bookmarkove sa oba računara, ili da u potpunosti povučete bookmarkove sa servera itd.

Foxmarks ekstenziju možete downloadovati odavde.

Blogodak – Top Lista Blogova

Od danas je na Blogotku aktivna Top lista Blogova. Za razliku od moje stare liste, ova je bazirana na TLA Blog Juice faktoru koji računa rejting bloga na osnovu broja pretplatnika na servisu Bloglines, Alexa rejtingu, Technorati rejtingu, kao i broju dolaznih linkova ka Technorati servisu. Maksimalan rank može biti 9.9, a moj blog se kao i na Netcraft listi nalazi u samom vrhu sa rankom 1.8.

Za razliku od liste bazirane na Netcraftu, ova lista(iako i dalje ima par manjkavosti) je mnogo manje podležna manipulaciji, i samim tim predstavlja daleko realniji prikaz popularnosti nekog Bloga.

Za sada ćemo listu na Blogotku update-ovati jednom nedeljno, kasnije ćemo videti da li je potrebno vršiti izmene u frekvenciji update-a.

Netvibes lokalizovan na srpski

Kako je juče objavljeno na zvaničnom netvibes blogu, Netvibes je svoje servise lokalizovao na srpski. Koliko vidim u lokalizaciji je učestvovao veći broj prevodioca, a posebne pohvale su upućene Drasku Stojanoviću i Miloradu Tošiću(prevod), kao i Lazaru Mišeljiću(lokalizacija).

Netvibes na srpskom

Ono što je naročito interesantno u lokalizovanoj verziji je lista preporučenih rss kanala, kao i veoma koristan adresar rss kanala koji je razvrstan po tematskim kategorijama.

lokalizovani rss kanali

Sve u svemu, sve pohvale ljudima koji su dali svoj doprinos ovome. Inače, da se pohvalim da je na listi tematskih blogova i moj blog. :)

Adsense – izmena javnih reklama

Kao što verovatno već znate, adsense za sadržaj odnedavno podržava i hrvatski jezik, što je mnoge ovdašnje Webmastere(rekao bih ponovo) zainteresovalo za adsense. Naravno, i pored činjenice da su srpski i hrvatski veoma slični jezici, nakon što na vaš sajt postavite adsense, veoma često bićete u prilici da gledate takozvane “javne reklame” (public ads), koje ne donose nikav prihod, a uz to i njihov izgled često značajno odstupa od boja koje ste odabrali za adsense reklame, što dodatno kvari vizuelni identitet vašeg sajta.

Srećom, gornji problem se može jednostavno rešiti postavljanjem alternativnog url-a za public ads, a što je najlepše od svega, u pitanju je sasvim legalan “hack”, dakle google vas neće banovati zbog toga. Sve što treba da uradite je da kreirate posebnu html stranu koja će prikazivati vaše banere, i da google-u stavite do znanja kako da do nje dođe. Pored html strane, možete staviti i link do slike, ali imajte u vidu da ona neće biti linkovana(što imho i nema mnogo smisla), a alternativno možete staviti i boju koja će jednostavno popuniti prostor predviđen za reklamu.

Što se same html strane tiče, tu nema nikakvih trikova, jednostavno kreirajte najobičniju html stranu koja sadrži baner (slika ili flash) koji se opciono može dinamički generisati iz php skripta. Jedina bitna stvar je da se u stilu za stranu setuju margine i padding na 0, i da naravno baner bude identičan dimezijama reklama koju menja. Na primer za reklamu dimenzija 468×60 trebalo da i dimenzije banera budu identične. Takođe, poželjno je da urlovi na objekte koje linkujete budu absolutni.

Evo kako to recimo izgleda na servisu blogodak za prikaz flash banera humanost.org:

<html>
<head>
	<title>Banner</title>
	
	<style type="text/css">
		body
		{
			margin:0px; 
			padding:0px; 
			background:#ffffff; 
		}
	</style>
	
</head>
<body>
 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="468" height="60">
    <param name="movie" value="http://www.blogodak.com/images/banners/humanost468.swf" />
    <param name="quality" value="high" />

    <embed src="http://www.blogodak.com/images/banners/humanost468.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="468" height="60"></embed>
  </object>
</body>
</html>

Naravno, stranu možete generisati potpuno dinamički, rotirati banere, pratiti statistiku itd. Nakon što postavite vašu stranu na server, neophodno je da google-u stavite do znanja kako da do nje dođe. To možete učiniti tako što ćete proći kroz adsense setup, a zatim u delu sa dodatnim opcijama unesete url do vaše strane.

adsense.gif
Adsense Setup – Setovanje alternativnog url-a za public ads

Alternativno, možete u već generisani adsense kod, odmah ispod google_ad_client linije dodati google_alternate_ad_url liniju, kao na primer:

google_ad_client = "pub-0981372496796058";
google_alternate_ad_url = "http://www.blogodak.com/misc/display_banner.php";
google_ad_width = 468;
...

Dodatne informacije o celoj proceduri možete naći na google adsense help stranama, ovde.

Blogodak Beta – Preview Release

Verovatno ste u poslednja 2 meseca primetili da sam utanjio sa postovanjem, što ovde na blogu, što na DPT-u i ostalim forumima. Sada konačno mogu da kažem šta je to na šta sam trošio svo slobodno vreme u prethodnih nekoliko meseci. :)

Dakle, kako je Dragan Babić pre više od mesec dana najavio na svom blogu, u pitanju je jedan servis namenjen pre svega domaćoj blogosferi i blogerima – Blogodak.

Pre nego vam ukratko opišem o čemu se tačno ovde radi, reč dve o tome kako sam uopšte došao na ideju da napravim blogodak. Već nekoliko godina postoji jedan sjajan servis Planetoid, agregator svih srpskih blogova gde se između ostalog vrti i ovaj blog. No, nakon jedne imho kontraverzne odluke administratora planete da neke blogove uprkos protivljenju zajednice uključi na planetu, došao sam na ideju da napravim drugačiji, bolji servis koji će jednostavno po principu “100 ljudi – 100 ćudi”, omogućiti korisnicima da sami biraju šta žele a šta ne žele da prate. Tako je nastao Blogodak.

blogodak_logo1.png

Zašto baš ime Blogodak pitate se :) ? Jednostavno, sva druga imena koja su imala neku asocijaciju(blogosfera.com i sl.) su bila zauzeta a njihovi vlasnici tražili su iznos koji više puta prelazi realnu vrednost domena. Na kraju, moj prijatelj Moreno mi je sugerisao ime koje se pojavilo na ovoj temi na DPT-u … and the rest is history :)

E, sada nakon što sam sve udavio sa nebitnim detaljima da pređem na stvar. Blogodak je agregator blogova na srpsko-hrvatskom jeziku. Zbog ograničenja resursa(pre svega ljudskih), sam servis biće realizovan u nekoliko faza, tako da će malo po malo dobijati sve od planiranih feature-a.

Ovo je praktično neka vrsta prelease-a, što znači da čak ni deo funkcija planiran za ovu verziju(poput personalizacije blogova) još uvek nije do kraja odrađen. Ovo je urađeno pre svega zato što sam želeo da što ranije(čitaj u što ranijoj fazi) dobijem feedack od korisnika, kako bi imao jasnu ideju u kom pravcu će se servis dalje razvijati. After all, ovo je pre svega projekat namenjen zajednici, pa samim tim zajednica će kroz svoje komentare i oblikovati Blogodak.

Trenutno Blogodak ima sledeće mogućnosti:

Feed Parsing
————
Import kompletnog RSS feed-a sa liste blogova, konverzija u latinični utf-8 kodni raspored. Blogodak prati sve izmene sadržaja na svakom pojedinačnom feed-u i automatski update-uje svoju bazu.

Pretraživanje
————-
Obzirom da se zapisi sa svih blogova smeštaju u bazu, svi importovani feed-ovi mogu se pretraživati, na isti način kaoi na svakom pojedinačnom blogu.

Arhiva
————-
Već nekoliko meseci Blogodak importuje feed-ove sa domaće Blogosfere, tako da možete listati arhivu za celu 2006-u godinu.

Personalizacija
—————
Ovo je ujedno i krucijalni deo servisa. Svaki korisnik moći će da kreira listu blogova koje ignoriše, kao i listu omiljenih blogova. Naravno, to je samo deo mogućnosti koje planiram, u narednim verzijama planiram podršku za tagovanje, glasanje itd. Deo servisa koji treba da omoguci kreiranje liste jos uvek nije u potpunosti zavrsen(tu trenutno imam najviše nedoumica i očekujem najviše predloga :).

Ceo servis radi na LAMP platformi(kod je kompletno napisan u PHP-u 5.1), a u planu je da se ubace sve karakteristike Web 2.0 aplikacija uz korišćenje Ajax-a naravno. Naravno, tu je i nezaobilazan tableless dizajn za koji je bio zadužen CSS mag Dragan Babić, koji je imho sa svoje strane odradio sjajan posao.

blogodak.jpg
Blogodak u “akciji”

Naravno, kao i svaki drugi beta softver, Blogodak ima verovatno niz bugova,a neki od njih su već prijavljeni na DPT-u ovde. Kad smo već kod bagova, da pomenem da smo zahvaljujući bug-u u phpmailer-u (ili gremlinima obzirom da sam testirao slanje na nekoliko klijenata) imali loš početak, obzirom da su neki subscriberi dobili više od jednog maila sa sve subscriberima u “To” headeru. Srećom većinu lično poznajem, tako da je bilo uglavnom šala na moj račun(tipa, “…ovaj je dobio 10 mailova a ja samo 8, jel sam ja manje vredan a?!! “) i sl. U svakom slučaju, izvinjavam se svima zbog neugodnosti uz obećanje da ću ubuduće koristiti plain vanila PHP mail funkciju.

Toliko od mene za sada, nešto kasnije ćete moći da uživate u 5 stvari koje ne znate o meni (zahvaljujući meme-u od Dragana i Dejana). Naravno, u međuvremenu svakako probajte Blogodak, a sve svoje primebde i sugestije možete ostaviti ovde, ili na odgovarajućoj temi na DPT-u.

Kragujevac “Odozgo”

Pre par meseci pisao sam o tome kako je Kragujevac konačno uključen na Google Earth. Danas sam zahvaljujući informaciji od insajdera(Zigor@DPT) imao zadovoljstvo da se upoznam sa “Geografsko informacionim sistemom“(GIS) grada Kragujevca.

Na prvi pogled GIS deluje slično kao i Google Maps servis, čak sam na trenutak i pomislio da se u backendu poziva Google ili Yahoo Maps API . Međutim, u pitanju je sasvim jedinstveno rešenje, koje u backendu obrađuje gigabajte ortofoto snimaka. Što se fotografija tiče u pitanju su takozvani “ortofoto” snimci fotografisani iz aviona, koji su naknadno georeferencirani.

Kao i kod Google Maps-a, i ovde mapu možete vući mišem po ekranu, ali za razliku od Google-a, ovde su vam dostupne sve infomacije o nazivima ulica, gustini naseljenosti i sl. Takođe, moguće je pretraživanje baze na osnovu naziva ulice ili broja. Jednom rečju, sistem radi sjajno i nikako da prestanem da se igram sa njime. Ono na šta sam naročito ponosan(uz činjenicu da je Kragujevac prvi grad u Srbiji koji ima ovako nešto) je i činjenica da je kompletan projekat delo jedne domaće firme – Manufakture.

gis-lampix.jpg
Lampix Office

gis1.jpg
GIS sa uključenim layerima

PHP 5.2.0 Released

New release of PHP 5.2.0 is available for download.

Along with plenty of bugfixes, new release bring us some interesting features, the most interesting among them are hooks for tracking file upload progress , as well as new ZIP extension for creating and editing zip files.

More informations about this release can be found in the release announcement 5.2.0.

Izašao PHP 5.2.0

Nova verzija PHP-a, 5.2.0 od juče je dostupna za download.

Pored gomile ispravljenih bagova, nova verzija donosi i neke interesantne mogućnosti od kojih su meni najinteresantnije podrška za “progres bar” prilikom uploada, kao i podrška za zip fajlove. Više informacija o tome šta nam novo donosi PHP 5.2 možete pronaći ovde.

IE7 – Automatic Update

IE 7 Automatic Update
Stigao je :)

Browser War – Revisited

Svi se sećamo sredine 90-tih, rata browsera i velike pobede IE-a koji je na početku 21 veka držao više od 98% tržišta. Nekoliko godina IE je spavao na lovorikama stare slave, a konkurenti (Netscape, Opera) uzaludno su pokušavali da kvalitetom dođu do većeg udela na tržištu. U međuvremenu Netscape je odlučio da otvori kompletan izvorni kod svog browsera, čime je praktično nastao novi browser – Mozilla, po kvalitetu i podršci Web standardima daleko iznad explorera ali i dalje bez većeg uspeha u osvajanju tržišta. A onda je Mozilla fondacija krenula sa razvojem “browsera budućnosti”, prvobitno nazvanog Firebird. Posle par ranih verzija browser dobija novo ime – Firefox.

Od Novembra 2004 godine kada je zvanično izašla prva stabilna verzija Firefox-a (mnogi poput autora ovog teksta koristili su ga i znatno pre toga), broj korisnika istog postepeno je rastao, ali to nije brinulo Microsoft koji je i dalje držao veći deo tržišta. No, kada je vrag odneo šalu (čitaj broj korisnika Firefox-a prešao famoznih 10%), developeri Microsofta su se latili posla, i kreirali novi IE 7, sa svim divnim mogućnostima koje FF ima (bolji css support, podrška za tabbed browing itd.). Nakon nekoliko meseci testiranja i raznih beta, RC i sl. verzija pre nekoliko dana IE 7 je postao dostupan za download. Odgovor Firefox-a bio je munjevit. Posle par bledih release candidata, brže bolje spakovana je nova verzija Firefox 2.0, a deo planiranih feature-a odložen je za verziju 3.x čiji je razvoj već počeo.

IE7 - Cake or Poison :) ?
Torta koju je IE Tim navodno poslao developerima Firefoxa

Za samo 4 dana novi IE7 downloadovalo je preko 3 miliona korisnika, a njihov broj će biti još veći kada Microsoft bude pustio IE 7 kao deo automatskog update-a u Windowsu XP. U međuvremenu nova verzija Firefoxa naišla je na podeljene reakcije korisnika, što će sigurno rezultovati sporijim upgrade-om na verziju 2.0. Mnogi sajtovi poput ovog, već se bave poređenjem mogućnosti ova dva browera.

ff_vs_ie.jpg

Sve u svemu, novi rat browsera je u toku, a kao i u svakom ratu postojaće žrtve ali i “ratni profiteri”. Ironično, profitiraće korisnici, koji će osim boljih browsera postepeno dobiti i bolje sajtove, jer je nivo podrške za najsavremenije standarde u IE-u 7 i FF-u 2 veći nego ikada. Profitiraće i industrija, kojoj će IE7 dati nov podsticaj u Web 2.0 bumu (koliko će to trajati – videćemo). Pored poraženih (neko u ratu uvek izgubi zar ne) kolateralna šteta biće developeri, pogotovo oni koji održavaju sajtove velikih kompanija. Vreme starih sajtova sa ugnježdenim tabelama i “spacerima” definitivno prolazi, a broj takvih sajtova je ogroman, tako da će najveći izazov developerima biti konačno usvajanje novog CSS-P ili popularno “tableless” dizajna, uz naravno nezaobilazni JavaScript kao J u Ajax-u.

Firefox 2.0 Final

Gotovo godinu dana nakon prethodne verzije, kao i vrlo loših utisaka o poslednjem release kandidatu 3, finalna verzija Firefoxa 2.0 od danas je konačno dostupna za download.

Firefox 2.0

Na osnovu zvaničnog “release notes”-a, novi Firefox sadrži poboljšanja u izgledu, ugrađenu zaštitu od phishing-a, spell checking, bolji tabed browsing, itd., a ispod haube tu je i podrška za JavaScript 1.7.

Nakon downloada (instalacija za Windows velika je 5.6MB), sama instalacija protekla je sasvim glatko, bez ikakvih problema sa ekstenzijama, uz uobičajen automatski update ektenzija koje nisu podržane.

Prvi utisci nisu baš tako povoljni. Nova default tema mi se nimalo ne sviđa, dodato je nešto što liči na “Go” dugme kod Explorera, a uz sve to, više ne postoji “krstić” u desnom uglu prostora sa tabovima na koji možete zatvoriti aktivni prozor, već su sada (kao kod Opere) prisutni samo kod pojedinačnih tabova.

Od novih feature-a, izdvajam mogućnost da firefox prilikom starta otvori iste one tabove koje ste imali pre zatvaranja (restaurira sesiju). Ona je (barem kod mene) po defaultu isključena, ali se može uključiti u glavnom meniju. Pored toga, tu je i spell checker koji je po defaultu uključen, bez obzira na jezik koji koristite, tako da će vam uredno sve reči u formi markirati kao greške (srećom lako se isključuje). Prilično beskorisno, osim ako ne pišete jako mnogo tekstova na engleskom. :)

Što se opcija u meniju tiče, nema većih izmena. U History delu dodata je opcija “Recently closed tabs”, jako korisno, pogotovo ako greškom zatvorite neki tab. Takođe extenzije i teme su sada organizovane delu koji se zove “Add-ons”, koji je dostupan u Tools delu menija. U glavnom “Options” meniju dodat je “feeds” tab, gde se može definisati default feed reader, a u slučaju da nemate nijedan instaliran možete izabrati neki od popularnih online readera (Bloglines, Google Readers itd.).

Sve u svemu, utisci o novom Firefox-u su pomešani, ali sačekaću još nekoliko dana pre nego eventualno donesem odluku da se vratim na stari (dobri) 1.5.

Google Code Search

Google nastavlja da izbacuje nove servise gotovo na dnevnoj bazi. Poslednji u nizu Google Code Search naročito je Interesantan developerima, obzirom da omogućava pretragu unutar source koda. Pretragu možete obavljati korišćenjem “klasičnih” search termina kao i regularnim izrazima.

Google Code Search

Kad smo već kod regularnih izraza, b92.net je nedavno pokrenuo novu sekciju na svom sajtu – tehnopolis gde između ostalog možete naći i moj članak o regularnim izrazima.

Netvibes 2.0

Jedna od najpopularnijih Web 2.0 aplikacija Netvibes, upravo je stigla do svoje druge revizije sa kodnim imenom “Cinnamon”.

Iako Netvibes 2.0 po rečima autora donosi “tonu novih mogućnosti”, ako poput mene netvibes koristite pretežno kao RSS reader, novine gotovo i da nećete primetiti.

Nove mogućnosti odnose se na neznatno izmenjen korisnički interfejs, unapređenja kod većine modula, kao i nekoliko potpuno novih modula (od kojih su meni najinteresantniji “Alexa Ranking” kao i “Blog Search” moduli).

Blog Search
Blog Search

alexa ranking
Poređenje najposećenijih srpskih blogova na “Alexa Rank” modulu

Naravno, kao i kod svake velike revizije, i ova je donela određene probleme, tako da su primetni sitni bagovi kod pojedinih modula. Očekujem da to bude ispeglano u narednim danima.

Netvibes u Akciji
Netvibes u Akciji

P.S. Post koji upravo čitate je jubilarni 100-ti post na srpkom delu bloga.

Hacking Webalizer

Few weeks ago I found a way to install Webalizer on DreamHost. Webalizer is a little bit of an obsolete utility (comparing to Google Analytics Webalizer stats look rude), but still has some advantages. One of the biggest is that it is still used by many hosting solutions, so you don’t have to change all of your site(blog) pages just to make sure Google will track your stats.
(more…)

Google Page Creator

Ne znam za vas, ali meni sve teže uspeva da ispratim sve servise kojim nas Google obasipa u poslednje vreme . GMail, GMap, GTalk, GCal, GSpreadsheets, … a od danas na raspolaganju nam je i Google Page Creator.

Google Page Creator je još jedna u nizu Web 2.0 aplikacija, a služi kako joj i samo ime kaže za kreiranje Web Strana. Kao i kod ostalih sličnih alata, nije potrebno nikakvo poznavanje html-a, već se Web strane kreiraju jednostavno, direktno iz browsera. Za razliku od većine sličnih alata, Page Creator se izuzetno lako koristi, tako da u roku od svega par minuta možete doći do svoje prezentacije, koju će google potpuno besplatno hostovati na adresi http://vasgooglenalog.googlepages.com.

Rezultate moje peto-minutne sesije u Page Creatoru možete videti ovde. :)

Web 2.0 IM

Ako ste navučeni na razne Instant Messenger programe (MSN, ICQ, …), a nemate pri ruci odgovarajući klijent, Meebo je prava stvar za vas. Meebo je još jedna u nizu Web 2.0 aplikacija, namenjenih kao zamena za popularne desktop programe. Osmišljen je kao “all in one” IM klijent (poput GAIM-a ili Trilliana), a od podržanih protokola za sada tu su ICQ, AOL, Yahoo, Jabber i MSN. Malo sam ga testirao sa ICQ-om (koji jedino i koristim) i za sada se pokazao odlično. Ako ništa drugo, dobar način da sa svakog mesta imate pristup ICQ history-u :)

meebo u akciji

IE Tab Extension

Proud user of Firefox but also tired of switching to IE every time you need to open some “IE Only” site (your home banking for example) ? Or you are professional Web Developer and must test your sites in IE ? There is solution to this problem, and it’s name is IE Tab!

Thanks to this firefox extension, you will get IE functionality embeded into Firefox, in simmmilar way it is already implemented in Netscape 8. Simple, after you install IE Tab, by clicking to IE Tab icon you can switch rendering engine, but also, you can predefine sites which will be rendered with IE tab by default.

MySQL Workbench

Najbolji Open Source alat za dizajn baza i modelovanje DB Designer uskoro će dobiti naslednika u vidu programa MySQL Workbench .

MySQL Workbench je trenutno u beta fazi, ali već sada podržava nove mogućnosti MySQL-a 5 (trigeri, pogledi, stored procedure) kao i sve stare mogućnosti DBDesigner-a. Video (flash) demonstraciju mogućnosti MySQL Worknebch-a možete naći ovde.

Firefox 1.5 final

Par meseci nakon najave, finalna verzija Firefox-a 1.5 od danas je dostupna za download.

Iako sam se pribojavao da bi nova verzija mogla da napravi (uobičajene) probleme sa extenzijama, instalacija je protekla sasvim glatko. Firefox me je obavestio da su extenzije koje imam instalirane nekompatibilne sa novom verzijom, ponudio update istih što sam prihvatio i nakon 10-tak sekundi sve extenzije su bile update-ovane na kompatibilne verzije.

Od vidljivih poboljšanja tu su novi “drag ‘n drop” tabovi, kao i nova opcija “Clear Private Data” (ovo je očigledno preuzeto iz Opere). Posebno izdvajam novi “Automated Update” koji će za razliku od prethodnih verzija sada (konačno) biti u stanju da skine mali “patch” umesto da izvona instalira ceo proizvod prilikom instalacije raznih sigurnosnih zakrpa.

Poboljšanja ispod haube su impresivna. Novi Firefox donosi potpunu podršku za SVG, CSS 2 i CSS 3, kao i JavaScript 1.6. Očigledno da će novi IE7 (kada se konačno bude pojavio) i dalje kaskati za Firefoxom barem kada su u pitanju W3C standardi. Više o novinama u novoj verziji Firefox-a možete naći ovde.

Za kraj interesantna novost. Firefox i Thunderbird se od sada nalaze na Mozilla.com sajtu.

Zend Studio 5.0 is out

Kompanija Zend danas je objavila petu verziju Zend Studia, bez premca najboljeg okruženje za razvoj PHP aplikacija, koje će očigledno Zend i PHP još više pribiližiti velikim “Enterprise” korisnicima.

Zend Studio 5 donosi niz poboljšanja od kojih posebno izdvajam podršku za subversion – sve popularniji open source version control software, naslednik CVS-a.Od ostalih novosti tu je podrška za Web servise, SSL FTP kao i takozvani “Case Folding”. Više informacija o novoj verziji možete pronaći ovde.

Hacking Webalizer

Konačno sam našao dovoljno vremena da podesim Webalizer kako bi prilagodio statistike posećenosti sajta svojim potrebama. Obzirom da je Webalizer iako delimično zastareo još uvek prisutan na velikom broju Web hostinga, evo nekoliko saveta kako da ga učinite preciznijim i prilagodite prikaz svojim potrebama.
(more…)

Macromedia Announces Dreamweaver 8

Nova verzija Dreamweaver-a, omiljenog alata Web developera trebala bi da se pojavi tokom septembra.

Na osnovu najave nova verzija donosi poboljšanja u podršci za xml i css layout, kao i podršku za nove tehnologije poput php5 i coldfusion mx.

Lista feature-a novog Dreamweaver-a dostupna je ovde.

Dreamweaver će kao i do sada biti dostupan kao zaseban proizvod, ili kao deo paketa Macromedia Studio koji uključuje nove verzije proizvoda Macromedia Flash Professional 8, Macromedia Fireworks 8, Macromedia Contribute 3 i Macromedia FlashPaper 2.

Next Page »