Category: "Web Sites"

Craching

Crache - Poorly configured server caching which prevents distribution of updated files such as CSS, images, and javascript. Crached pages display poorly until the browser cache is cleared.

*** This can be a very subtle problem, as developers often clear the browser cache by force of habit. They would not notice the problem. Site visitors that return to your site after updates may be presented with pages that do not display or function properly.

Key resources

(Apache)

http://httpd.apache.org/docs/2.2/caching.html
http://httpd.apache.org/docs/2.2/mod/mod_expires.html
http://httpd.apache.org/docs/2.2/mod/core.html#fileetag
http://httpd.apache.org/docs/2.2/mod/mod_cache.html

(Mozilla Firebug and YSlow)

https://addons.mozilla.org/en-US/firefox/addon/1843
https://addons.mozilla.org/en-US/firefox/addon/5369

Web Development Firms - Strategies for Today's Economic Environ

Internet services (building web sites and applications) used to be a black box type of service, the client requested a solution, a web company developed one, and then client relied on the service provider for all related work.

Times have changed.

  • Web sites are now perceived as vital communications connections. Clients want the content to be current, and fresh, to engage site visitors. This requires frequent updages and many clients want to manage their content themselves. This improves the response time and reduces the cost. It also requires a mechanism to allow them to maintain the content - usually a blog or content management system. Impact: web companies must be able to integrate designs with applications instead of building standalone pages and sites.
  • Everyone knows more about the web than before. They know many powerful software packages are available at no cost. They know a good team can make changes quickly. Impact: Expectations are higher, and response time is expected to be lower.
  • Web technology has exploded in every direction. Sites must be faster, more attractive, and more sophisiticated than before. Impact: Web professionals must continue learning and pushing the envelope at every opportunity. Web companies must hire the very best people they can afford.
  • Malicious netizens are a constant threat. Impact: Web companies must comply with all the appropriate rules and regulations to protect site visitors, and their servers. Everything, from server configuration, web application firewalls, HTTPS/SSL/SSH/SFTP access must be carefully considered. Application security issues must be identified and addressed quickly.
  • Most companies already have a web site. Impact: There may be a significant investment in content and code. Protecting the investment, while reengineering the system in a cost effective manner may be difficult.
  • Many clients are facing difficult financial choices. The impact of a web site can be difficult to estimate in terms of revenue. Impact: A key opportunity for web companies is providing measurable benefits for clients. Although it may be difficult to illustrate revenue impacts, clear reduction in service costs should be offered. This requires that the web company be able to deliver services in a very streamlined manner.
  • Clients need to know what makes a web company a good fit for their project. Most are more concerned with what they want done, than work a company did for others. Impact: Displaying a portfolio of work done is less valuable than providing an interactive guide to assist a client in understanding the types of services (and possibly the costs) they need.

Professional Volunteers - Web

The Internet is a vital communications tool. Web sites and email are important for most organizations that are striving to reach a widely distributed audience in a cost-effective manner.

Many small organizations, especially non-profits, need a site, but don’t have the money to pay professionals. Without a friend that can help, they may get an intern, a volunteer that will work in exchange for experience, a contractor, or use services like GoDaddy’s web site tonight or other template based systems.

Most of these are stop-gap approaches, and some can be extremely expensive.

A great solution is a WordPress blog, hosted by WordPress.

Benefits

  • WordPress is a great application, it is very powerful, and easy to use
  • No application management, no security issues to worry about. No server management necessary.
  • It is a good value, their premium services are priced fairly
  • Great templates, so you can have a professional design, without paying for it. There are so many templates available, it is extremely unlikely anyone will know that you are using an existing template instead of a custom design.
  • You can map a domain name to the blog, so it looks like you’re hosting the site.
  • email can be run through a different server, the people at WordPress can help you find a good company
  • You don’t need a volunteer, contractor, friend, or anyone else to set it up, and it is easy to pass it along to other people

Never forget, you get what you pay for. A volunteer is often someone trying to build up a portfolio. They may have limited skills, and limited experience. Volunteer work will always be pushed aside for paid work - everyone has to eat. People willing to work for low pay are the same - if they could get a job which paid more, they would. Friends are usually more reliable than strangers, but they may have other commitments.

For web projects that are too small for a web company, or don’t have the budget, it is worth considering services such as WordPress, and learning how to handle email on your own. There is little technical skill required and hosting companies are usually very helpful.

If you are concerned that you don’t have the time to set up a WordPress blog or handle the email, remember that even if you have someone help you, you will have to spend time with them to explain what you want. When you want changes, you will have to contact them, then check their work. Investing in learning to do the work yourself will save you time in communicating your needs to others.

Secure CSS For ADNs

This rewrite rule allows CSS requests to run through css.php, which can substitute color attritubes on the fly to allow a single application to be supported by multiple skins, and have greater immunity to cross-site scripting attacks.

RewriteEngine On

RewriteRule ^(.*)\.css$ css.php?d=$1

Key considerations:

  • sed may be the best substitution strategy, instead of PHP, because it is probably faster, and little to no development would be required
  • Caching should be done carefully to ensure the files are not recreated unnecessarily, and files that don’t exist should be created. If the source .css file has changed, the recolored one must be updated.
  • One may use the REQUEST_URI to select the .css files
  • Backend management of the .css file identifiers will be required if they are dynamic. This implies the ability of a user to be able to select colors and store the scheme. If they are fixed, it is simpler.
  • This is not really intended for individual user customization and user experience, but to allow a single installation of an application to support multiple skins. With that in mind, it is assumed there would be a fixed set of .css files, with a default used in the event of an invalid file request, and the .css files would be managed manually by the design/engineering team.

A New Paradigm in Web Applications

Services such as Ning (http://ning.com), Shopify (http://shopify.com), and WordPress’ blog system are making it possible for people to provide a social network, ecommerce, or blog with little to no technical experience. Many of these people will succeed, their sites will become popular with a community, their products will be purchased, and the blogs will be read. Eventually, they may want to integrate their initial offering with additional applications, using the same approach.

Web companies that can gracefully integrate diverse, distributed, externally-hosted applications into an attractive, polished, cohesive site, will provide a path for independent people to transition their basic, hosted, presence on the web into more robust site.

An extension of this is the ability for a collection of organizations to indentify their content as related, and their group as cooperative. The opportunity is in designing and integrating the independent elements gracefully.

The engineering required in these cases is the management of the CSS and supporting elements, definition of system common, site common, application common, and page specific elements. Browser caching must be handled very carefully, to ensure optimal use of the cache, while delivering the latest versions of the files. Sourcing of files is also key, meaning creating a filesystem and server architecture that will work well for many designs.

Designers will have to consider the same issues, and work with the engineering team to achieve the best solutions.

Companies should avoid including language in the design (particularly images), or creating an appropriate architecture to allow multi-lingual sites with language in images.

The real value here is that people can use a hosted service to test an idea. They can bring a shop to life in minutes, manage it themselves for months, then turn to a company for help transitioning it into a full site and system with a custom design and additional features. This greatly reduces the required administration of applications, because when the clients approach the web companies, they already know how to use the application and the content is established. Improvements can always be made, but the majority of the work will be done (as with any project, sometimes, the work done may be done poorly as well).

If a web company identifies a potential client that doesn’t have the budget for a custom solution, refering them to a hosted solution with an offer of future extension is a nice way to help people and create the possibility of a relationship later.