Archive for the ‘ Opensource ’ Category

Evaluate CMS

How to Evaluate What CMS to Use

Content Management Systems (CMS) have evolved into more than just publishing content, but managing your workflow as well. CMS’s nowadays allow you to easily conceive, edit, index, and publish content, while giving designers and developers more flexibility in customizing their look and functionality. Although there are many that require advanced skills to operate successfully, this article is going to cover a select few that offer a balance between design, code, and end-user usability.

How to Evaluate What CMS to Use

This article will help you make an informed decision on what CMS is right for you.

Evaluating Content Management Systems

Evaluating content management systems can be an overwhelming task, not because it’s rocket science, but simply because there are tons of them to choose from. However, with a structured approach to your evaluation, things can be much easier and less intimidating. Let’s talk about the things you should look at when deciding what CMS to use; here are eight characteristics that a good CMS should have.

1. Intuitiveness: easy to understand and use

Your CMS should have a GUI (Graphical User Interface) that’s easy on the eyes, doesn’t have overly complicated options, and offers simplicity in its administration interface. A good interface means that tasks pertaining to creating and managing your content will be quicker, saving you a lot of time and increasing your productivity.

You should also look at it from an end user’s perspective: if you’re building a content management system for a client who’s not “technology-savvy” and you choose a solution that requires a Ph. D. in computer science, it’s less likely that they’ll be able to use the system (thus, defeating the whole purpose of a CMS, which is to empower its users).

2. Flexibility and Ease of Customization

Flexibility and Ease of Customization

When taking into consideration a content management system, make sure that you’re not obligated to use their design templates. A large quantity of CMS solutions allows you to customize your own design without major restrictions. If your CMS forces you to choose a fixed and unalterable design template, then you’re stripped of creative license and your website will look like everyone else’s.

CMS’s that offer customizations on templates are Expression Engine, WordPress, and Joomla just to name a few; these content management systems boast and promote their ability to be easily modified.

3. Extensibility via Plugins and Modules

Extensibility via Plugins and Modules

A good CMS will allow you incorporate helpful site features into your site by letting you extend the default configuration with plugins.

Plugins/extensions/modules (their terminology varies between different platforms) make a difference in terms of enhancing your site’s ability to provide your site users with useful options for interfacing with your site.

Look for a CMS with a powerful Application Programming Interface (API) in case you need to write your own extensions. Make sure that the CMS you’re considering already has a huge list of plugins. Though you might not need plugins right away, it’s important that this is available to you, later down the road.

4. No Need for Programming Knowledge

If you’re more “design-oriented” than anything else, make sure you select a CMS where you won’t need to have extensive programming abilities to publish and maintain your site.

There is a wide selection of CMS’s that have WYSIWYG editors, letting you edit content without the need for code. Having to edit text through HTML markup can be time consuming and takes you away from other aspects of your managing and building your site.

Complex sites, however, can require a CMS that will let you type in some code, edit files with extensions such as .php, .css, .html, and make changes without that need for a third-party source code editor.

5. Optimized for Performance and Speed

Taking into consideration the speed your pages load on the browser, and how fast your site can make a connection to a server, is vital. Choosing a CMS that is bulky will drive away visitors rather then bring them in. By visiting examples of live sites, you’ll be able to gauge somewhat how fast pages load.

Keep in mind that you can increase the load time of your site by choosing a good host, and adding plugins that cache/compress/minify feeds, CSS, JS and also caches your database objects. A case study on this subject can be found here.

A simple and free tool that you can use to evaluate page response times of your CMS candidates is YSlow. Install it and head on over to demo sites of your CMS’s to see how well it’s front-end performs.

6. Security


Adequate security for your site is very important and must be in place in order to protect your content. There are CMS’s that allow you to install specific plugins and edit files/permissions in order to increase security levels. Make sure you choose a management system that offers modules to protect the integrity of your site. You can also protect your site by selecting a CMS that allows you to easily assign a different username and password to each user. This will let you view and control what each user has access to.

For WordPress, be sure to read about essential security tips and hacks for WordPress.

7. Documentation and Community Support

