Archive

Archive for October, 2009

Speeding Up Your Web Site

October 30, 2009 2 comments

Everyone want to make the Web Faster. But the question is “How”. Okay, i have collected some information’s from the world of web which I want to share with you. Please go through the below URL’s :

Yahoo Developers URL: http://developer.yahoo.com/performance/rules.html

Google URL: http://code.google.com/speed/articles/

Check Website Performance: http://www.webpagetest.org/test

Hope you find the above links useful.

How to Estimate a Web Site

October 22, 2009 Comments off

I think this article will help when a Website Cost need to estimate. This article is copied from webdevbiz.com by Patty Ayers.

There’s no getting around it – almost every web site client you’ll ever have will want a cost estimate before work begins.

If the prospect makes you anxious, you’re not alone. Estimating a web project is not easy to do, even for pros. In fact, some very skilled web developers I know use systems of estimating which have more in common with consulting a Magic 8-Ball than with detailing time and costs – basically, they make wild guesses. Although this may get the unpleasant task over with quickly, it’s not helpful for keeping clients happy or for running a viable business.

But with some preparation and organization, estimating can be done with reasonable accuracy, and without any permanent damage to your mental health.

A Few Thoughts on Free Estimates

Some web developers offer free estimates as a matter of policy. I believe that this can be problematic, especially for very small companies, and so recommend giving it due consideration before publishing that offer.

The reasoning is simple: estimating well takes time, and not every estimate will net you a contract. Depending upon your market and the tone you set with your business, you may get a lot of “shoppers”. Shoppers are looking to get estimates from several companies and compare them, and you may very well be only a pawn in their process of finding the supposedly “best deal” – or worse still, in driving the price down with someone who they’ve already decided to work with.

If this turns out to be the case, it’s not the end of the world, of course – but how many times a month do you want to spend several hours (or more) working for someone for no pay? Of course, that decision has to be up to you.

In my business, we provide an estimate for free if we think that an accurate specification can be determined and written up within a couple of hours. If we feel that it’s a complex enough project that it will take us 5-10 hours or more of meeting, talking, researching, and writing and re-writing the specifications, we charge for that time. We tell the client that we’ll be spending valuable consulting time with them, determining their needs, and that we’ll produce a detailed specification document and cost estimate. This information is obviously of value whether or not they decide to work with us. If they do decide to work with us, the cost of the specification-development phase is applied to the total cost of the project. Either way, their money is well-spent.

After all, developing a web site is not the same as painting the living room or fixing a leaky faucet. Free estimates and convenient price-shopping may be commonplace in a lot of industries, but they aren’t necessarily appropriate for complex creative and technical work.

But whether or not you’re being paid for your time, the process should be the same.

A Five-Step Process

Estimating is essentially a five-step process:

  1. Determine what the specifications are for the site
  2. Break these specifications down into as many smaller tasks as possible
  3. Figure as accurately as possible the amount of time each task will take
  4. Add up the total hours and multiply by your hourly rate
  5. Add a percentage for contingencies, add expenses, and total it all up

Determine what the specifications are for the site. This is usually the most difficult part of the process. Clients often don’t have a clear idea of what they want; they need your help to clarify and articulate what kind of web site they have in mind. This can be done through in-person or telephone meetings and emails, but you have to take the wheel, and you often have to persevere through a certain amount of uncertainty, hesitance, and outright fogginess.

It’s helpful to have a list of the various aspects and features of web sites to help you and the client through this process. Your conversations need to cover every aspect of the proposed web site, including:

  1. Total number of pages
  2. What kind of navigation bars or menus
  3. More than one page design?
  4. Number of custom graphics needed
  5. Number of graphics provided by the client
  6. How design-intensive a site do they want?
  7. What type of text content, provided in what form?
  8. Interactive forms? How many fields?
  9. Database-driven applications? (Detailed description of all functionality is needed)
  10. Administration areas?
  11. Domain registrations or changes?
  12. Hosting arrangements?
  13. How important is search engine positioning?
  14. Will any client training be necessary?

You won’t get all of this information worked out in a single conversation. For me, the process usually involves a series of conversations and email exchanges. After the first consultation, I go over my notes, usually typing them up so that they’re easier to read. I then write out a “sketchy” specification, usually somewhat vague at this point. This makes obvious what information I still need.

