Contempotech Blog

Contempotech >> Blog

Thursday, July 16, 2009

Web Developers, Meet the Content Management System

By Tyme

Let's face it, web developers, web content management systems (CMS) are here to stay. Not to worry, there remains room for designers and coders in the world of CMS.

For the sake of brevity, this article will focus on the free (i.e., open source, GPL, GNU licenses) software -- Drupal, Joomla, Wordpress are three of the more popular of the bunch. After all, the open source are the most fun and challenging for developers, as you can show off your mad programming skills by contributing your own, or contributing to, custom plugins referred to by the various applications as modules, components, extensions, plugins.

As with any Web project, it is important to first identify the intent of the Web site and the client's needs. If your non-techy client is interested in generating and publishing their own content, you are on the right track with a CMS. So, onward.

Are they interested in creating a simple blog, a factory of client-managed multimedia content, or a community site (social networking)? Don't forget the oft overlooked use, intranet. CMS makes a great intranet!

What is a CMS?

Wikipedia describes it thusly: "A 'web content management' (WCM) system is a CMS designed to simplify the publication of Web content to Web sites, in particular allowing content creators to submit content without requiring technical knowledge of HTML or the uploading of files."

From a developer's standpoint, a CMS is digital Lego's. A foundation ("core" code) and predefined building elements that you can manipulate to your heart's desire without even getting your coding hands dirty...unless of course you want to. Because it is "modular", you can easily expand the scope and functionality of a site through plugins (a/k/a "modules", "components", "extensions", "plugins").

Why Use a CMS?

Well, let's just say, not because of coder laziness, although there is that. As a site builder, you need nothing more than great CSS chops, and a solid understanding of best practices. No need to script from scratch; but, if you are a PHP coder, the CMS world is your oyster. (Sorry ASP programmers, there's not much to see here, except DotNetNuke.)

Key reasons to use a CMS include:
  • Client wants control over content creation and publishing, including uploading of images and files, and a WYSIWYG interface.
  • Client wants public and private (registered user) sections of a Web site.
  • Client wants visitors to be able to interact with the content.
  • Client wants rotating, blog style content display - for example, front page article summaries with 'read more' links.
  • You, or client manager, want integrated Web administration control of site.
An ancillary reason is that you enjoy being part of such a large developer community. A fraternity (/sorority) of people who enjoy building and sharing great new modules, improving great modules, and appreciate great modules. Hundreds of thousands (probably millions) of volunteers around the world working to make a product better, every single day. Well, that's open source, for ya.

On this note, there certainly are developers profiting from these contributor modules. Some sell their module code directly, while others are sponsored by a company to build a custom module, which then often is made available to the community. The same is true for CMS templates or themes. So, you need not think of developing for CMS a waste of time.

NOTE: In the CMS world, the term developer tends to mean module programmer, whereas a site builder is referred to as a designer or themer.

How to Choose From Among Content Management Systems

