Using jQuery events for triggering complex UI updates

Nowadays jQuery become a very standard library used in in 90% of all projects. Simplicity of DOM manipulation with cross browser capability attracts all developers, from newbies to profs.

While developing AJAX UI with many forms nested in each other I faced a problem of not well written code, what was a real pain to modify.

I am going to tell how jQuery events saved my ass.

Position custom and fancy overlay dialog on Google Maps V3

Nowadays many sites uses embedded map from Google for purposes like showing object location, drive-in way or more complex stuff. Recent Google Maps Version3 (V3) API becomes very powerful, but remained very clear and easy to use.

While developing site for real estate company I faced with necessity to display fancy, complex overlays on top of the map when user clicks on the marker.

There are some standard ways of showing so called info-windows. The problem is that it is not possible put complex formatting there or catch mouse clicks events.

To solve it I have to to dig into API internals and recent version V3 has some surprises here.

Easy way to change FTP directory permissions with LFTP chmod

Sometimes there is a necessity to change directory permissions on remote FTP host. It is okay if this is needed for 1-2 folders, but what if there are hundreds of them? In my case it was even worse, it was tree of folders, with sub- and  sub-sub-folders inside, kind of image cache!

Change Mysql root password - The Right Way

Sometime MySQL root password is lost, because of last admin did not leave you any notes on the server or you are given your client server to fix some database or script related errors where MySQL root password is required.

I always knew one way of resetting it, but recently came up with another which is The Right Way.

Find the latitude and longitude of address using Geocoding API example

In my recent project I faced the task of doing translation of property address in form we usually use it into global coordinates, that can be plotted on the map. Using Google API services this task is quite easy. You can check example and source code below

Nginx and Mercurial setup

Some weeks ago I switched to Nginx and quit Apache and was quite happy with it. I was so happy that completely forgot about my Mercurial repositories hosted on same server. This happen when I was in hurry and needed to push and pull some changes,  damn.

At first I quickly restored Apache, did all needed changes and switched back to Nginx. For sure, I did not like this way and explored how I can connect Mercurial directly to Nginx. I was quite surprised how easy it is and how flexible.

I quit Apache and moved to Nginx
Now this blog is riding on Nginx+php-fpm setup. You may have heard about quickly growing in popularity Russian made web-server. Several years earlier Nginx had a really narrow appliance on high loaded sites as balancer, front end, static content, etc.. Something too complex to be setup for simple site or blog.

Time changed things, community has grown, all sharp corners were smoothed. The PHP itself starting from version 5.3 has out-of-the-box support of FPM (FastCGI Process Manager) to communicate to Nginx in a very efficient manner. Ubuntu PPA repositories has all things already compiled and tons of docs are available on the Internet.

At first I though of this more like experiment, but after I tested it for a while and made some performance tests, I was surprised how well it performed on my tiny virtual server. It eats less memory and does more job.

I really like Apache web server, I've spend 10 years with it and still consider it the best one for many appliances. But from now on I have one more option to use for my projects.

Welcome to continue reading...

Introduction to HTML5 History API

HTML5 slowly releases all its beauty. Before HTML5 one thing which was almost completly out of our control was  the browser history manipulation without full page reload (location.hash hacks are not counted here). With appearence of HTML5 History API all things changed, now it is possible to add elements to the history, add navigation handlers and more.  This time I am going to dive into HTML5 History API.

Browser popularity - my own chart

Quite often I see some reviewes of browser popularity on the Internet. I am not a big fun of Anti-MS trust but I watch closely success of open players like Firefox and new players like Chrome. So I did my own analysis of browser popularity using my blog.

File uploads in HTML5 - what's new ?

html5 file upload

File uploads have traditionally had very bad usability on the web. The standard solution was uploading files as part of a form, leaving the user to just wait until the process was done. We could offer barely any feedback of what was going on. Several options appeared in HTML5 to make the process more bearable for the user.