Oct 31 2008

Web Development Essentials – What Platform?

The Art of Web Development

The web has matured greatly over the past few years with ever more complex sites and networks springing up, covering everything from managing your social life to news and information services. As these sites establish themselves, so the expectation of what a user should be able to do with the web increases. One example is the new big thing of ‘cloud computing’ – where an application stored on a single computer is a thing of the past and you access your most used programs through a web browser, wherever you are.

This is brilliant for users of course, bringing the internet into your everyday routine and enabling you to do more from wherever you are. For developers, however, it can be a headache. When you come up with a great new idea and want to make it reality, the choices you face at every stage can make or break your project. Choose the wrong platform, tools or frameworks and you could be left ruing the decision for months to come, or even worse, it could spell the end for all your hard work.

This is the first in a series of articles intended to help the budding developer out there (and maybe even the more experienced ones among you) in making these vital choices by outlining what there is available to you – and remember, always fit it in with your project and the people who will be working on it.

Language

As the foundation of everything to follow, the platform choice is crucial: it may be very hard to change half-way through because another platform has that cool new feature which would make your life easier.

The first decision you need to make is which language to use: PHP, Python, Ruby, C# or VB.NET. Even Perl, which as a web dev language is going out of fashion, is still used in some situations!

  • PHP is the old stalwart, sitting pretty on top of the heap with plenty of support, existing systems and libraries and a healthy community behind it. Although it can be a disorganised mess in places, there is virtually nothing it can’t do out of the box, and when hooked up with a good framework (such as Zend, CodeIgniter or CakePHP), the sky is the limit. It can also be blisteringly fast when done right, presenting a great level of scalability.
  • Ruby is the young upstart in the web world, thanks to its major framework Rails, and many people are turning to it as it’s the current language in vogue. Other frameworks do exist, such as Merb, but it does suffer performance-wise when compared to other options.
  • Python is another language produced from the same mindset as Ruby (Don’t Repeat Yourself, or ‘DRY’), and enjoying somewhat of a boost at the moment with its own frameworks such as Django reaching maturity on a greater scale than before (more on those later). Performance is somewhere between Ruby and PHP.
  • C# and VB.NET are of course backed by the almighty Microsoft and their .NET framework, with C# in particular is gaining popularity as the rapid development language of choice for desktop applications. Performance can be very good with these two options.

Those short descriptions do not do any of those languages justice, however. Developers often have their favourites and look down on other languages with disdain, wondering how others who use them ever get any actual work done. In the end it is really down to personal preference: any language when used correctly can be immensely powerful in capable hands whilst producing the same end product. Its how you go about it that counts, after all! In the end, only experimentation with each language will give you the true insight as to what suits your needs the best.

System: Server and OS

So, lets say you’ve chosen your language. That’s all well and good, but how are you going to let people actually view all your hard work at the end of the day? Well, you wouldn’t have thought so, but there is another big choice to make: which web server are you planning on using? It may seem insignificant, but when you’re serving upwards of thousands of pages a day, it may not seem that way any more.

Currently the ‘big three’ as they stand are:

  • Classic and open source Apache Server which runs on any system you care to mention. It benefits from a long history of development, great extensions for integration with your chosen language and endless configuration options. It may get sluggish when you start pulling in those valuable visitors on a massive scale, so it is not perfect for everyone.
  • IIS from corporate heavyweight Microsoft – only available on Windows OSes but links very tightly with ASP.NET. Servers running this will typically cost more purely due to the need of obtaining a license for the Windows Server operating system.
  • Finally, relative newcomer lighttpd which addresses the performance side of things whilst still providing the ability to run an elaborate system coded in the language of your choice along with great flexibility in configuration. Unfortunately, few commercial web hosting companies offer this as standard on their shared or managed hosting plans as of yet.

Of course, if you have the access to (and expertise using) the server you will be hosting your finished site on, you may well get to choose exactly which software you want to use.

Conclusion

When you start your project, it is important to check out what you need from the project both now and in the future, both from the actual features offered to the ease of future maintenance, upgradability and management. However, no-one can tell you what to use. You may decide to go ahead with Ruby on Rails running on a Windows Apache installation, or a Python-based solution running on an OS X machine with lighttpd – it really is down to you. Just because something is new or old does not make it a good or bad choice, nor does the fact that you might have to learn something.

After all, web development is ever evolving, and its all about keeping on top of the game, right!

Remember to come back for the next in this series of articles, where frameworks – one of the biggest buzzwords in web dev today – will be discussed in detail!

Links

Geoff Adams
Programmer, Research and Development

Oct 30 2008

Accessibility, Usability and SEO

Accessibility need not be considered as something of an addition to your website. Many of the changes made to improve accessibility will have benefits in terms of usability and search engine optimisation.

What is accessibility?