The decision of which CMS to use will be dictated, in large part, by the intent of the Web site. While there are many free content management systems (see Wikipedia's quick glance table: http://en.wikipedia.org/ wiki/List_of_content_management_systems), the following is meant to serve as example of the kinds of features and differences among a few--things to consider when researching a CMS.

Drupal

Drupal, for example, has been widely used for community or social networking sites where visitor interactivity is encouraged; it lends itself well to this format through a flexible commenting feature. It also is a great, flexible tool for Internet or intranet portals. Another standout feature of core Drupal is its finite permissions control for each user role, and for each module. You can create your own roles, as well.

With an active developer community and a plethora of free contributor modules, you should find plenty of tools from which to choose. And, if you don't find a module to do precisely what you need, two modules--Content Construction Kit (CCK) and Views--make Drupal highly customizable, allowing you to push/pull and manipulate data in a myriad of ways. All without having to access any programming code.

The Whitehouse recently rolled out a Drupal site, http://www.recovery.gov/, and the French Government also said oui oui to Drupal with their http://www.gouvernement .fr/. To prove that a CMS site does not have to be boring and templatey-looking, check out a few top-notch sites featured here: http://sixrevisions.com/web_design/31-drupal-content- management-system-cms/.

Among other uses, the author uses Drupal as a (private) client job ticket center, through the delightful JobTrack contributed module.




Joomla

Joomla claims to have the largest availability of plugins (referred to as components, extensions, mambots, themes), many of which are fee based. Some modules are obtained by fee per plugin, others through subscription to all the developer's offerings. You will likely have no trouble finding what you need.

While flexible access control is not part of the core architecture of Joomla (as it is with Drupal), several standard user roles are available: Register, Author, Publisher, Administrator, Super-Administrator. If you want to establish more user rights control, you will need to purchase a module to do so.

When it comes to creating content, Joomla offers several customization options for each content item. Assign your roles carefully--you could easily overwhelm your non-techy client users with the many choices.

WordPress

WordPress has often been the go-to tool for bloggers, as is hinted by its name. However, WordPress is constantly evolving to offer more and more flexibility and extensibility, in order to compete with other CMS forerunners.

WordPress is often available for installation through Web hosting control panels, and novices find it easy to install and use.

The Vancouver Convention Centre site (http://www .vancouverconventioncentre.com/) is a beautiful example of a WordPress built site.

Which is Best?

Asking Web designers/developers which CMS is best is a bit like starting the Mac vs. PC debate. Sure, each has advantages and disadvantages, but it tends to come down purely to preference.

CMS Site Building Tips
  1. Always create and maintain a development site! You don't want to install new plugins, upgrade core or contributed modules, or experiment on the live site first.
  2. Do not hack core code, if at all possible. Content management systems are designed to be customized without having to access the programming code. If you modify the core code, or contributed module code, you will need to redo those modifications each time you upgrade to the software with the many builds that will follow.
  3. If you are an experienced Web designer/developer intending to create a custom site, consider starting with a no-frills theme. These tend to be created by developers who value compliant code over pretty graphics (which you will apply yourself). Select the theme based on the basic layout (2-column, 3-column, tableless, XHTML compliant). A nice feature with CMS is that you can add multiple themes and simply turn them on or off to try out another theme.
  4. Establish user roles thoughtfully. Give users only as much access control (/permissions) as is necessary. Not only is this prudent for site integrity, but you do not want to overwhelm your content creators with more options than they need.
  5. Remember, WYSIWYGs are evil (but clients require them). Good luck with that.
  6. Have Firebug locked and loaded before you begin. The content management systems use many layers of CSS files. (For more on Firebug, see "Firefox and Firebug: A Developer's Swiss Army Knife": http://www.htmlgoodies.com/beyond/ webmaster/toolbox/article.php/3801831.)
  7. Many content management systems, although typically written in PHP, will run on an equipped Windows server, but some functionality (e.g., search engine friendly URLs) will be lost.
  8. Use of a CMS requires some extra search engine optimization (SEO) care. Use search engine friendly URLs, and be sure to use a well-defined robots.txt file and sitemap.
  9. With a CMS, all content and operational instructions are written to a database, and your style mods will be contained in your custom CSS theme files. So, perform regular SQL dumps and backups of those CSS files. If you haven't hacked any programming files, backups (and restores) will be quick and painless.
  10. Don't leave your clients hanging! Even though a CMS is designed to make them more independent, clients typically need guidance and implementation for expanded functionality, as their needs evolve.
[htmlgoodies]

Labels: ,

Post a Comment

| 0 comments

Wednesday, July 15, 2009

How To Search Engine Optimize (SEO) an AJAX or Web 2.0 Site

By Daryl Quenet

One of the three major pillars of Search Engine Optimization is a website's content, and onsite content optimization. All of the major search engine ranking algorithms have components that relate to the content that is contained on the website. Typically these components relate to Keyword Densities, number of words, content location, and sometimes age of content. In regards to the code that the content is contained in that falls under the topic of structure and not content, and will not be discussed in this article.

Asynchronous JavaScript and XML (AJAX) is an advanced web development method which can be used to create more responsive and interactive dynamic websites. AJAX accomplishes this by making object request calls back to the web server without having to refresh your browser, these object calls are then processed and are typically used to update the content of the page on your website that is currently being viewed. For the sake of this Article I'm going to ignore the XML component of AJAX as the search engines never view any of the XML data. Websites that use Javascript to manipulate content without using AJAX will also suffer from the issues described.

When a search engine sends out a robot / spider to visit your website with the goal of indexing your content it is only looking at what is being presented in the Markup Language. Generally a search engine does not behave like a user when indexing your website, it doesn't click buttons or links it simply makes note of URLs associated with each page then individually then visits these pages to index them. This largely goes against the goal of AJAX which is to have as few pages as possible by interacting with the web server in a smarter method as the users interact with the website.

To put the last paragraph simply any content that is changed via AJAX or Javascript on a webpage that is not hardcoded in a page won’t be cached by the search engines. This essentially means that if you have great content that the search engines may love but y
ou’re using AJAX you may be missing out on traffic. There are two approaches to rectifying these which may even give you an advantage over sites that don't utilize Javascript / AJAX.

The first approach is to make sure that your website degrades to normal flat markup language for non javascript capable browsers and search engines. Essentially every time you would have used an AJAX call make sure you have a page with the same content. Unfortunately for a lot of people this could mean a lot of work, for those individual using a database with PHP or ASP it is not too hard to build a site that builds itself with some effective web programming.

The second approach is to use AJAX in a more minimalist fashion. The goal here is to present the search engines with your optimized content while making sure that any AJAX calls a user would do has no bearing on what you want the search engines to see. In fact this can be used to remove content from your website which may negatively affect your rankings such as testimonials. I've seen very few testimonials that actually do good things for a sites keyword density, I’ve even been known to optimize testimonials on client’s websites. With Javascript / AJAX you could insert a random testimonial into a page and therefore not affecting that pages keyword density. The only downside to this approach is that some offsite keyword density tools actually use Web Browser rendering engines so they may get false results as it takes the Javascript into account.

Now you may think that I'm anti AJAX from everything that I've said, but there are times and places for AJAX, provided it doesn't affect how the search engines see your beautiful relevant content your trying to rank. AJAX is great to use for Member sections of your website, interactive forms, slideshows, and a lot more it just needs to be leveraged correctly to avoid missing out on search engine visitors. The final thing to keep in mind is that most search engines like to see more than a single page website which many AJAX website appear to be, always strive for at least 5 or more indexable pages as internal links and anchor text can have a lot of value.

[isedb]

Labels: ,

Post a Comment

| 0 comments

Tuesday, July 14, 2009

10 skills developers need in next five years

By Justin James, Special to ZDNet Asia

For those looking to get ahead in your field or simply stay employed, this is not the time to be complacent. Find out what skills to work on now to maximize your future job prospects.

With the recent changes in the economy, a lot of developers are focused on their short-term job prospects.

At the same time, it's important to make sure that you get the most bang for your buck when it comes to taking the time and energy to learn new skills. Hence, here is our list of 10 skills you should be learning right now to make sure that your resume is relevant for the next five years.

The list is hardly exhaustive, and there are huge swaths of the industry it won't cover (mainframe developers, for example). Nonetheless, for average mainstream development, you can't go wrong learning at least seven of these skills--not only to the point where you can talk convincingly about them at a job interview, but actually use them on the job.

1: One of the "Big Three" (.NET, Java, PHP)
Unless there is a radical shift in the development world (akin to an asteroid hitting Redmond), most developers will need to know at least one of the Big Three development systems--.NET (VB.NET or C#), Java, or PHP--for the near future.

It's not enough to know the core languages, either. As projects encompass more and more disparate functionality, you'll need to know the associated frameworks and libraries more deeply.

2: Rich Internet Applications (RIAs)
Love it or hate it, in the last few years, Flash is suddenly being used for more than just animations of politicians singing goofy songs. Flash has also sprouted additional functionality in the form or Flex and AIR.

Flash's competitors, such as JavaFx and Silverlight, are also upping the ante on features and performance. To make things even more complicated, HTML 5 is incorporating all sorts of RIA functionality, including database connectivity, and putting the formal W3C stamp on AJAX. In the near future, being an RIA pro will be a key resume differentiator.

3: Web development
Web development is not going away anytime soon. Many developers have been content to lay back and ignore the Web or to just stick to "the basics" their framework provides them with.

But companies have been demanding more and more who really know how to work with the underlying technology at a "hand code" level. So bone up on JavaScript, CSS, and HTML to succeed over the next five years.

4: Web services
REST or SOAP? JSON or XML? While the choices and the answers depend on the project, it's getting increasingly difficult to be a developer (even one not writing Web applications) without consuming or creating a Web service.

Even areas that used to be ODBC, COM, or RPC domains are now being transitioned to Web services of some variety. Developers who can't work with Web services will find themselves relegated to legacy and maintenance roles.

5: Soft skills
One trend that has been going for quite some time is the increasing visibility of IT within and outside the enterprise. Developers are being brought into more and more non-development meetings and processes to provide feedback. For example, the CFO can't change the accounting rules without working with IT to update the systems. And an operations manager can't change a call center process without IT updating the CRM workflow.

Likewise, customers often need to work directly with the development teams to make sure that their needs are met. Will every developer need to go to Toastmasters or study How to Win Friends and Influence People? No. But the developers who do will be much more valuable to their employers--and highly sought after in the job market.

6: One dynamic and/or functional programming language
Languages like Ruby, Python, F#, and Groovy still aren't quite mainstream--but the ideas in them are. For example, the LINQ system in Microsoft's .NET is a direct descendent of functional programming techniques.

Both Ruby and Python are becoming hot in some sectors, thanks to the Rails framework and Silverlight, respectively. Learning one of these languages won't just improve your resume, though; it will expand your horizons. Every top-flight developer I've met recommends learning at least one dynamic or functional programming language to learn new ways of thinking, and from personal experience, I can tell you that it works.

7: Agile methodologies
When Agile first hit mainstream awareness, I was a skeptic, along with many other folks I know. It seemed to be some sort of knee-jerk reaction to tradition, throwing away the controls and standards in favor of anarchy. But as time went on, the ideas behind Agile became both better defined and better expressed.

Many shops are either adopting Agile or running proof-of-concept experiments with Agile. While Agile is not the ultimate panacea for project failure, it does indeed have a place on many projects. Developers with a proven track record of understanding and succeeding in Agile environments will be in increasingly high demand over the next few years.

8: Domain knowledge
Hand-in-hand with Agile methodologies, development teams are increasingly being viewed as partners in the definition of projects. This means that developers who understand the problem domain are able to contribute to the project in a highly visible, valuable way. With Agile, a developer who can say, "From here, we can also add this functionality fairly easily, and it will get us a lot of value", or "Gee, that requirement really doesn't match the usage patterns our logs show" will excel.

As much as many developers resist the idea of having to know anything about the problem domain at all, it is undeniable that increasing numbers of organizations prefer (if not require) developers to at least understand the basics.

9: Development "hygiene"
A few years ago, many (if not most) shops did not have access to bug tracking systems, version control, and other such tools; it was just the developers and their IDE of choice. But thanks to the development of new, integrated stacks, like the Microsoft Visual Studio Team System, and the explosion in availability of high quality, open source environments, organizations without these tools are becoming much less common. Developers must know more than just how to check code in and out of source control or how to use the VM system to build test environments. They need to have a rigorous habit of hygiene in place to make sure that they are properly coordinating with their teams. "Code cowboys" who store everything on a personal USB drive, don't document which changes correspond to which task item, and so on, are unwelcome in more traditional shops and even more unwelcome in Agile environments, which rely on a tight coordination between team members to operate.

10: Mobile development
The late 1990s saw Web development rise to mainstream acceptance and then begin to marginalize traditional desktop applications in many areas. In 2008, mobile development left the launch pad, and over the next five years, it will become increasingly important.

There are, of course, different approaches to mobile development: Web applications designed to work on mobile devices, RIAs aimed at that market, and applications that run directly on the devices. Regardless of which of these paths you choose, adding mobile development to your skill set will ensure that you are in demand for the future.

[zdnetasia]

Labels:

Post a Comment

| 0 comments

Thursday, April 16, 2009

leading software developing organization

We are one of the leading software company in India. Our clients include Fortune 5000 companies. Customer contentment is our top priority. We are always meticulous to the changes in the industry and familiarize ourselves according to the trends. Contempo Technologies has a team of professionals who can comprehend your explicit needs of software development. Many companies profit from our company's services.

Contempo Technologies is a dedicated search engine optimization, Software developments and programming servicing company. We set very high esteems and levelheaded goals. We mainly ponder on 'solutionzing' and proffer our clients with state-of-the-art and highly praised solutions catering to various parts of the financial value chain.

Contempo Technologies is one of the leading software developing organization in India. It has highly qualified professionals with both certifications from Microsoft and Sun Micro Systems. We provide inexpensive software development services. We have the promise of making our customers feel happy. We have high aspirations aim for customer satisfaction .We save your time and money. We are trust-worthy and reliable company. We guarantee you business promotion and commercial fulfillment.

Post a Comment

| 0 comments

 

 

 

Home | About Us | Web Services | Portfolio | Contact us | Request a Quote | SEO Tools | SEO Case Studies | Sitemap | links | Copyright © Contempotech 2010