For instance, the client may have told me, “We want to display photos of the houses our firm has built”, but I need to know more. How many photos? Displayed in what way? With thumbnails linking to larger photos? Will they need captions? In what form will he be providing the photos? These questions are jotted down for the next conversation. When I have a complete list of questions, I phone the client, making sure he has some time to spend, and I ask him the questions one by one. The discussion is usually far from linear, and may jump from one subject to the next, but I make sure that I’m in charge, and that I get the information I need. Remember, the client doesn’t know how to write a specification for a web site – you do. The tangents and side-trips often provide valuable information too, so I try to be sure to listen well.

A friend of mine recently took a sales seminar, and came back very excited about what he had learned. Basically, he said, he learned that he needed to really, really listen to his potential clients and customers. This is crucial during the specification-development phase. But again, be sure that your questions are answered, and that an unfocused or overly chatty client doesn’t waste everybody’s time.

Always take notes when conversing with a client. Even if they are just scrawled notes, make sure you commit the crucial points of the conversation to writing, and be sure to date it.

The information you have after this second meeting may be enough to write up a detailed specification. Add the information you’ve gained to your sketchy specification document, and see if you can flesh it out enough that you feel you are very clear on what’s expected of you – and that the client will be very clear on what he is getting for the estimated price.

A note on pinning the client down on specifications: web site clients are notorious for figuring out what they really need and want only after a contract is signed and work has begun. This is so common that there’s really no point in fighting it – it’s almost guaranteed that the specifications will change. No problem – but make it clear to your client that when the specifications change, the cost estimate will change as well. Say this more than once during this phase: “This specification is only a snapshot, so that I can provide an estimate. If you add or subtract significant content or features, the cost estimate will definitely change. When that happens, I’ll provide you with a written description of the change and the difference in cost.”

You may need more conversations, or a series of emails, to clarify the specifications. Don’t rush it! Be sure that you have enough information before you commit to an estimated cost total.

Break the specifications down. Now, take each part of the specification document and break it down into as many actual tasks as possible. For instance, “Gallery of 30 photos of 6 different houses” might involve:

  1. Receiving and sorting out client’s photos
  2. Cropping, sizing, optimizing, and renaming photos
  3. Working with client to figure out how to present photos
  4. Creating thumbnails
  5. Building pages
  6. Receiving client’s feedback, correcting and refining gallery page design

Figure how much time each task will take. This part of the process requires a little brow-furrowing. For each task in your list, make your most honest estimate of the time it will require. Be realistic. You may want it to take one hour to build an entire page draft, but the reality is probably going to be closer to three or four hours. Give yourself enough time to do a good job! And remember – this type of time estimate is almost always short. Be generous!

Add up the total hours and multiply by your hourly rate. Even if you don’t plan to charge the client by the hour, but rather by the project, figuring by the hour is the only reasonable way to go, as it’s the only real available objective measure of “how much work”. The client doesn’t need to know anything about the hours you’re estimating it will take you, but you should know this.

Figuring your hourly rate is beyond the scope of this article; we’re assuming here that you have decided what you need and want to earn for each hour you work “on the clock”.

Add a percentage for contingencies, add expenses, and total it all up. The “contingency allowance” is something that experienced web and graphic designers don’t even question. Underestimating is so universal that providing a cushion against your own probable inaccuracy is highly advisable. Between 10-20% is typical. Expenses, of course, are any out-of-pocket costs such as the price of graphics purchased, paying subcontractors, etc. Add it all up, and there’s your total!

Stand your ground. You may be tempted to shrink the total estimate down, fearing that your potential client will find it too high, but resist that urge. You came up with as accurate an estimate as possible, and it makes no sense to lower it. The client may or may not like your price, but if you offer to do the job for less than what is fair for you, no good can come of it. Stand your ground! You won’t get every job, but the ones you do get will go much smoother if your estimate was accurate and fair.

Categories: WebSite Estimation

What Is PHP

October 20, 2009 Leave a comment

PHP, which stands for PHP Hypertext Preprocessor, is a server-side  scripting language. In non-technical terms: a PHP processor is run on the server (Windows, or a flavor of UNIX). When a page is requested that contains PHP, the processor translates and executes all the commands in the page, and then outputs the result to the browser as regular HTML. Because this translation occurs on the server, a page written with PHP is viewable with any browser, on any operation system.

