Composer – Wamp – Curl Issue

Recently, I tried installing an update using Composer.

As soon as I tried to run Composer from the command prompt I received an error saying:

PHP Startip: Unable to load dynamic library ‘c:/wamp/bin/php/php5.4.3/ext/php_curl.dll’ – The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more details.”

I wasn’t familiar with sxstrace.exe and chose to use Google instead. I found some answers that didn’t work – like suggestions to copy files to my system32 folder and the like. Finally, however, I saw one post in a forum(here) suggest that .dll files that Wamp came with was faulty and needed to be replaced by a fixed one – found here.

The fix that worked for me:

Simple download the fixed curl extension from one of the zip files below (I used “PHP_CURL – 5.4.3 VC9-x64″ for my 64-bit Windows running 64 bit Wamp)

PHP_CURL – 5.3.13 nts-VC9-x64

PHP_CURL – 5.3.13 VC9-x64

PHP_CURL – 5.4.3 nts-VC9-x64

PHP_CURL – 5.4.3 VC9-x64

Copy the .dll inside the zip into your “wamp/php/php[version]/ext” directory.

Restart your server.

Composer and Curl should work fine now.

Let me know if you encounter difficulties or discovered other methods – I’d like to add them to this post.

Tips to improve performance for websites

Website performance is an important part of your overall website design. For example, Drupal, a highly sophisticated and reliable CMS, can often make over 700 database queries per page request. Depending on your installation this can be detrimental. If you are on a shared hosting platform your database instance will always be on a different host (even if it is “localhost” each connection will cost you lots of time). So when picking Drupal you need be aware of how you final architecture will look like. In the next few paragraphs we will go through several steps to improve your website starting from our server side PHP code.

Improving server side PHP code

PHP has a very useful extension called ‘XDebug’. If you are running WAMP this is already installed – but if you haven’t installation is easy. All you need to do is add the extension .so (UNIX) or .dll (Windows) file to your php.ini file. You can find out more about this at XDebug’s website. Once you include it in your bootstrap script you will be able to understand how much time is consumed by each individual task that your script is doing. Below is a picture of the profile of an app I wrote. In this case we put the database on Amazon and allowed different people to maintain their own implementations.

KCache screen shot of XDebug profile

94% of execution time was spent on database queries

As you can see a bulk of the time (total time for execution was just over 22 seconds – which is insanely high) was spent on 700+ database queries. This was slowing down the app performance, and it was seen that down the road if the total data requested was more this could easily go up and slow down performance even more. Armed with this information we looked at the script and re-wrote it, drastically reducing the amount of database queries from 700+ to a static 3 (even if the data grows, the queries will only be 3). This resulted in more processing before pushing the data to the client. It is not that the database server was slow, but each new query required a network connection from my Apache PHP server to the Amazon MySQL server. This network travel of information is what slowed down the script. Re-writing the script we ended up with an execution time of 0.6 seconds – which is a 98% improvement and very acceptable for a complex app.

This is just an example of what you can do once you get a profile from XDebug – it will allow you to find the bottleneck in your script so that you can address it directly.

More on Network Connections

For better or for worse, network connections are the single biggest factor in slowing down a website. A browser will only load two files from the same web address at a time (similar to your ftp client). Does this means you can achieve simultaneous loading by distributing your files on different web addresses? Yes, and no. It is true that with 4 files distributed evenly over 2 addresses you could have them load simultaneously, but each address requires a address look up and a way of your browser establishing a path to the file. So there is no simple fix.

