Sie sind auf Seite 1von 131

jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event

Object 2
1

handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change
the way that you write JavaScript.

The Benefits of Using jQuery


Fri Aug 27, 2010
What is jQuery?
jQuery is a new kind of JavaScript library that makes it easier for designers to control HTML events,
animations, and other interactions on a web page by adding and removing style sheet handlers. These
handlers are either HTML classes or IDs; the handlers are specified in a style sheet, which then tells the
browser how to position and style HTML elements. With jQuery, web designers can quickly and easily
write these handlers to the document on specified events, such as a mouse click or a hover, and when
we do so, it will change the style and/or position of that element. jQuery also simplifies AJAX--the
client-side web development techniques for creating interactive web applications. AJAX applications
can retrieve data from the server quietly in the background without interfering with how a web page
displays or behaves. AJAX uses HTML and CSS (cascading style sheets) to change style and layout
via user interaction and input.
Why is jQuery so great?
One of the major and most important benefits of using jQuery versus other JavaScript libraries or
interactive applications is that it does not take away from the visibility of web page content from the
search engines. The problem with other applications (such as Flash), is that your content is lost if
JavaScript is turned off in the user’s browser. Even though some of these other applications are getting
better at being picked up by the search engines, they’re still not able to compete with the functionality
of jQuery. jQuery is also very small, clean code that won’t bog down the loading time of web pages
like Flash and other applications do.
Benefits of using jQuery:
• Five lines of jQuery are equivalent to 25 lines of conventional JavaScript code, which relates to
the least amount of “bloat” or extra, unnecessary code. This means smaller files and faster
loading web pages.
• Advantage of an abundance of plug-ins that make creating special “Flash-like” effects simple
and fast for website developers; backed by a large, helpful support community to quickly
remedy any bug issues.
• Easy implementation for web developers in comparison to other applications.
• Detailed documentation and useful examples for using jQuery on its website.
• Works in all browsers and is the most popular JavaScript library currently being used.
• jQuery is free, open source software.
• Straightforward to produce powerful and dynamic websites.
• Web page elements display even if JavaScript is disabled in the browser.
• Simplifies AJAX.
• Commands can be “chained” so that the result of one command can then control others.
• Has a “built-in” set of animation applications that can also be used as commands.
• Makes basic web pages become really interesting interactive pages with minimal keystrokes.
• Large software companies, like Microsoft, supports using jQuery in their applications, such as
Visual Studio, as evidence of their support of jQuery’s superior product.
• jQuery can perform all of the fancy animations and transitions as Flash, but in a cleaner,
simpler, and more SEO friendly way.

How does jQuery work?


JavaScript uses jQuery to find all of a specified HTML element, for example, a
tag within a page that has the CSS class of “tick,” and then animate it to slowly scroll, like you would
see in a news ticker. jQuery can also find a HTML element with a specified CSS identification class,
and then retrieve every other sub-element within it and reset the elements to have another specified
CSS class. This could result in alternating styles for HTML elements, like table rows, to alternate the
background color of each row.
Examples of jQuery effects and animations:
jQuery effects and animations are called upon when a user interacts with a HTML element, either by
mouse clicking on the element, hovering over it, pausing on it, etc. These are some of the effects and
animations jQuery can utilize:
• Scroll, fade in, fade out, fade to, zoom, drawer
• Show, hide toggle
• Slide up, slide down, slide toggle
• Stop, queue
• Load, resize, scroll, drag
Examples of jQuery usage:
Web developers use jQuery to make web pages more exciting, interactive, cleaner, and more user
friendly. These are some of the examples of basic jQuery featured plug-ins:
• Photo slideshows
• Photo galleries
• Manipulating images by cropping and resizing
• Tabbed content
• Form validation
• Scrolling or sliding text, for example, news tickers
• Accordion effects
• Tool tips
• Roll-over effects and animations
• Interactive maps
• Fancy menus and navigations
• Advanced animations
• Charts
• Small WYSIWYG editors
• Music and video players
• Background image animations
There really is so much to say about the benefits of using jQuery and making web pages more
interactive and exciting for user experience. The basic advantages alone show us that jQuery is
beneficial to search engine optimization, faster loading web pages, cross-browser compatibility, user
experience, and that it’s typically easy for web developers to implement. jQuery is a wonderful tool
that web developers can now utilize to add a bit of excitement to your website without compromise!

JavaScript frameworks like Script.aculo.us, Prototype or Mootools are very popular. In fact,
there are numerous attempts developing and maintaining a good JavaScript framework that can
be used with ease by those non familiar with this client side scripting language. What my point is
not that the frameworks mentioned above are not good enough; there are lots of people who
swear for them, but my point is that jQuery is something different!
1. No problem if an elements doesn’t exists (needless to check null objects)
2. Incredibly good CSS selector integration
3. Using chains of actions
4. Model-View-Controller + JavaScript architecture (great decoupling, benefits of cohesion)
5. Great community behind: lots of great plugins and helpful support
6. Simple, clean development
7. AJAX just performs great!
8. Tons of tutorials online
9. Lightweight (less than 20 KB)
10.CSS 3 compliant and

jQuery is basically a JavaScript library and it was designed to make the client-side scripting of
HTML more simple. The person responsible for its birth is John Resig at BarCamp NYC in
2006.
It is an open-source software and dual-licensed by MIT License and the GNU General Public License.
Version 2. jQuery has received an enormous success and it is used by 31% of the 10,000 most visited
websites over internet. This makes jQuery the most popular JavaScript library being used today. We
have been sharing jQuery related posts for some time now, so I came up with a post that just defines
this new fashion of developing websites.
Before we go further remember to Subscribe to our Free Rss Feed or Follow us on
Twitter to stay updated with our postings

Introduction

The best thing I like in the syntax is that document navigation is quite easy, the code is also very
compact (their slogan is Write Less, Do More); yet it works great for:
• Creating Animations
• Handling Events
• Selecting DOM Elements
• Developing Ajax Programs
jQuery is excellent for developing dynamic web pages and page elements. It allows the developers to
create plugins that would work on top of the JavaScript library. These capabilities enable the designers
to make abstractions for low-level interactions and animations, and also to create high-level widgets.

Perks

Simplicity
It can be added to any HTML code in using this simple method.
view source
Object 3

print?
1 <head>
2 <script type="text/javascript" src="jquery.js"></script>
3
4 <script type="text/javascript">
5 .....
6 </script>
7 </head>
You can download jQuery from jQuery Download Page

Implementation
There are two basic ways to use jQuery.
1. via the $ function, which can be called the default work method for the jQuery object. $
functions, often called commands, are patchable; so each of them returns a jQuery object.
2. via $.-prefixed functions. These are utility functions which do not work on the jQuery object
per se.
Typically, access and manipulation with multiple DOM nodes begins with the $ function being called
with a CSS selector string, which results in a jQuery object referencing matching elements in the
HTML page.

Plugins
jQuery has got a very well organized architecture. Developers can use it to create their own add-on
code to take its functionality to a whole new level. There are millions of jQuery plugins already
available on internet for free, including Ajax helpers, data grids, XML tools, drag and drop, cookie
handlers…. and the list goes on and on. Probably the best place to download jQuery Plugins is jQuery’s
homepage

Special Effects
Another fancy thing about jQuery is that can create special effects with very little code. Here’s an
example of an onClick Fade Out function:
view source
Object 4

print?
01 <pre><code><!DOCTYPE html>
02 <html>
03 <head>
04 <style>
05 p { font-size:150%; cursor:pointer; }
06 </style>
07 <script src="http://code.jquery.com/jquery-1.4.4.js"></script>
08 </head>
09 <body>
10 <p>
11 If you click on this paragraph
12 you'll see it just fade away.
13 </p>
14 <script>
15 $("p").click(function () {
16 $("p").fadeOut("slow");
17 });
18 </script>
19
20 </body>
21 </html></code></pre>
Now, when you will click this link, it will slowly disappear. You can check this demo and some more
good example tutorials here.

Drawbacks

Quite honestly, there are not many drawbacks, in fact, there are none. It’s just that sometimes one tool
is not suitable in a situation. It’s just a case of appropriateness. There still are a few things that you
should know before you decide to use jQuery on your website.

Use of Selector
jQuery always crosses through all the elements each time you use selectors. This makes the application
dull.
Solution: Cache your selections with some variable(s) if you are using the same selection at multiple
places. And if you are not selecting an element more than once, just don’t cache selection by assigning
it to some variable.

Browser Display
There have been many cases where the code worked fine in one browser, but some properties changed
in the other. Actually this is not a jQuery specific problem, this happens with many JavaScript based
applications, so it is critical that you don’t just test your page in one or two browsers, but in all of them
(at least the four major ones, IE-Firefox-Chrome-Opera).

Conclusion
Simply put, jQuery is great. You can easily perform tasks such as:
• drop down menus
• drag and drop elements
• animations and form validation
All of these with very little coding. Since it synchronizes well with PHP, .Net and most of the other
languages, it is a pretty handy resource.

DRAWBACKS

A big, big drawback is its abstraction hides the "ugly parts" of JavaScript, therefore making
learning JS a lot more difficult. This is a problem that plagues the JS community. What
ends up happening is you have designers/developers that can do simple rollovers and
slideshows, but run into big problems once real DOM manipulation comes into play.
5 down
vote
Another drawback is not just size, but how amorphous jQuery really is. With each new
accepted
browser (most notably Internet Explorer), a fair amount of work is being done behind the
scenes to expand the codebase. This was most evident with IE8, in which a fair amount of
jQuery had to be re-written to at least comply with the newest version of IE. The result is
you have a giant collection of methods and properties (over 200KB since about jQuery
1.5). Even with a wide array of options to compress/cache the files, you're still going to
experience a decent amount of load time (a few seconds on a good connection).

One of those options is through Google's Content Distribution Network (CDN). It can
cache jQuery for you and lead to quicker load times. However, you're now relying on two
sources to operate flawlessly. Recently, Google flubbed one of the new (>= 1.5) versions
of jQuery. This led to some incompatibilities for a few hours and posed problems for
jQueryUI and various plugins. As I said earlier, you're relying on two sources to always
work. Saving your own localized version can mitigate this risk.

I think given proper planning and usage, it can be a boon to most projects. However, I do
emphasize that proper planning needs to be used. First ask yourself (or your team) if flashy
fades and pseudo-tweens are really required for your project. These are the types of things
that should be added last in order to maximize efficiency.

Those are the problems I have on my mind right now. Hopefully, this will be of some aid
to you in the future.

answered Mar 18 at 3:28

link|edit|flag
Matt McDonald
1,3321213
Haha this reminds me of a talk we had earlier @Matt McDonald +1 :) – Loktar Mar 18 at
3:30
Care to explain what "real DOM manipulation" would be... in terms of what you can do
that would be better accomplished without jQuery?? – philwinkle Mar 18 at 3:31
@philwinkle, it was more of an observation related to DOM theory. If someone lacks the
understanding of the DOM, manipulation can become troublesome. No library can give
you the knowledge to know how to use the DOM. That has to be learned through time
and effort. – Matt McDonald Mar 18 at 3:34
1

One technique I've seen is to serve your own copy of jQuery, and put a timestamp in the
filename (e.g. "jQuery_20110317.min.js") and tell your web server to set the cache
expiration time for that file to a year. Then your users only load it once per year at most,
unless you post a new version and change the filename. The downside is you have to
change the filename in every <script> tag it's used in. – Mike DeSimone Mar 18 at 3:43
1

"A big, big drawback is its abstraction hides the "ugly parts" of JavaScript" <-- which is
also the major benefit for using it. – DA Mar 18 at 3:46
show 1 more comment
I think it depends on the level of JavaScript expertise we're talking about. If we're talking
from the beginner through intermediate perspective, the drawback is that it can be a crutch
preventing developers from honing their native JS skills (on the other hand, it can also be a
bridge INTO JS development - it certainly has been for me).

Once you become interested in working more in pure JS, the main drawback is that it is
DOM-centric. As your programming becomes more data-focused, the bias towards the
DOM can sometimes get in the way.

It can also get a bit tricky to keep all your code organized as your code gets larger.
up vote 1
down
I think what I would most like to see going forward is some sort of dependency management
vote
- eg, let my scripts auto-load, or not, any needed plugins and components.

Having said all that, I am definitely a fan of jQuery and it is my JS library of choice. I find
the strengths far outweigh the weaknesses, and that it is improving all the time.

up vote 1 Compared to what? In what context? In and of itself, it's hard to say it has any drawbacks.
down
vote But in certain situations, there are some drawbacks:

• it's big. The jQuery library is a hit on your server and something the end-user has to
download. Minimizing, CDN'ing, Caching, etc all help minimize it, but if you're are
looking for super-light-weight JS solution, writing it from scratch will likely get you
a small file size.

• a lot of the DOM CSS manipulation it does isn't necessarily optimized from an
accessibility POV. It's getting better...especially all the ARIA stuff the filament
group is doing

• not everyone is a fan of jQuery UI. It's good, for sure. But also a bit heavy handed,
IMHO.

• it can be a bit confusing if you don't understand some of the basics of JS. It's good to
understand what jQuery is doing behind the scenes at times.

But, honestly, you have to dig to really complain about it. IMHO, jQuery + StackOverflow
has made Web Development fun again. ;o)

link|edit|flag answered Mar 18 at 3:39

DA
3,574619

Almost nothing, jQuery now matured and have a complete set of javascript functionality
with cross browser support. Out from the jQuery core scope, there are a lots of plugin can be
use to extend the feature. If you afraid on trying the new thing like jQuery, simply try it first.
Sure you will not going back to native javascript programming.
up vote
0 down
vote answered Mar 18 at 3:18

link|edit|flag
CallMeLaNN
457111
See this bugs.jquery.com/roadmap for their to do list. – CallMeLaNN Mar 18 at 3:19
1

That's a pretty naive answer with all things considered. It's not the magical unicorn that
does everything and anything for you. – Matt McDonald Mar 18 at 3:20
yes but based on much projects I experienced in real world, jQuery does not give any
drawback rather than making development fast. – CallMeLaNN Mar 18 at 3:25
1

@Matt McDonald - Or is it? paulirish.com/2009/cornify-easter-egg-with-jquery – havok


Mar 18 at 3:26
@havok: Ha, well done. – Matt McDonald Mar 18 at 3:30
show 2 more comments
The main drawback(other than the fact that it abstracts some key concepts of javascript)
is the fact that is bundles everything, thus the library is going to be inherently large.

Large javascript files = more load time.

Also don't get me wrong, I love jQuery ... I'm just showing you the other side of the story
up vote 0
:)
down vote
answered Mar 18 at 3:25

link|edit|flag
Mike Lewis
9,8491419

For me, any drawbacks with jQuery would not be about what features it's missing, but what
unnecessary features it includes.
up vote
0 down • jQuery seems to include so many different ways of doing the same thing. Even within
vote the same method, there are often different ways to order the arguments.

It means that the documentation seems needlessly complex in places and it's hard to
remember every different way of using some method. It can make it harder to
understand other people's code if they use different ways of doing the same thing.

• The codebase just keeps growing. Less than 30Kb gzipped and minified is still
impressive, but it's reaching the size where it's larger than any CSS file or header
image I ever had to load. It takes a "monolithic kernel" sort of approach to a Javascript
library, which is probably a large factor in its success - it includes everything you'd
want in one place rather than making it more modular.

It's not a huge complaint. jQuery is very powerful and robust. But I brought this up because
the original question seems to assume that jQuery could only be improved by adding more
features to it. I disagree - jQuery has reached a maturity level where lack of features is no
longer one of its major drawbacks.

answered Mar 18 at 3:29

link|edit|flag
thomasrutter
11.6k2145
I never thought of any unnecessary features already present in jQuery, thanks for pointing
me in that direction. – Rachel Mar 18 at 3:33
There are never different ways to order arguments, some of them are just optional and you
will often see options hashes. IMO that is the only sane way of doing things, the alternative
tends to be fairly unreadable code, even if the documentation becomes more straight
forward. – Matt Briggs Mar 18 at 3:47
I struggled with my choice of words I think. When I said different ways to order arguments
I meant that many methods could be given different combinations of arguments to achieve
the same thing, or sometimes even adding arguments would distinctly change behaviour.
Such as, including an "options" object vs listing the same options as separate arguments, or
adding an extra argument to make the method change from a getter to a setter.
– thomasrutter Mar 21 at 6:22
If the question is "Should I use a library for javascript?" The answer is an unequivocal yes.
The worst thing about javascript is the differing implementations, and using a js library will
dramatically mitigate that problem. There hasn't been much professional javascript work done
without using some sort of library since around 2005 or so when prototype hit.

If the question is more "What are the relative strengths of JQuery?", here are some points
up vote
• It is only a dom abstraction library. If you need to do more then small animations or
0 down
style changes, jquery by itself is not enough.
vote
• That being said, that is all most people want to do, which is a big part of why it is so
popular. The problem with extreme popularity is people who are not serious javascript
developers tend to think javascript == jquery, which it really isn't.

• Basically, if you are adding some trivial behavior to a page, jquery is fantastic. If you
are building a "RIA" webapp, you want to look more at dojo (or even sproutcore,
depending on how far you want to go). If you are somewhere in the middle, MooTool
will do everything you need.

• If you are the type of person that would rather build their own toolset rather then go
for a "Everything and the kitchen sink" type framework, jquery + underscore +
backbone will take you pretty far.

answered Mar 18 at 3:38

link|edit|flag
Matt Briggs
11.4k11039
It's more than 'just' a dom abstraction library for 'small trivial behaviors'. Certainly Dojo or
ExtJS or other libraries may be better suited for a particular project, but jQuery is much
more than just making animations. – DA Mar 18 at 3:47
@DA: Ok, it is dom library with a few utility methods thrown in, where it is comprehensive
and really shines is in dom manipulation. Ext is a a full GUI toolkit, but it isn't a
comprehensive library either. Things like Dojo and sproutcore are full platforms that cover
everything you need to write a javascript application. JQuery is useful for sites, or for
webapps where the majority of the work is done server side. – Matt Briggs Mar 18 at 3:51
1

rebecca murphy did a great job talking about this here blog.rebeccamurphey.com/on-jquery-
large-applications (although backbone didnt exist when she wrote it). Personally, I prefer a
"hodgepodge of tools" when I can get away with it rather then massive frameworks. But
even though I would rather tie all the pieces together that I need, I think it would be a lie to
say that it is in any way more productive to wire all that stuff together then use something
appropriate for the problem in the first place. – Matt Briggs Mar 18 at 3:56
That's a good blog post. And I agree. That said, I'd say jQuery, in the enterprise, 75% of the
time, is going to be an improvement over what is currently there (often a mish-mash of
antiquated active-x controls, bloated paid-for JS components, way too much being handled
server-side, Flash, browser-centric code, etc.). I've been a part of projects where Dojo was
spec'd before realizing a) all they really needed was some nice UI improvements and b) they
couldn't find anyone that had used it. ;) – DA Mar 18 at 4:07
PHP

MP (Windows, Apache, MySQL, PHP/Perl/Python)


WAMP is a form of mini-server that can run on almost any Windows Operating System. WAMP
includes Apache 2, PHP 5 (SMTP ports are disabled), and MySQL (phpMyAdmin and SQLitemanager
are installed to manage your databases) preinstalled.

An icon on the taskbar tray displays the status of WAMP, letting you know if; a) WAMP is running but
no services are opened (the icon will appear red), b) WAMP is running and one service is opened (the
icon will appear yellow) or c) WAMP is running with all services opened (the icon will appear white).
Apache and MySQL are considered to be services (they can be disabled by left-clicking on the taskbar
icon, guiding your cursor over the service you wish to disable and selecting "Stop Service").

The files/web pages that are hosted on your WAMP server can be accessed by typing http:/localhost or
http://127.0.0.1/ in the address bar of your web browser. WAMP must be running in order to access
either of the above addresses.
WA
Read more: http://wiki.answers.com/Q/What_is_wamp_server#ixzz1JspUh6qQ
Do I need a website? (-)
A website is not a luxury in today’s competitive markets. It is simply a must. Without a good
website your business will always be a step behind your competition.
1. What is the difference between a freelancer & a reputable web development company? (-)
A freelancer is a self-employed web designer or developer who works independently and
directly with their clients, while a reputable design & Development firm is an established
company that provides complete solutions for clients. The main advantage of using a firm is that
the range of services they offer is much greater and their expertise in each of these services is
usually a lot higher due to the fact that they have a team of people behind them. Furthermore, in
dealing with a firm, you have the peace of mind knowing that your developers will complete
their assigned tasks on time and within the budget and will be there tomorrow when you need to
take your web projects to the next level. One main problem a lot of clients have faced in the past
when dealing with freelancers is the lack of professionalism.
2. What constitute a professional web layout? (-)
A professional web layout is not simply a layout that looks good. It also has to use proper color
schemes, be functional and achieve its task of generating income or increasing the awareness of
your products or services well.
3. Is hosting and domain registration included in web development? (-)
Domain registration and web hosting is NOT commonly included in the web development
process. However a good development firm will be there to consult you on what domains would
be better and guide you through the process in order to achieve the maximum return on the
investment you have made in purchasing a website.
4. What is the difference between Dedicated (Private) hosting vs. Shared Hosting? (-)
Dedicated hosting is when your site is the only site on a given physical server. You may either
use a third-party hosting company or opt to host your site on a server on site (not-
recommended). Shared hosting is when your site is hosted within a shared environment. In this
case, multiple websites will be hosted by the provider on a given physical server. The shared
solution is much cheaper than the dedicated solution. However the drawback of the shared
environment is that you are compromising on performance and security.
5. What are LAMP Servers? (-)
LAMP is an acronym for the Linux (operating system), Apache (web server), MySQL Database
& Perl, PHP, or Python (scripting languages) used in combination to create a server. These
softwares were not written exclusively to be used together, but their combined solution is very
popular in todays servers. The main advantage of a LAMP server is that it uses all open source
technologies that are free of charge. At the same time the LAMP is perfectly suitable for use in
small businesses all the way up to large enterprise solutions.
6. What are Microsoft Servers? (-)
Microsoft web server is one that is setup on the Microsoft server 2003 operating system.
Microsoft products, being proprietary software, are quite costly, and many clients prefer to
implement the LAMP server. For more information on Microsoft Servers please refer to the
Microsoft website.
7. Where can I find the right hosting paDo I need a website? (-)
A website is not a luxury in today’s competitive markets. It is simply a must. Without a good
website your business will always be a step behind your competition.
1. What is the difference between a freelancer & a reputable web development company? (-)
A freelancer is a self-employed web designer or developer who works independently and
directly with their clients, while a reputable design & Development firm is an established
company that provides complete solutions for clients. The main advantage of using a firm is that
the range of services they offer is much greater and their expertise in each of these services is
usually a lot higher due to the fact that they have a team of people behind them. Furthermore, in
dealing with a firm, you have the peace of mind knowing that your developers will complete
their assigned tasks on time and within the budget and will be there tomorrow when you need to
take your web projects to the next level. One main problem a lot of clients have faced in the past
when dealing with freelancers is the lack of professionalism.
2. What constitute a professional web layout? (-)
A professional web layout is not simply a layout that looks good. It also has to use proper color
schemes, be functional and achieve its task of generating income or increasing the awareness of
your products or services well.
3. Is hosting and domain registration included in web development? (-)
Domain registration and web hosting is NOT commonly included in the web development
process. However a good development firm will be there to consult you on what domains would
be better and guide you through the process in order to achieve the maximum return on the
investment you have made in purchasing a website.
4. What is the difference between Dedicated (Private) hosting vs. Shared Hosting? (-)
Dedicated hosting is when your site is the only site on a given physical server. You may either
use a third-party hosting company or opt to host your site on a server on site (not-
recommended). Shared hosting is when your site is hosted within a shared environment. In this
case, multiple websites will be hosted by the provider on a given physical server. The shared
solution is much cheaper than the dedicated solution. However the drawback of the shared
environment is that you are compromising on performance and security.
5. What are LAMP Servers? (-)
LAMP is an acronym for the Linux (operating system), Apache (web server), MySQL Database
& Perl, PHP, or Python (scripting languages) used in combination to create a server. These
softwares were not written exclusively to be used together, but their combined solution is very
popular in todays servers. The main advantage of a LAMP server is that it uses all open source
technologies that are free of charge. At the same time the LAMP is perfectly suitable for use in
small businesses all the way up to large enterprise solutions.
6. What are Microsoft Servers? (-)
Microsoft web server is one that is setup on the Microsoft server 2003 operating system.
Microsoft products, being proprietary software, are quite costly, and many clients prefer to
implement the LAMP server. For more information on Microsoft Servers please refer to the
Microsoft website.
7. Where can I find the right hosting package for me? (-)
Hosting is an interesting issue that needs some serious thought put into it. The most important
advice you can get in terms of hosting will come from your web developer. Once you have a
clear idea of the functions of your website and the type of bandwidth requirements you will
have, you can decide whether to opt for a shared or dedicated solution. Once this decision is
made you must either select a windows or Linux (LAMP) server. This decision has to be done
before your site is developed. Your website will be built according to the hosting environment
that you have selected. Since Microsoft is proprietary software while LAMP is open source, you
will find that LAMP solutions are generally much cheaper than the Microsoft solutions.
8. What is FLASH and how does it work? (-)
Flash, in a nutshell, is the common term for Adobe Flash formerly known as Macromedia Flash.
This refers to both the player (free to download) and the authoring software used to create the
high impact multimedia animations that are viewed with this player. For more information
please read the full resource on flash.
9. How much will this cost and what guarantees do I get? (-)
The key to building an effective website within budget restrictions is good planning and a great
developer. We can assist you from the beginning of your planning process to the completion of
your website in order to maintain solutions that strictly adhere to your budget restrictions and to
avoid any surprises that could come up in the future. We also provide our clients with a
satisfaction guarantee giving you peace of mind. Lastly, we offer our clients an initial free
consultation and sample design mockup free of charge with no obligation. Therefore, if you are
prepared to take your business to the next level, and improve your online marketing, contact us
today, and we will be happy to be of service.
8.
ckage for me? (-)
Hosting is an interesting issue that needs some serious thought put into it. The most important
advice you can get in terms of hosting will come from your web developer. Once you have a
clear idea of the functions of your website and the type of bandwidth requirements you will
have, you can decide whether to opt for a shared or dedicated solution. Once this decision is
made you must either select a windows or Linux (LAMP) server. This decision has to be done
before your site is developed. Your website will be built according to the hosting environment
that you have selected. Since Microsoft is proprietary software while LAMP is open source, you
will find that LAMP solutions are generally much cheaper than the Microsoft solutions.
9. What is FLASH and how does it work? (-)
Flash, in a nutshell, is the common term for Adobe Flash formerly known as Macromedia Flash.
This refers to both the player (free to download) and the authoring software used to create the
high impact multimedia animations that are viewed with this player. For more information
please read the full resource on flash.
10.How much will this cost and what guarantees do I get? (-)
The key to building an effective website within budget restrictions is good planning and a great
developer. We can assist you from the beginning of your planning process to the completion of
your website in order to maintain solutions that strictly adhere to your budget restrictions and to
avoid any surprises that could come up in the future. We also provide our clients with a
satisfaction guarantee giving you peace of mind. Lastly, we offer our clients an initial free
consultation and sample design mockup free of charge with no obligation. Therefore, if you are
prepared to take your business to the next level, and improve your online marketing, contact us
today, and we will be happy to be of service.
<!--
google_ad_client = "pub-0048225869877719";
google_ad_slot = "3851696716";
google_ad_width = 728;
google_ad_height = 90;
//-->Building a LAMP Server
by Bruce Timberlake
This document will walk you through the installation of what is known as a "LAMP" system: Linux,
Apache, MySQL and PHP. Depending on who you talk to, the P also stands for Perl or Python, but
in general, it is assumed to be PHP. I run CentOS on my servers; these directions were written for
CentOS/Red Hat/Fedora. I have had requests for SuSE (another RPM-based distribution) as well as
Debian-based systems, so I will work on variants of these directions for those distributions in the future
(donations might help speed that process up!). The main difference between the distributions is in the
paths to the startup scripts. Red Hat systems used /etc/rc.d/init.d and SuSE uses
/etc/init.d.
I have my first translation! Belorussian provided by Ucallweconn -- thank you very much!
If you need an SSL-enabled server, I have a LAMP with SSL howto as well.
I designed this document so you can just copy/paste each line or block of commands into your shell
session and it will "just work" for you. This avoids tedious typing, and the inevitable typos or missed
steps that result. These commands work properly via copy/paste. If you are having problems and
you are not using copy/paste, please re-check your typing before sending me an email saying "It
doesn't work."
Text in a "command" box like this one is a literal Linux commandline, and should be typed or pasted
exactly as written.
One note: many many people have followed these directions as written, and have not had any
problems.
If you are having a problem, chances are it's something you are doing (or not doing), something
different
about your computer, etc.

