Common web page requirements

This is a list of implied requirements recommended for all web pages.

  • Page should render properly in all supported browsers. Identical is not required, but equivalent is.
  • Client side code (javascript) must execute properly in all supported browsers.
  • Site visitor must be alerted if they attempt to navigate away from the page without saving their changes, or if the session timed out and their changes have already been lost.
  • If AJAX is used, authentication and access control must be applied to all requests. Client must handle server responses to these conditions gracefully.
  • Client must validate the data fully before submitting it to the server. Client should alert user during entry if data is invalid. Think dojo.
  • Server must perform appropriate escaping on all incoming data to avoid SQL injection and commandline attacks. Server should validate data with the same criteria as the client to limit the possibility of modified form data.
  • User passwords should never be sent to the browser. Password recovery should be performed by generating a new password and emailing it to the account holder. User email addresses must be unique to support this.
  • Options which are unavailable should be displayed differently than those that are available, ideally they should not be displayed at all. Inputs which cannot be modified should be displayed in such a way that the user understands the information cannot be changed.
  • Layout should be managed primarily with CSS.
  • Colors should be specified in a separate CSS file to allow the color scheme to change quickly.
  • The majority of the layout should use divs, with tables used where appropriate.
  • Only those files required to display the page should be delivered with it. Pages with complex CSS requirements should be supported with dedicated CSS files which are only loaded with that page. The same is true for javascript. Those files should be cached at the client.
  • Care must be taken to ensure configuration data, particularly access information such as database name, username, and password cannot be displayed through a browser or visible to unauthorized users.

Project Management Software

Project management software will not manage a project. It can help you identify issues, track costs, and do many valuable things, but it will not replace management.

Project management can be greatly simplified into the following statement:

With these resources, do this work, in this amount of time.

The resources can be people, money, time, or tangigble items like lumber and concrete.

Assuming there are adequate resources, the work should be completed within the timeframe.

Although cost isn’t specifically mentioned, again, it is assumed that if the project is done on time, the cost was within the budget.

The entire team must manage itself as individuals with the attitude that for a given task, they can use a finite amount of resources (time, materials, money). If each team member stays within budget, the project succeeds.

The budget usually represents estimates given. These estimates include assumptions about the scope of work. It is the responsibility of the estimator to clearly state important assumptions, and the responsibility of management to take them into consideration. Once the estimate is given, it is binding only within that context.

2 Year Curriculums for Internet Professionals

Logic / Engineering

Year 1
Fall
HTML
Javascript 1 (Logic)
Spring
CSS
Javascript 2 (DOM)

Year 2
Fall
MySQL
PHP 1
Data structures
Spring
Linux
PHP 2
Topics
Security
Client/server architecture considerations
Applications engineering
Template languages

Design / Development

Year 1
Fall
PhotoShop 1 - Fundamentals of design
HTML
Spring
User Interface Design
CSS

Year 2
Fall
Multimedia 1 - Visual design and construction
JavaScript
Application engineering - integrating designs with applications
Spring
Multimedia 2 - Flash/Shockwave, animation and audio
PHP
Topics
Page optimization
Server tuning
Browser compatibility

It is assumed these would offered in a Community or Junior college. Additional general education electives are assumed.

Web 3.0 Predictions

Definitions

  • Social networking - The use of technology to connect people.

  • Web 3.0 - The next generation of the Internet.

Predictions

  • Ads - Advertising (like the Google ads on this site), will continue to get more and more engaging. Tools to create these ads, particularly interactive ones will become very powerful and popular. The objective will be to draw site visitors into the ad, and to a different site. Bland text ads will be the equivalent of generic product packaging.

  • Content sharing - This will remain strong, allowing people to post material for others to access. The difference will be in the reduction of comments. Ratings are a good way to allow a site to self-police content, but comments are often of little to no value.

  • Kids - Kids will follow the latest site with games and entertainment, as long as it stays fresh. Their loyalty will be very difficult to maintain as they age out of material and as new sites come on line. For that reason, youth oriented sites should consider the member life cycle, identifying where to attract new visitors from and where to spawn them to. Companies will begin to adopt a cradle to grave approach, probably through partnerships.

  • Marketing sites - Sites used for public relations/marketing will remain strong, because they offer information of value.

  • Partnerships - Web partnerships will become active, allowing people to move within a sphere of content, seamlessly.

  • Social networking - Will be replaced by more resource oriented sites as people realize that connecting over the internet is actually very isolating. Much of the intent of social networking is to share information, however there is a wealth of information already available. Success will be sites that transition gracefully from open, ad hoc media into the organization of user-contributed content that better supports the site visitors. Improvements in search, content organization, automation of content management, and information professionals will be key. Point systems that don’t translate into tangible benefits will not be successful.

  • Web 3.0 - Just a buzzword, means alot of different things to alot of people. The web is too diverse to categorize or assign version numbers.

  • Web applications - Applications will rely increasingly on frameworks like Zend. The demand for more sophisticated sites will necessitate the use of frameworks for better quality in a timely manner.

  • Web sites - Web sites will continue to become more polished. Site visitors will expect seamless application integration and advanced features. Simple HTML sites will be replaced by applications that are easy to manage.

Booleanize!

I am using Smarty Templates extensively in a custom application. The application relies heavily on both PHP .ini and Smarty .conf files.

The .conf files had boolean settings, meaning values set to the literal strings of “true” and “false”, and when I read them in, with $smarty->config_load(’file.conf’);, my booleans were converted into either nothing (false) or 1 (true). I am using them as literals - so the conversion was not good.

I just started looking into changing my code to compensate, when I decided to review the Smarty documentation again. The booleanize setting allows you to disable the conversion from false to nothing and true to 1.

An enthusiastic thank you to the Smarty team!

:D