Nothing’s more frustrating than trying to figure out how to do something, and not have references online that you can take advantage of. One way to ensure that you won’t be running into this problem is by reading through the documentation of your candidate CMS’s. Also, a quick Google search will tell you how popular and well-documented a content management system is.

The availability (or lack thereof) of support from users of the system can be a deal maker or deal breaker. When users are active and proud of being part of the community, you not only have access to individuals that are more familiar with the system, but also, you can be assured that the project will be developed continually. Nothing’s worse than investing your resources and effort on a dead (or soon to be dead) project.

8. Emphasis on Web Standards and Best Practices

Content Management Systems developed under web standards guidelines and best practices will ensure that you won’t get burned later down the road. When applications are designed with best practices in mind, you can be assured ultimate cross-browser compatibility, lean-and-mean code, and ease of maintenance.

Look for content management systems that promote the use of web standards, and those that put it at the forefront of their development and design philosophy.

Some Key Content Management Systems to Consider

Now that you know the key characteristics of a good content management system, let’s take a look at a handful of major CMS’s that excel in most, if not all, of those areas.



ExpressionEngine (EE) is a flexible CMS for any scope of project. Within a few minutes, you’ll understand how to easily begin creating content. EE’s templating system lets you quickly see instant changes live. EE also has a multi-layered caching system to try and minimize the database usage. In addition, EE lets you embed and run PHP directly within its templates, very similar to WordPress.

ExpressionEngine has various features such as allowing you to have multiple sites with just one installation of their software. Just as we spoke in the above section dealing with connections and load times, EE has a unique template caching, query caching and tag caching keep the site running at a pretty quick pace by storing database queries in memory to reduce database connections when generating web pages.



WordPress is one of the most popular publishing platforms currently available in the market, and it’s known for being an excellent blogging platform. WordPress is free and open source, and it can be downloaded and installed as many times as you want.

WordPress installations are very quick and easy. It only takes a few minutes for your admin panel to be operational. If coding is not your strong suit, then no worries, WordPress offers its users a WYSIWYG editor (called Visual Editor).

Business Catalyst/Goodbary

Business Catalyst/Goodbary

Business Catalyst/Goodbary (owned by Adobe) is a powerful ecommerce CMS for developers. This content publishing platform has an array of useful features such as email marketing and in-depth site analytics. Business Catalyst gives you an easy way for your business to gain an online presence in no time. GB allows you to easily keep track of a customer’s actions, build and manage a customer database of any size, and sell your products and services online. Business Catalyst integrates well with a lot of popular payment systems such as PayPal, Google Checkout and pre-integrated gateways.



Joomla! is an advanced CMS with excellent function and content management. The installation process is pretty quick and easy. Joomla! is a complete CMS allowing you to build simple to advanced sites. Joomla also has super support for access control protocols like LDAP and OpenID, and can interface with popular and open API’s such as Google APIs.

With Joomla!, you’ll have more then 3,500 extensions at your disposal along with the support of an entire community. With a simple extension, you can add almost any needed functionality to your site.

One downside to Joomla! is that their heavy-artillery list of extensions often require you to purchase them. Hopefully, in the future, they will make their plugins free in order to aid users on a tight budget.



Drupal, a great open source CMS supported by a very active community, lets users publish content through any time with very little restrictions. Once the installation is finalized, you will discover features such as forums, user blogs, OpenID sign-ons, profiles and more. This CMS was written in PHP/MySQL for ease of customization and has one of the highest-regarded API’s in the open source content management system field.

Cushy CMS

Cushy CMS

Cushy CMS is a hosted and free content management system that’s lightweight, though powerful enough to jumpstart your site in a jiffy. With Cushy CMS, you have to add CSS styles to the sections that you will eventually change or edit. This CMS allows you to access and store content while it uploads this same data to server.

Cushy was built for content editors and designers and so it’s very simple and easy to manage. Being a SaaS, you don’t need to install or self-maintain the CMS.



TYPOlight is great for site builders that will be maintaining multiple sites and is an ideal solution for web developers. If you’re thinking about creating a simple or advanced site design with great functionality, then TYPOlight CMS can definitely get the job done for you.