What do I recommend:

  • Write a script that combines and mimifies your CSS and Javascript (in the proper order that you would want the CSS or Javascript loaded). One of the biggest problems of WordPress is that with 20 plugins you end up loading 20 additional CSS files and possibly 20 or more additional Javascript files. From a maintenance perspective it would be foolish to combine all the scripts and styles and then edit huge files. It is good that files are kept separated. So either at run time, or at deployment, it would be beneficial to combine all script and style files into a single file and load that file. For this you can use something like LESS or SASS for CSS.
  • Use CDN (Content Delivery Networks) to reduce the number of hops that are required between your viewer and your server. This will often reduce overall webpage load times. A CDN keeps copies of your files at locations that are possibly closer to your intended audience. For example, your host might have their servers in Texas and your primary clients may be accessing your website from Toronto and Vancouver. By using a CDN you will be able to keep your data on servers that are close to Vancouver and Toronto respectively – thereby reducing the travel time per data packet, and the overall website load time.
  • Make sure that your Facebook “Like” domain matches the domain that you provided in the Facebook App. If your domain doesn’t match Facebook takes a long time to respond. Facebook requires an individual app registered with them for each website that is supposed to be integrated with them. Make sure to follow their instructions carefully.
  • Google Fonts are awesome but pay attention Google page speed indicator. Some fonts are huge, and always only get the fonts you will absolutely need.

Caching Results

Most PHP frameworks like yii and Laravel have caching options. WordPress has some plugins that allow for caching. Caching is a way for the server keeping pages saved and then delivering them to the client without need for processing. This reduces the load time especially when the website is either making multiple queries to compose the given page, or if a lot of processing is required. Caching results is something that will often vastly improve user experience as users can navigate through your website increasingly easier. So once they have visited one section, returning to that section to re-visit a fact would be considerably quicker.

Javascript + CSS

One important aspect with Javascript is often plugin codes. For example Facebook, Google, etc. will load scripts “asynchronously”. This means that the script loads without interfering with the loading of the remaining website. Now this is not that hard to do for your own script if it is possible. If your Javascript files hold some functionality that will only be used by some users down the road and wouldn’t be required for the presentation of the home page, it would make sense to load these scripts asynchronously and then enable that functionality after the script finishes loading.

For some this talk about load times may seem overkill – but imagine trying to load a page with 2 bars on your cellphone; or someone accessing your website without a broadband connection. In these instances a smoothly loading website – one that focuses on making sure that the user has something to look at first, before we get all the functionality set up.

CSS has become amazingly powerful but also woefully bloated with CSS3. It is a good time to now switch to CSS frameworks like LESS or SASS and use their mimified CSS. This greatly improves code usability and improves the performance of your website. It is also good to use one “sprite” for multiple icons. It is best to use one large image with all your icon graphics and then use CSS to place them, rather than have a unique file for each.

Images

Images need to be optimized and using a program like Photoshop you can evaluate which file type and settings are right for you. Always remember that for the web 72 dpi is right – while print needs at least 300 dpi. PNG and GIF files are generally better for graphs and pictures with high amount of single color space or a lot of transparency. JPG are better for color rich pictures.

Conclusion

These are some of the ways to improve website performance. It makes sense to think clearly and use every tool in you chest to improve the quality of your end product. If you have any recommendations, tips, or suggestions let me know.

Wamp and Windows 8

Windows is always trying to please consumers and compete with OSX. By doing so it often hurts us developers. I’ve already migrated to Ubuntu and am slowly spending more time on Ubuntu as programming tasks are just better in a Linux environment.

But, I still need Windows because when I design websites I need to use a good design program and Ubuntu isn’t up to speed in that department , yet (there are some good options, just nothing as good as what’s on Windows).

Especially, when I design Worpdress Themes, I need Windows and I need PHP – so I had not choice but to install Wamp on Windows 8 (I did have a choice – I could have installed Apache, MySQL and PHP separately - but that’s not really a good choice).

These are some issues that I encountered:

1) Apache won’t install.

When trying to install Apache you get an error that says that MSVCR100.dll can’t be found.

To resolve this, you need to find the Microsoft VC++ redistributable package. For Windows, Apache needs this and won’t run without it.

http://www.microsoft.com/en-us/download/details.aspx?id=13523

 

2) 403 Forbidden

After installing and starting Apache, the first thing most of us do is to take our browser to localhost to see if it responds (I still remember 8 years ago when I was first introduced to the concept of localhost). When you do that in Windows 8 you will run into a 403 forbidden error.