Like most other scripting languages, PHP can be embedded directly into HTML. PHP code is separated from HTML by Start and End entities. When a document is parsed, the PHP processor only interprets the demarked areas, and outputs the results in the same position.

Ironically, PHP also includes the ability to almost completely separate code from HTML. For larger, collaborative projects this method is ideal because it allows designers to work on the layout of the page without interfering with the code aspects.

A Little History

PHP was introduced in 1994 as a loose collection of freeware scripts based on Perl and dubbed “Personal Home Page” Tools. The author, Rasmus Lerdorf, received surprising interest in the package from the professional and developer communities. By 1995, a mailing list had been established where other developers could provide feedback, bug-fixes and code ideas on the scripts.

Encouraged to expand the original package with additional features, Lerdorf released PHP-FI (or PHP2) in 1995. This version included the ability take the information submitted by forms on the web and convert it to usable variables. What was so important about this function was that it enabled user input to be captured and acted upon, allowing more complex and interactive web applications to be developed.

It was around this time that PHP changed from being a one-man project to one with a group of 7 core developers. Together, they refined the syntax of the language, added additional functions and methods, and the ability for other programmers to extend the capabilities of the language by plugging in modules.

With the release of version 3 in 1998, PHP had finally grown into its own. Like C and Perl, PHP is a structured programming language with variables, functions and classes. Its similarity to these languages encouraged experienced programmers to migrate to PHP and its ease of use rapidly won new users.

By version 3, PHP also included database support for a wide variety of platforms including mysql, mSQL, ODBC, Oracle and Sybase. It also was able to work with images, files, FTP, XML, and a host of other technologies.

The latest release of PHP is version 4. Rebuilt with a more powerful core processor, the new PHP engine (the Zend parsing engine) offers significant speed improvements over previous versions. PHP4 also includes sessions support (an easier way of working with cookies), and numerous smaller additions and improvements.

To date, PHP is still free and a frontrunner in the open source movement. However, unlike many open source projects, it’s becoming more and more mainstream as an increasing number of businesses and organizations are making the switch to it.

For professional developers, one of the most exciting things has been the release of the Zend Encoder, which allows PHP source code to be encrypted. The Encoder carries a hefty price tag, but it holds the promise of more built in value for those selling custom scripts.

Why PHP?

It’s no secret that there are alternatives to PHP: ASP, Cold Fusion, and Perl, to name just a few. While each of these languages has differences in syntax and structure, when it comes down to it, they can all produce the same results.

So, why would you choose PHP over other options?

Simplicity. For people new to programming, this is frequently the strongest appeal. Even those with little or no programming experience can quickly get up to speed and begin creating full-fledged applications. Because it was specifically designed for creating web applications, PHP has a host of built-in functions to handle common needs.

PHP is Open Source. Because PHP’s source code is freely available, a community of developers is always working to improve, add to, and find bugs in the language. Open Source means you never need to rely on the manufacturer to release the next version if something doesn’t work or pay for expensive upgrades.

Stability, and compatibility. Currently, PHP runs stable on a range of operating systems including most flavors of UNIX, Windows and Macs and integrates well with most popular servers including IIS and apache.

PHP is also endowed with other goodies, like native support for many popular databases, an extensible architecture, and a processor that not only uses fewer resources on the server than many of its competitors, but also displays pages in record time.

Finally…

This article is the first in a series, covering everything from the basics of PHP to advanced topics and including information on related subjects such as databases and XML, as they apply to PHP.

Generally, PHP is a very easy language to learn. If you have worked with another structured programming language like C, or Perl, some of PHP will seem very familiar to you, and you’ll find the language very easy to pick up. But keep in mind that previous experience in programming is not a pre-requisite for learning PHP or for understanding the concepts presented in this series. The only thing that is required is a desire to make the leap to server-side programming, and a thorough understanding of HTML.

About every week or so, we’ll be taking a look at a new concept or theory of the language. The emphasis will be on providing the tools needed to start programming real, usable applications as quickly as possible. Cumulative, real-world examples will provide a taste of how to structure your own scripts, as well as present solutions to situations you will often encounter in your own work.

Whether you began reading because you needed to complete a specific project, or because you were just curious, by the end of this series you can expect to know what’s involved in building dynamic data-drive sites. You will also have a virtual toolbox of code snippets and script design tricks you can pull out when needed.

Most importantly, you will have the knowledge to successfully develop your own projects from start to finish.

Categories: PHP Tags: