Setting it up
Before we start coding, we are going to register the needed services and create an empty app. First, let's create a user at geonames. Just go to http://www.geonames.org/login with your favorite browser, sign up as a new user, and confirm it when you receive a confirmation e-mail. It may seem that everything has been done, however, you still need to upgrade your account to use the API services. Don't worry, it's free! So, open http://www.geonames.org/manageaccount and upgrade your account.
Tip
Don't use the user demo provided by geonames, even for development. This user exceeds its daily quota very frequently.
With geonames, we can receive information on cities by their coordinates, but we don't have the weather forecast and pictures. For weather forecasts, open http://openweathermap.org/register and register a new user and API.
Lastly, we need a service for the cities' pictures. In this case, we are going to use Flickr. Just create a Yahoo! account...