It is probably NOT this procedure. :)


Initial Steps
PLEASE BE AWARE THAT A SOURCE-BASED INSTALLATION LIKE THIS ONE IS NOT
NEEDED FOR A BASIC LAMP SERVER! You should only be doing a source-based installation if
you need to alter settings in one or more components of the LAMP stack (e.g., you need a feature in
PHP that isn't in the default RPM). If you are just getting started with LAMP, use the binaries provided
by your distribution - it is much simpler, and a lot easier to upgrade later.
Most out-of-the-box Red Hat Linux installations will have one or more of the LAMP components
installed via RPM files. I personally believe in installing things like this from source, so I get the most
control over what's compiled in, what's left out, etc. But source code installs can wreak havoc if
overlaid on top of RPM installs, as the two most likely won't share the same directories, etc.
If you have not yet installed your Linux OS, or just for future reference, do not choose to install
Apache, PHP, or MySQL during the system installation. Then you can immediately proceed with the
source-based install listed here.
Note: to install applications from source code, you will need a C++ compiler (gcc++) installed. This is
generally taken care of, but I've had enough queries about it that I've added this note to avoid getting
more! You can use your distribution's install CDs to get the proper version of the compiler. Or, if you
are using an RPM based distro, you can use a site like http://www.rpmfind.net/ to locate the correct
RPM version for your system. (You will obviously not be able to use/rebuild a source RPM to get the
compiler installed, as you need the compiler to build the final binary RPM!) On a Fedora system, you
can do this command:
su - root
yum install gcc gcc-c++
Log in as root
Because we will be installing software to directories that "regular" users don't have write access to, and
also possibly uninstalling RPM versions of some applications, we'll log in as root. The only steps that
need root access are the actual installation steps, but by doing the configure and make steps as
root, the source code will also be inaccessible to "regular" users.
If you do not have direct access (via keyboard) to the server, PLEASE use Secure Shell (SSH) to
access the server and not telnet!! Whenever you use telnet (or plain FTP for that matter), you are
transmitting your username, password, and all session information in "plain text". This means that
anyone who can access a machine someplace between your PC and your server can snoop your session
and get your info. Use encryption wherever possible!
su - root
Remove RPM Versions of the Applications
Before we start with our source code install, we need to remove all the existing RPM files for these
products. To find out what RPMs are already installed, use the RPM query command:
rpm -qa
in conjunction with grep to filter your results:
rpm -qa | grep -i apache
rpm -qa | grep -i httpd
rpm -qa | grep -i php
rpm -qa | grep -i mysql
The 'httpd' search is in case you have Apache2 installed via RPM.
To remove the RPMs generated by these commands, do
rpm -e filename
for each RPM you found in the query. If you have any content in your MySQL database already, the
RPM removal step should not delete the database files. When you reinstall MySQL, you should be able
to move all those files to your new MySQL data directory and have access to them all again.
Get the Source Code for all Applications
We want to put all our source code someplace central, so it's not getting mixed up in someone's home
directory, etc.
cd /usr/local/src
One way application source code is distributed is in what are known as "tarballs." The tar command
is usually associated with making tape backups - tar stands for Tape ARchive. It's also a handy way
to pack up multiple files for easy distribution. Use the man tar command to learn more about how to
use this very flexible tool.
At the time of updating this, the current versions of all the components we'll use are:
MySQL - 4.1.22
Apache - 1.3.37
PHP - 4.4.6
Please note: these are the only versions of these that I have set up myself, and verified these steps
against. If you use another version of any component, especially a newer version, this HOWTO may
not be accurate, and I won't be able to provide free support under those circumstances. Paid support and
assistance is always available however.
wget http://www.php.net/distributions/php-4.4.6.tar.gz
wget http://apache.oregonstate.edu/httpd/apache_1.3.37.tar.gz
There may be an Apache mirror closer to you - check their mirror page for other sources. Then insert
the URL you get in place of the above for the wget command.
For MySQL, go to http://www.mysql.com/ and choose an appropriate mirror to get the newest MySQL
version (v4.1.22).
Unpack the Source Code
tar zxf php-4.4.6.tar.gz
tar zxf apache_1.3.37.tar.gz
tar zxf mysql-4.1.22.tar.gz
This should leave you with the following directories:
/usr/local/src/php-4.4.6
/usr/local/src/apache_1.3.37
/usr/local/src/mysql-4.1.22
Build and Install MySQL
First, we create the group and user that "owns" MySQL. For security purposes, we don't want MySQL
running as root on the system. To be able to easily identify MySQL processes in top or a ps list,
we'll make a user and group named mysql:
groupadd mysql
useradd -g mysql -c "MySQL Server" mysql
If you get any messages about the group or user already existing, that's fine. The goal is just to make
sure we have them on the system.
What the useradd command is doing is creating a user mysql in the group mysql with the "name"
of MySQL Server. This way when it's showed in various user and process watching apps, you'll be able
to tell what it is right away.
Now we'll change to the "working" directory where the source code is, change the file 'ownership' for
the source tree (this prevents build issues in reported in some cases where the packager's username was
included on the source and you aren't using the exact same name to compile with!) and start building.
The configure command has many options you can specify. I have listed some fairly common ones; if
you'd like to see others, do:
./configure --help | less
to see them all. Read the documentation on the MySQL website for a more detailed explanation of each
option.
cd /usr/local/src/mysql-4.1.22

chown -R root.root *

make clean

./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--disable-maintainer-mode \
--with-mysqld-user=mysql \
--with-unix-socket-path=/tmp/mysql.sock \
--without-comment \
--without-debug \
--without-bench
18-Jul-2005: If you are installing MySQL 4.0.x on Fedora Core 4, there is a problem with
LinuxThreads that prevents MySQL from compiling properly. Installing on Fedora Core 3 works fine
though. Thanks to Kevin Spencer for bringing this to my attention. There is a workaround listed at
http://bugs.mysql.com/bug.php?id=9497. Thanks to Collin Campbell for that link. Another solution can
be found at http://bugs.mysql.com/bug.php?id=2173. Thanks to Kaloyan Raev for that one.
Now comes the long part, where the source code is actually compiled and then installed. Plan to get
some coffee or take a break while this step runs. It could be 10-15 minutes or more, depending on your
system's free memory, load average, etc.
make && make install
Configure MySQL
MySQL is "installed" but we have a few more steps until it's actually "done" and ready to start. First
run the script which actually sets up MySQL's internal database (named, oddly enough, mysql).
./scripts/mysql_install_db
Then we want to set the proper ownership for the MySQL directories and data files, so that only
MySQL (and root) can do anything with them.
chown -R root:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data
Copy the default configuration file for the expected size of the database (small, medium, large, huge)
cp support-files/my-medium.cnf /etc/my.cnf
chown root:sys /etc/my.cnf
chmod 644 /etc/my.cnf
If you get an error message about the data directory not existing, etc., something went wrong in the
mysql_install_db step above. Go back and review that; make sure you didn't get some sort of
error message when you ran it, etc.
Now we have to tell the system where to find some of the dynamic libraries that MySQL will need to
run. We use dynamic libraries instead of static to keep the memory usage of the MySQL program itself
to a minimum.
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
ldconfig
Now create a startup script, which enables MySQL auto-start each time your server is restarted.
cp ./support-files/mysql.server /etc/rc.d/init.d/mysql
chmod +x /etc/rc.d/init.d/mysql
/sbin/chkconfig --level 3 mysql on
Then set up symlinks for all the MySQL binaries, so they can be run from anyplace without having to
include/specify long paths, etc.
cd /usr/local/mysql/bin
for file in *; do ln -s /usr/local/mysql/bin/$file /usr/bin/$file; done
MySQL Security Issues
First, we will assume that only applications on the same server will be allowed to access the database
(i.e., not a program running on a physically separate server). So we'll tell MySQL not to even listen on
port 3306 for TCP connections like it does by default.
Edit /etc/my.cnf and uncomment the
skip-networking
line (delete the leading #).
For more security info, check out this MySQL security tutorial.
Start MySQL
First, test the linked copy of the startup script in the normal server runlevel start directory, to make sure
the symlink was properly set up:
cd ~
/etc/rc.d/rc3.d/S90mysql start
If you ever want to manually start or stop the MySQL server, use these commands:
/etc/rc.d/init.d/mysql start
/etc/rc.d/init.d/mysql stop
Let's "test" the install to see what version of MySQL we're running now:
mysqladmin version
It should answer back with the version we've just installed...
Now we'll set a password for the MySQL root user (note that the MySQL root user is not the same
as the system root user, and definitely should not have the same password as the system root
user!).
mysqladmin -u root password new-password
(obviously, insert your own password in the above command instead of the "new-password" string!)
You're done! MySQL is now installed and running on your server. It is highly recommended that you
read about MySQL security and lock down your server as much as possible. The MySQL site has info
at http://www.mysql.com/doc/en/Privilege_system.html.
Test MySQL
To run a quick test, use the command line program mysql:
mysql -u root -p
and enter your new root user password when prompted. You will then see the MySQL prompt:
mysql>
First, while we're in here, we'll take care of another security issue and delete the sample database test
and all default accounts except for the MySQL root user. Enter each of these lines at the mysql>
prompt:
drop database test;
use mysql;
delete from db;
delete from user where not (host="localhost" and user="root");
flush privileges;
As another security measure, I like to change the MySQL administrator account name from root to
something harder to guess. This will make it that much harder for someone who gains shell access to
your server to take control of MySQL.
MAKE SURE YOU REMEMBER THIS NEW NAME, AND USE IT WHEREVER
YOU SEE "root" IN OTHER DIRECTIONS, WEBSITES, ETC.

ONCE YOU DO THIS STEP, THE USERNAME "root" WILL CEASE TO


EXIST IN YOUR MYSQL CONFIGURATION!
update user set user="sqladmin" where user="root";
flush privileges;
Now, on with the "standard" testing... First, create a new database:
create database foo;
You should see the result:
Query OK, 1 row affected (0.04 sec)

mysql>
Delete the database:
drop database foo;
You should see the result:
Query OK, 0 rows affected (0.06 sec)

mysql>
To exit from mysql enter \q:
\q
Build and Install Apache (with DSO support)
The advantage to building Apache with support for dynamically loaded modules is that in the future,
you can add functionality to your webserver by just compiling and installing modules, and restarting
the webserver. If the features were compiled into Apache, you would need to rebuild Apache from
scratch every time you wanted to add or update a module (like PHP). Your Apache binary is also
smaller, which means more efficient memory usage.
The downside to dynamic modules is a slight performance hit compared to having the modules
compiled in.
cd /usr/local/src/apache_1.3.37

make clean

./configure \
--prefix=/usr/local/apache \
--enable-shared=max \
--enable-module=rewrite \
--enable-module=so

make && make install


Build and Install PHP
This section has only been tested with PHP v4.x. If you are trying to build PHP 5.x, I do not have
experience with this yet, and do not provide free support for you to get it working. Please note that
there are many options which can be selected when compiling PHP. Some will have library
dependencies, meaning certain software may need to be already installed on your server before you
start building PHP. You can use the command
./configure --help | less
once you change into the PHP source directory. This will show you a list of all possible configuration
switches. For more information on what these switches are, please check the PHP website
documentation.
cd /usr/local/src/php-4.4.6

./configure \
--with-apxs=/usr/local/apache/bin/apxs \
--disable-debug \
--enable-ftp \
--enable-inline-optimization \
--enable-magic-quotes \
--enable-mbstring \
--enable-mm=shared \
--enable-safe-mode \
--enable-track-vars \
--enable-trans-sid \
--enable-wddx=shared \
--enable-xml \
--with-dom \
--with-gd \
--with-gettext \
--with-mysql=/usr/local/mysql \
--with-regex=system \
--with-xml \
--with-zlib-dir=/usr/lib

make && make install

cp php.ini-dist /usr/local/lib/php.ini
I like to keep my config files all together in /etc. I set up a symbolic link like this:
ln -s /usr/local/lib/php.ini /etc/php.ini
Then I can just open /etc/php.ini in my editor to make changes.
Recommended reading on securing your PHP installation is this article at SecurityFocus.com.
Edit the Apache Configuration File (httpd.conf)
I like to keep all my configuration files together in /etc, so I set up a symbolic link from the actual
location to /etc:
ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf
Now open /etc/httpd.conf in your favorite text editor, and set all the basic Apache options in
accordance with the official Apache instructions (beyond the scope of this HOWTO).
Also recommended is the article on securing Apache.
To ensure your PHP files are properly interpreted, and not just downloaded as text files, remove the #
at the beginning of the lines which read:
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
If the AddType lines above don't exist, manually enter them (without the leading # of course) after the
line
AddType application/x-tar .tgz
or anyplace within the <IfModule mod_mime.c> section of httpd.conf.
If you wish to use other/additional extensions/filetypes for your PHP scripts instead of just .php, add
them to the AddType directive:
AddType application/x-httpd-php .php .foo
AddType application/x-httpd-php-source .phps .phtmls
An example: if you wanted every single HTML page to be parsed and processed like a PHP script, just
add .htm and .html:
AddType application/x-httpd-php .php .htm .html
There will be a bit of a performance loss if every single HTML page is being checked for PHP code
even if it doesn't contain any. But if you want to use PHP but be "stealthy" about it, you can use this
trick.
Add index.php to the list of valid Directory Index files so that your "default page" in a directory can
be named index.php.
<IfModule mod_dir.c>
DirectoryIndex index.php index.htm index.html
</IfModule>
You can add anything else you want here too. If you want foobar.baz to be a valid directory index
page, just add the .baz filetype to the AddType line, and add foobar.baz to the
DirectoryIndex line.
Start Apache
We want to set Apache up with a normal start/stop script in /etc/rc.d/init.d so it can be auto-
started and controlled like other system daemons. Set up a symbolic link for the apachectl utility
(installed automatically as part of Apache):
ln -s /usr/local/apache/bin/apachectl /etc/rc.d/init.d/apache
Then set up auto-start for runlevel 3 (where the server will go by default):
ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S90apache
Then start the daemon:
/etc/rc.d/init.d/apache start
You can check that it's running properly by doing:
ps -ef
and look for the httpd processes.

A note from the author


I hope you find this guide, HOWTO, tutorial -- call it what you will -- useful. I also hope it saves you
some time. If you do find it useful, I would be grateful if you could make a donation using the button
below (and if it wasn't useful, mail me and tell me why not).
I receive a great deal of mail as a result of this HOWTO, much of it asking me to solve various LAMP-
related problems. Please bear in mind that the money that puts food on my family's table comes from
the consultancy work that I do. If you would like help with any of the points discussed in this article,
mail me and tell me what that help is worth to you. Quote any amount you like, and if I'm able to help
you out, you can make a PayPal donation by way of thanks. Fair enough?
<!--
google_ad_client = "pub-0048225869877719";
google_ad_slot = "3851696716";
google_ad_width = 728;
google_ad_height = 90;
//-->

If you find this page useful, please consider making a secure donation:

This work is licensed under a Creative Commons License


and is copyright (c) 2002-2011 by Bruce Timberlake.
css

Cascading Style Sheets or CSS are an important way to control how your Web pages look. CSS can
control the fonts, text, colors, backgrounds, margins, and layout. But it can be very difficult to learn
CSS, and some people would rather not learn it. There are some very good reasons to learn CSS so that
you can control your Web pages look.

Modify your site designs to look how you want them to look
It's easy to take a free Web template and build a website. But these templates can be very plain or
common. So your website will look like every other site on the internet. By learning CSS you can
modify pre-built templates so that they have your colors and styles. Thus you'll have a customized
website without a lot of effort.

zSB(3,3)Sponsored Links
Drop-Down MenusCreate cross-browser & feature-rich menus-No programming skills needed!
www.likno.com
Reunite With Your FriendsFind All Your Old Friends & Get In Touch Instantly. Join Orkut Today!
www.google.com/Orkut
Are You a Designer ?Get an Opportunity to Work On Creative Designs. Apply Now!
www.ivistasolutions.com

Save money
There are a lot of Web designers who will build your website or your CSS for you. But paying
someone else to maintain your website or blog can get expensive, even if you only have them create the
designs and you then maintain the content. Knowing how to modify the CSS will save you money
when you find small problems that you can fix yourself. And as you practice, you'll be able to fix
bigger and bigger problems.

Earn money
Once you know CSS really well, you can sell these services to other websites. And if you're looking to
become a freelance Web designer, you won't get far if you don't know CSS.

Redesign your site more quickly


Many older websites that were built without CSS are very difficult to redesign. But once a site is built
with CSS hooks it can be redesigned very quickly. Changing things like the colors and backgrounds
can change how a site looks with very little effort. In fact, many sites now put up special versions of
their sites for special occasions and they can do this because it only takes a few hours to create an
alternate style sheet for the occasion.

Build more diverse websites


CSS gives you the opportunity to create sites that look very different from page to page, without a lot
of extensive coding. For example, many sites now do slight color variations on the different sections of
the site. Using page IDs, you can change the CSS for each section and use the same HTML structure
for each section. The only thing that changes is the content and the CSS.

\
CSS style sheets allow better control pf web pages during their development. Cascading Style Sheets
or CSS are style sheets that are linked into the other documents of your site and let’s you take control
of a wide variety of aspects of your site.
While the (x)HTML of your site deals with the actual content and structure of your website, one CSS
file has have power over the fonts, colors, positioning, styling of the data for the entire website. Doing
this helps avoid code bloat in your pages, makes them load faster, render across different media types,
and the benefits go on and on….
There are many benefits to using CSS, and they are listed below.
- Web pages load easier and they use less bandwidth: many web developers like to use CSS style
sheets because they don’t use as much bandwidth as table layouts do. The sheets are downloaded once
and stored in cache memory so pages will load quicker.
- CSS goes well with HTML: when HTML is added to CSS they make well-built, technical sites.
- CSS will let you position components anywhere on the page: developers really like CSS because
they can put elements anywhere they feel like. It is easier for them to make changes on sites they are
working on. CSS decreases the risks that deal with website maintenance.
- CSS is compatible with every web browser: it is mixed with HTML or XHTML to produce web
applications because it is compatible with all kind of web browsers.
- CSS may be used to produce print friendly web pages: web developers also like to use CSS because
they can produce print friendly pages. This means the items like images or colors which used to be
difficult to print are now printed up simply.
- CSS lest users customize web pages: lots of current websites let users change the layout or theme of
the site without changing the content. Because CSS sheets are stowed externally, the users can make
changes on their own. Items like the style of font are now able to be changed.
- Your website will be highlighted in the search engines easier: developers like CSS because they can
put components anywhere on the page. This positioning assists in launching the key contents first so
the spiders can find them. The HTML code of CSS is simpler and it will make the spider’s job easier
by getting them to the real content quicker.
- CSS lets the web pages stay consistent: every expression and text will have characteristics from the
external style sheets. Developers don’t need to fret about the characteristic changes in the elements
because they have the ability to be changed at any time with the CSS.
- CSS makes content moveable: with CSS there can be many style sheets for various media. This lets
you have some give when displaying the content. You can also change the characteristics of the
components in the site to fit your situation.
The point of CSS is to make things easier on your website and let you have control over many
components on the site. You can use these advantages to have more user-friendly pages that search
engines also embrace well.
If you need help understanding CSS more, or would like to have your site evalueated pleae contact us
at 248-582-9210, online or comment to this post.
Why Valid Html Code Is Important To Your
Web Site
Originally Published: September 28, 2004
Editor's Note: For more information about indexing and spidering problems see site
indexing problems and why search engine spiders miss pages. Consider hiring a
professional webmaster to make your site HTML compliant.

Many webmasters overlook a very important aspect of web site promotion: the validity of the HTML
code.

What is valid HTML code?


Most web pages are written in HTML. As for every language, HTML has its own grammar, vocabulary
and syntax, and every document written in HTML is supposed to follow these rules.
Like any language, HTML is constantly changing. As HTML has become a relative complex language,
it's very easy to make mistakes. HTML code that is not following the official rules is called invalid
HTML code.

Why is valid HTML code important?


Search engines have to parse the HTML code of your web site to find the relevant content. If your
HTML code contains errors, search engines might not be able to find everything on the page.
Search engine crawler programs obey the HTML standard. They only can index your web site if it is
compliant to the HTML standard. If there's a mistake in your web page code, they might stop crawling
your web site and they might lose what they've collected so far because of the error.
Although most major search engines can deal with minor errors in HTML code, a single missing
bracket in your HTML code can be the reason if your web page cannot be found in search engines.
If you don't close some tags properly, or if some important tags are missing, search engines might
ignore the complete content of that page.

How can you check the validity of your HTML code?


Fortunately, there are free services that allow you to check the validity of your HTML code. The most
common HTML validator is the W3 HTML Validator.
It is a service that checks HTML documents for conformance to W3C HTML and XHTML
recommendations and other HTML standards.
Just enter the address of a web page on this page and the validator will tell you what errors are on that
page.
Although not all HTML errors will cause problems for your search engine rankings, some of them can
keep web spiders from indexing your web pages.
Valid HTML code makes it easier for search engine spiders to index your site so you should make sure
that at least the biggest mistakes in your HTML code are corrected.

jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event
handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change
the way that you write JavaScript.

The Benefits of Using jQuery


Fri Aug 27, 2010
What is jQuery?
jQuery is a new kind of JavaScript library that makes it easier for designers to control HTML events,
animations, and other interactions on a web page by adding and removing style sheet handlers. These
handlers are either HTML classes or IDs; the handlers are specified in a style sheet, which then tells the
browser how to position and style HTML elements. With jQuery, web designers can quickly and easily
write these handlers to the document on specified events, such as a mouse click or a hover, and when
we do so, it will change the style and/or position of that element. jQuery also simplifies AJAX--the
client-side web development techniques for creating interactive web applications. AJAX applications
can retrieve data from the server quietly in the background without interfering with how a web page
displays or behaves. AJAX uses HTML and CSS (cascading style sheets) to change style and layout
via user interaction and input.
Why is jQuery so great?
One of the major and most important benefits of using jQuery versus other JavaScript libraries or
interactive applications is that it does not take away from the visibility of web page content from the
search engines. The problem with other applications (such as Flash), is that your content is lost if
JavaScript is turned off in the user’s browser. Even though some of these other applications are getting
better at being picked up by the search engines, they’re still not able to compete with the functionality
of jQuery. jQuery is also very small, clean code that won’t bog down the loading time of web pages
like Flash and other applications do.
Benefits of using jQuery:
• Five lines of jQuery are equivalent to 25 lines of conventional JavaScript code, which relates to
the least amount of “bloat” or extra, unnecessary code. This means smaller files and faster
loading web pages.
• Advantage of an abundance of plug-ins that make creating special “Flash-like” effects simple
and fast for website developers; backed by a large, helpful support community to quickly
remedy any bug issues.
• Easy implementation for web developers in comparison to other applications.
• Detailed documentation and useful examples for using jQuery on its website.
• Works in all browsers and is the most popular JavaScript library currently being used.
• jQuery is free, open source software.
• Straightforward to produce powerful and dynamic websites.
• Web page elements display even if JavaScript is disabled in the browser.
• Simplifies AJAX.
• Commands can be “chained” so that the result of one command can then control others.
• Has a “built-in” set of animation applications that can also be used as commands.
• Makes basic web pages become really interesting interactive pages with minimal keystrokes.
• Large software companies, like Microsoft, supports using jQuery in their applications, such as
Visual Studio, as evidence of their support of jQuery’s superior product.
• jQuery can perform all of the fancy animations and transitions as Flash, but in a cleaner,
simpler, and more SEO friendly way.

How does jQuery work?


JavaScript uses jQuery to find all of a specified HTML element, for example, a
tag within a page that has the CSS class of “tick,” and then animate it to slowly scroll, like you would
see in a news ticker. jQuery can also find a HTML element with a specified CSS identification class,
and then retrieve every other sub-element within it and reset the elements to have another specified
CSS class. This could result in alternating styles for HTML elements, like table rows, to alternate the
background color of each row.
Examples of jQuery effects and animations:
jQuery effects and animations are called upon when a user interacts with a HTML element, either by
mouse clicking on the element, hovering over it, pausing on it, etc. These are some of the effects and
animations jQuery can utilize:
• Scroll, fade in, fade out, fade to, zoom, drawer
• Show, hide toggle
• Slide up, slide down, slide toggle
• Stop, queue
• Load, resize, scroll, drag
Examples of jQuery usage:
Web developers use jQuery to make web pages more exciting, interactive, cleaner, and more user
friendly. These are some of the examples of basic jQuery featured plug-ins:
• Photo slideshows
• Photo galleries
• Manipulating images by cropping and resizing
• Tabbed content
• Form validation
• Scrolling or sliding text, for example, news tickers
• Accordion effects
• Tool tips
• Roll-over effects and animations
• Interactive maps
• Fancy menus and navigations
• Advanced animations
• Charts
• Small WYSIWYG editors
• Music and video players
• Background image animations

There really is so much to say about the benefits of using jQuery and making web pages more
interactive and exciting for user experience. The basic advantages alone show us that jQuery is
beneficial to search engine optimization, faster loading web pages, cross-browser compatibility, user
experience, and that it’s typically easy for web developers to implement. jQuery is a wonderful tool
that web developers can now utilize to add a bit of excitement to your website without compromise!

JavaScript frameworks like Script.aculo.us, Prototype or Mootools are very popular. In fact,
there are numerous attempts developing and maintaining a good JavaScript framework that can
be used with ease by those non familiar with this client side scripting language. What my point is
not that the frameworks mentioned above are not good enough; there are lots of people who
swear for them, but my point is that jQuery is something different!
1. No problem if an elements doesn’t exists (needless to check null objects)
2. Incredibly good CSS selector integration
3. Using chains of actions
4. Model-View-Controller + JavaScript architecture (great decoupling, benefits of cohesion)
5. Great community behind: lots of great plugins and helpful support
6. Simple, clean development
7. AJAX just performs great!
8. Tons of tutorials online
9. Lightweight (less than 20 KB)
10.CSS 3 compliant and

jQuery is basically a JavaScript library and it was designed to make the client-side scripting of
HTML more simple. The person responsible for its birth is John Resig at BarCamp NYC in
2006.
It is an open-source software and dual-licensed by MIT License and the GNU General Public License.
Version 2. jQuery has received an enormous success and it is used by 31% of the 10,000 most visited
websites over internet. This makes jQuery the most popular JavaScript library being used today. We
have been sharing jQuery related posts for some time now, so I came up with a post that just defines
this new fashion of developing websites.
Before we go further remember to Subscribe to our Free Rss Feed or Follow us on

Twitter to stay updated with our postings

Introduction

The best thing I like in the syntax is that document navigation is quite easy, the code is also very
compact (their slogan is Write Less, Do More); yet it works great for:
• Creating Animations
• Handling Events
• Selecting DOM Elements
• Developing Ajax Programs
jQuery is excellent for developing dynamic web pages and page elements. It allows the developers to
create plugins that would work on top of the JavaScript library. These capabilities enable the designers
to make abstractions for low-level interactions and animations, and also to create high-level widgets.
Perks

Simplicity
It can be added to any HTML code in using this simple method.
view source
Object 5

print?
1 <head>
2 <script type="text/javascript" src="jquery.js"></script>
3
4 <script type="text/javascript">
5 .....
6 </script>
7 </head>
You can download jQuery from jQuery Download Page

Implementation
There are two basic ways to use jQuery.
1. via the $ function, which can be called the default work method for the jQuery object. $
functions, often called commands, are patchable; so each of them returns a jQuery object.
2. via $.-prefixed functions. These are utility functions which do not work on the jQuery object
per se.
Typically, access and manipulation with multiple DOM nodes begins with the $ function being called
with a CSS selector string, which results in a jQuery object referencing matching elements in the
HTML page.

Plugins
jQuery has got a very well organized architecture. Developers can use it to create their own add-on
code to take its functionality to a whole new level. There are millions of jQuery plugins already
available on internet for free, including Ajax helpers, data grids, XML tools, drag and drop, cookie
handlers…. and the list goes on and on. Probably the best place to download jQuery Plugins is jQuery’s
homepage

Special Effects
Another fancy thing about jQuery is that can create special effects with very little code. Here’s an
example of an onClick Fade Out function:
view source
Object 6

print?
01 <pre><code><!DOCTYPE html>
02 <html>
03 <head>
04 <style>
05 p { font-size:150%; cursor:pointer; }
06 </style>
07 <script src="http://code.jquery.com/jquery-1.4.4.js"></script>
08 </head>
09 <body>
10 <p>
11 If you click on this paragraph
12 you'll see it just fade away.
13 </p>
14 <script>
15 $("p").click(function () {
16 $("p").fadeOut("slow");
17 });
18 </script>
19
20 </body>
21 </html></code></pre>
Now, when you will click this link, it will slowly disappear. You can check this demo and some more
good example tutorials here.
Drawbacks

Quite honestly, there are not many drawbacks, in fact, there are none. It’s just that sometimes one tool
is not suitable in a situation. It’s just a case of appropriateness. There still are a few things that you
should know before you decide to use jQuery on your website.

Use of Selector
jQuery always crosses through all the elements each time you use selectors. This makes the application
dull.
Solution: Cache your selections with some variable(s) if you are using the same selection at multiple
places. And if you are not selecting an element more than once, just don’t cache selection by assigning
it to some variable.

Browser Display
There have been many cases where the code worked fine in one browser, but some properties changed
in the other. Actually this is not a jQuery specific problem, this happens with many JavaScript based
applications, so it is critical that you don’t just test your page in one or two browsers, but in all of them
(at least the four major ones, IE-Firefox-Chrome-Opera).

Conclusion
Simply put, jQuery is great. You can easily perform tasks such as:
• drop down menus
• drag and drop elements
• animations and form validation
All of these with very little coding. Since it synchronizes well with PHP, .Net and most of the other
languages, it is a pretty handy resource.
DRAWBACKS

5 down A big, big drawback is its abstraction hides the "ugly parts" of JavaScript, therefore making
vote learning JS a lot more difficult. This is a problem that plagues the JS community. What
accepted ends up happening is you have designers/developers that can do simple rollovers and
slideshows, but run into big problems once real DOM manipulation comes into play.

Another drawback is not just size, but how amorphous jQuery really is. With each new
browser (most notably Internet Explorer), a fair amount of work is being done behind the
scenes to expand the codebase. This was most evident with IE8, in which a fair amount of
jQuery had to be re-written to at least comply with the newest version of IE. The result is
you have a giant collection of methods and properties (over 200KB since about jQuery
1.5). Even with a wide array of options to compress/cache the files, you're still going to
experience a decent amount of load time (a few seconds on a good connection).

One of those options is through Google's Content Distribution Network (CDN). It can
cache jQuery for you and lead to quicker load times. However, you're now relying on two
sources to operate flawlessly. Recently, Google flubbed one of the new (>= 1.5) versions
of jQuery. This led to some incompatibilities for a few hours and posed problems for
jQueryUI and various plugins. As I said earlier, you're relying on two sources to always
work. Saving your own localized version can mitigate this risk.

I think given proper planning and usage, it can be a boon to most projects. However, I do
emphasize that proper planning needs to be used. First ask yourself (or your team) if flashy
fades and pseudo-tweens are really required for your project. These are the types of things
that should be added last in order to maximize efficiency.

Those are the problems I have on my mind right now. Hopefully, this will be of some aid
to you in the future.

link|edit|flag answered Mar 18 at 3:28


Matt McDonald
1,3321213
Haha this reminds me of a talk we had earlier @Matt McDonald +1 :) – Loktar Mar 18 at
3:30
Care to explain what "real DOM manipulation" would be... in terms of what you can do
that would be better accomplished without jQuery?? – philwinkle Mar 18 at 3:31
@philwinkle, it was more of an observation related to DOM theory. If someone lacks the
understanding of the DOM, manipulation can become troublesome. No library can give
you the knowledge to know how to use the DOM. That has to be learned through time
and effort. – Matt McDonald Mar 18 at 3:34
1

One technique I've seen is to serve your own copy of jQuery, and put a timestamp in the
filename (e.g. "jQuery_20110317.min.js") and tell your web server to set the cache
expiration time for that file to a year. Then your users only load it once per year at most,
unless you post a new version and change the filename. The downside is you have to
change the filename in every <script> tag it's used in. – Mike DeSimone Mar 18 at 3:43
1

"A big, big drawback is its abstraction hides the "ugly parts" of JavaScript" <-- which is
also the major benefit for using it. – DA Mar 18 at 3:46
show 1 more comment

up vote 1 I think it depends on the level of JavaScript expertise we're talking about. If we're talking
down from the beginner through intermediate perspective, the drawback is that it can be a crutch
vote preventing developers from honing their native JS skills (on the other hand, it can also be a
bridge INTO JS development - it certainly has been for me).

Once you become interested in working more in pure JS, the main drawback is that it is
DOM-centric. As your programming becomes more data-focused, the bias towards the
DOM can sometimes get in the way.

It can also get a bit tricky to keep all your code organized as your code gets larger.

I think what I would most like to see going forward is some sort of dependency management
- eg, let my scripts auto-load, or not, any needed plugins and components.

Having said all that, I am definitely a fan of jQuery and it is my JS library of choice. I find
the strengths far outweigh the weaknesses, and that it is improving all the time.
answered Mar 18 at 3:21

link|edit|flag
Philip Schweiger
1506
Have you looked at backbone? IMO for a good js dev, jquery + backbone + underscore +
handlebars can be a really nice "stack" for larger scale work. – Matt Briggs Mar 18 at 4:08
I recently discovered underscore, which is really useful. Have heard of, but not explored,
backbone - will definitely check out that and handlebars! – Philip Schweiger Mar 18 at
13:26
Compared to what? In what context? In and of itself, it's hard to say it has any drawbacks.

But in certain situations, there are some drawbacks:

• it's big. The jQuery library is a hit on your server and something the end-user has to
download. Minimizing, CDN'ing, Caching, etc all help minimize it, but if you're are
looking for super-light-weight JS solution, writing it from scratch will likely get you
a small file size.

• a lot of the DOM CSS manipulation it does isn't necessarily optimized from an
accessibility POV. It's getting better...especially all the ARIA stuff the filament
group is doing
up vote 1
down • not everyone is a fan of jQuery UI. It's good, for sure. But also a bit heavy handed,
vote IMHO.

• it can be a bit confusing if you don't understand some of the basics of JS. It's good to
understand what jQuery is doing behind the scenes at times.

But, honestly, you have to dig to really complain about it. IMHO, jQuery + StackOverflow
has made Web Development fun again. ;o)

answered Mar 18 at 3:39

link|edit|flag
DA
3,574619

up vote Almost nothing, jQuery now matured and have a complete set of javascript functionality
0 down with cross browser support. Out from the jQuery core scope, there are a lots of plugin can be
vote use to extend the feature. If you afraid on trying the new thing like jQuery, simply try it first.
Sure you will not going back to native javascript programming.

link|edit|flag answered Mar 18 at 3:18

CallMeLaNN
457111
See this bugs.jquery.com/roadmap for their to do list. – CallMeLaNN Mar 18 at 3:19
1

That's a pretty naive answer with all things considered. It's not the magical unicorn that
does everything and anything for you. – Matt McDonald Mar 18 at 3:20
yes but based on much projects I experienced in real world, jQuery does not give any
drawback rather than making development fast. – CallMeLaNN Mar 18 at 3:25
1

@Matt McDonald - Or is it? paulirish.com/2009/cornify-easter-egg-with-jquery – havok


Mar 18 at 3:26
@havok: Ha, well done. – Matt McDonald Mar 18 at 3:30
show 2 more comments
The main drawback(other than the fact that it abstracts some key concepts of javascript)

Large javascript files = more load time.

Also don't get me wrong, I love jQuery ... I'm just showing you the other side of the story
up vote 0 :)
down vote
up vote For me, any drawbacks with jQuery would not be about what features it's missing, but what
0 down unnecessary features it includes.
vote
• jQuery seems to include so many different ways of doing the same thing. Even within
the same method, there are often different ways to order the arguments.

It means that the documentation seems needlessly complex in places and it's hard to
remember every different way of using some method. It can make it harder to
understand other people's code if they use different ways of doing the same thing.

• The codebase just keeps growing. Less than 30Kb gzipped and minified is still
impressive, but it's reaching the size where it's larger than any CSS file or header
image I ever had to load. It takes a "monolithic kernel" sort of approach to a Javascript
library, which is probably a large factor in its success - it includes everything you'd
want in one place rather than making it more modular.

It's not a huge complaint. jQuery is very powerful and robust. But I brought this up because
the original question seems to assume that jQuery could only be improved by adding more
features to it. I disagree - jQuery has reached a maturity level where lack of features is no
longer one of its major drawbacks.

link|edit|flag answered Mar 18 at 3:29

thomasrutter
11.6k2145
I never thought of any unnecessary features already present in jQuery, thanks for pointing
me in that direction. – Rachel Mar 18 at 3:33
There are never different ways to order arguments, some of them are just optional and you
will often see options hashes. IMO that is the only sane way of doing things, the alternative
tends to be fairly unreadable code, even if the documentation becomes more straight
forward. – Matt Briggs Mar 18 at 3:47
I struggled with my choice of words I think. When I said different ways to order arguments
I meant that many methods could be given different combinations of arguments to achieve
the same thing, or sometimes even adding arguments would distinctly change behaviour.
Such as, including an "options" object vs listing the same options as separate arguments, or
adding an extra argument to make the method change from a getter to a setter.
– thomasrutter Mar 21 at 6:22
If the question is "Should I use a library for javascript?" The answer is an unequivocal yes.
The worst thing about javascript is the differing implementations, and using a js library will
dramatically mitigate that problem. There hasn't been much professional javascript work done
without using some sort of library since around 2005 or so when prototype hit.

If the question is more "What are the relative strengths of JQuery?", here are some points

• It is only a dom abstraction library. If you need to do more then small animations or
style changes, jquery by itself is not enough.

• That being said, that is all most people want to do, which is a big part of why it is so
popular. The problem with extreme popularity is people who are not serious javascript
developers tend to think javascript == jquery, which it really isn't.
up vote
0 down
• Basically, if you are adding some trivial behavior to a page, jquery is fantastic. If you
vote
are building a "RIA" webapp, you want to look more at dojo (or even sproutcore,
depending on how far you want to go). If you are somewhere in the middle, MooTool
will do everything you need.

• If you are the type of person that would rather build their own toolset rather then go
for a "Everything and the kitchen sink" type framework, jquery + underscore +
backbone will take you pretty far.

answered Mar 18 at 3:38

link|edit|flag
Matt Briggs
11.4k11039
It's more than 'just' a dom abstraction library for 'small trivial behaviors'. Certainly Dojo or
ExtJS or other libraries may be better suited for a particular project, but jQuery is much
more than just making animations. – DA Mar 18 at 3:47
@DA: Ok, it is dom library with a few utility methods thrown in, where it is comprehensive
and really shines is in dom manipulation. Ext is a a full GUI toolkit, but it isn't a
comprehensive library either. Things like Dojo and sproutcore are full platforms that cover
everything you need to write a javascript application. JQuery is useful for sites, or for
webapps where the majority of the work is done server side. – Matt Briggs Mar 18 at 3:51
1

rebecca murphy did a great job talking about this here blog.rebeccamurphey.com/on-jquery-
large-applications (although backbone didnt exist when she wrote it). Personally, I prefer a
"hodgepodge of tools" when I can get away with it rather then massive frameworks. But
even though I would rather tie all the pieces together that I need, I think it would be a lie to
say that it is in any way more productive to wire all that stuff together then use something
appropriate for the problem in the first place. – Matt Briggs Mar 18 at 3:56
That's a good blog post. And I agree. That said, I'd say jQuery, in the enterprise, 75% of the
time, is going to be an improvement over what is currently there (often a mish-mash of
antiquated active-x controls, bloated paid-for JS components, way too much being handled
server-side, Flash, browser-centric code, etc.). I've been a part of projects where Dojo was
spec'd before realizing a) all they really needed was some nice UI improvements and b) they
couldn't find anyone that had used it. ;) – DA Mar 18 at 4:07

PHP
MP (Windows, Apache, MySQL, PHP/Perl/Python)
WAMP is a form of mini-server that can run on almost any Windows Operating System. WAMP
includes Apache 2, PHP 5 (SMTP ports are disabled), and MySQL (phpMyAdmin and SQLitemanager
are installed to manage your databases) preinstalled.

An icon on the taskbar tray displays the status of WAMP, letting you know if; a) WAMP is running but
no services are opened (the icon will appear red), b) WAMP is running and one service is opened (the
icon will appear yellow) or c) WAMP is running with all services opened (the icon will appear white).
Apache and MySQL are considered to be services (they can be disabled by left-clicking on the taskbar
icon, guiding your cursor over the service you wish to disable and selecting "Stop Service").

The files/web pages that are hosted on your WAMP server can be accessed by typing http:/localhost or
http://127.0.0.1/ in the address bar of your web browser. WAMP must be running in order to access
either of the above addresses.
WA
Read more: http://wiki.answers.com/Q/What_is_wamp_server#ixzz1JspUh6qQ
Do I need a website? (-)
A website is not a luxury in today’s competitive markets. It is simply a must. Without a good
website your business will always be a step behind your competition.
1. What is the difference between a freelancer & a reputable web development company? (-)
A freelancer is a self-employed web designer or developer who works independently and
directly with their clients, while a reputable design & Development firm is an established
company that provides complete solutions for clients. The main advantage of using a firm is that
the range of services they offer is much greater and their expertise in each of these services is
usually a lot higher due to the fact that they have a team of people behind them. Furthermore, in
dealing with a firm, you have the peace of mind knowing that your developers will complete
their assigned tasks on time and within the budget and will be there tomorrow when you need to
take your web projects to the next level. One main problem a lot of clients have faced in the past
when dealing with freelancers is the lack of professionalism.
2. What constitute a professional web layout? (-)
A professional web layout is not simply a layout that looks good. It also has to use proper color
schemes, be functional and achieve its task of generating income or increasing the awareness of
your products or services well.
3. Is hosting and domain registration included in web development? (-)
Domain registration and web hosting is NOT commonly included in the web development
process. However a good development firm will be there to consult you on what domains would
be better and guide you through the process in order to achieve the maximum return on the
investment you have made in purchasing a website.
4. What is the difference between Dedicated (Private) hosting vs. Shared Hosting? (-)
Dedicated hosting is when your site is the only site on a given physical server. You may either
use a third-party hosting company or opt to host your site on a server on site (not-
recommended). Shared hosting is when your site is hosted within a shared environment. In this
case, multiple websites will be hosted by the provider on a given physical server. The shared
solution is much cheaper than the dedicated solution. However the drawback of the shared
environment is that you are compromising on performance and security.
5. What are LAMP Servers? (-)
LAMP is an acronym for the Linux (operating system), Apache (web server), MySQL Database
& Perl, PHP, or Python (scripting languages) used in combination to create a server. These
softwares were not written exclusively to be used together, but their combined solution is very
popular in todays servers. The main advantage of a LAMP server is that it uses all open source
technologies that are free of charge. At the same time the LAMP is perfectly suitable for use in
small businesses all the way up to large enterprise solutions.
6. What are Microsoft Servers? (-)
Microsoft web server is one that is setup on the Microsoft server 2003 operating system.
Microsoft products, being proprietary software, are quite costly, and many clients prefer to
implement the LAMP server. For more information on Microsoft Servers please refer to the
Microsoft website.
7. Where can I find the right hosting paDo I need a website? (-)
A website is not a luxury in today’s competitive markets. It is simply a must. Without a good
website your business will always be a step behind your competition.
1. What is the difference between a freelancer & a reputable web development company? (-)
A freelancer is a self-employed web designer or developer who works independently and
directly with their clients, while a reputable design & Development firm is an established
company that provides complete solutions for clients. The main advantage of using a firm is that
the range of services they offer is much greater and their expertise in each of these services is
usually a lot higher due to the fact that they have a team of people behind them. Furthermore, in
dealing with a firm, you have the peace of mind knowing that your developers will complete
their assigned tasks on time and within the budget and will be there tomorrow when you need to
take your web projects to the next level. One main problem a lot of clients have faced in the past
when dealing with freelancers is the lack of professionalism.
2. What constitute a professional web layout? (-)
A professional web layout is not simply a layout that looks good. It also has to use proper color
schemes, be functional and achieve its task of generating income or increasing the awareness of
your products or services well.
3. Is hosting and domain registration included in web development? (-)
Domain registration and web hosting is NOT commonly included in the web development
process. However a good development firm will be there to consult you on what domains would
be better and guide you through the process in order to achieve the maximum return on the
investment you have made in purchasing a website.
4. What is the difference between Dedicated (Private) hosting vs. Shared Hosting? (-)
Dedicated hosting is when your site is the only site on a given physical server. You may either
use a third-party hosting company or opt to host your site on a server on site (not-
recommended). Shared hosting is when your site is hosted within a shared environment. In this
case, multiple websites will be hosted by the provider on a given physical server. The shared
solution is much cheaper than the dedicated solution. However the drawback of the shared
environment is that you are compromising on performance and security.
5. What are LAMP Servers? (-)
LAMP is an acronym for the Linux (operating system), Apache (web server), MySQL Database
& Perl, PHP, or Python (scripting languages) used in combination to create a server. These
softwares were not written exclusively to be used together, but their combined solution is very
popular in todays servers. The main advantage of a LAMP server is that it uses all open source
technologies that are free of charge. At the same time the LAMP is perfectly suitable for use in
small businesses all the way up to large enterprise solutions.
6. What are Microsoft Servers? (-)
Microsoft web server is one that is setup on the Microsoft server 2003 operating system.
Microsoft products, being proprietary software, are quite costly, and many clients prefer to
implement the LAMP server. For more information on Microsoft Servers please refer to the
Microsoft website.
7. Where can I find the right hosting package for me? (-)
Hosting is an interesting issue that needs some serious thought put into it. The most important
advice you can get in terms of hosting will come from your web developer. Once you have a
clear idea of the functions of your website and the type of bandwidth requirements you will
have, you can decide whether to opt for a shared or dedicated solution. Once this decision is
made you must either select a windows or Linux (LAMP) server. This decision has to be done
before your site is developed. Your website will be built according to the hosting environment
that you have selected. Since Microsoft is proprietary software while LAMP is open source, you
will find that LAMP solutions are generally much cheaper than the Microsoft solutions.
8. What is FLASH and how does it work? (-)
Flash, in a nutshell, is the common term for Adobe Flash formerly known as Macromedia Flash.
This refers to both the player (free to download) and the authoring software used to create the
high impact multimedia animations that are viewed with this player. For more information
please read the full resource on flash.
9. How much will this cost and what guarantees do I get? (-)
The key to building an effective website within budget restrictions is good planning and a great
developer. We can assist you from the beginning of your planning process to the completion of
your website in order to maintain solutions that strictly adhere to your budget restrictions and to
avoid any surprises that could come up in the future. We also provide our clients with a
satisfaction guarantee giving you peace of mind. Lastly, we offer our clients an initial free
consultation and sample design mockup free of charge with no obligation. Therefore, if you are
prepared to take your business to the next level, and improve your online marketing, contact us
today, and we will be happy to be of service.
8.
ckage for me? (-)
Hosting is an interesting issue that needs some serious thought put into it. The most important
advice you can get in terms of hosting will come from your web developer. Once you have a
clear idea of the functions of your website and the type of bandwidth requirements you will
have, you can decide whether to opt for a shared or dedicated solution. Once this decision is
made you must either select a windows or Linux (LAMP) server. This decision has to be done
before your site is developed. Your website will be built according to the hosting environment
that you have selected. Since Microsoft is proprietary software while LAMP is open source, you
will find that LAMP solutions are generally much cheaper than the Microsoft solutions.
9. What is FLASH and how does it work? (-)
Flash, in a nutshell, is the common term for Adobe Flash formerly known as Macromedia Flash.
This refers to both the player (free to download) and the authoring software used to create the
high impact multimedia animations that are viewed with this player. For more information
please read the full resource on flash.
10.How much will this cost and what guarantees do I get? (-)
The key to building an effective website within budget restrictions is good planning and a great
developer. We can assist you from the beginning of your planning process to the completion of
your website in order to maintain solutions that strictly adhere to your budget restrictions and to
avoid any surprises that could come up in the future. We also provide our clients with a
satisfaction guarantee giving you peace of mind. Lastly, we offer our clients an initial free
consultation and sample design mockup free of charge with no obligation. Therefore, if you are
prepared to take your business to the next level, and improve your online marketing, contact us
today, and we will be happy to be of service.
<!--
google_ad_client = "pub-0048225869877719";
google_ad_slot = "3851696716";
google_ad_width = 728;
google_ad_height = 90;
//-->Building a LAMP Server
by Bruce Timberlake
This document will walk you through the installation of what is known as a "LAMP" system: Linux,
Apache, MySQL and PHP. Depending on who you talk to, the P also stands for Perl or Python, but
in general, it is assumed to be PHP. I run CentOS on my servers; these directions were written for
CentOS/Red Hat/Fedora. I have had requests for SuSE (another RPM-based distribution) as well as
Debian-based systems, so I will work on variants of these directions for those distributions in the future
(donations might help speed that process up!). The main difference between the distributions is in the
paths to the startup scripts. Red Hat systems used /etc/rc.d/init.d and SuSE uses
/etc/init.d.
I have my first translation! Belorussian provided by Ucallweconn -- thank you very much!
If you need an SSL-enabled server, I have a LAMP with SSL howto as well.
I designed this document so you can just copy/paste each line or block of commands into your shell
session and it will "just work" for you. This avoids tedious typing, and the inevitable typos or missed
steps that result. These commands work properly via copy/paste. If you are having problems and
you are not using copy/paste, please re-check your typing before sending me an email saying "It
doesn't work."
Text in a "command" box like this one is a literal Linux commandline, and should be typed or pasted
exactly as written.
One note: many many people have followed these directions as written, and have not had any
problems.
If you are having a problem, chances are it's something you are doing (or not doing), something
different
about your computer, etc.

It is probably NOT this procedure. :)


Initial Steps
PLEASE BE AWARE THAT A SOURCE-BASED INSTALLATION LIKE THIS ONE IS NOT
NEEDED FOR A BASIC LAMP SERVER! You should only be doing a source-based installation if
you need to alter settings in one or more components of the LAMP stack (e.g., you need a feature in
PHP that isn't in the default RPM). If you are just getting started with LAMP, use the binaries provided
by your distribution - it is much simpler, and a lot easier to upgrade later.
Most out-of-the-box Red Hat Linux installations will have one or more of the LAMP components
installed via RPM files. I personally believe in installing things like this from source, so I get the most
control over what's compiled in, what's left out, etc. But source code installs can wreak havoc if
overlaid on top of RPM installs, as the two most likely won't share the same directories, etc.
If you have not yet installed your Linux OS, or just for future reference, do not choose to install
Apache, PHP, or MySQL during the system installation. Then you can immediately proceed with the
source-based install listed here.
Note: to install applications from source code, you will need a C++ compiler (gcc++) installed. This is
generally taken care of, but I've had enough queries about it that I've added this note to avoid getting
more! You can use your distribution's install CDs to get the proper version of the compiler. Or, if you
are using an RPM based distro, you can use a site like http://www.rpmfind.net/ to locate the correct
RPM version for your system. (You will obviously not be able to use/rebuild a source RPM to get the
compiler installed, as you need the compiler to build the final binary RPM!) On a Fedora system, you
can do this command:
su - root
yum install gcc gcc-c++
Log in as root
Because we will be installing software to directories that "regular" users don't have write access to, and
also possibly uninstalling RPM versions of some applications, we'll log in as root. The only steps that
need root access are the actual installation steps, but by doing the configure and make steps as
root, the source code will also be inaccessible to "regular" users.
If you do not have direct access (via keyboard) to the server, PLEASE use Secure Shell (SSH) to
access the server and not telnet!! Whenever you use telnet (or plain FTP for that matter), you are
transmitting your username, password, and all session information in "plain text". This means that
anyone who can access a machine someplace between your PC and your server can snoop your session
and get your info. Use encryption wherever possible!
su - root
Remove RPM Versions of the Applications
Before we start with our source code install, we need to remove all the existing RPM files for these
products. To find out what RPMs are already installed, use the RPM query command:
rpm -qa
in conjunction with grep to filter your results:
rpm -qa | grep -i apache
rpm -qa | grep -i httpd
rpm -qa | grep -i php
rpm -qa | grep -i mysql
The 'httpd' search is in case you have Apache2 installed via RPM.
To remove the RPMs generated by these commands, do
rpm -e filename
for each RPM you found in the query. If you have any content in your MySQL database already, the
RPM removal step should not delete the database files. When you reinstall MySQL, you should be able
to move all those files to your new MySQL data directory and have access to them all again.
Get the Source Code for all Applications
We want to put all our source code someplace central, so it's not getting mixed up in someone's home
directory, etc.
cd /usr/local/src
One way application source code is distributed is in what are known as "tarballs." The tar command
is usually associated with making tape backups - tar stands for Tape ARchive. It's also a handy way
to pack up multiple files for easy distribution. Use the man tar command to learn more about how to
use this very flexible tool.
At the time of updating this, the current versions of all the components we'll use are:
MySQL - 4.1.22
Apache - 1.3.37
PHP - 4.4.6
Please note: these are the only versions of these that I have set up myself, and verified these steps
against. If you use another version of any component, especially a newer version, this HOWTO may
not be accurate, and I won't be able to provide free support under those circumstances. Paid support and
assistance is always available however.
wget http://www.php.net/distributions/php-4.4.6.tar.gz
wget http://apache.oregonstate.edu/httpd/apache_1.3.37.tar.gz
There may be an Apache mirror closer to you - check their mirror page for other sources. Then insert
the URL you get in place of the above for the wget command.
For MySQL, go to http://www.mysql.com/ and choose an appropriate mirror to get the newest MySQL
version (v4.1.22).
Unpack the Source Code
tar zxf php-4.4.6.tar.gz
tar zxf apache_1.3.37.tar.gz
tar zxf mysql-4.1.22.tar.gz
This should leave you with the following directories:
/usr/local/src/php-4.4.6
/usr/local/src/apache_1.3.37
/usr/local/src/mysql-4.1.22
Build and Install MySQL
First, we create the group and user that "owns" MySQL. For security purposes, we don't want MySQL
running as root on the system. To be able to easily identify MySQL processes in top or a ps list,
we'll make a user and group named mysql:
groupadd mysql
useradd -g mysql -c "MySQL Server" mysql
If you get any messages about the group or user already existing, that's fine. The goal is just to make
sure we have them on the system.
What the useradd command is doing is creating a user mysql in the group mysql with the "name"
of MySQL Server. This way when it's showed in various user and process watching apps, you'll be able
to tell what it is right away.
Now we'll change to the "working" directory where the source code is, change the file 'ownership' for
the source tree (this prevents build issues in reported in some cases where the packager's username was
included on the source and you aren't using the exact same name to compile with!) and start building.
The configure command has many options you can specify. I have listed some fairly common ones; if
you'd like to see others, do:
./configure --help | less
to see them all. Read the documentation on the MySQL website for a more detailed explanation of each
option.
cd /usr/local/src/mysql-4.1.22

chown -R root.root *

make clean
./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--disable-maintainer-mode \
--with-mysqld-user=mysql \
--with-unix-socket-path=/tmp/mysql.sock \
--without-comment \
--without-debug \
--without-bench
18-Jul-2005: If you are installing MySQL 4.0.x on Fedora Core 4, there is a problem with
LinuxThreads that prevents MySQL from compiling properly. Installing on Fedora Core 3 works fine
though. Thanks to Kevin Spencer for bringing this to my attention. There is a workaround listed at
http://bugs.mysql.com/bug.php?id=9497. Thanks to Collin Campbell for that link. Another solution can
be found at http://bugs.mysql.com/bug.php?id=2173. Thanks to Kaloyan Raev for that one.
Now comes the long part, where the source code is actually compiled and then installed. Plan to get
some coffee or take a break while this step runs. It could be 10-15 minutes or more, depending on your
system's free memory, load average, etc.
make && make install
Configure MySQL
MySQL is "installed" but we have a few more steps until it's actually "done" and ready to start. First
run the script which actually sets up MySQL's internal database (named, oddly enough, mysql).
./scripts/mysql_install_db
Then we want to set the proper ownership for the MySQL directories and data files, so that only
MySQL (and root) can do anything with them.
chown -R root:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data
Copy the default configuration file for the expected size of the database (small, medium, large, huge)
cp support-files/my-medium.cnf /etc/my.cnf
chown root:sys /etc/my.cnf
chmod 644 /etc/my.cnf
If you get an error message about the data directory not existing, etc., something went wrong in the
mysql_install_db step above. Go back and review that; make sure you didn't get some sort of
error message when you ran it, etc.
Now we have to tell the system where to find some of the dynamic libraries that MySQL will need to
run. We use dynamic libraries instead of static to keep the memory usage of the MySQL program itself
to a minimum.
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
ldconfig
Now create a startup script, which enables MySQL auto-start each time your server is restarted.
cp ./support-files/mysql.server /etc/rc.d/init.d/mysql
chmod +x /etc/rc.d/init.d/mysql
/sbin/chkconfig --level 3 mysql on
Then set up symlinks for all the MySQL binaries, so they can be run from anyplace without having to
include/specify long paths, etc.
cd /usr/local/mysql/bin
for file in *; do ln -s /usr/local/mysql/bin/$file /usr/bin/$file; done
MySQL Security Issues
First, we will assume that only applications on the same server will be allowed to access the database
(i.e., not a program running on a physically separate server). So we'll tell MySQL not to even listen on
port 3306 for TCP connections like it does by default.
Edit /etc/my.cnf and uncomment the
skip-networking
line (delete the leading #).
For more security info, check out this MySQL security tutorial.
Start MySQL
First, test the linked copy of the startup script in the normal server runlevel start directory, to make sure
the symlink was properly set up:
cd ~
/etc/rc.d/rc3.d/S90mysql start
If you ever want to manually start or stop the MySQL server, use these commands:
/etc/rc.d/init.d/mysql start
/etc/rc.d/init.d/mysql stop
Let's "test" the install to see what version of MySQL we're running now:
mysqladmin version
It should answer back with the version we've just installed...
Now we'll set a password for the MySQL root user (note that the MySQL root user is not the same
as the system root user, and definitely should not have the same password as the system root
user!).
mysqladmin -u root password new-password
(obviously, insert your own password in the above command instead of the "new-password" string!)
You're done! MySQL is now installed and running on your server. It is highly recommended that you
read about MySQL security and lock down your server as much as possible. The MySQL site has info
at http://www.mysql.com/doc/en/Privilege_system.html.
Test MySQL
To run a quick test, use the command line program mysql:
mysql -u root -p
and enter your new root user password when prompted. You will then see the MySQL prompt:
mysql>
First, while we're in here, we'll take care of another security issue and delete the sample database test
and all default accounts except for the MySQL root user. Enter each of these lines at the mysql>
prompt:
drop database test;
use mysql;
delete from db;
delete from user where not (host="localhost" and user="root");
flush privileges;
As another security measure, I like to change the MySQL administrator account name from root to
something harder to guess. This will make it that much harder for someone who gains shell access to
your server to take control of MySQL.
MAKE SURE YOU REMEMBER THIS NEW NAME, AND USE IT WHEREVER
YOU SEE "root" IN OTHER DIRECTIONS, WEBSITES, ETC.

ONCE YOU DO THIS STEP, THE USERNAME "root" WILL CEASE TO


EXIST IN YOUR MYSQL CONFIGURATION!
update user set user="sqladmin" where user="root";
flush privileges;
Now, on with the "standard" testing... First, create a new database:
create database foo;
You should see the result:
Query OK, 1 row affected (0.04 sec)

mysql>
Delete the database:
drop database foo;
You should see the result:
Query OK, 0 rows affected (0.06 sec)

mysql>
To exit from mysql enter \q:
\q
Build and Install Apache (with DSO support)
The advantage to building Apache with support for dynamically loaded modules is that in the future,
you can add functionality to your webserver by just compiling and installing modules, and restarting
the webserver. If the features were compiled into Apache, you would need to rebuild Apache from
scratch every time you wanted to add or update a module (like PHP). Your Apache binary is also
smaller, which means more efficient memory usage.
The downside to dynamic modules is a slight performance hit compared to having the modules
compiled in.
cd /usr/local/src/apache_1.3.37
make clean

./configure \
--prefix=/usr/local/apache \
--enable-shared=max \
--enable-module=rewrite \
--enable-module=so

make && make install


Build and Install PHP
This section has only been tested with PHP v4.x. If you are trying to build PHP 5.x, I do not have
experience with this yet, and do not provide free support for you to get it working. Please note that
there are many options which can be selected when compiling PHP. Some will have library
dependencies, meaning certain software may need to be already installed on your server before you
start building PHP. You can use the command
./configure --help | less
once you change into the PHP source directory. This will show you a list of all possible configuration
switches. For more information on what these switches are, please check the PHP website
documentation.
cd /usr/local/src/php-4.4.6

./configure \
--with-apxs=/usr/local/apache/bin/apxs \
--disable-debug \
--enable-ftp \
--enable-inline-optimization \
--enable-magic-quotes \
--enable-mbstring \
--enable-mm=shared \
--enable-safe-mode \
--enable-track-vars \
--enable-trans-sid \
--enable-wddx=shared \
--enable-xml \
--with-dom \
--with-gd \
--with-gettext \
--with-mysql=/usr/local/mysql \
--with-regex=system \
--with-xml \
--with-zlib-dir=/usr/lib

make && make install

cp php.ini-dist /usr/local/lib/php.ini
I like to keep my config files all together in /etc. I set up a symbolic link like this:
ln -s /usr/local/lib/php.ini /etc/php.ini
Then I can just open /etc/php.ini in my editor to make changes.
Recommended reading on securing your PHP installation is this article at SecurityFocus.com.
Edit the Apache Configuration File (httpd.conf)
I like to keep all my configuration files together in /etc, so I set up a symbolic link from the actual
location to /etc:
ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf
Now open /etc/httpd.conf in your favorite text editor, and set all the basic Apache options in
accordance with the official Apache instructions (beyond the scope of this HOWTO).
Also recommended is the article on securing Apache.
To ensure your PHP files are properly interpreted, and not just downloaded as text files, remove the #
at the beginning of the lines which read:
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
If the AddType lines above don't exist, manually enter them (without the leading # of course) after the
line
AddType application/x-tar .tgz
or anyplace within the <IfModule mod_mime.c> section of httpd.conf.
If you wish to use other/additional extensions/filetypes for your PHP scripts instead of just .php, add
them to the AddType directive:
AddType application/x-httpd-php .php .foo
AddType application/x-httpd-php-source .phps .phtmls
An example: if you wanted every single HTML page to be parsed and processed like a PHP script, just
add .htm and .html:
AddType application/x-httpd-php .php .htm .html
There will be a bit of a performance loss if every single HTML page is being checked for PHP code
even if it doesn't contain any. But if you want to use PHP but be "stealthy" about it, you can use this
trick.
Add index.php to the list of valid Directory Index files so that your "default page" in a directory can
be named index.php.
<IfModule mod_dir.c>
DirectoryIndex index.php index.htm index.html
</IfModule>
You can add anything else you want here too. If you want foobar.baz to be a valid directory index
page, just add the .baz filetype to the AddType line, and add foobar.baz to the
DirectoryIndex line.
Start Apache
We want to set Apache up with a normal start/stop script in /etc/rc.d/init.d so it can be auto-
started and controlled like other system daemons. Set up a symbolic link for the apachectl utility
(installed automatically as part of Apache):
ln -s /usr/local/apache/bin/apachectl /etc/rc.d/init.d/apache
Then set up auto-start for runlevel 3 (where the server will go by default):
ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S90apache
Then start the daemon:
/etc/rc.d/init.d/apache start
You can check that it's running properly by doing:
ps -ef
and look for the httpd processes.

A note from the author


I hope you find this guide, HOWTO, tutorial -- call it what you will -- useful. I also hope it saves you
some time. If you do find it useful, I would be grateful if you could make a donation using the button
below (and if it wasn't useful, mail me and tell me why not).
I receive a great deal of mail as a result of this HOWTO, much of it asking me to solve various LAMP-
related problems. Please bear in mind that the money that puts food on my family's table comes from
the consultancy work that I do. If you would like help with any of the points discussed in this article,
mail me and tell me what that help is worth to you. Quote any amount you like, and if I'm able to help
you out, you can make a PayPal donation by way of thanks. Fair enough?
<!--
google_ad_client = "pub-0048225869877719";
google_ad_slot = "3851696716";
google_ad_width = 728;
google_ad_height = 90;
//-->

If you find this page useful, please consider making a secure donation:

This work is licensed under a Creative Commons License


and is copyright (c) 2002-2011 by Bruce Timberlake.
css

Cascading Style Sheets or CSS are an important way to control how your Web pages look. CSS can
control the fonts, text, colors, backgrounds, margins, and layout. But it can be very difficult to learn
CSS, and some people would rather not learn it. There are some very good reasons to learn CSS so that
you can control your Web pages look.

Modify your site designs to look how you want them to look
It's easy to take a free Web template and build a website. But these templates can be very plain or
common. So your website will look like every other site on the internet. By learning CSS you can
modify pre-built templates so that they have your colors and styles. Thus you'll have a customized
website without a lot of effort.

zSB(3,3)Sponsored Links
Drop-Down MenusCreate cross-browser & feature-rich menus-No programming skills needed!
www.likno.com
Reunite With Your FriendsFind All Your Old Friends & Get In Touch Instantly. Join Orkut Today!
www.google.com/Orkut
Are You a Designer ?Get an Opportunity to Work On Creative Designs. Apply Now!
www.ivistasolutions.com

Save money
There are a lot of Web designers who will build your website or your CSS for you. But paying
someone else to maintain your website or blog can get expensive, even if you only have them create the
designs and you then maintain the content. Knowing how to modify the CSS will save you money
when you find small problems that you can fix yourself. And as you practice, you'll be able to fix
bigger and bigger problems.

Earn money
Once you know CSS really well, you can sell these services to other websites. And if you're looking to
become a freelance Web designer, you won't get far if you don't know CSS.
Redesign your site more quickly
Many older websites that were built without CSS are very difficult to redesign. But once a site is built
with CSS hooks it can be redesigned very quickly. Changing things like the colors and backgrounds
can change how a site looks with very little effort. In fact, many sites now put up special versions of
their sites for special occasions and they can do this because it only takes a few hours to create an
alternate style sheet for the occasion.

Build more diverse websites


CSS gives you the opportunity to create sites that look very different from page to page, without a lot
of extensive coding. For example, many sites now do slight color variations on the different sections of
the site. Using page IDs, you can change the CSS for each section and use the same HTML structure
for each section. The only thing that changes is the content and the CSS.

\
CSS style sheets allow better control pf web pages during their development. Cascading Style Sheets
or CSS are style sheets that are linked into the other documents of your site and let’s you take control
of a wide variety of aspects of your site.
While the (x)HTML of your site deals with the actual content and structure of your website, one CSS
file has have power over the fonts, colors, positioning, styling of the data for the entire website. Doing
this helps avoid code bloat in your pages, makes them load faster, render across different media types,
and the benefits go on and on….
There are many benefits to using CSS, and they are listed below.
- Web pages load easier and they use less bandwidth: many web developers like to use CSS style
sheets because they don’t use as much bandwidth as table layouts do. The sheets are downloaded once
and stored in cache memory so pages will load quicker.
- CSS goes well with HTML: when HTML is added to CSS they make well-built, technical sites.
- CSS will let you position components anywhere on the page: developers really like CSS because
they can put elements anywhere they feel like. It is easier for them to make changes on sites they are
working on. CSS decreases the risks that deal with website maintenance.
- CSS is compatible with every web browser: it is mixed with HTML or XHTML to produce web
applications because it is compatible with all kind of web browsers.
- CSS may be used to produce print friendly web pages: web developers also like to use CSS because
they can produce print friendly pages. This means the items like images or colors which used to be
difficult to print are now printed up simply.
- CSS lest users customize web pages: lots of current websites let users change the layout or theme of
the site without changing the content. Because CSS sheets are stowed externally, the users can make
changes on their own. Items like the style of font are now able to be changed.
- Your website will be highlighted in the search engines easier: developers like CSS because they can
put components anywhere on the page. This positioning assists in launching the key contents first so
the spiders can find them. The HTML code of CSS is simpler and it will make the spider’s job easier
by getting them to the real content quicker.
- CSS lets the web pages stay consistent: every expression and text will have characteristics from the
external style sheets. Developers don’t need to fret about the characteristic changes in the elements
because they have the ability to be changed at any time with the CSS.
- CSS makes content moveable: with CSS there can be many style sheets for various media. This lets
you have some give when displaying the content. You can also change the characteristics of the
components in the site to fit your situation.
The point of CSS is to make things easier on your website and let you have control over many
components on the site. You can use these advantages to have more user-friendly pages that search
engines also embrace well.
If you need help understanding CSS more, or would like to have your site evalueated pleae contact us
at 248-582-9210, online or comment to this post.
Why Valid Html Code Is Important To Your
Web Site
Originally Published: September 28, 2004
Editor's Note: For more information about indexing and spidering problems see site
indexing problems and why search engine spiders miss pages. Consider hiring a
professional webmaster to make your site HTML compliant.

Many webmasters overlook a very important aspect of web site promotion: the validity of the HTML
code.

What is valid HTML code?


Most web pages are written in HTML. As for every language, HTML has its own grammar, vocabulary
and syntax, and every document written in HTML is supposed to follow these rules.
Like any language, HTML is constantly changing. As HTML has become a relative complex language,
it's very easy to make mistakes. HTML code that is not following the official rules is called invalid
HTML code.

Why is valid HTML code important?


Search engines have to parse the HTML code of your web site to find the relevant content. If your
HTML code contains errors, search engines might not be able to find everything on the page.
Search engine crawler programs obey the HTML standard. They only can index your web site if it is
compliant to the HTML standard. If there's a mistake in your web page code, they might stop crawling
your web site and they might lose what they've collected so far because of the error.
Although most major search engines can deal with minor errors in HTML code, a single missing
bracket in your HTML code can be the reason if your web page cannot be found in search engines.
If you don't close some tags properly, or if some important tags are missing, search engines might
ignore the complete content of that page.

How can you check the validity of your HTML code?


Fortunately, there are free services that allow you to check the validity of your HTML code. The most
common HTML validator is the W3 HTML Validator.
It is a service that checks HTML documents for conformance to W3C HTML and XHTML
recommendations and other HTML standards.
Just enter the address of a web page on this page and the validator will tell you what errors are on that
page.
Although not all HTML errors will cause problems for your search engine rankings, some of them can
keep web spiders from indexing your web pages.
Valid HTML code makes it easier for search engine spiders to index your site so you should make sure
that at least the biggest mistakes in your HTML code are corrected.

jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event
handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change
the way that you write JavaScript.

The Benefits of Using jQuery


Fri Aug 27, 2010
What is jQuery?
jQuery is a new kind of JavaScript library that makes it easier for designers to control HTML events,
animations, and other interactions on a web page by adding and removing style sheet handlers. These
handlers are either HTML classes or IDs; the handlers are specified in a style sheet, which then tells the
browser how to position and style HTML elements. With jQuery, web designers can quickly and easily
write these handlers to the document on specified events, such as a mouse click or a hover, and when
we do so, it will change the style and/or position of that element. jQuery also simplifies AJAX--the
client-side web development techniques for creating interactive web applications. AJAX applications
can retrieve data from the server quietly in the background without interfering with how a web page
displays or behaves. AJAX uses HTML and CSS (cascading style sheets) to change style and layout
via user interaction and input.
Why is jQuery so great?
One of the major and most important benefits of using jQuery versus other JavaScript libraries or
interactive applications is that it does not take away from the visibility of web page content from the
search engines. The problem with other applications (such as Flash), is that your content is lost if
JavaScript is turned off in the user’s browser. Even though some of these other applications are getting
better at being picked up by the search engines, they’re still not able to compete with the functionality
of jQuery. jQuery is also very small, clean code that won’t bog down the loading time of web pages
like Flash and other applications do.
Benefits of using jQuery:
• Five lines of jQuery are equivalent to 25 lines of conventional JavaScript code, which relates to
the least amount of “bloat” or extra, unnecessary code. This means smaller files and faster
loading web pages.
• Advantage of an abundance of plug-ins that make creating special “Flash-like” effects simple
and fast for website developers; backed by a large, helpful support community to quickly
remedy any bug issues.
• Easy implementation for web developers in comparison to other applications.
• Detailed documentation and useful examples for using jQuery on its website.
• Works in all browsers and is the most popular JavaScript library currently being used.
• jQuery is free, open source software.
• Straightforward to produce powerful and dynamic websites.
• Web page elements display even if JavaScript is disabled in the browser.
• Simplifies AJAX.
• Commands can be “chained” so that the result of one command can then control others.
• Has a “built-in” set of animation applications that can also be used as commands.
• Makes basic web pages become really interesting interactive pages with minimal keystrokes.
• Large software companies, like Microsoft, supports using jQuery in their applications, such as
Visual Studio, as evidence of their support of jQuery’s superior product.
• jQuery can perform all of the fancy animations and transitions as Flash, but in a cleaner,
simpler, and more SEO friendly way.

How does jQuery work?


JavaScript uses jQuery to find all of a specified HTML element, for example, a
tag within a page that has the CSS class of “tick,” and then animate it to slowly scroll, like you would
see in a news ticker. jQuery can also find a HTML element with a specified CSS identification class,
and then retrieve every other sub-element within it and reset the elements to have another specified
CSS class. This could result in alternating styles for HTML elements, like table rows, to alternate the
background color of each row.
Examples of jQuery effects and animations:
jQuery effects and animations are called upon when a user interacts with a HTML element, either by
mouse clicking on the element, hovering over it, pausing on it, etc. These are some of the effects and
animations jQuery can utilize:
• Scroll, fade in, fade out, fade to, zoom, drawer
• Show, hide toggle
• Slide up, slide down, slide toggle
• Stop, queue
• Load, resize, scroll, drag
Examples of jQuery usage:
Web developers use jQuery to make web pages more exciting, interactive, cleaner, and more user
friendly. These are some of the examples of basic jQuery featured plug-ins:
• Photo slideshows
• Photo galleries
• Manipulating images by cropping and resizing
• Tabbed content
• Form validation
• Scrolling or sliding text, for example, news tickers
• Accordion effects
• Tool tips
• Roll-over effects and animations
• Interactive maps
• Fancy menus and navigations
• Advanced animations
• Charts
• Small WYSIWYG editors
• Music and video players
• Background image animations

There really is so much to say about the benefits of using jQuery and making web pages more
interactive and exciting for user experience. The basic advantages alone show us that jQuery is
beneficial to search engine optimization, faster loading web pages, cross-browser compatibility, user
experience, and that it’s typically easy for web developers to implement. jQuery is a wonderful tool
that web developers can now utilize to add a bit of excitement to your website without compromise!

JavaScript frameworks like Script.aculo.us, Prototype or Mootools are very popular. In fact,
there are numerous attempts developing and maintaining a good JavaScript framework that can
be used with ease by those non familiar with this client side scripting language. What my point is
not that the frameworks mentioned above are not good enough; there are lots of people who
swear for them, but my point is that jQuery is something different!
1. No problem if an elements doesn’t exists (needless to check null objects)
2. Incredibly good CSS selector integration
3. Using chains of actions
4. Model-View-Controller + JavaScript architecture (great decoupling, benefits of cohesion)
5. Great community behind: lots of great plugins and helpful support
6. Simple, clean development
7. AJAX just performs great!
8. Tons of tutorials online
9. Lightweight (less than 20 KB)
10.CSS 3 compliant and

jQuery is basically a JavaScript library and it was designed to make the client-side scripting of
HTML more simple. The person responsible for its birth is John Resig at BarCamp NYC in
2006.
It is an open-source software and dual-licensed by MIT License and the GNU General Public License.
Version 2. jQuery has received an enormous success and it is used by 31% of the 10,000 most visited
websites over internet. This makes jQuery the most popular JavaScript library being used today. We
have been sharing jQuery related posts for some time now, so I came up with a post that just defines
this new fashion of developing websites.
Before we go further remember to Subscribe to our Free Rss Feed or Follow us on

Twitter to stay updated with our postings

Introduction

The best thing I like in the syntax is that document navigation is quite easy, the code is also very
compact (their slogan is Write Less, Do More); yet it works great for:
• Creating Animations
• Handling Events
• Selecting DOM Elements
• Developing Ajax Programs
jQuery is excellent for developing dynamic web pages and page elements. It allows the developers to
create plugins that would work on top of the JavaScript library. These capabilities enable the designers
to make abstractions for low-level interactions and animations, and also to create high-level widgets.
Perks

Simplicity
It can be added to any HTML code in using this simple method.
view source
Object 7

print?
1 <head>
2 <script type="text/javascript" src="jquery.js"></script>
3
4 <script type="text/javascript">
5 .....
6 </script>
7 </head>
You can download jQuery from jQuery Download Page

Implementation
There are two basic ways to use jQuery.
1. via the $ function, which can be called the default work method for the jQuery object. $
functions, often called commands, are patchable; so each of them returns a jQuery object.
2. via $.-prefixed functions. These are utility functions which do not work on the jQuery object
per se.
Typically, access and manipulation with multiple DOM nodes begins with the $ function being called
with a CSS selector string, which results in a jQuery object referencing matching elements in the
HTML page.

Plugins
jQuery has got a very well organized architecture. Developers can use it to create their own add-on
code to take its functionality to a whole new level. There are millions of jQuery plugins already
available on internet for free, including Ajax helpers, data grids, XML tools, drag and drop, cookie
handlers…. and the list goes on and on. Probably the best place to download jQuery Plugins is jQuery’s
homepage

Special Effects
Another fancy thing about jQuery is that can create special effects with very little code. Here’s an
example of an onClick Fade Out function:
view source
Object 8

print?
01 <pre><code><!DOCTYPE html>
02 <html>
03 <head>
04 <style>
05 p { font-size:150%; cursor:pointer; }
06 </style>
07 <script src="http://code.jquery.com/jquery-1.4.4.js"></script>
08 </head>
09 <body>
10 <p>
11 If you click on this paragraph
12 you'll see it just fade away.
13 </p>
14 <script>
15 $("p").click(function () {
16 $("p").fadeOut("slow");
17 });
18 </script>
19
20 </body>
21 </html></code></pre>
Now, when you will click this link, it will slowly disappear. You can check this demo and some more
good example tutorials here.
Drawbacks

Quite honestly, there are not many drawbacks, in fact, there are none. It’s just that sometimes one tool
is not suitable in a situation. It’s just a case of appropriateness. There still are a few things that you
should know before you decide to use jQuery on your website.

Use of Selector
jQuery always crosses through all the elements each time you use selectors. This makes the application
dull.
Solution: Cache your selections with some variable(s) if you are using the same selection at multiple
places. And if you are not selecting an element more than once, just don’t cache selection by assigning
it to some variable.

Browser Display
There have been many cases where the code worked fine in one browser, but some properties changed
in the other. Actually this is not a jQuery specific problem, this happens with many JavaScript based
applications, so it is critical that you don’t just test your page in one or two browsers, but in all of them
(at least the four major ones, IE-Firefox-Chrome-Opera).

Conclusion
Simply put, jQuery is great. You can easily perform tasks such as:
• drop down menus
• drag and drop elements
• animations and form validation
All of these with very little coding. Since it synchronizes well with PHP, .Net and most of the other
languages, it is a pretty handy resource.
DRAWBACKS

5 down A big, big drawback is its abstraction hides the "ugly parts" of JavaScript, therefore making
vote learning JS a lot more difficult. This is a problem that plagues the JS community. What
accepted ends up happening is you have designers/developers that can do simple rollovers and
slideshows, but run into big problems once real DOM manipulation comes into play.

Another drawback is not just size, but how amorphous jQuery really is. With each new
browser (most notably Internet Explorer), a fair amount of work is being done behind the
scenes to expand the codebase. This was most evident with IE8, in which a fair amount of
jQuery had to be re-written to at least comply with the newest version of IE. The result is
you have a giant collection of methods and properties (over 200KB since about jQuery
1.5). Even with a wide array of options to compress/cache the files, you're still going to
experience a decent amount of load time (a few seconds on a good connection).

One of those options is through Google's Content Distribution Network (CDN). It can
cache jQuery for you and lead to quicker load times. However, you're now relying on two
sources to operate flawlessly. Recently, Google flubbed one of the new (>= 1.5) versions
of jQuery. This led to some incompatibilities for a few hours and posed problems for
jQueryUI and various plugins. As I said earlier, you're relying on two sources to always
work. Saving your own localized version can mitigate this risk.

I think given proper planning and usage, it can be a boon to most projects. However, I do
emphasize that proper planning needs to be used. First ask yourself (or your team) if flashy
fades and pseudo-tweens are really required for your project. These are the types of things
that should be added last in order to maximize efficiency.

Those are the problems I have on my mind right now. Hopefully, this will be of some aid
to you in the future.

link|edit|flag answered Mar 18 at 3:28


Matt McDonald
1,3321213
Haha this reminds me of a talk we had earlier @Matt McDonald +1 :) – Loktar Mar 18 at
3:30
Care to explain what "real DOM manipulation" would be... in terms of what you can do
that would be better accomplished without jQuery?? – philwinkle Mar 18 at 3:31
@philwinkle, it was more of an observation related to DOM theory. If someone lacks the
understanding of the DOM, manipulation can become troublesome. No library can give
you the knowledge to know how to use the DOM. That has to be learned through time
and effort. – Matt McDonald Mar 18 at 3:34
1

One technique I've seen is to serve your own copy of jQuery, and put a timestamp in the
filename (e.g. "jQuery_20110317.min.js") and tell your web server to set the cache
expiration time for that file to a year. Then your users only load it once per year at most,
unless you post a new version and change the filename. The downside is you have to
change the filename in every <script> tag it's used in. – Mike DeSimone Mar 18 at 3:43
1

"A big, big drawback is its abstraction hides the "ugly parts" of JavaScript" <-- which is
also the major benefit for using it. – DA Mar 18 at 3:46
show 1 more comment

up vote 1 I think it depends on the level of JavaScript expertise we're talking about. If we're talking
down from the beginner through intermediate perspective, the drawback is that it can be a crutch
vote preventing developers from honing their native JS skills (on the other hand, it can also be a
bridge INTO JS development - it certainly has been for me).

Once you become interested in working more in pure JS, the main drawback is that it is
DOM-centric. As your programming becomes more data-focused, the bias towards the
DOM can sometimes get in the way.

It can also get a bit tricky to keep all your code organized as your code gets larger.

I think what I would most like to see going forward is some sort of dependency management
- eg, let my scripts auto-load, or not, any needed plugins and components.

Having said all that, I am definitely a fan of jQuery and it is my JS library of choice. I find
the strengths far outweigh the weaknesses, and that it is improving all the time.
answered Mar 18 at 3:21

link|edit|flag
Philip Schweiger
1506
Have you looked at backbone? IMO for a good js dev, jquery + backbone + underscore +
handlebars can be a really nice "stack" for larger scale work. – Matt Briggs Mar 18 at 4:08
I recently discovered underscore, which is really useful. Have heard of, but not explored,
backbone - will definitely check out that and handlebars! – Philip Schweiger Mar 18 at
13:26
Compared to what? In what context? In and of itself, it's hard to say it has any drawbacks.

But in certain situations, there are some drawbacks:

• it's big. The jQuery library is a hit on your server and something the end-user has to
download. Minimizing, CDN'ing, Caching, etc all help minimize it, but if you're are
looking for super-light-weight JS solution, writing it from scratch will likely get you
a small file size.

• a lot of the DOM CSS manipulation it does isn't necessarily optimized from an
accessibility POV. It's getting better...especially all the ARIA stuff the filament
group is doing
up vote 1
down • not everyone is a fan of jQuery UI. It's good, for sure. But also a bit heavy handed,
vote IMHO.

• it can be a bit confusing if you don't understand some of the basics of JS. It's good to
understand what jQuery is doing behind the scenes at times.

But, honestly, you have to dig to really complain about it. IMHO, jQuery + StackOverflow
has made Web Development fun again. ;o)

answered Mar 18 at 3:39

link|edit|flag
DA
3,574619

up vote Almost nothing, jQuery now matured and have a complete set of javascript functionality
0 down with cross browser support. Out from the jQuery core scope, there are a lots of plugin can be
vote use to extend the feature. If you afraid on trying the new thing like jQuery, simply try it first.
Sure you will not going back to native javascript programming.

link|edit|flag answered Mar 18 at 3:18

CallMeLaNN
457111
See this bugs.jquery.com/roadmap for their to do list. – CallMeLaNN Mar 18 at 3:19
1

That's a pretty naive answer with all things considered. It's not the magical unicorn that
does everything and anything for you. – Matt McDonald Mar 18 at 3:20
yes but based on much projects I experienced in real world, jQuery does not give any
drawback rather than making development fast. – CallMeLaNN Mar 18 at 3:25
1

@Matt McDonald - Or is it? paulirish.com/2009/cornify-easter-egg-with-jquery – havok


Mar 18 at 3:26
@havok: Ha, well done. – Matt McDonald Mar 18 at 3:30
show 2 more comments
The main drawback(other than the fact that it abstracts some key concepts of javascript)
is the fact that is bundles everything, thus the library is going to be inherently large.

Large javascript files = more load time.


For me, any drawbacks with jQuery would not be about what features it's missing, but what
unnecessary features it includes.

• jQuery seems to include so many different ways of doing the same thing. Even within
the same method, there are often different ways to order the arguments.

It means that the documentation seems needlessly complex in places and it's hard to
remember every different way of using some method. It can make it harder to
understand other people's code if they use different ways of doing the same thing.

• The codebase just keeps growing. Less than 30Kb gzipped and minified is still
impressive, but it's reaching the size where it's larger than any CSS file or header
up vote
image I ever had to load. It takes a "monolithic kernel" sort of approach to a Javascript
0 down
library, which is probably a large factor in its success - it includes everything you'd
vote
want in one place rather than making it more modular.

It's not a huge complaint. jQuery is very powerful and robust. But I brought this up because
the original question seems to assume that jQuery could only be improved by adding more
features to it. I disagree - jQuery has reached a maturity level where lack of features is no
longer one of its major drawbacks.

answered Mar 18 at 3:29

link|edit|flag
thomasrutter
11.6k2145
I never thought of any unnecessary features already present in jQuery, thanks for pointing
me in that direction. – Rachel Mar 18 at 3:33
There are never different ways to order arguments, some of them are just optional and you
will often see options hashes. IMO that is the only sane way of doing things, the alternative
tends to be fairly unreadable code, even if the documentation becomes more straight
forward. – Matt Briggs Mar 18 at 3:47
I struggled with my choice of words I think. When I said different ways to order arguments
I meant that many methods could be given different combinations of arguments to achieve
the same thing, or sometimes even adding arguments would distinctly change behaviour.
Such as, including an "options" object vs listing the same options as separate arguments, or
adding an extra argument to make the method change from a getter to a setter.
– thomasrutter Mar 21 at 6:22
If the question is "Should I use a library for javascript?" The answer is an unequivocal yes.
The worst thing about javascript is the differing implementations, and using a js library will
dramatically mitigate that problem. There hasn't been much professional javascript work done
without using some sort of library since around 2005 or so when prototype hit.

If the question is more "What are the relative strengths of JQuery?", here are some points

• It is only a dom abstraction library. If you need to do more then small animations or
style changes, jquery by itself is not enough.

• That being said, that is all most people want to do, which is a big part of why it is so
popular. The problem with extreme popularity is people who are not serious javascript
developers tend to think javascript == jquery, which it really isn't.
up vote
0 down
• Basically, if you are adding some trivial behavior to a page, jquery is fantastic. If you
vote
are building a "RIA" webapp, you want to look more at dojo (or even sproutcore,
depending on how far you want to go). If you are somewhere in the middle, MooTool
will do everything you need.

• If you are the type of person that would rather build their own toolset rather then go
for a "Everything and the kitchen sink" type framework, jquery + underscore +
backbone will take you pretty far.

answered Mar 18 at 3:38

link|edit|flag
Matt Briggs
11.4k11039
It's more than 'just' a dom abstraction library for 'small trivial behaviors'. Certainly Dojo or
ExtJS or other libraries may be better suited for a particular project, but jQuery is much
more than just making animations. – DA Mar 18 at 3:47
@DA: Ok, it is dom library with a few utility methods thrown in, where it is comprehensive
and really shines is in dom manipulation. Ext is a a full GUI toolkit, but it isn't a
comprehensive library either. Things like Dojo and sproutcore are full platforms that cover
everything you need to write a javascript application. JQuery is useful for sites, or for
webapps where the majority of the work is done server side. – Matt Briggs Mar 18 at 3:51
1

rebecca murphy did a great job talking about this here blog.rebeccamurphey.com/on-jquery-
large-applications (although backbone didnt exist when she wrote it). Personally, I prefer a
"hodgepodge of tools" when I can get away with it rather then massive frameworks. But
even though I would rather tie all the pieces together that I need, I think it would be a lie to
say that it is in any way more productive to wire all that stuff together then use something
appropriate for the problem in the first place. – Matt Briggs Mar 18 at 3:56
That's a good blog post. And I agree. That said, I'd say jQuery, in the enterprise, 75% of the
time, is going to be an improvement over what is currently there (often a mish-mash of
antiquated active-x controls, bloated paid-for JS components, way too much being handled
server-side, Flash, browser-centric code, etc.). I've been a part of projects where Dojo was
spec'd before realizing a) all they really needed was some nice UI improvements and b) they
couldn't find anyone that had used it. ;) – DA Mar 18 at 4:07

PHP
MP (Windows, Apache, MySQL, PHP/Perl/Python)
WAMP is a form of mini-server that can run on almost any Windows Operating System. WAMP
includes Apache 2, PHP 5 (SMTP ports are disabled), and MySQL (phpMyAdmin and SQLitemanager
are installed to manage your databases) preinstalled.

An icon on the taskbar tray displays the status of WAMP, letting you know if; a) WAMP is running but
no services are opened (the icon will appear red), b) WAMP is running and one service is opened (the
icon will appear yellow) or c) WAMP is running with all services opened (the icon will appear white).
Apache and MySQL are considered to be services (they can be disabled by left-clicking on the taskbar
icon, guiding your cursor over the service you wish to disable and selecting "Stop Service").

The files/web pages that are hosted on your WAMP server can be accessed by typing http:/localhost or
http://127.0.0.1/ in the address bar of your web browser. WAMP must be running in order to access
either of the above addresses.
WA
Read more: http://wiki.answers.com/Q/What_is_wamp_server#ixzz1JspUh6qQ
Do I need a website? (-)
A website is not a luxury in today’s competitive markets. It is simply a must. Without a good
website your business will always be a step behind your competition.
1. What is the difference between a freelancer & a reputable web development company? (-)
A freelancer is a self-employed web designer or developer who works independently and
directly with their clients, while a reputable design & Development firm is an established
company that provides complete solutions for clients. The main advantage of using a firm is that
the range of services they offer is much greater and their expertise in each of these services is
usually a lot higher due to the fact that they have a team of people behind them. Furthermore, in
dealing with a firm, you have the peace of mind knowing that your developers will complete
their assigned tasks on time and within the budget and will be there tomorrow when you need to
take your web projects to the next level. One main problem a lot of clients have faced in the past
when dealing with freelancers is the lack of professionalism.
2. What constitute a professional web layout? (-)
A professional web layout is not simply a layout that looks good. It also has to use proper color
schemes, be functional and achieve its task of generating income or increasing the awareness of
your products or services well.
3. Is hosting and domain registration included in web development? (-)
Domain registration and web hosting is NOT commonly included in the web development
process. However a good development firm will be there to consult you on what domains would
be better and guide you through the process in order to achieve the maximum return on the
investment you have made in purchasing a website.
4. What is the difference between Dedicated (Private) hosting vs. Shared Hosting? (-)
Dedicated hosting is when your site is the only site on a given physical server. You may either
use a third-party hosting company or opt to host your site on a server on site (not-
recommended). Shared hosting is when your site is hosted within a shared environment. In this
case, multiple websites will be hosted by the provider on a given physical server. The shared
solution is much cheaper than the dedicated solution. However the drawback of the shared
environment is that you are compromising on performance and security.
5. What are LAMP Servers? (-)
LAMP is an acronym for the Linux (operating system), Apache (web server), MySQL Database
& Perl, PHP, or Python (scripting languages) used in combination to create a server. These
softwares were not written exclusively to be used together, but their combined solution is very
popular in todays servers. The main advantage of a LAMP server is that it uses all open source
technologies that are free of charge. At the same time the LAMP is perfectly suitable for use in
small businesses all the way up to large enterprise solutions.
6. What are Microsoft Servers? (-)
Microsoft web server is one that is setup on the Microsoft server 2003 operating system.
Microsoft products, being proprietary software, are quite costly, and many clients prefer to
implement the LAMP server. For more information on Microsoft Servers please refer to the
Microsoft website.
7. Where can I find the right hosting paDo I need a website? (-)
A website is not a luxury in today’s competitive markets. It is simply a must. Without a good
website your business will always be a step behind your competition.
1. What is the difference between a freelancer & a reputable web development company? (-)
A freelancer is a self-employed web designer or developer who works independently and
directly with their clients, while a reputable design & Development firm is an established
company that provides complete solutions for clients. The main advantage of using a firm is that
the range of services they offer is much greater and their expertise in each of these services is
usually a lot higher due to the fact that they have a team of people behind them. Furthermore, in
dealing with a firm, you have the peace of mind knowing that your developers will complete
their assigned tasks on time and within the budget and will be there tomorrow when you need to
take your web projects to the next level. One main problem a lot of clients have faced in the past
when dealing with freelancers is the lack of professionalism.
2. What constitute a professional web layout? (-)
A professional web layout is not simply a layout that looks good. It also has to use proper color
schemes, be functional and achieve its task of generating income or increasing the awareness of
your products or services well.
3. Is hosting and domain registration included in web development? (-)
Domain registration and web hosting is NOT commonly included in the web development
process. However a good development firm will be there to consult you on what domains would
be better and guide you through the process in order to achieve the maximum return on the
investment you have made in purchasing a website.
4. What is the difference between Dedicated (Private) hosting vs. Shared Hosting? (-)
Dedicated hosting is when your site is the only site on a given physical server. You may either
use a third-party hosting company or opt to host your site on a server on site (not-
recommended). Shared hosting is when your site is hosted within a shared environment. In this
case, multiple websites will be hosted by the provider on a given physical server. The shared
solution is much cheaper than the dedicated solution. However the drawback of the shared
environment is that you are compromising on performance and security.
5. What are LAMP Servers? (-)
LAMP is an acronym for the Linux (operating system), Apache (web server), MySQL Database
& Perl, PHP, or Python (scripting languages) used in combination to create a server. These
softwares were not written exclusively to be used together, but their combined solution is very
popular in todays servers. The main advantage of a LAMP server is that it uses all open source
technologies that are free of charge. At the same time the LAMP is perfectly suitable for use in
small businesses all the way up to large enterprise solutions.
6. What are Microsoft Servers? (-)
Microsoft web server is one that is setup on the Microsoft server 2003 operating system.
Microsoft products, being proprietary software, are quite costly, and many clients prefer to
implement the LAMP server. For more information on Microsoft Servers please refer to the
Microsoft website.
7. Where can I find the right hosting package for me? (-)
Hosting is an interesting issue that needs some serious thought put into it. The most important
advice you can get in terms of hosting will come from your web developer. Once you have a
clear idea of the functions of your website and the type of bandwidth requirements you will
have, you can decide whether to opt for a shared or dedicated solution. Once this decision is
made you must either select a windows or Linux (LAMP) server. This decision has to be done
before your site is developed. Your website will be built according to the hosting environment
that you have selected. Since Microsoft is proprietary software while LAMP is open source, you
will find that LAMP solutions are generally much cheaper than the Microsoft solutions.
8. What is FLASH and how does it work? (-)
Flash, in a nutshell, is the common term for Adobe Flash formerly known as Macromedia Flash.
This refers to both the player (free to download) and the authoring software used to create the
high impact multimedia animations that are viewed with this player. For more information
please read the full resource on flash.
9. How much will this cost and what guarantees do I get? (-)
The key to building an effective website within budget restrictions is good planning and a great
developer. We can assist you from the beginning of your planning process to the completion of
your website in order to maintain solutions that strictly adhere to your budget restrictions and to
avoid any surprises that could come up in the future. We also provide our clients with a
satisfaction guarantee giving you peace of mind. Lastly, we offer our clients an initial free
consultation and sample design mockup free of charge with no obligation. Therefore, if you are
prepared to take your business to the next level, and improve your online marketing, contact us
today, and we will be happy to be of service.
8.
ckage for me? (-)
Hosting is an interesting issue that needs some serious thought put into it. The most important
advice you can get in terms of hosting will come from your web developer. Once you have a
clear idea of the functions of your website and the type of bandwidth requirements you will
have, you can decide whether to opt for a shared or dedicated solution. Once this decision is
made you must either select a windows or Linux (LAMP) server. This decision has to be done
before your site is developed. Your website will be built according to the hosting environment
that you have selected. Since Microsoft is proprietary software while LAMP is open source, you
will find that LAMP solutions are generally much cheaper than the Microsoft solutions.
9. What is FLASH and how does it work? (-)
Flash, in a nutshell, is the common term for Adobe Flash formerly known as Macromedia Flash.
This refers to both the player (free to download) and the authoring software used to create the
high impact multimedia animations that are viewed with this player. For more information
please read the full resource on flash.
10.How much will this cost and what guarantees do I get? (-)
The key to building an effective website within budget restrictions is good planning and a great
developer. We can assist you from the beginning of your planning process to the completion of
your website in order to maintain solutions that strictly adhere to your budget restrictions and to
avoid any surprises that could come up in the future. We also provide our clients with a
satisfaction guarantee giving you peace of mind. Lastly, we offer our clients an initial free
consultation and sample design mockup free of charge with no obligation. Therefore, if you are
prepared to take your business to the next level, and improve your online marketing, contact us
today, and we will be happy to be of service.
<!--
google_ad_client = "pub-0048225869877719";
google_ad_slot = "3851696716";
google_ad_width = 728;
google_ad_height = 90;
//-->Building a LAMP Server
by Bruce Timberlake
This document will walk you through the installation of what is known as a "LAMP" system: Linux,
Apache, MySQL and PHP. Depending on who you talk to, the P also stands for Perl or Python, but
in general, it is assumed to be PHP. I run CentOS on my servers; these directions were written for
CentOS/Red Hat/Fedora. I have had requests for SuSE (another RPM-based distribution) as well as
Debian-based systems, so I will work on variants of these directions for those distributions in the future
(donations might help speed that process up!). The main difference between the distributions is in the
paths to the startup scripts. Red Hat systems used /etc/rc.d/init.d and SuSE uses
/etc/init.d.
I have my first translation! Belorussian provided by Ucallweconn -- thank you very much!
If you need an SSL-enabled server, I have a LAMP with SSL howto as well.
I designed this document so you can just copy/paste each line or block of commands into your shell
session and it will "just work" for you. This avoids tedious typing, and the inevitable typos or missed
steps that result. These commands work properly via copy/paste. If you are having problems and
you are not using copy/paste, please re-check your typing before sending me an email saying "It
doesn't work."
Text in a "command" box like this one is a literal Linux commandline, and should be typed or pasted
exactly as written.
One note: many many people have followed these directions as written, and have not had any
problems.
If you are having a problem, chances are it's something you are doing (or not doing), something
different
about your computer, etc.

It is probably NOT this procedure. :)


Initial Steps
PLEASE BE AWARE THAT A SOURCE-BASED INSTALLATION LIKE THIS ONE IS NOT
NEEDED FOR A BASIC LAMP SERVER! You should only be doing a source-based installation if
you need to alter settings in one or more components of the LAMP stack (e.g., you need a feature in
PHP that isn't in the default RPM). If you are just getting started with LAMP, use the binaries provided
by your distribution - it is much simpler, and a lot easier to upgrade later.
Most out-of-the-box Red Hat Linux installations will have one or more of the LAMP components
installed via RPM files. I personally believe in installing things like this from source, so I get the most
control over what's compiled in, what's left out, etc. But source code installs can wreak havoc if
overlaid on top of RPM installs, as the two most likely won't share the same directories, etc.
If you have not yet installed your Linux OS, or just for future reference, do not choose to install
Apache, PHP, or MySQL during the system installation. Then you can immediately proceed with the
source-based install listed here.
Note: to install applications from source code, you will need a C++ compiler (gcc++) installed. This is
generally taken care of, but I've had enough queries about it that I've added this note to avoid getting
more! You can use your distribution's install CDs to get the proper version of the compiler. Or, if you
are using an RPM based distro, you can use a site like http://www.rpmfind.net/ to locate the correct
RPM version for your system. (You will obviously not be able to use/rebuild a source RPM to get the
compiler installed, as you need the compiler to build the final binary RPM!) On a Fedora system, you
can do this command:
su - root
yum install gcc gcc-c++
Log in as root
Because we will be installing software to directories that "regular" users don't have write access to, and
also possibly uninstalling RPM versions of some applications, we'll log in as root. The only steps that
need root access are the actual installation steps, but by doing the configure and make steps as
root, the source code will also be inaccessible to "regular" users.
If you do not have direct access (via keyboard) to the server, PLEASE use Secure Shell (SSH) to
access the server and not telnet!! Whenever you use telnet (or plain FTP for that matter), you are
transmitting your username, password, and all session information in "plain text". This means that
anyone who can access a machine someplace between your PC and your server can snoop your session
and get your info. Use encryption wherever possible!
su - root
Remove RPM Versions of the Applications
Before we start with our source code install, we need to remove all the existing RPM files for these
products. To find out what RPMs are already installed, use the RPM query command:
rpm -qa
in conjunction with grep to filter your results:
rpm -qa | grep -i apache
rpm -qa | grep -i httpd
rpm -qa | grep -i php
rpm -qa | grep -i mysql
The 'httpd' search is in case you have Apache2 installed via RPM.
To remove the RPMs generated by these commands, do
rpm -e filename
for each RPM you found in the query. If you have any content in your MySQL database already, the
RPM removal step should not delete the database files. When you reinstall MySQL, you should be able
to move all those files to your new MySQL data directory and have access to them all again.
Get the Source Code for all Applications
We want to put all our source code someplace central, so it's not getting mixed up in someone's home
directory, etc.
cd /usr/local/src
One way application source code is distributed is in what are known as "tarballs." The tar command
is usually associated with making tape backups - tar stands for Tape ARchive. It's also a handy way
to pack up multiple files for easy distribution. Use the man tar command to learn more about how to
use this very flexible tool.
At the time of updating this, the current versions of all the components we'll use are:
MySQL - 4.1.22
Apache - 1.3.37
PHP - 4.4.6
Please note: these are the only versions of these that I have set up myself, and verified these steps
against. If you use another version of any component, especially a newer version, this HOWTO may
not be accurate, and I won't be able to provide free support under those circumstances. Paid support and
assistance is always available however.
wget http://www.php.net/distributions/php-4.4.6.tar.gz
wget http://apache.oregonstate.edu/httpd/apache_1.3.37.tar.gz
There may be an Apache mirror closer to you - check their mirror page for other sources. Then insert
the URL you get in place of the above for the wget command.
For MySQL, go to http://www.mysql.com/ and choose an appropriate mirror to get the newest MySQL
version (v4.1.22).
Unpack the Source Code
tar zxf php-4.4.6.tar.gz
tar zxf apache_1.3.37.tar.gz
tar zxf mysql-4.1.22.tar.gz
This should leave you with the following directories:
/usr/local/src/php-4.4.6
/usr/local/src/apache_1.3.37
/usr/local/src/mysql-4.1.22
Build and Install MySQL
First, we create the group and user that "owns" MySQL. For security purposes, we don't want MySQL
running as root on the system. To be able to easily identify MySQL processes in top or a ps list,
we'll make a user and group named mysql:
groupadd mysql
useradd -g mysql -c "MySQL Server" mysql
If you get any messages about the group or user already existing, that's fine. The goal is just to make
sure we have them on the system.
What the useradd command is doing is creating a user mysql in the group mysql with the "name"
of MySQL Server. This way when it's showed in various user and process watching apps, you'll be able
to tell what it is right away.
Now we'll change to the "working" directory where the source code is, change the file 'ownership' for
the source tree (this prevents build issues in reported in some cases where the packager's username was
included on the source and you aren't using the exact same name to compile with!) and start building.
The configure command has many options you can specify. I have listed some fairly common ones; if
you'd like to see others, do:
./configure --help | less
to see them all. Read the documentation on the MySQL website for a more detailed explanation of each
option.
cd /usr/local/src/mysql-4.1.22

chown -R root.root *

make clean
./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--disable-maintainer-mode \
--with-mysqld-user=mysql \
--with-unix-socket-path=/tmp/mysql.sock \
--without-comment \
--without-debug \
--without-bench
18-Jul-2005: If you are installing MySQL 4.0.x on Fedora Core 4, there is a problem with
LinuxThreads that prevents MySQL from compiling properly. Installing on Fedora Core 3 works fine
though. Thanks to Kevin Spencer for bringing this to my attention. There is a workaround listed at
http://bugs.mysql.com/bug.php?id=9497. Thanks to Collin Campbell for that link. Another solution can
be found at http://bugs.mysql.com/bug.php?id=2173. Thanks to Kaloyan Raev for that one.
Now comes the long part, where the source code is actually compiled and then installed. Plan to get
some coffee or take a break while this step runs. It could be 10-15 minutes or more, depending on your
system's free memory, load average, etc.
make && make install
Configure MySQL
MySQL is "installed" but we have a few more steps until it's actually "done" and ready to start. First
run the script which actually sets up MySQL's internal database (named, oddly enough, mysql).
./scripts/mysql_install_db
Then we want to set the proper ownership for the MySQL directories and data files, so that only
MySQL (and root) can do anything with them.
chown -R root:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data
Copy the default configuration file for the expected size of the database (small, medium, large, huge)
cp support-files/my-medium.cnf /etc/my.cnf
chown root:sys /etc/my.cnf
chmod 644 /etc/my.cnf
If you get an error message about the data directory not existing, etc., something went wrong in the
mysql_install_db step above. Go back and review that; make sure you didn't get some sort of
error message when you ran it, etc.
Now we have to tell the system where to find some of the dynamic libraries that MySQL will need to
run. We use dynamic libraries instead of static to keep the memory usage of the MySQL program itself
to a minimum.
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
ldconfig
Now create a startup script, which enables MySQL auto-start each time your server is restarted.
cp ./support-files/mysql.server /etc/rc.d/init.d/mysql
chmod +x /etc/rc.d/init.d/mysql
/sbin/chkconfig --level 3 mysql on
Then set up symlinks for all the MySQL binaries, so they can be run from anyplace without having to
include/specify long paths, etc.
cd /usr/local/mysql/bin
for file in *; do ln -s /usr/local/mysql/bin/$file /usr/bin/$file; done
MySQL Security Issues
First, we will assume that only applications on the same server will be allowed to access the database
(i.e., not a program running on a physically separate server). So we'll tell MySQL not to even listen on
port 3306 for TCP connections like it does by default.
Edit /etc/my.cnf and uncomment the
skip-networking
line (delete the leading #).
For more security info, check out this MySQL security tutorial.
Start MySQL
First, test the linked copy of the startup script in the normal server runlevel start directory, to make sure
the symlink was properly set up:
cd ~
/etc/rc.d/rc3.d/S90mysql start
If you ever want to manually start or stop the MySQL server, use these commands:
/etc/rc.d/init.d/mysql start
/etc/rc.d/init.d/mysql stop
Let's "test" the install to see what version of MySQL we're running now:
mysqladmin version
It should answer back with the version we've just installed...
Now we'll set a password for the MySQL root user (note that the MySQL root user is not the same
as the system root user, and definitely should not have the same password as the system root
user!).
mysqladmin -u root password new-password
(obviously, insert your own password in the above command instead of the "new-password" string!)
You're done! MySQL is now installed and running on your server. It is highly recommended that you
read about MySQL security and lock down your server as much as possible. The MySQL site has info
at http://www.mysql.com/doc/en/Privilege_system.html.
Test MySQL
To run a quick test, use the command line program mysql:
mysql -u root -p
and enter your new root user password when prompted. You will then see the MySQL prompt:
mysql>
First, while we're in here, we'll take care of another security issue and delete the sample database test
and all default accounts except for the MySQL root user. Enter each of these lines at the mysql>
prompt:
drop database test;
use mysql;
delete from db;
delete from user where not (host="localhost" and user="root");
flush privileges;
As another security measure, I like to change the MySQL administrator account name from root to
something harder to guess. This will make it that much harder for someone who gains shell access to
your server to take control of MySQL.
MAKE SURE YOU REMEMBER THIS NEW NAME, AND USE IT WHEREVER
YOU SEE "root" IN OTHER DIRECTIONS, WEBSITES, ETC.

ONCE YOU DO THIS STEP, THE USERNAME "root" WILL CEASE TO


EXIST IN YOUR MYSQL CONFIGURATION!
update user set user="sqladmin" where user="root";
flush privileges;
Now, on with the "standard" testing... First, create a new database:
create database foo;
You should see the result:
Query OK, 1 row affected (0.04 sec)

mysql>
Delete the database:
drop database foo;
You should see the result:
Query OK, 0 rows affected (0.06 sec)

mysql>
To exit from mysql enter \q:
\q
Build and Install Apache (with DSO support)
The advantage to building Apache with support for dynamically loaded modules is that in the future,
you can add functionality to your webserver by just compiling and installing modules, and restarting
the webserver. If the features were compiled into Apache, you would need to rebuild Apache from
scratch every time you wanted to add or update a module (like PHP). Your Apache binary is also
smaller, which means more efficient memory usage.
The downside to dynamic modules is a slight performance hit compared to having the modules
compiled in.
cd /usr/local/src/apache_1.3.37
make clean

./configure \
--prefix=/usr/local/apache \
--enable-shared=max \
--enable-module=rewrite \
--enable-module=so

make && make install


Build and Install PHP
This section has only been tested with PHP v4.x. If you are trying to build PHP 5.x, I do not have
experience with this yet, and do not provide free support for you to get it working. Please note that
there are many options which can be selected when compiling PHP. Some will have library
dependencies, meaning certain software may need to be already installed on your server before you
start building PHP. You can use the command
./configure --help | less
once you change into the PHP source directory. This will show you a list of all possible configuration
switches. For more information on what these switches are, please check the PHP website
documentation.
cd /usr/local/src/php-4.4.6

./configure \
--with-apxs=/usr/local/apache/bin/apxs \
--disable-debug \
--enable-ftp \
--enable-inline-optimization \
--enable-magic-quotes \
--enable-mbstring \
--enable-mm=shared \
--enable-safe-mode \
--enable-track-vars \
--enable-trans-sid \
--enable-wddx=shared \
--enable-xml \
--with-dom \
--with-gd \
--with-gettext \
--with-mysql=/usr/local/mysql \
--with-regex=system \
--with-xml \
--with-zlib-dir=/usr/lib

make && make install

cp php.ini-dist /usr/local/lib/php.ini
I like to keep my config files all together in /etc. I set up a symbolic link like this:
ln -s /usr/local/lib/php.ini /etc/php.ini
Then I can just open /etc/php.ini in my editor to make changes.
Recommended reading on securing your PHP installation is this article at SecurityFocus.com.
Edit the Apache Configuration File (httpd.conf)
I like to keep all my configuration files together in /etc, so I set up a symbolic link from the actual
location to /etc:
ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf
Now open /etc/httpd.conf in your favorite text editor, and set all the basic Apache options in
accordance with the official Apache instructions (beyond the scope of this HOWTO).
Also recommended is the article on securing Apache.
To ensure your PHP files are properly interpreted, and not just downloaded as text files, remove the #
at the beginning of the lines which read:
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
If the AddType lines above don't exist, manually enter them (without the leading # of course) after the
line
AddType application/x-tar .tgz
or anyplace within the <IfModule mod_mime.c> section of httpd.conf.
If you wish to use other/additional extensions/filetypes for your PHP scripts instead of just .php, add
them to the AddType directive:
AddType application/x-httpd-php .php .foo
AddType application/x-httpd-php-source .phps .phtmls
An example: if you wanted every single HTML page to be parsed and processed like a PHP script, just
add .htm and .html:
AddType application/x-httpd-php .php .htm .html
There will be a bit of a performance loss if every single HTML page is being checked for PHP code
even if it doesn't contain any. But if you want to use PHP but be "stealthy" about it, you can use this
trick.
Add index.php to the list of valid Directory Index files so that your "default page" in a directory can
be named index.php.
<IfModule mod_dir.c>
DirectoryIndex index.php index.htm index.html
</IfModule>
You can add anything else you want here too. If you want foobar.baz to be a valid directory index
page, just add the .baz filetype to the AddType line, and add foobar.baz to the
DirectoryIndex line.
Start Apache
We want to set Apache up with a normal start/stop script in /etc/rc.d/init.d so it can be auto-
started and controlled like other system daemons. Set up a symbolic link for the apachectl utility
(installed automatically as part of Apache):
ln -s /usr/local/apache/bin/apachectl /etc/rc.d/init.d/apache
Then set up auto-start for runlevel 3 (where the server will go by default):
ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S90apache
Then start the daemon:
/etc/rc.d/init.d/apache start
You can check that it's running properly by doing:
ps -ef
and look for the httpd processes.

A note from the author


I hope you find this guide, HOWTO, tutorial -- call it what you will -- useful. I also hope it saves you
some time. If you do find it useful, I would be grateful if you could make a donation using the button
below (and if it wasn't useful, mail me and tell me why not).
I receive a great deal of mail as a result of this HOWTO, much of it asking me to solve various LAMP-
related problems. Please bear in mind that the money that puts food on my family's table comes from
the consultancy work that I do. If you would like help with any of the points discussed in this article,
mail me and tell me what that help is worth to you. Quote any amount you like, and if I'm able to help
you out, you can make a PayPal donation by way of thanks. Fair enough?
<!--
google_ad_client = "pub-0048225869877719";
google_ad_slot = "3851696716";
google_ad_width = 728;
google_ad_height = 90;
//-->

If you find this page useful, please consider making a secure donation:

This work is licensed under a Creative Commons License


and is copyright (c) 2002-2011 by Bruce Timberlake.
css

Cascading Style Sheets or CSS are an important way to control how your Web pages look. CSS can
control the fonts, text, colors, backgrounds, margins, and layout. But it can be very difficult to learn
CSS, and some people would rather not learn it. There are some very good reasons to learn CSS so that
you can control your Web pages look.

Modify your site designs to look how you want them to look
It's easy to take a free Web template and build a website. But these templates can be very plain or
common. So your website will look like every other site on the internet. By learning CSS you can
modify pre-built templates so that they have your colors and styles. Thus you'll have a customized
website without a lot of effort.

zSB(3,3)Sponsored Links
Drop-Down MenusCreate cross-browser & feature-rich menus-No programming skills needed!
www.likno.com
Reunite With Your FriendsFind All Your Old Friends & Get In Touch Instantly. Join Orkut Today!
www.google.com/Orkut
Are You a Designer ?Get an Opportunity to Work On Creative Designs. Apply Now!
www.ivistasolutions.com

Save money
There are a lot of Web designers who will build your website or your CSS for you. But paying
someone else to maintain your website or blog can get expensive, even if you only have them create the
designs and you then maintain the content. Knowing how to modify the CSS will save you money
when you find small problems that you can fix yourself. And as you practice, you'll be able to fix
bigger and bigger problems.

Earn money
Once you know CSS really well, you can sell these services to other websites. And if you're looking to
become a freelance Web designer, you won't get far if you don't know CSS.
Redesign your site more quickly
Many older websites that were built without CSS are very difficult to redesign. But once a site is built
with CSS hooks it can be redesigned very quickly. Changing things like the colors and backgrounds
can change how a site looks with very little effort. In fact, many sites now put up special versions of
their sites for special occasions and they can do this because it only takes a few hours to create an
alternate style sheet for the occasion.

Build more diverse websites


CSS gives you the opportunity to create sites that look very different from page to page, without a lot
of extensive coding. For example, many sites now do slight color variations on the different sections of
the site. Using page IDs, you can change the CSS for each section and use the same HTML structure
for each section. The only thing that changes is the content and the CSS.

\
CSS style sheets allow better control pf web pages during their development. Cascading Style Sheets
or CSS are style sheets that are linked into the other documents of your site and let’s you take control
of a wide variety of aspects of your site.
While the (x)HTML of your site deals with the actual content and structure of your website, one CSS
file has have power over the fonts, colors, positioning, styling of the data for the entire website. Doing
this helps avoid code bloat in your pages, makes them load faster, render across different media types,
and the benefits go on and on….
There are many benefits to using CSS, and they are listed below.
- Web pages load easier and they use less bandwidth: many web developers like to use CSS style
sheets because they don’t use as much bandwidth as table layouts do. The sheets are downloaded once
and stored in cache memory so pages will load quicker.
- CSS goes well with HTML: when HTML is added to CSS they make well-built, technical sites.
- CSS will let you position components anywhere on the page: developers really like CSS because
they can put elements anywhere they feel like. It is easier for them to make changes on sites they are
working on. CSS decreases the risks that deal with website maintenance.
- CSS is compatible with every web browser: it is mixed with HTML or XHTML to produce web
applications because it is compatible with all kind of web browsers.
- CSS may be used to produce print friendly web pages: web developers also like to use CSS because
they can produce print friendly pages. This means the items like images or colors which used to be
difficult to print are now printed up simply.
- CSS lest users customize web pages: lots of current websites let users change the layout or theme of
the site without changing the content. Because CSS sheets are stowed externally, the users can make
changes on their own. Items like the style of font are now able to be changed.
- Your website will be highlighted in the search engines easier: developers like CSS because they can
put components anywhere on the page. This positioning assists in launching the key contents first so
the spiders can find them. The HTML code of CSS is simpler and it will make the spider’s job easier
by getting them to the real content quicker.
- CSS lets the web pages stay consistent: every expression and text will have characteristics from the
external style sheets. Developers don’t need to fret about the characteristic changes in the elements
because they have the ability to be changed at any time with the CSS.
- CSS makes content moveable: with CSS there can be many style sheets for various media. This lets
you have some give when displaying the content. You can also change the characteristics of the
components in the site to fit your situation.
The point of CSS is to make things easier on your website and let you have control over many
components on the site. You can use these advantages to have more user-friendly pages that search
engines also embrace well.
If you need help understanding CSS more, or would like to have your site evalueated pleae contact us
at 248-582-9210, online or comment to this post.
Why Valid Html Code Is Important To Your
Web Site
Originally Published: September 28, 2004
Editor's Note: For more information about indexing and spidering problems see site
indexing problems and why search engine spiders miss pages. Consider hiring a
professional webmaster to make your site HTML compliant.

Many webmasters overlook a very important aspect of web site promotion: the validity of the HTML
code.

What is valid HTML code?


Most web pages are written in HTML. As for every language, HTML has its own grammar, vocabulary
and syntax, and every document written in HTML is supposed to follow these rules.
Like any language, HTML is constantly changing. As HTML has become a relative complex language,
it's very easy to make mistakes. HTML code that is not following the official rules is called invalid
HTML code.

Why is valid HTML code important?


Search engines have to parse the HTML code of your web site to find the relevant content. If your
HTML code contains errors, search engines might not be able to find everything on the page.
Search engine crawler programs obey the HTML standard. They only can index your web site if it is
compliant to the HTML standard. If there's a mistake in your web page code, they might stop crawling
your web site and they might lose what they've collected so far because of the error.
Although most major search engines can deal with minor errors in HTML code, a single missing
bracket in your HTML code can be the reason if your web page cannot be found in search engines.
If you don't close some tags properly, or if some important tags are missing, search engines might
ignore the complete content of that page.

How can you check the validity of your HTML code?


Fortunately, there are free services that allow you to check the validity of your HTML code. The most
common HTML validator is the W3 HTML Validator.
It is a service that checks HTML documents for conformance to W3C HTML and XHTML
recommendations and other HTML standards.
Just enter the address of a web page on this page and the validator will tell you what errors are on that
page.
Although not all HTML errors will cause problems for your search engine rankings, some of them can
keep web spiders from indexing your web pages.
Valid HTML code makes it easier for search engine spiders to index your site so you should make sure
that at least the biggest mistakes in your HTML code are corrected.

jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event
handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change
the way that you write JavaScript.

The Benefits of Using jQuery


Fri Aug 27, 2010
What is jQuery?
jQuery is a new kind of JavaScript library that makes it easier for designers to control HTML events,
animations, and other interactions on a web page by adding and removing style sheet handlers. These
handlers are either HTML classes or IDs; the handlers are specified in a style sheet, which then tells the
browser how to position and style HTML elements. With jQuery, web designers can quickly and easily
write these handlers to the document on specified events, such as a mouse click or a hover, and when
we do so, it will change the style and/or position of that element. jQuery also simplifies AJAX--the
client-side web development techniques for creating interactive web applications. AJAX applications
can retrieve data from the server quietly in the background without interfering with how a web page
displays or behaves. AJAX uses HTML and CSS (cascading style sheets) to change style and layout
via user interaction and input.
Why is jQuery so great?
One of the major and most important benefits of using jQuery versus other JavaScript libraries or
interactive applications is that it does not take away from the visibility of web page content from the
search engines. The problem with other applications (such as Flash), is that your content is lost if
JavaScript is turned off in the user’s browser. Even though some of these other applications are getting
better at being picked up by the search engines, they’re still not able to compete with the functionality
of jQuery. jQuery is also very small, clean code that won’t bog down the loading time of web pages
like Flash and other applications do.
Benefits of using jQuery:
• Five lines of jQuery are equivalent to 25 lines of conventional JavaScript code, which relates to
the least amount of “bloat” or extra, unnecessary code. This means smaller files and faster
loading web pages.
• Advantage of an abundance of plug-ins that make creating special “Flash-like” effects simple
and fast for website developers; backed by a large, helpful support community to quickly
remedy any bug issues.
• Easy implementation for web developers in comparison to other applications.
• Detailed documentation and useful examples for using jQuery on its website.
• Works in all browsers and is the most popular JavaScript library currently being used.
• jQuery is free, open source software.
• Straightforward to produce powerful and dynamic websites.
• Web page elements display even if JavaScript is disabled in the browser.
• Simplifies AJAX.
• Commands can be “chained” so that the result of one command can then control others.
• Has a “built-in” set of animation applications that can also be used as commands.
• Makes basic web pages become really interesting interactive pages with minimal keystrokes.
• Large software companies, like Microsoft, supports using jQuery in their applications, such as
Visual Studio, as evidence of their support of jQuery’s superior product.
• jQuery can perform all of the fancy animations and transitions as Flash, but in a cleaner,
simpler, and more SEO friendly way.

How does jQuery work?


JavaScript uses jQuery to find all of a specified HTML element, for example, a
tag within a page that has the CSS class of “tick,” and then animate it to slowly scroll, like you would
see in a news ticker. jQuery can also find a HTML element with a specified CSS identification class,
and then retrieve every other sub-element within it and reset the elements to have another specified
CSS class. This could result in alternating styles for HTML elements, like table rows, to alternate the
background color of each row.
Examples of jQuery effects and animations:
jQuery effects and animations are called upon when a user interacts with a HTML element, either by
mouse clicking on the element, hovering over it, pausing on it, etc. These are some of the effects and
animations jQuery can utilize:
• Scroll, fade in, fade out, fade to, zoom, drawer
• Show, hide toggle
• Slide up, slide down, slide toggle
• Stop, queue
• Load, resize, scroll, drag
Examples of jQuery usage:
Web developers use jQuery to make web pages more exciting, interactive, cleaner, and more user
friendly. These are some of the examples of basic jQuery featured plug-ins:
• Photo slideshows
• Photo galleries
• Manipulating images by cropping and resizing
• Tabbed content
• Form validation
• Scrolling or sliding text, for example, news tickers
• Accordion effects
• Tool tips
• Roll-over effects and animations
• Interactive maps
• Fancy menus and navigations
• Advanced animations
• Charts
• Small WYSIWYG editors
• Music and video players
• Background image animations

There really is so much to say about the benefits of using jQuery and making web pages more
interactive and exciting for user experience. The basic advantages alone show us that jQuery is
beneficial to search engine optimization, faster loading web pages, cross-browser compatibility, user
experience, and that it’s typically easy for web developers to implement. jQuery is a wonderful tool
that web developers can now utilize to add a bit of excitement to your website without compromise!

JavaScript frameworks like Script.aculo.us, Prototype or Mootools are very popular. In fact,
there are numerous attempts developing and maintaining a good JavaScript framework that can
be used with ease by those non familiar with this client side scripting language. What my point is
not that the frameworks mentioned above are not good enough; there are lots of people who
swear for them, but my point is that jQuery is something different!
1. No problem if an elements doesn’t exists (needless to check null objects)
2. Incredibly good CSS selector integration
3. Using chains of actions
4. Model-View-Controller + JavaScript architecture (great decoupling, benefits of cohesion)
5. Great community behind: lots of great plugins and helpful support
6. Simple, clean development
7. AJAX just performs great!
8. Tons of tutorials online
9. Lightweight (less than 20 KB)
10.CSS 3 compliant and

jQuery is basically a JavaScript library and it was designed to make the client-side scripting of
HTML more simple. The person responsible for its birth is John Resig at BarCamp NYC in
2006.
It is an open-source software and dual-licensed by MIT License and the GNU General Public License.
Version 2. jQuery has received an enormous success and it is used by 31% of the 10,000 most visited
websites over internet. This makes jQuery the most popular JavaScript library being used today. We
have been sharing jQuery related posts for some time now, so I came up with a post that just defines
this new fashion of developing websites.
Before we go further remember to Subscribe to our Free Rss Feed or Follow us on

Twitter to stay updated with our postings

Introduction

The best thing I like in the syntax is that document navigation is quite easy, the code is also very
compact (their slogan is Write Less, Do More); yet it works great for:
• Creating Animations
• Handling Events
• Selecting DOM Elements
• Developing Ajax Programs
jQuery is excellent for developing dynamic web pages and page elements. It allows the developers to
create plugins that would work on top of the JavaScript library. These capabilities enable the designers
to make abstractions for low-level interactions and animations, and also to create high-level widgets.
Perks

Simplicity
It can be added to any HTML code in using this simple method.
view source
Object 9

print?
1 <head>
2 <script type="text/javascript" src="jquery.js"></script>
3
4 <script type="text/javascript">
5 .....
6 </script>
7 </head>
You can download jQuery from jQuery Download Page

Implementation
There are two basic ways to use jQuery.
1. via the $ function, which can be called the default work method for the jQuery object. $
functions, often called commands, are patchable; so each of them returns a jQuery object.
2. via $.-prefixed functions. These are utility functions which do not work on the jQuery object
per se.
Typically, access and manipulation with multiple DOM nodes begins with the $ function being called
with a CSS selector string, which results in a jQuery object referencing matching elements in the
HTML page.

Plugins
jQuery has got a very well organized architecture. Developers can use it to create their own add-on
code to take its functionality to a whole new level. There are millions of jQuery plugins already
available on internet for free, including Ajax helpers, data grids, XML tools, drag and drop, cookie
handlers…. and the list goes on and on. Probably the best place to download jQuery Plugins is jQuery’s
homepage

Special Effects
Another fancy thing about jQuery is that can create special effects with very little code. Here’s an
example of an onClick Fade Out function:
view source
Object 10

print?
01 <pre><code><!DOCTYPE html>
02 <html>
03 <head>
04 <style>
05 p { font-size:150%; cursor:pointer; }
06 </style>
07 <script src="http://code.jquery.com/jquery-1.4.4.js"></script>
08 </head>
09 <body>
10 <p>
11 If you click on this paragraph
12 you'll see it just fade away.
13 </p>
14 <script>
15 $("p").click(function () {
16 $("p").fadeOut("slow");
17 });
18 </script>
19
20 </body>
21 </html></code></pre>
Now, when you will click this link, it will slowly disappear. You can check this demo and some more
good example tutorials here.
Drawbacks

Quite honestly, there are not many drawbacks, in fact, there are none. It’s just that sometimes one tool
is not suitable in a situation. It’s just a case of appropriateness. There still are a few things that you
should know before you decide to use jQuery on your website.

Use of Selector
jQuery always crosses through all the elements each time you use selectors. This makes the application
dull.
Solution: Cache your selections with some variable(s) if you are using the same selection at multiple
places. And if you are not selecting an element more than once, just don’t cache selection by assigning
it to some variable.

Browser Display
There have been many cases where the code worked fine in one browser, but some properties changed
in the other. Actually this is not a jQuery specific problem, this happens with many JavaScript based
applications, so it is critical that you don’t just test your page in one or two browsers, but in all of them
(at least the four major ones, IE-Firefox-Chrome-Opera).

Conclusion
Simply put, jQuery is great. You can easily perform tasks such as:
• drop down menus
• drag and drop elements
• animations and form validation
All of these with very little coding. Since it synchronizes well with PHP, .Net and most of the other
languages, it is a pretty handy resource.
DRAWBACKS

5 down A big, big drawback is its abstraction hides the "ugly parts" of JavaScript, therefore making
vote learning JS a lot more difficult. This is a problem that plagues the JS community. What
accepted ends up happening is you have designers/developers that can do simple rollovers and
slideshows, but run into big problems once real DOM manipulation comes into play.

Another drawback is not just size, but how amorphous jQuery really is. With each new
browser (most notably Internet Explorer), a fair amount of work is being done behind the
scenes to expand the codebase. This was most evident with IE8, in which a fair amount of
jQuery had to be re-written to at least comply with the newest version of IE. The result is
you have a giant collection of methods and properties (over 200KB since about jQuery
1.5). Even with a wide array of options to compress/cache the files, you're still going to
experience a decent amount of load time (a few seconds on a good connection).

One of those options is through Google's Content Distribution Network (CDN). It can
cache jQuery for you and lead to quicker load times. However, you're now relying on two
sources to operate flawlessly. Recently, Google flubbed one of the new (>= 1.5) versions
of jQuery. This led to some incompatibilities for a few hours and posed problems for
jQueryUI and various plugins. As I said earlier, you're relying on two sources to always
work. Saving your own localized version can mitigate this risk.

I think given proper planning and usage, it can be a boon to most projects. However, I do
emphasize that proper planning needs to be used. First ask yourself (or your team) if flashy
fades and pseudo-tweens are really required for your project. These are the types of things
that should be added last in order to maximize efficiency.

Those are the problems I have on my mind right now. Hopefully, this will be of some aid
to you in the future.

link|edit|flag answered Mar 18 at 3:28


Matt McDonald
1,3321213
Haha this reminds me of a talk we had earlier @Matt McDonald +1 :) – Loktar Mar 18 at
3:30
Care to explain what "real DOM manipulation" would be... in terms of what you can do
that would be better accomplished without jQuery?? – philwinkle Mar 18 at 3:31
@philwinkle, it was more of an observation related to DOM theory. If someone lacks the
understanding of the DOM, manipulation can become troublesome. No library can give
you the knowledge to know how to use the DOM. That has to be learned through time
and effort. – Matt McDonald Mar 18 at 3:34
1

One technique I've seen is to serve your own copy of jQuery, and put a timestamp in the
filename (e.g. "jQuery_20110317.min.js") and tell your web server to set the cache
expiration time for that file to a year. Then your users only load it once per year at most,
unless you post a new version and change the filename. The downside is you have to
change the filename in every <script> tag it's used in. – Mike DeSimone Mar 18 at 3:43
1

"A big, big drawback is its abstraction hides the "ugly parts" of JavaScript" <-- which is
also the major benefit for using it. – DA Mar 18 at 3:46
show 1 more comment

up vote 1 I think it depends on the level of JavaScript expertise we're talking about. If we're talking
down from the beginner through intermediate perspective, the drawback is that it can be a crutch
vote preventing developers from honing their native JS skills (on the other hand, it can also be a
bridge INTO JS development - it certainly has been for me).

Once you become interested in working more in pure JS, the main drawback is that it is
DOM-centric. As your programming becomes more data-focused, the bias towards the
DOM can sometimes get in the way.

It can also get a bit tricky to keep all your code organized as your code gets larger.

I think what I would most like to see going forward is some sort of dependency management
- eg, let my scripts auto-load, or not, any needed plugins and components.

Having said all that, I am definitely a fan of jQuery and it is my JS library of choice. I find
the strengths far outweigh the weaknesses, and that it is improving all the time.
answered Mar 18 at 3:21

link|edit|flag
Philip Schweiger
1506
Have you looked at backbone? IMO for a good js dev, jquery + backbone + underscore +
handlebars can be a really nice "stack" for larger scale work. – Matt Briggs Mar 18 at 4:08
I recently discovered underscore, which is really useful. Have heard of, but not explored,
backbone - will definitely check out that and handlebars! – Philip Schweiger Mar 18 at
13:26
Compared to what? In what context? In and of itself, it's hard to say it has any drawbacks.

But in certain situations, there are some drawbacks:

• it's big. The jQuery library is a hit on your server and something the end-user has to
download. Minimizing, CDN'ing, Caching, etc all help minimize it, but if you're are
looking for super-light-weight JS solution, writing it from scratch will likely get you
a small file size.

• a lot of the DOM CSS manipulation it does isn't necessarily optimized from an
accessibility POV. It's getting better...especially all the ARIA stuff the filament
group is doing
up vote 1
down • not everyone is a fan of jQuery UI. It's good, for sure. But also a bit heavy handed,
vote IMHO.

• it can be a bit confusing if you don't understand some of the basics of JS. It's good to
understand what jQuery is doing behind the scenes at times.

But, honestly, you have to dig to really complain about it. IMHO, jQuery + StackOverflow
has made Web Development fun again. ;o)

answered Mar 18 at 3:39

link|edit|flag
DA
3,574619

up vote Almost nothing, jQuery now matured and have a complete set of javascript functionality
0 down with cross browser support. Out from the jQuery core scope, there are a lots of plugin can be
vote use to extend the feature. If you afraid on trying the new thing like jQuery, simply try it first.
Sure you will not going back to native javascript programming.

link|edit|flag answered Mar 18 at 3:18

CallMeLaNN
457111
See this bugs.jquery.com/roadmap for their to do list. – CallMeLaNN Mar 18 at 3:19
1

That's a pretty naive answer with all things considered. It's not the magical unicorn that
does everything and anything for you. – Matt McDonald Mar 18 at 3:20
yes but based on much projects I experienced in real world, jQuery does not give any
drawback rather than making development fast. – CallMeLaNN Mar 18 at 3:25
1

@Matt McDonald - Or is it? paulirish.com/2009/cornify-easter-egg-with-jquery – havok


Mar 18 at 3:26
@havok: Ha, well done. – Matt McDonald Mar 18 at 3:30
show 2 more comments
The main drawback(other than the fact that it abstracts some key concepts of javascript)
is the fact that is bundles everything, thus the library is going to be inherently large.

Large javascript files = more load time.

Also don't get me wrong, I love jQuery ... I'm just showing you the other side of the story
up vote 0
:)
down vote
answered Mar 18 at 3:25