Accessibility is the process of making your website friendly to people with a disability. Users may be visually imparied, have poor motor control or may be hard of hearing. Web designers should take accessibility into account as part of the  Disability Discrimination Act.

  • 2.2 (p7): “The Disability Discrimination Act makes it unlawful for a service provider to discriminate against a disabled person by refusing to provide any service which it provides to members of the public.”
  • 4.7 (p39): “From 1st October 1999 a service provider has to take reasonable steps to change a practice which makes it unreasonably difficult for disabled people to make use of its services.”
  • 2.13 – 2.17 (p11-13): “What services are affected by the Disability Discrimination Act? An airline company provides a flight reservation and booking service to the public on its website. This is a provision of a service and is subject to the act.”
  • 5.23 (p71): “For people with visual impairments, the range of auxiliary aids or services which it might be reasonable to provide to ensure that services are accessible might include … accessible websites.”
  • 5.26 (p68): “For people with hearing disabilities, the range of auxiliary aids or services which it might be reasonable to provide to ensure that services are accessible might include … accessible websites.”

Furthermore, if you are turning away visitors because they cannot access your website then you are reducing your target audience. So what can you do to improve the accessibility of  your website?
Read the rest of this entry »

Sir Pumpkin Longshanks
Programmer, Research and Development

Oct 29 2008

Facebook release Scribe in Open Source

Latest move from Facebook in direction to the open source community, Scribe, a special server software developed by and for Facebook as been released under the Apache 2.0 licence. The purpose if this server is to aggregate data from a large number of sever in real time.

I would say the success of Facebook and its growth over the past few years shows that this technology has done its proof. Here is what Robert Johnson says about Scribe:

The system we built turned out to be enormously useful, handling over 100 use cases and tens of billions of messages a day. It has also been battle tested by just about anything that can go wrong

Taking advantage of an other of the open source product from Facobook, Thrift, Scribe is able to handle many different languages such as c++, java, python, php or ruby. So if you are developing a social application, look at Scribe, it might be what you need.

Seems the open source sphere is doing well at the moment with more and more big companies investing in the open projects. An other example would be the choice by Microsoft to expend their ASP.NET Ajax Framework with jQuery.

Benoit Gilloz
Programmer, Research and Development

Oct 27 2008

Wordpress Plugins I Use Frequently

Here is a quick list, mainly for reference, regarding some Wordpress plugins that I always install when creating a new blog.

Akismet

This plugin comes with Wordpress, but needs a Wordpress API key to run. Don’t worry, you can get a API key for free just by creating a account at Wordpress.com. What better way to stop spam on any blog than by using Akismet? I have found that it stops 99% of spam getting through and very rarely has any false positives. The good thing about Akismet is that it is constantly being updated and improved through spam on other blogs. This means that when you flag something as spam it gets recorded by Akismet and the same spam on other blogs will be caught as well. Neat.
View more information about Akismet.

All in One SEO Pack

Although Wordpress isn’t terrible with regards to SEO, it does need a push in the right direction for some aspects. This plugin will allow you to control much of the meta data that is essential to get right on any site. You can control things like meta keyword and description tags and even the contents of your title tags.
View more information about All in One SEO Pack.

Google XML Sitemaps

The sitemap.xml file can be submitted to lots of search engines, who will then use it to spider your site. This plugin will not only create the files, but will also submit them directly to search engines (not just Google). I still have trouble understanding why Wordpress doesn’t allow you to create sitemap.xml files out of the box.
View more information about Google XML Sitemaps.

Dagon Design Sitemap Generator

The other side of coin with regards to sitemaps is the HTML sitemap. This plugin will create a nice looking paginated sitemap on any Wordpress page that you want.
View more information about Dagon Design Sitemap Generator.

cformsII

Wordpress doesn’t have a contact form facility, so yet another plugin is required. This is by far the best contact form plugin I have used. It has all of the functionality that you would expect from any contact form and even allows users to send files. Although it works very well, there is one issue when it has been updated. It seems to set all of the files to be non-readable, which causes the stylesheet to be hidden from the browser, which makes the form look a little odd. The solution is simply to change the permissions back to 775.
View more information about cformsII.

ShareThis

Social bookmarking is important in any social media campaign, and the best thing you can do is get other people to submit your site. Submitting your own site over and over again not only reduces the importance of future submissions, it also makes you look like a spammer. The ShareThis plugin will allow anyone to post to the social bookmarking site of their choice through a simple button. This makes it easier for the people who read your blog to post your pages.
View more information about ShareThis.

Twitter Tools

One good way of generating some traffic from social media is through the use of the incredibly popular Twitter. Twitter tools has lots of different things that make it stand out from the rest of the Twitter plugins available. Not only will it post any new blog post to Twitter, but it will also create a widget than you can add that will display your latest Twitter posts in your side bar. You can even post to Twitter from this side bar.
View more information about Twitter Tools.

The best thing about all of these plugins is that you can just set them up and forget about them. This allows you to concentrate on writing blog posts and not continuously editing your plugin settings.

Philip Norton
Lead Developer, Research and Development