3. <meta charset=…>definition is highly recommended right after <!DOCTYPE… or at the top of <head> section. UTF-8 is the most widely used encoding (most compact and fastest for pretty much all browsers).

4. Natural language specification, e.g. lang=”en”is optional, but recommended, as it allows search engines and screen readers to identify section correctly. Specifying language for html tag defines it for entire page, however it also can be specified for elements, such as div.

5. Stylesheet definition does not require type=”text/css” specification, since “rel” (relationship) defines link as stylesheet, and css is the only style sheet language.

6. Similarly, no need to specify language=”JavaScript” for script tag: JavaScript is assumed by default.

7. Closing </script> tag is required, even when referring an external JavaScript file.

8. Comment <!– saved from url=(0014)about:internet –> is only required to enable debugging of local page in IE; if not specified, when you load local page, IE prevents running any JavaScript on the page, unless you explicitely click “Allow blocked content” (this comment is ignored by any other browser)

9. Tags can be lower and/or upper case.

10. Attributes can be specified without values (e.g. <input type=”checkbox” checked>). This is not commonly used, however, since inconsistent with other attributes. XHTML standard required value for each attribute (e.g. <input type=”checkbox” checked=”checked” />).

12. Quotation marks around attribute values are only required if attribute values contain >, = or space. E.g. “<img alt=”This is an image” src=image.gif> is valid for HTML5, but not XHTML.

Loose rules 9-12 are likely to fail on validators. It also may be considered a bad “not-so-clean” style. From the browser perspective, however, those inconsistencies do not add any overhead, and thus following XHTML rules is not necessary from performance or compatibility perspective.

Anti-ad: I use the combination of Adblock Plus (advertisement and banner blocker) and Beef Taco (a cookie that blocks targeted advertisement from many companies, like Google, Microsoft or Yahoo).

Development and Testing: Firebug and YSlow described on this page and Web Developer – a toolbar, which gives easy access to dozens of useful tools, from enabling and disabling different components, to CSS preview, to validation…

Feeds, Blogs: I am not big fan of reading feeds, I prefer to go to the original site. However I still need to be notified when a new post appears on one of the sites I read regularly. Also I often have a bunch of “things I want to read later” (e.g. when I have time or when commuting). So I use Sage, which is a nice feed reader/notifier and Read It Later, which does what its name says.

Boosts: I usually open many tabs, which bloats Firefox memory and CPU, I also like to install SaveMemory.

Multi-functional: GreaseMonkey is a champion, with lots of existing scripts and ability to create new ones.

In essence Firefox profile encapsulates user information: bookmarks, cookies, history, private information, e.g. passwords and so on. Which makes them very useful in many occasions, e.g.

Different people sharing the same computer and not willing to create different users on operating system level. Especially with blooming social networks, blogs and other sites where logging in is required, it’s much easier to keep different profiles, than log-out and log-in each time, to each site.

Even for the same person who is using the same machine for different purposes, this feature can allow to separate the roles of the machine, from web browsing perspective, e.g. “home”, “work”, etc.

Sometimes creating separate profile is also good when working on a specific project which requires a large amount of bookmarks, which can be deleted once the project is complete.

Finally profiles are very useful in testing, as they allow to simulate different users without the pain of creating different sessions on OS level

Without further configuration Firefox usese a default profile (in early versions of Firefox you could see it every time you opened a browser). In Firefox 2 or 3, however, you need to start Profile Manager purposely to see the profile you are using and to create/delete additional profiles.

The switch is not case-sensitive, thus you can type -profilemanager. And in addition you can use -p or -P switch: their meaning is slightly different, according to the command line reference, but they open the same Profile Manager anyways. Usually there’s no need to specify the full path to Firefox (e.g. C:\Program Files\Mozilla Firefox\). With -ProfileManager switch alone, Profile Manager will only start if you don’t have another instance of Firefox running. Thus

Profiles are defined in the file called profiles.ini, on Windows located in %APPDATA%\Mozilla\Firefox folder. An explanation of the file structure and the meaning of the values is provided on Profiles.ini_file Mozillazine page.

I couldn’t find an official reference to confirm this number, but from what I’ve seen, Firefox allows up to 20 profiles per Windows user.

FireBug allows to “edit, debug, and monitor CSS, HTML, and JavaScript live in any web page”. It has a lot of extensions (listed here), the most well known of all is, of course, YSlow by Yahoo!, which “analyzes web pages and suggests ways to improve their performance based on a set of rules for high performance web pages“.