RadiantCMS is a Ruby on Rails app. Radiant has a very active community for core support and updates. If you are a RoR developer, it’s right up your alley. Radiant has concentrated on making things much more user-friendly for end users and web designers. RadiantCMS also contains an innovative custom tagging language (called Radius) that’s easy to pick up.



SilverStripe is an open source application written on top of PHP and was designed with emphasis on flexibility. SilverStripe has many configurable options and is geared towards content-heavy websites.

This CMS was completely built on its own PHP framework, called Saphire. SS offers content version control and great SEO support. All users alike are welcome to customize the administration area for their clients or themselves.

The only downside with SS is that the default templates are garbage; however, that’s nothing a little elbow grease wouldn’t fix.

Textpattern CMS

Textpattern CMS

Textpattern CMS is a very popular system for many designers due to its simplicity.

Textpattern strives to provide great content management that produces quick, easy, and desirable web standards-compliant pages. There is no WYSIWYG editor because Textpattern utilizes textile markup for content generation.

The backend is very easy to use and follow. New users will learn the administration section with super speedy ease.



Alfresco is a JSP enterprise content management solution that’s quick and easy to install. Alfresco lets you drop files into folders and convert those files into interactive web documents. This CMS isn’t as easy to become familiar with when compared to others, however, with a little bit of time investment, you’ll definitely get the hang of it. Alfresco could be targeted more towards the intermediate developer, although its pure functionality allows it to become very usable. The administration GUI is very organized, well maintained, and easy to navigate through.

Got tips on how to evaluate the right CMS? Do you have experiences (good or bad) with the content management systems shown here? Talk to us about it in the comments.

Bookmark and Share

WordPress, HTML, CSS, PHP, Javascript And More Cheat Sheets

Cheat sheets are really helpful in revising the codes as there are so many codes which we cannot remember always but cheat sheets are of great help in keeping yourself updatedwith the codes.

Cheat sheets are also helpful for beginner developers and designers in learning and remembering codes better. A truly great resource for upcoming developers.

The purpose of this post is to provide all the cheat sheets useful for designers and developers at one place. A mega collection of cheat sheets which contains HTML, CSS, JAVA, PHP, Database SQL, WordPress, Aspx, SEO and many more other useful cheat sheets which you will find in this post. Most of the cheat sheets are available in printable format for a handy use of these resources.













Browser Shortcut Cheats

Bookmark and Share


Thinking of developing a widget for folks’ desktops, mobile phones, blogs, or social networks (e.g. Facebook or MySpace)? First off, you need to decide what type of widget you’re going to be developing. There are three types:

Desktop (or Dashboard) Widget: Installed on your computer. Platforms include Yahoo Widgets, the OS X Dashboard, and the Windows Vista sidebar. One example is the customer-developed widget for the Mac that monitors availability of the daily product at Woot (

Web Widget: For your blog or social media app like Facebook, MySpace, etc. One example of this is the LastFM widget ( which allows you to “share your music anywhere.”

Mobile Widget: For mobile phones on the DotMobi domain, as well as iPhone-specific widgets. Some examples at

When planning and developing your widget, it might be helpful to keep the following in mind…


  • Is your widget useful to your target audience? What’s the hook (incentive) that will compel them to install it or use it? Does the widget solve the user’s business problems? Does it save them time or money, or make them more productive? Users listen to WII-FM (“What’s In It For Me?”).

  • Are the functions your widget provides on-message with your brand?

  • Is the data delivered by the widget always fresh and up-to-date?

  • Are there features that leverage the community of users?

  • Does your widget have the capacity to go viral? In other words, is it contagious? And is it “slippery” – in other words, easy to share or distribute to friends?


  • Is your widget ROI positive?

  • What are your objectives? Brand building? PR? Links? Lead generation? Driving conversions? Increasing the customer’s AOV?

  • Set realistic marketing and ecommerce goals for the widget and track success.

  • What is your budget for widget development and maintenance? What if your widget is a huge hit…do you have an action plan in place to upgrade all aspects of service?


  • Monitor and evaluate the widget’s server reliability (uptime). Fully QA and stress test the widget.

  • Determine the widget’s loading time and optimize it for maximum performance.

  • If it’s a blog widget, make sure it doesn’t hold up the rest of the blogger’s page from loading quickly if the server that serves up your widget becomes unresponsive.

  • What is your adoption rate of your widget? Conduct traffic volume scalability testing to ensure your widget’s servers can cope.


  • If a web widget, does its HTML code validate?

  • Is the widget code well-documented (for the benefit of your programmers)?

  • If a web widget, will updated versions of the widget require that the blogger/webmaster update your code they inserted into their template?

  • If it’s a Flash-based widget, does it have an HTML wrapper?


  • Evaluate the usability of the widget’s user interface and of the installation process (via surveys, focus groups, and/or usability consultants).

  • Does your widget follow the KISS (Keep It Simple, Stupid) principle? Don’t try to make the widget do too many things; stay focused.

  • Design your widget for the market you are targeting. Use language that they identify with.

  • Consider allowing the user installing the widget to customize its look to their own tastes.

  • Check for browser compatibility on various versions of Internet Explorer, Firefox, Safari, Opera, etc.

  • Check for platform compatibility on various versions of Windows, Mac, Linux.

  • Conduct international usability tests. Does the widget offer localized content for international users? Has the widget been translated into foreign languages?

  • Is the site mobile device friendly?

  • Is the widget usable for people with disabilities?

  • If a blog widget, is the widget printer friendly? Or does it mess up the formatting of the page when printed?


  • Don’t neglect PageRank as your incentive to build widgets. If nothing else, a good widget can serve as link bait, driving lots of inbound links to your web site.

  • Web widgets can pass PageRank from the website where the widget is placed to your site, but only if done correctly. To help increase your chances of the links being counted for PageRank:

  • If your widget is coded in JavaScript, place your text links outside the JavaScript, or use a <noscript> tag.

  • If coded in Flash, you can utilize progressive enhancement or an HTML “wrapper”.

  • For iframe widgets, place your text links outside the iframe, or use a <noframe> tag.

  • The best widgets for SEO are WordPress widgets (written in PHP) or HTML-based widgets because the widget’s HTML code, including links and content, is fully accessible to spiders and integrated into the rest of the blog’s HTML. WordPress widgets are similar to WordPress plugins.

  • Include relevant keywords in the anchor text of the links back to your site. For example, instead of a link saying, “Your Brand,” spice it up some and say “Your Brand’s Weather Widget,” or other keyword text that describes what your widget is about.

  • If it’s a blog widget, have a plugin version of it for major blog platforms such as WordPress. Thus the links and content generated by the widget will become integrated into the rest of the blog’s HTML code, and the links will appear more “real” to the search engines.

  • Create your links with a “target=_blank” code so that webmasters are less inclined to remove the link. Some webmasters believe that widgets “steal’ traffic from their website or blog.

Bookmark and Share

What Is REST?

The Technorati API

Feel free to search the blogosphere all you want using the Technorati Web page. However, as a Web application developer, you might want to automate that search or enable your Web page visitors to view information retrieved from the blogosphere based on their own search criteria.

To make that happen, use the Technorati API. Like many APIs on the Internet, the Technorati API uses REST.

What Is REST?

REST is an acronym for Representational State Transfer. The full explanation of everything entailed in a proper REST definition is outside of the scope of this article; however, it is available elsewhere on IBM developerWorks (see the links provided in Resources). For the subject covered here, it is sufficient to state that REST enables developers to access information and resources using a simple HTTP invocation.

Think of REST this way: To obtain domain-specific data, you simply point a URL to a specific location. For the purposes of this article, that’s really all it is. You can also think of it as a simplified Web service, but if you say that too loudly around the wrong people, you might find yourself in the middle of a debate.

In reference to the subject at hand, the Technorati API is a REST service that enables users to point to a specific URL and retrieve a variety of articles from the blogosphere that meet the criteria specified in the URL. This enables you, as a developer, to accept input within a Web application and dynamically query the blogosphere based on that input using a simple URL that encodes the input into a format the API understands.

Getting started: A simple example

Consider the example in Listing 1:
Listing 1. A simple search

This is a fairly simple URL with only two request parameters.

Note that the actual Technorati API function is the word that follows the final slash (search). This indicates, unsurprisingly, that this REST invocation will perform a search against the blogosphere.

The first parameter is the key. The actual key used varies from user to user and is not really the xxxx character string. To obtain the key that you will use, you need to register with Technorati and request a key. Fortunately this is easy and free. Unfortunately, this means that you cannot simply copy and paste the URLs from this article into a browser and see the results. You have to substitute your own key for this xxxx string.

The second request parameter is the actual query. Just like in the manual example, the search uses the keyword Obama.

After you substitute your own key for the xxxx string, you can then plug that URL into a Web browser and see what results are returned. Your results will vary depending on your Web browser brand and version. Whatever the results on the screen, it’s best to right click on the page and select View Source to view the actual XML that is returned.

While the actual contents will also vary based on when your query is executed, the results should resemble Listing 2.
Listing 2. Output from a simple search (partial output)

<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Technorati API version 1.0 /search" -->
<!DOCTYPE tapi PUBLIC "-//Technorati, Inc.//DTD TAPI 0.02//EN"
<tapi version="1.0">
      <name>Critica Pura</name>
      <lastupdate>2009-06-21 17:13:23 GMT</lastupdate>
   <title>Jib Jab Obama</title>
   <excerpt>Try JibJab Sendables</excerpt>
   <created>2009-06-21 17:13:23 GMT</created>

Interestingly enough, the first query result as of this writing is a foreign language blog entry (at least, foreign to those who speak English).

The result element provides metadata information about the query results. The query child provides the actual query keyword. The querycount child provides the number of articles from the blogosphere that matched the query.

Many item elements follow the result element. Each item element corresponds to a blog article that matched the search criteria.

The weblog element provides information about the blog itself. This is information about the entire blog as opposed to just the article that matched the criteria. Table 1 describes the weblog child elements.
Table 1. weblog child elements

Element Description
name Actual name of the blog itself
url URL of the blog
rssurl URL of the Really Simple Syndication (RSS) feed for that blog
atomurl URL of the Atom feed for that blog
inboundblogs Number of blogs that link to that blog
inboundlinks Number of external sites that link back to that blog
lastupdate Date and time the blog was last updated

The elements described in Table 2 are children of item as opposed to weblog. These children refer to the article itself.
Table 2. item child elements

Element Description
title Actual title of the blog article
excerpt Synopsis of the blog article
created Date and time the article was written
permalink URL for the blog article

Add to Technorati Add to Add to Furl Add to Yahoo My Web 2.0 Add to Reddit Add to Digg Add to Spurl Add to Wists Add to Simpy Add to Newsvine Add to Blinklist Add to Fark Add to Blogmarks Add to GoldenFeed

Helping job searches (linkedin and twitter)

There’s no shortage of news about social media and social networking sites like LinkedIn, Twitter and Facebook. But when it comes to job searching, LinkedIn is really the site that is being used the most these days by recruiters and hiring managers.

You no longer need to sit at home waiting for the phone to ring or be glued to our computer desk or office to job search, network and follow up with job leads, says a recent Reuters article. With the proliferation of mobile devices and mobile Internet applications being built by the day that cater to ease of use on Apple’s iPhone, RIM’s BlackBerry and other smartphone devices, it’s not surprising to see the impact Web-based social sites are having.

From the Reuters article:

“The LinkedIn Profile is really the resume of the future,” Joyce said. “The ‘resume’ on LinkedIn is really the standard LinkedIn Profile, but it’s very popular with recruiters looking for good candidates.”You could build your whole LinkedIn presence from any Web-enabled phone.”

There are any number of job-search applications — downloadable programs for your phone — available for the iPhone, for instance, including one piloted by recruitment consultancy Harvey Nash. Others pool information on jobs in travel and in education, among other sectors.


With jobs still scarce, many hopefuls are getting creative about getting noticed. Many have begun using Twitter — a microblogging service that allows users to send 140-character messages at a time — to get the word out.

A career is unlikely to be launched on Twitter alone, but candidates are increasingly “tweeting” or posting messages to outline their skills, experiences and career goals. They are pasting links to their resumes on the micro-blogging service.


People are also “following” recruiters on Twitter, individuals in companies they want to work for and networking organizations focused on the unemployed who are using Twitter to broadcast their free events. Two organizations mentioned in the article are Layoffs Cafe and Laidoff Camp — both using Twitter to market their events for free.

What are the downfalls of all this technology? Weeding out the good leads and opportunities from the bad and the criminal. Be careful who you give your personal information to.

Adobe Flex beats Silverlight every time

Both Adobe and Microsoft are fighting hard to be the preferred vendor for RIA development. They both are awesome tools that will change the way we use the web in years to come. But when it comes to deployment, there is only one option for me and that is Flex. The main reason, 99% of all PCs and laptops have Flash installed on it. If you look at this chart you don’t even see the Silverlight plugin. That is because it is so new that it will take a while to penetrate the market. But even Microsoft’s most popular desktop add-on, Microsoft Windows Media Player, only reaches 83.6% of the desktops. Silverlight will struggle to get widely adopted just like Winforms did. The problem with Winforms is it requires the .Net framework to be installed on the client PC. According to Microsoft’s own website, the .Net framework is at about a 58% penetration rate. Keep in mind that the framework only comes into play on Windows operating systems. I don’t know about you, but I won’t have any success convincing all of my 500 manufacturer and retailer clients to install the framework on all of their desktops. But my Flash applications will work fine since they all already have Flash installed, regardless of which operating system they run. Microsoft did learn from the failed approach with Winforms and addresses this issue with the Silverlight plugin. The problem now for Microsoft is how will they get the necessary penetration that customers like me require. Microsoft is also working with the open source community so Silverlight will work on Linux (see Moonlight). This is a great strategy. But I can’t wait 2-3 years until Silverlight penetrates over 90% of the laptops and PCs across all operating systems. Don’t get me wrong, I like what I have seen (download plugin at own risk) from Silverlight as far as ease of use and functionality. If you are building applications for users that you have total control of their desktop, then Silverlight is an awesome choice for you. But for those of us who have no control over the client, Adobe Flex beats Silverlight every time.

Web 2.0 Usage in Corporate

Actual network data from FaceTime Communications reveals that employee use of Web 2.0 applications such as Instant Messaging, IPTV, VoIP and Social Networking on corporate networks exceeds IT estimates by up to 10 times. FaceTime also today announced version 2.0 of its Unified Security Gateway (USG), a secure Web gateway purpose-built for the new Internet to provide a single point of control for preventing malware, controlling Web 2.0 applications and managing information leakage in corporate networks. The new USG gives IT managers capabilities to detect and apply powerful policies to an unprecedented 1,400 Web 2.0 and real-time applications in use by employees.

During fourth quarter 2008, FaceTime collected live traffic data from commercially deployed USG units at more than 80 mid to large enterprises worldwide, representing the daily Web-based activities of more than 100,000 corporate workers. In parallel, FaceTime asked a large sample of IT managers how many Web 2.0 applications they believed were in use on their networks; one third estimated the number at less than eight. In reality, FaceTime’s actual network data shows an average of 49 Web 2.0 applications installed across all reporting locations.

Table: IT Manager estimates vs. actual traffic data


                                       Percentage of IT     Percentage of
                                         Managers who       locations that
                                       thought app was    show at least one
                                        being used in      endpoint using
                                        their location        the app
                                      -----------------  -----------------
Social Networking                            60%                100%
                                      -----------------  -----------------
Instant Messaging                            66%                100%
                                      -----------------  -----------------
Web based IM                                 35%                97%
                                      -----------------  -----------------
Streaming Audio/video                        80%                94%
                                      -----------------  -----------------
IPTV                                         10%                100%
                                      -----------------  -----------------
P2P File Sharing                             54%                96%
                                      -----------------  -----------------
Web Conferencing                             82%                83%
                                      -----------------  -----------------
VoIP                                         40%               100%
                                      -----------------  -----------------
Anonymizers                                  15%                74%

commants @