Some forums on the net stated that this has something to do with the windows hosts file – that’s not true. Wamp edits that file properly and adds the 127.0.0.0 localhost entry. But, the httpd.conf file in the Apache server configuration has an issue.

You need to change: Listen 80 to Listen 0.0.0.0:80

I don’t know why that is the case and I think that in the future Wamp will have a Windows 8 installer that takes care of this.

3) Port 80 used be IIS

This is something I found in forums, but it didn’t happen to me. But generally, if something else is using port 80 you will have to stop it to run Apache. TeamViewer and Skype are other programs that run on port 80 – and you have to watch if any programs start with Windows and occupy port 80. This is not a problem specific to Windows 8 but people may encounter it for the first time after installing Windows 8. Of course, the other option is to run Apache on a different port – this would involve editing the httpd.conf file and change the “80″ value to something like “8080″ (used by Tomcat). Keep in mind, that when you do this, the browsers won’t resolve your localhost entries without the port value. By default browsers are set to talk to port 80 – but once you change your server to 8080 you need to add that – so instead of http://localhost you’d have to write http://localhost:8080.

If you encounter any other issue please let me know and I will add them to this list.

Alternatives to Google Maps – OpenStreetMap

The way it is today, I don’t think any online mapping tool can compare to the comprehensiveness of Google Maps. However, as I mentioned in my previous post, there is something brewing at Google headquarters and as a user we need to be aware of alternatives and support them.

One such tool is OpenStreeMap. OpenStreetMap is a free, rights free, open source, collaborative mapping tool (think Wikipedia of maps). It is free to use and share and relies entirely on donations and voluntary contributions.

10 years ago we may have scoffed at such a project, but Wikipedia has shown that independent volunteers can produce reliable comprehensive information.

Personally, I think it looks a lot better than Google Maps. The colors seem more pleasant and natural.

OpenStreetMap Screenshot

OpenStreetMap is an Open Source alternative to online maps

Beyond that however, it is not really a replacement to Google Maps at the current point. It still lacks a directions engine, and the Google Eco-system that binds Google Places with Google Local, information on local transit, differentiation between one-way streets, pedestrian walk-throughs etc. make Google Maps a more useful tool.

Bay and Bloor Screenshot of Open Street Map

OpenStreetMap already has significant information about local businesses, but it still can't compare to Google Maps.

OpenStreetMap is an initiative that I will support over the coming years and I hope that they will build out the functionality as more and more volunteers and donations pour in.

Alternative to Google Business Mail – Zoho Mail

I have recently moved to Zoho Mail.

As you may be aware Google Apps is no longer free for new users – if not you can read about it here: No More Free Google Apps

As part of our journey to encounter alternatives, our choice for mail was Zoho Mail.

What I like most about Zoho Mail was that:

  1. It has a free option
  2. It promised no ads and no keyword scanning
  3. It provided an extremely simple set up (I found it was easier than Google Apps)
  4. It is part of a suite of business apps, similar to Google Apps
Zoho Mail

This is how your inbox looks with Zoho Mail

On first load Zoho mail was a pleasant experience. It is the first time after a very long time that I was able to access webmail without being overwhelmed by ads, or creeped out by the fact that Google understands the content of my email better than my recipients.

Intergrating with my mobile phone worked without a hitch – additionally, Zoho provides m.zoho.com which are all their apps, optimized for mobile. This will allow you to side step all the usual set up requirements when having to access mail on the phone, while still enjoying a mobile optimized experience.

Zoho Mail, just like Google Mail has an “IM” feature. However, there is something good and something bad about that – what’s good is that if your organization is on Zoho Mail you will be happy to know that you can only chat between Zoho Accounts; a soft way of preventing idle chatter during work hours. On the other hand, you will not be able to chat with all your gmail contacts.

There are some clear disadvantages: no voice calls, no video chat. While these are tremendous features I’ve rarely used them – Google Hangouts are better and services such Oovoo provide conferencing for organizations – which is much more relevant for multiple users. And most of my voice calls are still made with my cellphone (especially, since Google Voice phone numbers are only available in the  U.S.).

