Tuesday, October 27, 2009

Why every business needs a Google account

I am pretty sure that Google will someday rule the world. And while my "less governance is better governance" belief runs through every vein...I do have to say, "hail to the king!"

Here's why your business needs to have a Google account:

Google Local Business Center (www.google.com/lbc): The LBC is a free tool that enables business owners to control the content of their business listings as they appear in Google Search and Google Maps. All you have to do is claim your listing in the LBC and go through a quick verification process to get access to the following kinds of data:
  • Impressions: The number of times the business listing appeared as a result on a Google.com search or Google Maps search in a given period.
  • Actions: The number of times people interacted with the listing; for example, the number of times they clicked through to the business' website or requested driving directions to the business.
  • Top search queries: Which queries led customers to the business listing; for example, are they finding the listing for a cafe by searching for "tea" or "coffee"?
  • Zip codes where driving directions come from: Which zip codes customers are coming from when they request directions to your location.
Google Analytics (www.google.com/analytics/): Google Analytics is a web analytics solution that gives you rich insights into your website traffic and marketing effectiveness.

Powerful, flexible and easy-to-use features now let you see and analyze your traffic data in an entirely new way. With Google Analytics, you're more prepared to write better-targeted ads, strengthen your marketing initiatives and create higher converting websites.

Google Docs (docs.google.com): is a free, Web-based word processing, spreadsheet, presentation and form application offered by Google. You can import your existing documents, spreadsheets and presentations, or create new ones from scratch. You can invite people to your documents and make changes together, at the same time.

Google Calendar (calendar.google.com):
  • Share your schedule- web based
  • Get your calendar on the go
  • Never forget another event again with built in reminders via email or text
  • Send invitations and track RSVPs
  • Sync with your desktop applications(Outlook, iCal and Sunbird)
  • Work offline
Google Mail or GMail (mail.google.com): Gmail is the Google approach to email and chat. Practically unlimited free online storage allows you to collect all your messages, and Gmail's simple but very smart interface lets you find them precisely and see them in context without effort. POP and powerful IMAP access bring Gmail to any email program or device.

And I'm not even going to get into Google Wave, AdWords, or AdSense. If you want to read more about ALL of Google's tools, check out their Google Business Solutions page.

Bottom line -- no business but especially no small or local business can afford not to take advantage of Google's free tools. Don't miss out.

Drew McLellan, The Marketing Minute, Oct 2009

Labels: , , , ,

Monday, October 26, 2009

How to convince a potential client?

If you want to use PHP in your company and your manager favours another solution, or if you are trying to convince a potential client that PHP really is a superior choice for the web, you're going to need to have a clear-cut set of reasons why you believe PHP is the superior language. This short list should help you get started:
  • PHP is cross-platform. It can run on Windows, Linux, BSD, Mac OS X, and Solaris, as well as a variety of other platforms.
  • PHP is free. You can download the source code, use it, and even make changes to it without ever having to pay any licensing costs. You can even give away your own modified version of PHP.
  • PHP is fast. In the majority of scripts beyond basic benchmarks, PHP will easily compete with both Perl and Python, and usually match Microsoft's ASP.NET. Add to that the fact that PHP code can be cached for execution, and PHP's performance is first-class.
  • PHP is capable and reliable. There are thousands of pre-written functions to perform a wide variety of helpful tasks - handling databases of all sorts (MySQL, Oracle, MS SQL, PostgreSQL, and many others), file uploads, FTP, email, graphical interfaces, generating Flash movies, and more. It is already running on millions of servers around the world making it reliable in most demanding situations
  • PHP is extendable. Writing your own extension to PHP is a common and easy way to implement speed-critical functionality, and PHP's extension API is a particularly rich and flexible system.
  • PHP is easy to debug. There are a number of debuggers, both commercial and freeware, that make debugging PHP a snap.
  • PHP is advancing. With the release of PHP 5, PHP has introduced features that have long been waited for, including more comprehensive error handling, better object orientation, and, of course, more speed.

The base of the PHP language is very simple, having just enough to set and retrieve variables, work with loops, and check whether a statement is true or not. The real power behind PHP comes with its extensions - add-ons to the base language that give it more flexibility. There are hundreds of extensions to PHP, and they can be broken down into five distinct types: core, bundled, PECL, third party, and DIY.
  • Core extensions are extensions that are bundled with PHP itself, and enabled by default. For all intents and purposes they are part of the base language, because, unless you explicitly disable them (few people do, and sometimes you cannot), they are available inside PHP. For example, the mechanism to handle reading and saving files in PHP is actually handled by an extension that is automatically compiled into PHP.
  • Bundled extensions are extensions that are bundled with PHP, but not enabled by default. These are commonly used, which is why they are bundled, but they are not available to you unless you specifically enable them. For example, the mechanism to handle graphics creation and editing is handled by an extension that is bundled with PHP, but not enabled by default.
  • PECL(pronounced "pickle") stands for "PHP Extension Community Library", and is as a subset of the PHP Extension and Application Repository, PEAR.
  • Third-party extensions are written by programmers who wanted to solve a particular problem that was unsolvable without them creating a new extension. There is a variety of third-party extensions available out there.
  • Finally, Do-It-Yourself (DIY) extensions are simply extensions you created yourself. PHP has a remarkably rich extension creation system that makes it quite simple to add your own code as long as you know C.

Tuesday, October 20, 2009

Technology of Web2.0

Next we will examine some of the technological components commonly employed by many Web 2.0 companies when developing and delivering applications. They are also highly portable and can scale very well on commodity-based hardware platforms. Some shared characteristics which make their use appealing to Web 2.0 developers is that they are all free, open source, highly interoperable and perfect for use with dynamic database-backed websites and applications.

The Benefits of Open Source

As mentioned, many of the components that Web 2.0 companies rely on to deliver their applications and services are built on open source components. There are a couple of key benefits that are derived by these companies leveraging software components which are open source in nature.
  • Lower Total Cost of Ownership. This enables lower up front and long-term costs associated with the development, delivery and execution of new business models.
  • Component & Application Freedom: Choosing open source software prevents vendor lock in to specific hardware or software stacks. This high degree of interoperability across hardware and software platforms can also be leveraged against the abundance of tools and applications for use throughout the development cycle, from design and modeling, to testing, versioning and day to day operations management.

LAMP:

Fortunately, there is a proven open source stack which has been consistently leveraged by companies big and small to deliver scalable, cost effective, and interoperable applications. This has been achieved by leveraging the tight integration of Linux – Operating System, Apache – Web Server, MySQL – Database, PHP Programming & Scripting.

Support:

Support for open source components can usually be obtained at no cost from a community of users and developers. It can also be purchased in the form of professional consulting and technical support, which is available by most of the open source vendors, as well as from both large and small ISVs.

Linux

Linux is a Unix-like operating system which is free and open source. All of the source code is available for anyone to use, modify and redistribute. This is in contrast to proprietary operating systems like Windows. Linux has been around since the early 1990’s and has at this point become the fastest growing operating system in the world. Much of this success can be attributed to the fact it is a low-cost, secure, scalable and highly interoperable alternative to proprietary operating systems. Linux can be found running on everything from hand-held devices to hardware components, desktop computers to massive computing clusters. All of these characteristics make it an excellent choice for Web 2.0 applications.

Linux shares a long tradition of compatibility with MySQL and other open source components by serving as the operating system component of the LAMP (Linux, Apache, MySQL, & PHP) technology stack.

Apache

The Apache HTTP Server Project is an open-source Web server. It is known for being secure, highly portable across many operating systems, efficient in utilizing resources and extensible. According to a Web Survey, the Apache Web Server continues to be the world’s most popular web server with over 70% of websites leveraging it within their technology stacks. Apache has been extend with compiled modules for interfacing with Perl, Python and PHP.

MySQL

Within the LAMP stack, MySQL comprises the database component. The database component serves as the critical piece of software which manages the data leveraged by the applications and web servers. MySQL is a multithreaded, multi-user, SQL Database Management System (DBMS) with over six million installations. MySQL is the database of choice for consistently delivering lower TCO, reliability, performance and ease of use.

Many of the largest and fasting growing Web 2.0 companies are designing,developing and going into production using MySQL. As their needs grow in terms of capacity, availability and performance, MySQL continues to assist in satisfying these requirements.

PHP

PHP comprise the dynamic programming and scripting language components of the LAMP stack. PHP Hypertext Preprocessor or simply, PHP, is an open-source language for producing dynamic web content mainly in server-side applications. PHP typically runs on a web server, using PHP code as its input and rendering Web pages as output. PHP is a very popular server-side alternative to Microsoft’s ASP.NET and Adobe’s ColdFusion. PHP works extremely well with all the components within the LAMP stack. According to php.net, it is estimated that over 20 million domains on the internet make use of the language.

Ajax

Asynchronous Javascript and XML or Ajax is it is more commonly known, is a development technique for creating rich, visual appealing and interactive web applications. Web pages which leverage Ajax are more responsive because they exchange smaller amounts of data with the web server. This means that the entire web page does not have to be “refreshed” or completely reloaded in user’s browser after each interaction. This results in web pages which have increased interactivity, speed and usability. These are all key components to help Web 2.0 companies deliver applications which are highly interactive and deliver rich end user experiences which rival those of desktop applications. For these reasons, Ajax is already being widely leveraged in both consumer and business applications.
The core components of the Ajax technique include:
  • XHTML (or HTML) and CSS leveraged for mark up and style information.
  • The description of how an HTML or XML document is represented in a tree structure (otherwise known as DOM), is accessed with a client-side scripting language, usually JavaScript.
  • The XMLHttpRequest object is used to exchange data asynchronously with the web server.
  • XML as the format to transfer data between the server and client.

memcached

memcachced is a popular open source distributed memory caching system originally developed by Danga Interactive for the blogging website LiveJournal. It is traditionally leveraged to enhance the performance and responsiveness of dynamic content websites backed by databases. This is achieved by caching data and objects in memory, thereby reducing the amount of data that needs to be read from the database. The performance characteristics it can deliver are faster page loading for users, more efficient resource utilization, and faster database access times in the event of a memcached miss.

In more technical detail, memcached acts as a large hash table, caching data as it is being requested by clients. Although it was originally designed to improve the performance of database queries, it has been extended to cache server-side objects as well. In essence, any operation which is resource or time intensive can benefit from the use of memcached. It goes without saying that this technology is of great advantage to Web 2.0 applications, who by definition are very dynamic and data driven. This is in contrast to the static non-interactive web sites characteristic of the early years of the Web.

Many websites who make use of memcached, such as LiveJournal, Slashdot and Wikipedia, also make use of MySQL.

Labels: , , , , , , , ,

Monday, October 12, 2009

Webmaster Tools - Website Verification

If you use Webmaster Tools, you're probably familiar with verifying ownership of your sites. Simply add a specific meta tag or file to your site, click a button, and you're a verified owner. Some websites and software have features that help you verify ownership by adding the meta tag or file for you. Google recently made a few small improvements to the process that google think will make it easier and more reliable for you.