link|edit|flag
Mike Lewis
9,8491419

For me, any drawbacks with jQuery would not be about what features it's missing, but what
unnecessary features it includes.

• jQuery seems to include so many different ways of doing the same thing. Even within
the same method, there are often different ways to order the arguments.

It means that the documentation seems needlessly complex in places and it's hard to
remember every different way of using some method. It can make it harder to
up vote
understand other people's code if they use different ways of doing the same thing.
0 down
vote
• The codebase just keeps growing. Less than 30Kb gzipped and minified is still
impressive, but it's reaching the size where it's larger than any CSS file or header
image I ever had to load. It takes a "monolithic kernel" sort of approach to a Javascript
library, which is probably a large factor in its success - it includes everything you'd
want in one place rather than making it more modular.

It's not a huge complaint. jQuery is very powerful and robust. But I brought this up because
the original question seems to assume that jQuery could only be improved by adding more
features to it. I disagree - jQuery has reached a maturity level where lack of features is no
longer one of its major drawbacks.

answered Mar 18 at 3:29

link|edit|flag
thomasrutter
11.6k2145
I never thought of any unnecessary features already present in jQuery, thanks for pointing
me in that direction. – Rachel Mar 18 at 3:33
There are never different ways to order arguments, some of them are just optional and you
will often see options hashes. IMO that is the only sane way of doing things, the alternative
tends to be fairly unreadable code, even if the documentation becomes more straight
forward. – Matt Briggs Mar 18 at 3:47
I struggled with my choice of words I think. When I said different ways to order arguments
I meant that many methods could be given different combinations of arguments to achieve
the same thing, or sometimes even adding arguments would distinctly change behaviour.
Such as, including an "options" object vs listing the same options as separate arguments, or
adding an extra argument to make the method change from a getter to a setter.
– thomasrutter Mar 21 at 6:22
up vote If the question is "Should I use a library for javascript?" The answer is an unequivocal yes.
0 down The worst thing about javascript is the differing implementations, and using a js library will
vote dramatically mitigate that problem. There hasn't been much professional javascript work done
without using some sort of library since around 2005 or so when prototype hit.

If the question is more "What are the relative strengths of JQuery?", here are some points

• It is only a dom abstraction library. If you need to do more then small animations or
style changes, jquery by itself is not enough.

• That being said, that is all most people want to do, which is a big part of why it is so
popular. The problem with extreme popularity is people who are not serious javascript
developers tend to think javascript == jquery, which it really isn't.

• Basically, if you are adding some trivial behavior to a page, jquery is fantastic. If you
are building a "RIA" webapp, you want to look more at dojo (or even sproutcore,
depending on how far you want to go). If you are somewhere in the middle, MooTool
will do everything you need.

• If you are the type of person that would rather build their own toolset rather then go
for a "Everything and the kitchen sink" type framework, jquery + underscore +
backbone will take you pretty far.

link|edit|flag answered Mar 18 at 3:38

Matt Briggs
11.4k11039
It's more than 'just' a dom abstraction library for 'small trivial behaviors'. Certainly Dojo or
ExtJS or other libraries may be better suited for a particular project, but jQuery is much
more than just making animations. – DA Mar 18 at 3:47
@DA: Ok, it is dom library with a few utility methods thrown in, where it is comprehensive
and really shines is in dom manipulation. Ext is a a full GUI toolkit, but it isn't a
comprehensive library either. Things like Dojo and sproutcore are full platforms that cover
everything you need to write a javascript application. JQuery is useful for sites, or for
webapps where the majority of the work is done server side. – Matt Briggs Mar 18 at 3:51
1

rebecca murphy did a great job talking about this here blog.rebeccamurphey.com/on-jquery-
large-applications (although backbone didnt exist when she wrote it). Personally, I prefer a
"hodgepodge of tools" when I can get away with it rather then massive frameworks. But
even though I would rather tie all the pieces together that I need, I think it would be a lie to
say that it is in any way more productive to wire all that stuff together then use something
appropriate for the problem in the first place. – Matt Briggs Mar 18 at 3:56
That's a good blog post. And I agree. That said, I'd say jQuery, in the enterprise, 75% of the
time, is going to be an improvement over what is currently there (often a mish-mash of
antiquated active-x controls, bloated paid-for JS components, way too much being handled
server-side, Flash, browser-centric code, etc.). I've been a part of projects where Dojo was
spec'd before realizing a) all they really needed was some nice UI improvements and b) they
couldn't find anyone that had used it. ;) – DA Mar 18 at 4:07

PHP
MP (Windows, Apache, MySQL, PHP/Perl/Python)
WAMP is a form of mini-server that can run on almost any Windows Operating System. WAMP
includes Apache 2, PHP 5 (SMTP ports are disabled), and MySQL (phpMyAdmin and SQLitemanager
are installed to manage your databases) preinstalled.

An icon on the taskbar tray displays the status of WAMP, letting you know if; a) WAMP is running but
no services are opened (the icon will appear red), b) WAMP is running and one service is opened (the
icon will appear yellow) or c) WAMP is running with all services opened (the icon will appear white).
Apache and MySQL are considered to be services (they can be disabled by left-clicking on the taskbar
icon, guiding your cursor over the service you wish to disable and selecting "Stop Service").

The files/web pages that are hosted on your WAMP server can be accessed by typing http:/localhost or
http://127.0.0.1/ in the address bar of your web browser. WAMP must be running in order to access
either of the above addresses.
WA
Read more: http://wiki.answers.com/Q/What_is_wamp_server#ixzz1JspUh6qQ
Do I need a website? (-)
A website is not a luxury in today’s competitive markets. It is simply a must. Without a good
website your business will always be a step behind your competition.
1. What is the difference between a freelancer & a reputable web development company? (-)
A freelancer is a self-employed web designer or developer who works independently and
directly with their clients, while a reputable design & Development firm is an established
company that provides complete solutions for clients. The main advantage of using a firm is that
the range of services they offer is much greater and their expertise in each of these services is
usually a lot higher due to the fact that they have a team of people behind them. Furthermore, in
dealing with a firm, you have the peace of mind knowing that your developers will complete
their assigned tasks on time and within the budget and will be there tomorrow when you need to
take your web projects to the next level. One main problem a lot of clients have faced in the past
when dealing with freelancers is the lack of professionalism.
2. What constitute a professional web layout? (-)
A professional web layout is not simply a layout that looks good. It also has to use proper color
schemes, be functional and achieve its task of generating income or increasing the awareness of
your products or services well.
3. Is hosting and domain registration included in web development? (-)
Domain registration and web hosting is NOT commonly included in the web development
process. However a good development firm will be there to consult you on what domains would
be better and guide you through the process in order to achieve the maximum return on the
investment you have made in purchasing a website.
4. What is the difference between Dedicated (Private) hosting vs. Shared Hosting? (-)
Dedicated hosting is when your site is the only site on a given physical server. You may either
use a third-party hosting company or opt to host your site on a server on site (not-
recommended). Shared hosting is when your site is hosted within a shared environment. In this
case, multiple websites will be hosted by the provider on a given physical server. The shared
solution is much cheaper than the dedicated solution. However the drawback of the shared
environment is that you are compromising on performance and security.
5. What are LAMP Servers? (-)
LAMP is an acronym for the Linux (operating system), Apache (web server), MySQL Database
& Perl, PHP, or Python (scripting languages) used in combination to create a server. These
softwares were not written exclusively to be used together, but their combined solution is very
popular in todays servers. The main advantage of a LAMP server is that it uses all open source
technologies that are free of charge. At the same time the LAMP is perfectly suitable for use in
small businesses all the way up to large enterprise solutions.
6. What are Microsoft Servers? (-)
Microsoft web server is one that is setup on the Microsoft server 2003 operating system.
Microsoft products, being proprietary software, are quite costly, and many clients prefer to
implement the LAMP server. For more information on Microsoft Servers please refer to the
Microsoft website.
7. Where can I find the right hosting paDo I need a website? (-)
A website is not a luxury in today’s competitive markets. It is simply a must. Without a good
website your business will always be a step behind your competition.
1. What is the difference between a freelancer & a reputable web development company? (-)
A freelancer is a self-employed web designer or developer who works independently and
directly with their clients, while a reputable design & Development firm is an established
company that provides complete solutions for clients. The main advantage of using a firm is that
the range of services they offer is much greater and their expertise in each of these services is
usually a lot higher due to the fact that they have a team of people behind them. Furthermore, in
dealing with a firm, you have the peace of mind knowing that your developers will complete
their assigned tasks on time and within the budget and will be there tomorrow when you need to
take your web projects to the next level. One main problem a lot of clients have faced in the past
when dealing with freelancers is the lack of professionalism.
2. What constitute a professional web layout? (-)
A professional web layout is not simply a layout that looks good. It also has to use proper color
schemes, be functional and achieve its task of generating income or increasing the awareness of
your products or services well.
3. Is hosting and domain registration included in web development? (-)
Domain registration and web hosting is NOT commonly included in the web development
process. However a good development firm will be there to consult you on what domains would
be better and guide you through the process in order to achieve the maximum return on the
investment you have made in purchasing a website.
4. What is the difference between Dedicated (Private) hosting vs. Shared Hosting? (-)
Dedicated hosting is when your site is the only site on a given physical server. You may either
use a third-party hosting company or opt to host your site on a server on site (not-
recommended). Shared hosting is when your site is hosted within a shared environment. In this
case, multiple websites will be hosted by the provider on a given physical server. The shared
solution is much cheaper than the dedicated solution. However the drawback of the shared
environment is that you are compromising on performance and security.
5. What are LAMP Servers? (-)
LAMP is an acronym for the Linux (operating system), Apache (web server), MySQL Database
& Perl, PHP, or Python (scripting languages) used in combination to create a server. These
softwares were not written exclusively to be used together, but their combined solution is very
popular in todays servers. The main advantage of a LAMP server is that it uses all open source
technologies that are free of charge. At the same time the LAMP is perfectly suitable for use in
small businesses all the way up to large enterprise solutions.
6. What are Microsoft Servers? (-)
Microsoft web server is one that is setup on the Microsoft server 2003 operating system.
Microsoft products, being proprietary software, are quite costly, and many clients prefer to
implement the LAMP server. For more information on Microsoft Servers please refer to the
Microsoft website.
7. Where can I find the right hosting package for me? (-)
Hosting is an interesting issue that needs some serious thought put into it. The most important
advice you can get in terms of hosting will come from your web developer. Once you have a
clear idea of the functions of your website and the type of bandwidth requirements you will
have, you can decide whether to opt for a shared or dedicated solution. Once this decision is
made you must either select a windows or Linux (LAMP) server. This decision has to be done
before your site is developed. Your website will be built according to the hosting environment
that you have selected. Since Microsoft is proprietary software while LAMP is open source, you
will find that LAMP solutions are generally much cheaper than the Microsoft solutions.
8. What is FLASH and how does it work? (-)
Flash, in a nutshell, is the common term for Adobe Flash formerly known as Macromedia Flash.
This refers to both the player (free to download) and the authoring software used to create the
high impact multimedia animations that are viewed with this player. For more information
please read the full resource on flash.
9. How much will this cost and what guarantees do I get? (-)
The key to building an effective website within budget restrictions is good planning and a great
developer. We can assist you from the beginning of your planning process to the completion of
your website in order to maintain solutions that strictly adhere to your budget restrictions and to
avoid any surprises that could come up in the future. We also provide our clients with a
satisfaction guarantee giving you peace of mind. Lastly, we offer our clients an initial free
consultation and sample design mockup free of charge with no obligation. Therefore, if you are
prepared to take your business to the next level, and improve your online marketing, contact us
today, and we will be happy to be of service.
8.
ckage for me? (-)
Hosting is an interesting issue that needs some serious thought put into it. The most important
advice you can get in terms of hosting will come from your web developer. Once you have a
clear idea of the functions of your website and the type of bandwidth requirements you will
have, you can decide whether to opt for a shared or dedicated solution. Once this decision is
made you must either select a windows or Linux (LAMP) server. This decision has to be done
before your site is developed. Your website will be built according to the hosting environment
that you have selected. Since Microsoft is proprietary software while LAMP is open source, you
will find that LAMP solutions are generally much cheaper than the Microsoft solutions.
9. What is FLASH and how does it work? (-)
Flash, in a nutshell, is the common term for Adobe Flash formerly known as Macromedia Flash.
This refers to both the player (free to download) and the authoring software used to create the
high impact multimedia animations that are viewed with this player. For more information
please read the full resource on flash.
10.How much will this cost and what guarantees do I get? (-)
The key to building an effective website within budget restrictions is good planning and a great
developer. We can assist you from the beginning of your planning process to the completion of
your website in order to maintain solutions that strictly adhere to your budget restrictions and to
avoid any surprises that could come up in the future. We also provide our clients with a
satisfaction guarantee giving you peace of mind. Lastly, we offer our clients an initial free
consultation and sample design mockup free of charge with no obligation. Therefore, if you are
prepared to take your business to the next level, and improve your online marketing, contact us
today, and we will be happy to be of service.

<!--
google_ad_client = "pub-0048225869877719";
google_ad_slot = "3851696716";
google_ad_width = 728;
google_ad_height = 90;
//-->Building a LAMP Server
by Bruce Timberlake
This document will walk you through the installation of what is known as a "LAMP" system: Linux,
Apache, MySQL and PHP. Depending on who you talk to, the P also stands for Perl or Python, but
in general, it is assumed to be PHP. I run CentOS on my servers; these directions were written for
CentOS/Red Hat/Fedora. I have had requests for SuSE (another RPM-based distribution) as well as
Debian-based systems, so I will work on variants of these directions for those distributions in the future
(donations might help speed that process up!). The main difference between the distributions is in the
paths to the startup scripts. Red Hat systems used /etc/rc.d/init.d and SuSE uses
/etc/init.d.
I have my first translation! Belorussian provided by Ucallweconn -- thank you very much!
If you need an SSL-enabled server, I have a LAMP with SSL howto as well.
I designed this document so you can just copy/paste each line or block of commands into your shell
session and it will "just work" for you. This avoids tedious typing, and the inevitable typos or missed
steps that result. These commands work properly via copy/paste. If you are having problems and
you are not using copy/paste, please re-check your typing before sending me an email saying "It
doesn't work."
Text in a "command" box like this one is a literal Linux commandline, and should be typed or pasted
exactly as written.
One note: many many people have followed these directions as written, and have not had any
problems.
If you are having a problem, chances are it's something you are doing (or not doing), something
different
about your computer, etc.

It is probably NOT this procedure. :)