The look and feel is a little “old”. It looks a lot like a gray version of Yahoo’s old inbox (I mean the old one without Ajax – pre 2007). When it comes to functionality and response it is clearly not in the past, but the look and feel is definitely behind Yahoo, Hotmail (Outlook Online) and Gmail.

Encryption is currently not available – Zoho itself serves its websites on https, but it does not currently encrypt user data. However, they promise that this will be a service that will soon be available.

Time will tell if uptime, responsiveness and spam filters work well. We will update this post with that information as it becomes available.

While there are some clear drawbacks to switching to Zoho, if free, clean, ad-free, private email is important to your business, than Zoho Mail beats all the commonly available alternatives.

About Zoho

Their FAQ states the following:

“Zoho is a division of ZOHO Corporation A US-based company that has been creating and selling cutting edge software solutions since 1996. The company has tens of thousands of customers worldwide, is privately held and profitable.”

Additional Resources:

Zoho Privacy Policy governing all their products: https://www.zoho.com/privacy.html

Configuring for POP: https://zohomail.wiki.zoho.com/for-Outlook.html

Configuring for Outlook as IMAP: https://zohomail.wiki.zoho.com/IMAP-Access-1.html

Where is the Best of Toronto?

I was looking for an interesting project to do in order to try out Google Maps’ new “Heatmaps” feature. I figured BlogTo.com’s “Best of…” lists might be an interesting way of establishing where the “best of” Toronto is. Below is the result.

It looks like west of Yonge, south of Bloor is where all the interesting places in Toronto are. Especially, King West and Queen West seem to be lit up with good and interesting places. I wonder if real estate prices match this and whether condo developers are buying up properties in these neighbourhoods or if that opposite is true. If anyone has real estate data that I can use let me know and I can run a comparative script.

It would also be interesting to see if a heat map like this leads or lags behind real estate prices.

Read on if you want to know about my methodology.

Heat map of good places in Toronto

Heat map of good places in Toronto

The methodology I used was as follows:

  1. I wrote a Python script to scrape the contents of BlotTo.com’s “Best of List…” (hope they don’t mind). The script specifically looked for the “address” on the HTML page.
  2. The script then saved all of that in a MySQL database.
  3. A second script ran the addresses against Google’s GeoCoder to get longitude and lattitude values.
  4. Finally, a third script wrote out the javascript array and then ran the basic Google Maps Heatmap script.

If you have any additional questions let me know.

Alternatives to Google

I love Google.

For the last 10 years they have been releasing amazing and innovative products. And for  a long time they seemed to “get it” – and I used to just wonder how they made any money (aside from the obvious ad income).

But as the company is maturing they are making new choices. Once run as 10 year old start up – as if the founders believed that constant innovation would allow them to ride the wave forever – it is now falling in line, making sensible, calculated business decisions to reduce spending and improve margins.

The last years have seen an acceleration of competitiveness without the same spurts of innovation. Long time ago Apple developed (or stole) the best touch-screen and made the best touch screen phone. Since then their innovations have been incremental and focused on maintaining spending habits of their consumers not so much innovating new products; Microsoft reached the tail end of an essential computer OS monopoly when after 15 years of Windows disappointment more and more consumers switched to OSX or highly intuitive Linux distributions (like Ubuntu). Google innovated, or bought up and improved, or stole and improved a tremendous amount of products, many of which only survived several months before being discarded. Now we are at an impasse.

Technological improvement has given way to usability, design and brand loyalty. And Google is realizing that. The OS battle has become very hard fought, and being a very new thing for Google, it isn’t easy. Already, we have Android 4.1. With each iteration and with each milestone increase in users, Google is facing new difficulties, both technological and legal; both purposefully created by their competition and naturally evolving out of usage.

And in all this Google is not making a pretty penny – their profits still rely on their quickly diminishing ad sales market.

All of this leads to one conclusion: Google’s relationship with its consumer will change – and when it does, what do we do?

Over the coming days I want to suggests alternatives to Google that may allow you to stay objective as Google makes changes that you may not be happy with. The great thing about the internet is that there is always an alternative.

 

Part 1: Mail: Zoho Mail

Part 2: Maps: OpenStreetMap

AdWords vs AdWords Express

Just recently I encountered “AdWords Express”.

The first thing I did was of course contact Google and ask them what the difference was. The primary purpose of AdWords Express is that it targets clients without a website.

AdWords Express is a strategic move by Google to increase its advertising reach and prop up its Google Plus platform. The idea is that you can use you Google Plus Page as your business website and then link your ads to that page. This is a very ingenious move as a lot of professionals like contractors etc. wouldn’t have a website or they have a poorly maintained one. They often go from job to job by referral and don’t have the time to update their website between jobs. They might be currently using Facebook or LinkedIn for networking and this would push them to use Google Plus.

AdWords Express has the additional benefit of being managed. If you are so little concerned with the web that you didn’t even think of having a website, then keyword analysis to strategically maximise your ROI in Google Ads will not be your strength. Managed ads then promises that your ads will be effectively keyword balanced. Here Google is stealing some business from many marketing agencies that have been doing it for small businesses – and potentially promise to do it better having access to more Google data.

This strategic innovation towards increasing profits without technological innovation is a trend amongst older companies were entrepreneurs and wild enthusiasm are replaced by MBAs and shareholders. This along with Google stopping the Free Google Apps option is clear indication that Google is now becoming an “old” company.

What is a little more disconcerting is the verbiage of their email – it seems almost as if they are grovelling:

Thanks for contacting Adwords Express. This is [name taken out] from Google and I am an Adwords express specialist . I will be more than glad :) to help you out. I am profoundly concerned to assuage your concern as soon as possible. Now, that I am here ,be assured of the best possible help and a sublime customer experience.

To begin with , let me say that you are welcome to the Adwords Express family . We will be glad to have you on board .

and

I would like to guide you as you embark on this journey of advertising with us. You can completely count on me!!!

What’s disappointing, though, is that despite all this fake sincerity and desperation, the person responding to my query, didn’t actually take the time to respond to “me”. He did not realize that I was an experienced user who had already spend tens of thousands of dollars with AdWords. As such he didn’t address why “I” should use AdWords Express – which was my question.  Google was never one for customer service – they usually let their technology do the talking. In all honesty I don’t think AdWords Express is a product for me, but it is a great tool for a lot of people out there and I would recommend it.

Here is a page that will list the differences in detail:  Comparing AdWords Express – AdWords – Google Plus Pages.

Microsoft, Born to Learn?

Logo for Born to Learn, a division of Microsoft Learning

Born to Learn

Microsoft has launched a new, and very inspring initiative: “Born to Learn”.

While “Born to Learn” is restricting itself to teaching you Microsoft related skills, the real question is if this will benefit Microsoft.

I am very pleased about Microsoft’s attemps to reduce the difficulties of app development for their platform. It looks like embracing developers is the right way to go. But it also smacks of a dead dinosaur throwing everything it got into the ring.

Let’s look back – Apple, while pretending to be a usability super star, has never made it easy for anyone to do anything other than buy soemthing. Developing for the iPhone or iPad is difficult. You have to start by learning Objective C, a language not used for anything else. You have to use Apple’s SDK, which will only run on Apple’s operating systems. You have to apply for a developer licence, and your app needs to get approved by Apple. Deploying an internal app for company productivity is next to impossible – it’s not impossible but it seems like an unusually large mountain to climb when everyone else is trying to simplify things.

With all this, Apple never launched a learning or teaching initaive to enable anyone. What did they do? They realized that developers love money. Yes, we do. While many of us take a lot of pride in the code we write, and would be personally offended if someone were to crticize it, we tend to do need money. Giving individual developers the potential of making a few thousand dollars, and the dream of being the next Angry Birds, brings developers to the doorstep.

Face it, good developers are good developers because learning a programming language was never very difficult. Python and PHP are open source languages with minimal documentation and no tech support – but used very widely.

Microsoft long time ago attempted to put a PC in every household – they tried to enable the PC and they gave birth to the computer generation (while Apple despite its design was trying to fight bankcruptcy). It seems that with the .NET framework and the smoothness of integration of Visual Studio, Microsoft may hope that everyone will be a developer. And to some extend that is potentially the next step. Maybe Microsoft will do to programming what Instagram did to Photoshop and thereby capture the next wave of “pseudo” programmers.

Except there is one crucial difference. Instagram is free. And Microsoft an “old” company that is not run by venture capitalist hoping to discover a potentially innovative new busienss model, but by sober shareholders and executives who have to answer to them.

What Microsoft should really do is give it’s operating system for free (it doesn’t have to be open source – just free) – and provide anyone who buys a Windows 8 tablet or phone a rebate, or a massive appstore credit. Microsoft technology, despite Visual Studio Express, is still more expensive than Apple to develop for. MS SQL? MS Server? These things cost upwards of $5k and are stumbling blocks for freelance developers wanting to make an interesting app just because they have time. We won’t embrace Microsoft not because we can’t learn it but because it is too expensive.

Potentially, we don’t have to develop on Microsoft technology. We can just build it all in HTML5. However, nobody is going to give Windows RT developlment a second look if users are not there. So the only thing Microsoft should do, is pour their money into getting more people Windows Phones and Tablets. If Microsoft can’t capture 10% of the tablet market than the cost of Microsoft technology will exceed the expected value of developing for it. Why develop an application that nobody will use? Or if the first potential user will only ask “Do you have an Android version?”.

Right now Android development is the easiest, and iOS development the most profitable. Windows RT development is a gamble and many developers may not even want to invest time into learning it.

No more Free Google Apps

“Starting today, we’re no longer accepting new sign-ups for the free version of Google Apps (the version you’re currently using).”

-from Google’s email to potentially millions of free users.

For the first time ever Google has removed a free option from one of its products. This says a lot about what we can expect in the future:

1) Sergey Brinn and Larry Page are retiring and with that the fundamental vision that was driving Google may change

2) If free is not an option, it means that Goolge is struggling to grow profits at the same rate as it used to

3) What else, that used to be free, may become pay only

Before I go too far, I should mention that the $5/month paid version of Google Apps does have a free trial. So you can still ease your way into it. But you just cant keep it free forever.

Google’s Vision

I doubt that defining Google Vision from outside of Goolge is easy. But here are some hints – watch their conference. In the last years Google has put a lot of effort in mounting it’s OS business. Controlling the operating system is the natural way that Google could improve its overall ad revenue. In case you didn’t know, Google’s primary source of income is from ad revenue. Controlling the OS allows Google to gather data from users who are not browsing the web. The first step was the browser – now Google was able to gather data when you are not on a Google site. To get even more data you need to be in the OS.

Google’s primary method of gathering passive data was by providing free services such as Blogger and Google Apps. Google Apps emails allowed google to scan emails and even provide conversation relevant ads on the side. Google’s desire was always to stay relevant. For as long as you are relevant you are “nice” and not actually obtrusive.

Combing the OS with the mobile market allowed Goolge to get real data – combining physical activity data with online presence data. This is a level of intimacy unheard of until now. You search on your phone for the next burger place, map it and then end up buying a burger using Google Wallet on your phone. The last part isn’t there, yet, but using your mobile phone as a payment tool is something on the horizon. After the burger you can leave a review on Google Local – and since Google knows that you have been there, they can send you a rating email the way Amazon does for your purchases. This is complete integration of all consumer activity relating to an individual – and so far I don’t mind.

However, for ads to work really well they need to tell us stuff that we would want but didn’t know. For that Google needs to build a complex history of me as a person. It will be far more thorough than Homeland Security or the FBI could ever hope for and it wouldn’t be illegal either – you would be consenting every time you use their service. Now, combing all kinds of data Google would potentially serve my wife ads that would allow her to buy me the gift I wanted. It’s a stretch – but that’s where we are heading. Ads drive consumerism and good ads drive your choices.

Coming back to the vision – “Do no Evil” and while the founders are on the forefront I am confident that Google will not abuse their knowledge about me to create seeds of addiction in me in order to serve ads with a higher click through ratio (i.e. higher profit ratio). But, once the founders are gone and we have MBA’s running the show, profit becomes a number and the company becomes a vehicle and the consumer just fuel. I for one will be cautiously watching the changes over the next 2-3 years.

No more Free

Admittedly, Google Apps was a tool designed for businesses. It is a reasonable thought by a business educated manager to believe that we deserve to ask for money from people who make money of us. While it disregards any thought of long term goals and vision, it definitely makes financial sense.

However, from experience, financial prudence becomes necessary when financial exuberance slows down. Google Ads were the key to Google’s money making success. In recent years, things have changed:

1) Amazon’s product search took out a large chunk of Google searches that lead to click throughs

2) Facebook and social sharing dug into Google Ads

When Google Ads came around they were ingenious - as ingenious as Google Search. They allowed businessed to market with an extremely low budget. In the past that had been impossible. If you want to put out a classified ad in the local newspaper you’d have to pay upwards of $50 just for a few days. Google’s promise was that you don’t pay unless someone actually clicks on it. And what’s better, the whole thing was combined with search. So a person looking for headphones would potentially click through an ad that was talking about specials on headphones. When Google combined this with Google Local everyone won.

Now, 10 years later, we have low cost digital display networks serving ads at physical locations. We have free social sharing (all you need to have is a good incentive). We have blogging, social media, youtube (also owned by Google) and more. The advertising choices have multiplied and people who have poor web design or keyword analysis skills lost a lot of money in a short time with Google Ads. Google AdWords are cheap if you understand keyword analysis and landing page design. If your keywords are too broad you will bleed money too quickly – even with a modest budget you will loose all the money in a matter of minutes at the beginning of the day. If you don’t know how to design a effective landing page even interested leads will turn away after clicking through. And if you don’t know how to use web analytics tools you wouldn’t even know that this was happening.

As a result people have stepped away from Google Adwords and in varying degrees embraced some of the newcomers. Of course Google just introduced AdWords Express to address some of these concerns – but more about that in another post.

What’s worse only some of Google’s searches lead to meaningful ads – product and service searches. Informational queries rarely would lead to Google ads and click throughs. In recent years Amazon has expanded its product search by being an online storefront for small businesses around the world, in addition to supplying its own merchandise. Amazon’s algorithm rivals Google’s when it comes to product search, and searching for a product on Amazon puts us one-click away from purchasing it. It gives as seller ratings, product photos, customer reviews, price variants, shipping costs etc. More and more people are skipping their product search on Google and go directly to Amazon. This means that Google is loosing about 50% off their most juiciest ad revenue stream.

So the combination of reduced advertising and rapid erosion of the most profitable advertising segment has forced Google into action. While Google was designing the inter-connected world of the future (let’s imagine for altruistic reasons despite what I’ve written above) they ran into an erosion of cashflow.

What else will stop being free?

The first wave will be products that were completely free may offer paid options – like Google Analytics. Google Maps may synchronize more closely with Google Earth and provide building information and geo-spatial survey data to paid subscribers. Tools such as Blogger may develop paid alternatives that allow more creative design options. Google may even charge money for GMail in exchange for no ads, and no email scanning.

Most likely Google Apps and Google App Engine will remain the only products with no free option for some time. But new products may be released without free options and Google may seek to offset the balance when it comes to where the Android App store money goes.

Google is entering its twilight years. Yahoo entered about 8 or 9 years ago and never came out. IBM entered 25 years ago and had to re-invent itself. Microsoft entered 15 years ago. Only Apple that entered 25 years ago came out shining  (although Apple will be facing a renewed entry shortly) – all the other companies survived with varying degrees of success but never experienced the same type of optimism and growth that they had experienced before. Google has a lot going for itself and it has been the most innovative and creative company in the last 10 years. But it remains to be seen if they will have a second wind.