The first change is an improvement to the meta tag verification method. In the past, your verification meta tag was partially based on the email address of your Google Account. That meant that if you changed the email address in your account settings, your meta tags would also change (and you'd become unverified for any sites you had used the old tag on). Now Google created a new version of the verification meta tag which is unrelated to your email address. Once you verify with a new meta tag, you'll never become unverified by changing your email address.

Google also revamped the HTML file verification. Previously, if your website returned an HTTP status code other than 404 for non-existent URLs, you would be unable to use the file verification method. A properly configured web server will return 404 for non-existent URLs, but it turns out that a lot of sites have problems with this requirement. Now Google have simplified the file verification process to eliminate the checks for non-existent URLs. Now, you just download the HTML file from the webmaster tools section and upload it to your site without modification. Google will check the contents of the file, and if they're correct, you're done.

If you've already verified using the old methods, don't worry! Your existing verifications will continue to work. These changes only affect new verifications.

In future, Google will begin showing the email addresses of all verified owners of a given site to the other verified owners of that site. However, if you're using an email address you wouldn't want the other owners of your site to see, now might be a good time to change it.

For complete details, visit Google Webmaster Central Blog

Labels: ,

Friday, October 9, 2009

AJAX based websites crawlable

As a SEO person, i always find it difficult to do search engine optimization for AJAX based sites. Today google proposal comes as blessing when Google proposes to make AJAX based sites crawlable. While AJAX-based websites are popular with users, search engines are not able to access any of the content on them

Here's how search engines would crawl and index AJAX based sites:

Slightly modify the URL fragments for stateful AJAX pages

Stateful AJAX pages display the same content whenever accessed directly. These are pages that could be referred to in search results. Instead of a URL like http://example.com/page?query#state we would like to propose adding a token to make it possible to recognize these URLs: http://example.com/page?query#[FRAGMENTTOKEN]state . Based on a review of current URLs on the web, we propose using "!" (an exclamation point) as the token for this. The proposed URL that could be shown in search results would then be: http://example.com/page?query#!state.

Use a headless browser that outputs an HTML snapshot on your web server

The headless browser is used to access the AJAX page and generates HTML code based on the final state in the browser. Only specially tagged URLs are passed to the headless browser for processing. By doing this on the server side, the website owner is in control of the HTML code that is generated and can easily verify that all JavaScript is executed correctly. An example of such a browser is HtmlUnit, an open-sourced "GUI-less browser for Java programs.

Allow search engine crawlers to access these URLs by escaping the state

As URL fragments are never sent with requests to servers, it's necessary to slightly modify the URL used to access the page. At the same time, this tells the server to use the headless browser to generate HTML code instead of returning a page with JavaScript. Other, existing URLs - such as those used by the user - would be processed normally, bypassing the headless browser. We propose escaping the state information and adding it to the query parameters with a token. Using the previous example, one such URL would be http://example.com/page?query&[QUERYTOKEN]=state . Based on our analysis of current URLs on the web, we propose using "_escaped_fragment_" as the token. The proposed URL would then become http://example.com/page?query&_escaped_fragment_=state

Show the original URL to users in the search results

To improve the user experience, it makes sense to refer users directly to the AJAX-based pages. This can be achieved by showing the original URL (such as http://example.com/page?query#!state from our example above) in the search results. Search engines can check that the indexable text returned to Googlebot is the same or a subset of the text that is returned to users.



For complete proposal, visit Google webmaster central blog

Labels: , , ,

Sunday, October 4, 2009

What is Web 2.0?

The Internet continues to evolve at an accelerated rate, with new technological innovations being introduced all the time. This is constantly forcing us to rethink not only how we currently use the web, but also in what new possibilities lie in the future. The rapid adoption in which these new technologies and services are being integrated into our lives, are dramatically changing the way we communicate, socialize, share and locate information, entertain ourselves and shop for goods and services. This rapidly evolving landscape of “next generation” technologies and companies, are being categorized as Web 2.0.

Because these applications predominately “live” online, a strong collaborative and collective nature is being harnessed. Where the web was once a static and passively consumed experience, it is now dynamic, transactional and interactive, where participation is not optional, it is mandatory.

It is no surprise a common characteristic of many Web 2.0 websites, applications and companies, is their use of the LAMP (Linux, Apache, MySQL, PHP) open source stack. This allows fast-growing sites to deliver performance, scalability and reliability to millions of users. MySQL enables up-and-coming Web 2.0 sites like Wikipedia, FeedBurner and digg, - as well as established web properties like Craigslist, Google and Yahoo! - to scale out and meet the ever-increasing volume of users, transactions and data.

What is Web 2.0?

Web 2.0 can generally be thought of as the technologies and web sites who leverage users and developers in a socially collaborative manner in order to rapidly develop data and applications with a high level of integration across platforms and other services.

The term Web 2.0 was first coined back in 2004 during a brainstorming session between Tim O’Reilly of O’Reilly Media and MediaLive International, a company which puts on technology tradeshows. The term was originally intended for use as the name to describe an upcoming conference showcasing new web-based companies and technologies that had emerged post dot-com bubble. The term “Web 2.0” has since been dismissed as a marketing buzzword, co-opted and validated several times over by various individuals and companies. It has typically been used as a way to describe the new technologies and companies that are revolutionizing the way we use and think about the World Wide Web.

Tim O’Reilly expands further on the definition of the term, in his article What is Web 2.0:
Web 2.0 applications are those that make the most of the intrinsic advantages of that platform: delivering software as a continually updated service that gets better the more people use it, consuming and remixing data from multiple sources, including individual users, while providing their own data and services in a form that allows remixing others, creating network effects through an architecture of participation and going beyond the page metaphor of Web 1.0 to deliver rich user experiences.

In the following sections we delve deeper into four ideas central to the discussion of Web 2.0, which O’Reilly and others have elaborated on since the initial emergence of the term. They include:
  • Characteristics and Core Competencies of Web 2.0
  • The Web is the Platform
  • An Architecture of Participation
  • Hierarchy of “Web 2.0-ness

Characteristics and Core Competencies

Seven characteristics and core competencies of Web 2.0 are as follows:
  • They should be in the business of providing services not packaged software, while enabling cost effective scalability.
  • They should also exercise control over unique, difficult to replicate data sources which get richer the more individuals use and contribute to them.
  • Trusting users as co-developers.
  • Harnessing collective intelligence.
  • Leveraging the long tail through customer self service.
  • Software above the level of a single device.
  • Lightweight user interfaces, development models, AND business models.

The Web is the Platform

The Web has become the destination where it all happens. The exchange and distribution of ideas, how we socialize, conduct business, work, and play is increasingly finding its way on to the Web. Of course, at the heart of these interactions are the people, applications and the data that drive them.

Not many years ago it would have been hard to imagine the Web as a strategically important platform for many of the things that are now common place, like trading stocks, booking travel, conducting commerce, bartering for goods and services, finding new/old friends or even a potential life mate. This perception was often due to the fact that the applications making use of the web as a platform, were often sluggish, had few security controls, were graphically uninteresting, or were held captive by the speed of the end-users internet connection. When comparing these characteristics against the existing desktop applications of the day, it is no wonder some people found it hard to imagine that the web could ever be considered a viable platform over the desktop.

Fast forward a few years and web applications are now beginning to provide close to if not better end-user experiences. The evolution we are witnessing is that of the web quickly becoming the next “desktop”, or more specifically, the next operating platform on which applications are being designed to run on exclusively.

An Architecture of Participation

The concept of an architecture of participation is typically used to describe companies, technologies and projects, intentionally designed for contribution from developer communities and individual users with an emphasis on empowerment and openness. Often times this concept is closely linked to open source projects and companies.

It may be worth noting that a technology or company that is open source does not necessarily mean it automatically exhibits an architecture of participation. However, it is often much easier for open source companies and projects, as they will likely have a devout and often vibrant developer community. Many times proprietary products find it difficult to cultivate a participatory quality without heavy subsidization. This can be further complicated if the source code is closed, or the exposed APIs are complex, making even peripheral contributions difficult.

A “release early and release often” development cycle, characteristic of open source software, is an excellent way to include a community of volunteers and parties with vested interests in the software, to test and help debug code. Often the introduction of new features is done in strategic locations on a website or within an application to help ascertain its popularity or usability. This helps developers understand if the feature should be more widely employed and enhanced, or abandoned all together.

An architecture of participation also relates to the idea of users creating meaningful and valuable data for themselves. Often times the application simply provides the framework and tools to empower users in this capacity. A practical manifestation of this may include seller ratings, user recommendations and restaurant reviews.

Some examples of applications which typify this concept include:
  • Feeds: Users and applications allow their content to be picked up for distribution to subscribers
  • Blogs: Users create site content and drive traffic
  • Social Networking: Users create site content and through their social channels to build a network
  • Wikis: Users contribute articles and manage the content for accuracy and relevance

Hierarchy of “Web 2.0-ness”

O’Reilly also articulated a “hierarchy” of degrees to which an application possesses or typifies Web 2.0 attributes.
  • Level 3: Could ONLY exist on the Web and draws its essential power from the network and the connections it makes possible between people and applications.
  • Level 2: Could exist offline, but has unique advantages by being online.
  • Level 1: Can and does exist offline, but gains additional functionality by being online.
  • Level 0: The application has primarily taken hold online, but it would work just as well offline if you had all the data in a local cache.

Labels: , , , , ,

Thursday, October 1, 2009

Facebook Manners

Do you have good Facebook manners? Timmy and Alice don't. Watch their bad behavior to learn the dos and don'ts of Facebook breakups.