Initial Steps
PLEASE BE AWARE THAT A SOURCE-BASED INSTALLATION LIKE THIS ONE IS NOT
NEEDED FOR A BASIC LAMP SERVER! You should only be doing a source-based installation if
you need to alter settings in one or more components of the LAMP stack (e.g., you need a feature in
PHP that isn't in the default RPM). If you are just getting started with LAMP, use the binaries provided
by your distribution - it is much simpler, and a lot easier to upgrade later.
Most out-of-the-box Red Hat Linux installations will have one or more of the LAMP components
installed via RPM files. I personally believe in installing things like this from source, so I get the most
control over what's compiled in, what's left out, etc. But source code installs can wreak havoc if
overlaid on top of RPM installs, as the two most likely won't share the same directories, etc.
If you have not yet installed your Linux OS, or just for future reference, do not choose to install
Apache, PHP, or MySQL during the system installation. Then you can immediately proceed with the
source-based install listed here.
Note: to install applications from source code, you will need a C++ compiler (gcc++) installed. This is
generally taken care of, but I've had enough queries about it that I've added this note to avoid getting
more! You can use your distribution's install CDs to get the proper version of the compiler. Or, if you
are using an RPM based distro, you can use a site like http://www.rpmfind.net/ to locate the correct
RPM version for your system. (You will obviously not be able to use/rebuild a source RPM to get the
compiler installed, as you need the compiler to build the final binary RPM!) On a Fedora system, you
can do this command:
su - root
yum install gcc gcc-c++
Log in as root
Because we will be installing software to directories that "regular" users don't have write access to, and
also possibly uninstalling RPM versions of some applications, we'll log in as root. The only steps that
need root access are the actual installation steps, but by doing the configure and make steps as
root, the source code will also be inaccessible to "regular" users.
If you do not have direct access (via keyboard) to the server, PLEASE use Secure Shell (SSH) to
access the server and not telnet!! Whenever you use telnet (or plain FTP for that matter), you are
transmitting your username, password, and all session information in "plain text". This means that
anyone who can access a machine someplace between your PC and your server can snoop your session
and get your info. Use encryption wherever possible!
su - root
Remove RPM Versions of the Applications
Before we start with our source code install, we need to remove all the existing RPM files for these
products. To find out what RPMs are already installed, use the RPM query command:
rpm -qa
in conjunction with grep to filter your results:
rpm -qa | grep -i apache
rpm -qa | grep -i httpd
rpm -qa | grep -i php
rpm -qa | grep -i mysql
The 'httpd' search is in case you have Apache2 installed via RPM.
To remove the RPMs generated by these commands, do
rpm -e filename
for each RPM you found in the query. If you have any content in your MySQL database already, the
RPM removal step should not delete the database files. When you reinstall MySQL, you should be able
to move all those files to your new MySQL data directory and have access to them all again.
Get the Source Code for all Applications
We want to put all our source code someplace central, so it's not getting mixed up in someone's home
directory, etc.
cd /usr/local/src
One way application source code is distributed is in what are known as "tarballs." The tar command
is usually associated with making tape backups - tar stands for Tape ARchive. It's also a handy way
to pack up multiple files for easy distribution. Use the man tar command to learn more about how to
use this very flexible tool.
At the time of updating this, the current versions of all the components we'll use are:
MySQL - 4.1.22
Apache - 1.3.37
PHP - 4.4.6
Please note: these are the only versions of these that I have set up myself, and verified these steps
against. If you use another version of any component, especially a newer version, this HOWTO may
not be accurate, and I won't be able to provide free support under those circumstances. Paid support and
assistance is always available however.
wget http://www.php.net/distributions/php-4.4.6.tar.gz
wget http://apache.oregonstate.edu/httpd/apache_1.3.37.tar.gz
There may be an Apache mirror closer to you - check their mirror page for other sources. Then insert
the URL you get in place of the above for the wget command.
For MySQL, go to http://www.mysql.com/ and choose an appropriate mirror to get the newest MySQL
version (v4.1.22).
Unpack the Source Code
tar zxf php-4.4.6.tar.gz
tar zxf apache_1.3.37.tar.gz
tar zxf mysql-4.1.22.tar.gz
This should leave you with the following directories:
/usr/local/src/php-4.4.6
/usr/local/src/apache_1.3.37
/usr/local/src/mysql-4.1.22
Build and Install MySQL
First, we create the group and user that "owns" MySQL. For security purposes, we don't want MySQL
running as root on the system. To be able to easily identify MySQL processes in top or a ps list,
we'll make a user and group named mysql:
groupadd mysql
useradd -g mysql -c "MySQL Server" mysql
If you get any messages about the group or user already existing, that's fine. The goal is just to make
sure we have them on the system.
What the useradd command is doing is creating a user mysql in the group mysql with the "name"
of MySQL Server. This way when it's showed in various user and process watching apps, you'll be able
to tell what it is right away.
Now we'll change to the "working" directory where the source code is, change the file 'ownership' for
the source tree (this prevents build issues in reported in some cases where the packager's username was
included on the source and you aren't using the exact same name to compile with!) and start building.
The configure command has many options you can specify. I have listed some fairly common ones; if
you'd like to see others, do:
./configure --help | less
to see them all. Read the documentation on the MySQL website for a more detailed explanation of each
option.
cd /usr/local/src/mysql-4.1.22

chown -R root.root *
make clean

./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--disable-maintainer-mode \
--with-mysqld-user=mysql \
--with-unix-socket-path=/tmp/mysql.sock \
--without-comment \
--without-debug \
--without-bench
18-Jul-2005: If you are installing MySQL 4.0.x on Fedora Core 4, there is a problem with
LinuxThreads that prevents MySQL from compiling properly. Installing on Fedora Core 3 works fine
though. Thanks to Kevin Spencer for bringing this to my attention. There is a workaround listed at
http://bugs.mysql.com/bug.php?id=9497. Thanks to Collin Campbell for that link. Another solution can
be found at http://bugs.mysql.com/bug.php?id=2173. Thanks to Kaloyan Raev for that one.
Now comes the long part, where the source code is actually compiled and then installed. Plan to get
some coffee or take a break while this step runs. It could be 10-15 minutes or more, depending on your
system's free memory, load average, etc.
make && make install
Configure MySQL
MySQL is "installed" but we have a few more steps until it's actually "done" and ready to start. First
run the script which actually sets up MySQL's internal database (named, oddly enough, mysql).
./scripts/mysql_install_db
Then we want to set the proper ownership for the MySQL directories and data files, so that only
MySQL (and root) can do anything with them.
chown -R root:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data
Copy the default configuration file for the expected size of the database (small, medium, large, huge)
cp support-files/my-medium.cnf /etc/my.cnf
chown root:sys /etc/my.cnf
chmod 644 /etc/my.cnf
If you get an error message about the data directory not existing, etc., something went wrong in the
mysql_install_db step above. Go back and review that; make sure you didn't get some sort of
error message when you ran it, etc.
Now we have to tell the system where to find some of the dynamic libraries that MySQL will need to
run. We use dynamic libraries instead of static to keep the memory usage of the MySQL program itself
to a minimum.
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
ldconfig
Now create a startup script, which enables MySQL auto-start each time your server is restarted.
cp ./support-files/mysql.server /etc/rc.d/init.d/mysql
chmod +x /etc/rc.d/init.d/mysql
/sbin/chkconfig --level 3 mysql on
Then set up symlinks for all the MySQL binaries, so they can be run from anyplace without having to
include/specify long paths, etc.
cd /usr/local/mysql/bin
for file in *; do ln -s /usr/local/mysql/bin/$file /usr/bin/$file; done
MySQL Security Issues
First, we will assume that only applications on the same server will be allowed to access the database
(i.e., not a program running on a physically separate server). So we'll tell MySQL not to even listen on
port 3306 for TCP connections like it does by default.
Edit /etc/my.cnf and uncomment the
skip-networking
line (delete the leading #).
For more security info, check out this MySQL security tutorial.
Start MySQL
First, test the linked copy of the startup script in the normal server runlevel start directory, to make sure
the symlink was properly set up:
cd ~
/etc/rc.d/rc3.d/S90mysql start
If you ever want to manually start or stop the MySQL server, use these commands:
/etc/rc.d/init.d/mysql start
/etc/rc.d/init.d/mysql stop
Let's "test" the install to see what version of MySQL we're running now:
mysqladmin version
It should answer back with the version we've just installed...
Now we'll set a password for the MySQL root user (note that the MySQL root user is not the same
as the system root user, and definitely should not have the same password as the system root
user!).
mysqladmin -u root password new-password
(obviously, insert your own password in the above command instead of the "new-password" string!)
You're done! MySQL is now installed and running on your server. It is highly recommended that you
read about MySQL security and lock down your server as much as possible. The MySQL site has info
at http://www.mysql.com/doc/en/Privilege_system.html.
Test MySQL
To run a quick test, use the command line program mysql:
mysql -u root -p
and enter your new root user password when prompted. You will then see the MySQL prompt:
mysql>
First, while we're in here, we'll take care of another security issue and delete the sample database test
and all default accounts except for the MySQL root user. Enter each of these lines at the mysql>
prompt:
drop database test;
use mysql;
delete from db;
delete from user where not (host="localhost" and user="root");
flush privileges;
As another security measure, I like to change the MySQL administrator account name from root to
something harder to guess. This will make it that much harder for someone who gains shell access to
your server to take control of MySQL.
MAKE SURE YOU REMEMBER THIS NEW NAME, AND USE IT WHEREVER
YOU SEE "root" IN OTHER DIRECTIONS, WEBSITES, ETC.

ONCE YOU DO THIS STEP, THE USERNAME "root" WILL CEASE TO


EXIST IN YOUR MYSQL CONFIGURATION!
update user set user="sqladmin" where user="root";
flush privileges;
Now, on with the "standard" testing... First, create a new database:
create database foo;
You should see the result:
Query OK, 1 row affected (0.04 sec)

mysql>
Delete the database:
drop database foo;
You should see the result:
Query OK, 0 rows affected (0.06 sec)

mysql>
To exit from mysql enter \q:
\q
Build and Install Apache (with DSO support)
The advantage to building Apache with support for dynamically loaded modules is that in the future,
you can add functionality to your webserver by just compiling and installing modules, and restarting
the webserver. If the features were compiled into Apache, you would need to rebuild Apache from
scratch every time you wanted to add or update a module (like PHP). Your Apache binary is also
smaller, which means more efficient memory usage.
The downside to dynamic modules is a slight performance hit compared to having the modules
compiled in.
cd /usr/local/src/apache_1.3.37

make clean

./configure \
--prefix=/usr/local/apache \
--enable-shared=max \
--enable-module=rewrite \
--enable-module=so

make && make install


Build and Install PHP
This section has only been tested with PHP v4.x. If you are trying to build PHP 5.x, I do not have
experience with this yet, and do not provide free support for you to get it working. Please note that
there are many options which can be selected when compiling PHP. Some will have library
dependencies, meaning certain software may need to be already installed on your server before you
start building PHP. You can use the command
./configure --help | less
once you change into the PHP source directory. This will show you a list of all possible configuration
switches. For more information on what these switches are, please check the PHP website
documentation.
cd /usr/local/src/php-4.4.6

./configure \
--with-apxs=/usr/local/apache/bin/apxs \
--disable-debug \
--enable-ftp \
--enable-inline-optimization \
--enable-magic-quotes \
--enable-mbstring \
--enable-mm=shared \
--enable-safe-mode \
--enable-track-vars \
--enable-trans-sid \
--enable-wddx=shared \
--enable-xml \
--with-dom \
--with-gd \
--with-gettext \
--with-mysql=/usr/local/mysql \
--with-regex=system \
--with-xml \
--with-zlib-dir=/usr/lib

make && make install

cp php.ini-dist /usr/local/lib/php.ini
I like to keep my config files all together in /etc. I set up a symbolic link like this:
ln -s /usr/local/lib/php.ini /etc/php.ini
Then I can just open /etc/php.ini in my editor to make changes.
Recommended reading on securing your PHP installation is this article at SecurityFocus.com.
Edit the Apache Configuration File (httpd.conf)
I like to keep all my configuration files together in /etc, so I set up a symbolic link from the actual
location to /etc:
ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf
Now open /etc/httpd.conf in your favorite text editor, and set all the basic Apache options in
accordance with the official Apache instructions (beyond the scope of this HOWTO).
Also recommended is the article on securing Apache.
To ensure your PHP files are properly interpreted, and not just downloaded as text files, remove the #
at the beginning of the lines which read:
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
If the AddType lines above don't exist, manually enter them (without the leading # of course) after the
line
AddType application/x-tar .tgz
or anyplace within the <IfModule mod_mime.c> section of httpd.conf.
If you wish to use other/additional extensions/filetypes for your PHP scripts instead of just .php, add
them to the AddType directive:
AddType application/x-httpd-php .php .foo
AddType application/x-httpd-php-source .phps .phtmls
An example: if you wanted every single HTML page to be parsed and processed like a PHP script, just
add .htm and .html:
AddType application/x-httpd-php .php .htm .html
There will be a bit of a performance loss if every single HTML page is being checked for PHP code
even if it doesn't contain any. But if you want to use PHP but be "stealthy" about it, you can use this
trick.
Add index.php to the list of valid Directory Index files so that your "default page" in a directory can
be named index.php.
<IfModule mod_dir.c>
DirectoryIndex index.php index.htm index.html
</IfModule>
You can add anything else you want here too. If you want foobar.baz to be a valid directory index
page, just add the .baz filetype to the AddType line, and add foobar.baz to the
DirectoryIndex line.
Start Apache
We want to set Apache up with a normal start/stop script in /etc/rc.d/init.d so it can be auto-
started and controlled like other system daemons. Set up a symbolic link for the apachectl utility
(installed automatically as part of Apache):
ln -s /usr/local/apache/bin/apachectl /etc/rc.d/init.d/apache
Then set up auto-start for runlevel 3 (where the server will go by default):
ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S90apache
Then start the daemon:
/etc/rc.d/init.d/apache start
You can check that it's running properly by doing:
ps -ef
and look for the httpd processes.

A note from the author


I hope you find this guide, HOWTO, tutorial -- call it what you will -- useful. I also hope it saves you
some time. If you do find it useful, I would be grateful if you could make a donation using the button
below (and if it wasn't useful, mail me and tell me why not).
I receive a great deal of mail as a result of this HOWTO, much of it asking me to solve various LAMP-
related problems. Please bear in mind that the money that puts food on my family's table comes from
the consultancy work that I do. If you would like help with any of the points discussed in this article,
mail me and tell me what that help is worth to you. Quote any amount you like, and if I'm able to help
you out, you can make a PayPal donation by way of thanks. Fair enough?
<!--
google_ad_client = "pub-0048225869877719";
google_ad_slot = "3851696716";
google_ad_width = 728;
google_ad_height = 90;
//-->

If you find this page useful, please consider making a secure donation:

This work is licensed under a Creative Commons License


and is copyright (c) 2002-2011 by Bruce Timberlake.
css

Cascading Style Sheets or CSS are an important way to control how your Web pages look. CSS can
control the fonts, text, colors, backgrounds, margins, and layout. But it can be very difficult to learn
CSS, and some people would rather not learn it. There are some very good reasons to learn CSS so that
you can control your Web pages look.

Modify your site designs to look how you want them to look
It's easy to take a free Web template and build a website. But these templates can be very plain or
common. So your website will look like every other site on the internet. By learning CSS you can
modify pre-built templates so that they have your colors and styles. Thus you'll have a customized
website without a lot of effort.

zSB(3,3)Sponsored Links
Drop-Down MenusCreate cross-browser & feature-rich menus-No programming skills needed!
www.likno.com
Reunite With Your FriendsFind All Your Old Friends & Get In Touch Instantly. Join Orkut Today!
www.google.com/Orkut
Are You a Designer ?Get an Opportunity to Work On Creative Designs. Apply Now!
www.ivistasolutions.com

Save money
There are a lot of Web designers who will build your website or your CSS for you. But paying
someone else to maintain your website or blog can get expensive, even if you only have them create the
designs and you then maintain the content. Knowing how to modify the CSS will save you money
when you find small problems that you can fix yourself. And as you practice, you'll be able to fix
bigger and bigger problems.

Earn money
Once you know CSS really well, you can sell these services to other websites. And if you're looking to
become a freelance Web designer, you won't get far if you don't know CSS.
Redesign your site more quickly
Many older websites that were built without CSS are very difficult to redesign. But once a site is built
with CSS hooks it can be redesigned very quickly. Changing things like the colors and backgrounds
can change how a site looks with very little effort. In fact, many sites now put up special versions of
their sites for special occasions and they can do this because it only takes a few hours to create an
alternate style sheet for the occasion.

Build more diverse websites


CSS gives you the opportunity to create sites that look very different from page to page, without a lot
of extensive coding. For example, many sites now do slight color variations on the different sections of
the site. Using page IDs, you can change the CSS for each section and use the same HTML structure
for each section. The only thing that changes is the content and the CSS.

\
CSS style sheets allow better control pf web pages during their development. Cascading Style Sheets
or CSS are style sheets that are linked into the other documents of your site and let’s you take control
of a wide variety of aspects of your site.
While the (x)HTML of your site deals with the actual content and structure of your website, one CSS
file has have power over the fonts, colors, positioning, styling of the data for the entire website. Doing
this helps avoid code bloat in your pages, makes them load faster, render across different media types,
and the benefits go on and on….
There are many benefits to using CSS, and they are listed below.
- Web pages load easier and they use less bandwidth: many web developers like to use CSS style
sheets because they don’t use as much bandwidth as table layouts do. The sheets are downloaded once
and stored in cache memory so pages will load quicker.
- CSS goes well with HTML: when HTML is added to CSS they make well-built, technical sites.
- CSS will let you position components anywhere on the page: developers really like CSS because
they can put elements anywhere they feel like. It is easier for them to make changes on sites they are
working on. CSS decreases the risks that deal with website maintenance.
- CSS is compatible with every web browser: it is mixed with HTML or XHTML to produce web
applications because it is compatible with all kind of web browsers.
- CSS may be used to produce print friendly web pages: web developers also like to use CSS because
they can produce print friendly pages. This means the items like images or colors which used to be
difficult to print are now printed up simply.
- CSS lest users customize web pages: lots of current websites let users change the layout or theme of
the site without changing the content. Because CSS sheets are stowed externally, the users can make
changes on their own. Items like the style of font are now able to be changed.
- Your website will be highlighted in the search engines easier: developers like CSS because they can
put components anywhere on the page. This positioning assists in launching the key contents first so
the spiders can find them. The HTML code of CSS is simpler and it will make the spider’s job easier
by getting them to the real content quicker.
- CSS lets the web pages stay consistent: every expression and text will have characteristics from the
external style sheets. Developers don’t need to fret about the characteristic changes in the elements
because they have the ability to be changed at any time with the CSS.
- CSS makes content moveable: with CSS there can be many style sheets for various media. This lets
you have some give when displaying the content. You can also change the characteristics of the
components in the site to fit your situation.
The point of CSS is to make things easier on your website and let you have control over many
components on the site. You can use these advantages to have more user-friendly pages that search
engines also embrace well.
If you need help understanding CSS more, or would like to have your site evalueated pleae contact us
at 248-582-9210, online or comment to this post.
Why Valid Html Code Is Important To Your
Web Site
oblems see site indexing problems and why search engine spiders miss pages. Consider
hiring a professional webmaster to make your site HTML compliant.

Many webmasters overlook a very important aspect of web site promotion: the validity of the HTML
code.

What is valid HTML code?


Most web pages are written in HTML. As for every language, HTML has its own grammar, vocabulary
and syntax, and every document written in HTML is supposed to follow these rules.
Like any language, HTML is constantly changing. As HTML has become a relative complex language,
it's very easy to make mistakes. HTML code that is not following the official rules is called invalid
HTML code.

Why is valid HTML code important?


Search engines have to parse the HTML code of your web site to find the relevant content. If your
HTML code contains errors, search engines might not be able to find everything on the page.
Search engine crawler programs obey the HTML standard. They only can index your web site if it is
compliant to the HTML standard. If there's a mistake in your web page code, they might stop crawling
your web site and they might lose what they've collected so far because of the error.
Although most major search engines can deal with minor errors in HTML code, a single missing
bracket in your HTML code can be the reason if your web page cannot be found in search engines.
If you don't close some tags properly, or if some important tags are missing, search engines might
ignore the complete content of that page.

How can you check the validity of your HTML code?


Fortunately, there are free services that allow you to check the validity of your HTML code. The most
common HTML validator is the W3 HTML Validator.
It is a service that checks HTML documents for conformance to W3C HTML and XHTML
recommendations and other HTML standards.
Just enter the address of a web page on this page and the validator will tell you what errors are on that
page.
Although not all HTML errors will cause problems for your search engine rankings, some of them can
keep web spiders from indexing your web pages.
Valid HTML code makes it easier for search engine spiders to index your site so you should make sure
that at least the biggest mistakes in your HTML code are corrected.
Job Looking: The Importance Of Analyzing On-line Job Posting
Web Sites
February 27, 2011 by Morgan
Filed under Careers Employment
Leave a Comment
Are you [interested] by changing jobs or are you at the moment unemployed? If you are, it’s attainable
you’ll be eager about exploring the employment alternatives in or around your area. With regards to
doing so, one can find that you’ve got got quite a few totally different options. One of those options is
to use online websites which can be often known as job posting web sites or career search websites.
These online web sites are thought-about among the best ways to go about discovering and making use
of for jobs.
In case you are on the lookout for a new job, it is advised that you simply use profession search web
sites or job posting websites to your advantage. Actually, can be that you simply do so. For extra data
on the importance of job posting and profession search websites, you’ll need to continue reading on.
As previously said, career search or job posting web sites come extremely rated and recommended.
One of the causes for that is because they are really easy to use. For starters, you might find plenty of
profession search or job posting websites by performing a standard internet search. In addition to being
straightforward to search out, additionally, you will discover that the majority websites are simple to
use. Typically instances, you probably can flick thru all job listings in or round your area or you can
tailor your search to a specific trade, like the retail industry.
Consistent with career search web sites or job posting web sites being straightforward to use, you will
also often find that many websites are customizable. What does this imply for you? It signifies that you
may have the ability to search for all available job listings within a sure distance away out of your
home. You additionally usually have the choice of further customizing the trade that you simply want
to work in. For example, if you’re curious about working in retail, you might find a way to seek for
jobs that embrace cashiers, stockers, administration, and so forth.
Additionally it is vital to mention that profession search websites and on-line job posting websites will
let you far more than just look at all out there job openings in or around your area. Nonetheless, before
focusing more on this point, you will need to do not neglect that not all profession search or job posting
web sites are the same. Despite the opportunity of a variance, you’ll likely discover that you’ll give you
the chance to apply for jobs by method of the job posting or profession search website. Many of these
web sites can assist you copy and paste your resume into their on-line type or you probably can send
your own resume as an attachment.
In addition to permitting you to use for jobs, there are so much of job posting or profession search web
sites that can assist you publish your resume, free of charge, on their online website. This function is
sweet, as it could possibly allow you to get a job with out having to do much work yourself. As stated
above, there may be a variance, but many career search or job posting websites will arrange resumes on
a safe web site that their taking part employers can examine. Ought to a hiring firm like what they see,
you may be contacted to set up a job interview right away.
As beforehand stated, most career looking or job posting web sites allow you to publish your resume
online for free. It’s also important to mention that you could get most of the providers, together with a
job search or a resume submission, free of charge. There will, in some instances, be services that you
could pay for, but most of these services are elective, prefer to have knowledgeable resume written for
you. Whenever you have a glance at it from that side, you actually have nothing to lose by utilizing
career search websites or job posting websites to your advantage.
With the flexibility to make use of the web, specifically career search web sites or job posting web
sites, free of charge, it is best to at least give them a close look. If you happen to don’t have internet
access at home, chances are you’ll wish to study an area internet café or your native library.

The Meaning and Importance of Job Search Management


Today, the job search process is no more an easy task to be in the career of your dreams. You have to
work extremely hard in looking for the right job to zero in on your desired career. You have to give
your time, put in your hard work, make some extra effort, perform with full efficiency, manage all
information that you receive and above all, you need to be patient.
Job search process is also a procedure where you need to look after every small detail that can help you
get a job that will be good for your entire career. The details that you need to take into consideration
includes – your requirements, your goals, contacts, job interview schedules, updating your resume and
much more.
Manage your job hunt
It is very important to manage your job search and to be able to respond immediately to job openings
that you are qualified for. Again when you receive inquiries from employers, you must handle them
carefully and also keep a tab on jobs you've applied to and contacts you have reached out to.
All these gain importance if the job search is done during an economic slow down. You have to be
more efficient in managing your job search procedure. The failure or success of job search will
ultimately affect your entire career which will further have its influence on your daily life. A. Harrison
Barnes, Chief Executive Officer of Hound.com, is of the view that job search is much more than what
you think.
It is not limited to job search, preparing resumes and writing cover letter and applying for the jobs. You
have to remember that job search today is very competitive because of the difficult condition of the job
market. The number of job openings is less than the number of people applying for those jobs. So you
can understand how important it has become to manage your job search in such a way that you don’t
leave a single loop hole in it. You need to work hard on creating a lasting impression in the mind of the
recruiter, networking contact and on the employer, says Barnes.
Register with a job portal
A. Harrison Barnes suggests that you need to do your homework; pre-plan your job search method and
move according to it. If you have decided to register with any job search engine then make sure that
you are using the best job portal in the market. Hound.com is one of the best job search portal. The
team of Hound.com consists of more than 40 experts. They are at your service 24 hours a day and
seven days a week. Hound.com has a huge database with jobs from all over the world and it is updated
daily.
The best part of working with Hound.com is that you have your own recruiter appointed to you. The
person will help you in every way you want. In fact, it is their duty to provide you with every service
related to getting the perfect job for your career. They analyze your needs and then help you with
suggestions on how to look for jobs. They guide you from creating an eye catching resume to landing
your dream job. The experts very well understand the importance of a resume and make sure that they
leave no loophole in the resume to impress an employer while applying for a job. They even prepare
your cover letter and send it along with the resume to the employer you are interested to work with.
Apart from this, they help you deciding the right job for your career and your life. Thus it is highly
recommended by Barnes that you use Hound.com for your job search.
Internet tools
You can even take the help of the Google Tools and Microsoft Outlook to help you manage your job
search, says A. Harrison Barnes. If you are going for an online job search then you can take the help
of calendar, correspondence and contacts that can be accessed through any computer. Using
applications of Google makes you work really easy. You can upload the documents from your
computer or create a new document on the web site with the help of Google Documents.
You can even use Microsoft Outlook Address Book to keep a daily record of your contacts and also the
Calendar which will help you track the actions you have taken in your search for a new job. You even
have the option to set reminders, says A. Harrison Barnes

Getting a Job as a Web Developer


How Your Guide Went from TEFL Teacher to Web Developer
By Jennifer Kyrnin, About.com Guide

See More About:


• web designers
• going pro
• getting a job

zSB(3,3)

Sponsored Links
Freelancers Try for FreeImprove Client Engagements & Manage Your Business Online. Try for
Freewww.mavenlink.com
Are You a Web Developer?Get an Opportunity to Work on Leading Technologies. Apply Now!
www.ivistasolutions.com
Ecole Intuit.Lab - MumbaiFrench Institute of Graphic Design & Visual Communication arts.
Indiawww.ecole-intuit-lab.co.in
zob();if(zs<1){gEI('sp1').className=gEI('sb1').className='hide';}Web Design / HTML Ads
• Job Listings
• Job Opportunities
• Job Hiring
• Web Developer
• Job Openings

zSB(1,2);if(zs<3){gEI('sp2').className=gEI('sb2').className='hide';}

Sponsored Links
Web Design JobsMultiple Positions Open In Your Desired Field. Apply Now. Free!www.Quikr.com
Graphic Design in 12 mthsLearn Dreamweaver,Illustrator & CDR Join University Diploma at Arena!
www.Arena-Multimedia.com
For those of you who have read my bio, you know that several years ago I didn't even know what a
Webmaster was (except perhaps a spider). How did I move from being a teacher and translator in the
Peace Corps to one of the more "cutting edge" professions of the day?

Blind Luck
As with many of the more interesting and wonderful parts of my life, blind luck was a contributing
factor. I was in the right place at the right time, and I made the most of it. When I came into the Web
group, I was ready for a change from my previous position, and they needed someone with my skills.

Skills
When I joined the Web group, I was a Technical Writer. I had had nearly four years experience in
writing and translating technical documents. I learned HTML because my boss wanted our writing to
reach a broader audience (and reduce calls). By the time I moved into the Web group, I was converting
most of my writing into Web pages, and was very comfortable with HTML.
I wasn't brought into the Web group just because I knew HTML, however. There are many people out
there who can do that. They needed someone who had experience with end-user interaction and could
handle our Webmaster mail. They also needed a technical writer to document current CGIs, processes,
and applications. Finally, they needed someone who was known in the company to handle incoming
requests.

I was not a Webmaster


One important thing to note, I was not hired as a Webmaster. Because my primary focus was going to
be on the writing the group needed, I was hired as a Web Writer. (My boss gave me the title Web
Setter, but I got it changed to Writer.)

Webmaster Requirements
At my company, we look at the Web Development team as consisting of three major components:
1. Programming
2. Graphics and Design
3. Writing and Content Development
Each of these fields has a position associated with it. Web Engineers do programming, Graphic Artists
do graphics and design, and Web Writers and Web Producers do writing and content development. A
Webmaster knows something of each of these components.
When I joined the Web group, I knew design, I was a writer, and I could write Perl and shell scripts. In
order to get promoted to Webmaster, I had to show proficiency in both graphics and C programming
(we write all our CGIs in C).

Additional Training
The most extensive training I took was in C programming. I learned C and then wrote two simple CGIs
to show that I could apply that knowledge. At the same time, I practiced with Photoshop until I had
several graphics of publishable quality for our Web site. Once I had done that, I was promoted to
Webmaster.

Recommendations
If you want to be a Webmaster or Web Developer, it is not enough to know HTML, even if you can
make every whiz-bang feature of HTML 4.0. This is what I would recommend to get a job as a Web
Developer:
• C programming, Perl, PHP, ColdFusion, or some type of programming
It's good to know Perl, but you should try to differentiate yourself. If you know C programming
and can apply it to CGI, then you know how the server interacts with your programs, and are
not simply making library calls.

I learned C first, and then Perl, PHP, and ColdFusion. Any one of these languages will enable
you to program your site and create dynamic Web sites.
• Basic and Advanced HTML
Chances are, the longer we go in this field, the more companies will have tools to help you
create HTML. However, if you don't know what the HTML tags are and what they do, then you
will have a hard time fixing problems that come up, especially when you have to convert
someone else's HTML.
• Graphics
You should be able to use a good graphics program like Photoshop. Paint Shop Pro is fine, but
most corporations do not use it. You should also be confident in your ability to put together a
graphic. You don't have to be the next Van Gogh, but you should know how to do it.
• Design and Layout
Know basic and advanced design principles, both of the Web and in print. If you can lay out a
page that looks "cool" people are going to forgive your lack of programming experience.
However, remember that what is cool today will be deadly boring tomorrow.
• Writing
Content isn't king, like it used to be, but you should still be able to put a coherent sentence on
the page. Use spell checkers, and grammar checkers if you have to, and know your limits. If you
know you can't spell, then spell check even your name. Also, have other people read your work
before you go live, they will catch the "too" for "two" and other errors.
• Confidence
This is still a new profession. Don't be afraid to put yourself out there. Job postings often ask for
all types of things when they might be looking for you. You know that you are the perfect
person for the job, they just haven't hired you yet.

Das könnte Ihnen auch gefallen