<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Technology Blog</title>
	<link>http://tech.gpuri.com</link>
	<description>technology is a seductress</description>
	<pubDate>Sun, 14 Feb 2010 04:26:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3</generator>
	<language>en</language>
			<item>
		<title>Multiple Browser Coding Guidelines</title>
		<link>http://tech.gpuri.com/50/multiple-browser-coding-guidelines/</link>
		<comments>http://tech.gpuri.com/50/multiple-browser-coding-guidelines/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 04:06:42 +0000</pubDate>
		<dc:creator>gpuri</dc:creator>
		
		<category><![CDATA[Browser]]></category>

		<guid isPermaLink="false">http://tech.gpuri.com/50/multiple-browser-coding-guidelines/</guid>
		<description><![CDATA[
The features of different Web browsers, such as CSS and JavaScript support, can cause Web applications to work differently from one browser to another. This lack of continuity among browsers not only causes an application to look bad, but it often causes it to break. Acid3 is a test from the Web Standards Project that [...]]]></description>
			<content:encoded><![CDATA[<p><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 11" /><meta name="Originator" content="Microsoft Word 11" /></p>
<link href="file:///C:%5CDOCUME%7E1%5Cgpuri01%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" rel="File-List" /><!--[if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>   </w:Compatibility>   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>  </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" LatentStyleCount="156">  </w:LatentStyles> </xml><![endif]-->The features of different Web browsers, such as CSS and JavaScript support, can cause Web applications to work differently from one browser to another. This lack of continuity among browsers not only causes an application to look bad, but it often causes it to break.<o:p> </o:p><span>Acid3</span> is a test from the Web Standards Project that checks how well a web browser follows certain selected elements from web standards, especially relating to the Document Object Model (DOM) and JavaScript.<o:p></o:p><br />
<h3>Acid3 Test<o:p></o:p></h3>
<p class="MsoNormal">Acid3 test focuses on technologies used on modern, highly interactive websites characteristic of Web 2.0, such as ECMAScript and DOM Level 2. Controversially, it includes several elements from the CSS2 recommendation that were later removed in CSS2.1 but reintroduced in World Wide Web Consortium(W3C) CSS3 working drafts that have not made it to candidate recommendations yet.<o:p><br />
</o:p></p>
<table class="MsoTableGrid" style="border-collapse: collapse; border: medium none" border="1" cellpadding="0" cellspacing="0">
<tr>
<td style="width: 2.05in; border: 1pt solid windowtext; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center"><strong>Layout Engine<o:p></o:p></strong></p>
</td>
<td style="width: 2.05in; border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center"><strong>Browser<o:p></o:p></strong></p>
</td>
<td style="width: 2.05in; border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center"><strong>Acid3 Score<o:p></o:p></strong></p>
</td>
</tr>
<tr>
<td style="width: 2.05in; border-width: medium 1pt 1pt; border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; background: none repeat scroll 0% 0% lime; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">Presto</p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; background: none repeat scroll 0% 0% lime; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">Opera 10</p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; background: none repeat scroll 0% 0% lime; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">100/100</p>
</td>
</tr>
<tr>
<td rowspan="2" style="width: 2.05in; border-width: medium 1pt 1pt; border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; background: none repeat scroll 0% 0% lime; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">WebKit</p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; background: none repeat scroll 0% 0% lime; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">Safari 4.0</p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; background: none repeat scroll 0% 0% lime; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">100/100</p>
</td>
</tr>
<tr>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; background: none repeat scroll 0% 0% lime; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">Chrome 4.0</p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; background: none repeat scroll 0% 0% lime; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">100/100</p>
</td>
</tr>
<tr>
<td rowspan="4" style="width: 2.05in; border-width: medium 1pt 1pt; border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">Gecko</p>
<p class="MsoNormal" style="text-align: center" align="center"><o:p> </o:p></p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">Firefox 3.5.7</p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">93/100</p>
</td>
</tr>
<tr>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">Firefox 3.6</p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">94/100</p>
</td>
</tr>
<tr>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">Firefox 3.7</p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">96/100</p>
</td>
</tr>
<tr>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">Firefox 4.0</p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">?/100</p>
</td>
</tr>
<tr>
<td rowspan="4" style="width: 2.05in; border-width: medium 1pt 1pt; border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">Trident</p>
<p class="MsoNormal" style="text-align: center" align="center"><o:p> </o:p></p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">IE 6.0</p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">12/100</p>
</td>
</tr>
<tr>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">IE 7.0</p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">14/100</p>
</td>
</tr>
<tr>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p align="center">&nbsp;</p>
<p class="MsoNormal" style="text-align: center" align="center">IE 8.0</p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">20/100</p>
</td>
</tr>
<tr>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">IE 9.0</p>
</td>
<td style="width: 2.05in; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt" valign="top" width="197">
<p class="MsoNormal" style="text-align: center" align="center">32/100</p>
</td>
</tr>
</table>
<p><o:p> </o:p></p>
<h3>Tool of Choice<o:p><br />
</o:p></h3>
<p class="MsoNormal"><o:p> </o:p>One can handle most of the browser issues by using hacks but hacks are dangerous. Since they are based on non-standard exploits, you can’t predict how they are going to behave in future browsers. The tool of choice for fighting these problems is the conditional Stylesheet and JavaScript. Browsers provide comment tags, to target specific versions, as well as greater-than/less-than stuff for targeting multiple versions at once.<o:p><br />
</o:p></p>
<h3><a title="_Toc253865383" name="_Toc253865383"></a>Conditional Stylesheets and JavaScripts<o:p><br />
</o:p></h3>
<p class="MsoNormal">The core idea is based on the method of Conditional Comments found in Internet Explorer, extended to include other browsers, and to move the conditional statements inline with your CSS definitions.<o:p><br />
</o:p></p>
<p class="MsoNormal">Conditional-CSS isn&#8217;t really all that interested in which browser the user using, but rather what is rendering engine the user&#8217;s browser utilises. This is why Conditional-CSS uses &#8216;Gecko&#8217; rather than the well known Firefox as one of it&#8217;s <em>browser</em> conditions. Likewise for Safari &#8216;Webkit&#8217; is used. This allows other browsers using the same rendering engines to receive the same targeted CSS. An exception to this rule is made for IE (rather than using &#8216;Trident&#8217;) since this is what the IE conditional comments use and Trident isn&#8217;t particuarly well known. Similarly for Opera, since only the Opera browser uses it&#8217;s Presto rendering engine, &#8216;Opera&#8217; is used.<o:p><br />
</o:p></p>
<h3><a title="_Toc253865384" name="_Toc253865384"></a>How to go about it?<o:p><br />
</o:p></h3>
<ol style="margin-top: 0in" start="1" type="1">
<li class="MsoNormal">Choose      one of the standard conforming browsers (Acid3 score 100/100) like Chrome 4.0      or Opera 10 to create and test a standard compliant Stylesheets and JavaScripts      common for all browsers.</li>
<li class="MsoNormal">Create      a separate Stylesheet and Javascripts for each of the browser versions you      want to target e.g. IE and Firefox versions..</li>
<li class="MsoNormal">Include      the Stylesheets and JavaScripts from step 2 by using conditional comments.      This overrides the statements in the common CSS and javaScript file      created in step 1.</li>
</ol>
<p class="MsoNormal"><code><span style="font-size: 10pt">&lt;!&#8211;[if IE]&gt; &lt;style type=&#8221;text/css&#8221;&gt;@import &#8220;IE-override.css&#8221;;&lt;/style&gt; &lt;![endif]&#8211;&gt;</span></code><o:p><br />
</o:p></p>
<p class="MsoNormal">This CSS file is only loaded if the detected browser is IE, otherwise it won&#8217;t. You should put this conditional statement into the head of your html file after every other CSS import code. It should be the last in the list, so that it overwrites the main css files:<o:p><br />
</o:p></p>
<p class="MsoNormal">Now if for example you had a statement in your main.css file: <code><span style="font-size: 10pt">#logo { margin:10px }</span></code> and it doesn&#8217;t work properly in IE, you can add the same statement with a different value in your IE-override.css file: <code><span style="font-size: 10pt">#logo { margin:20px }</span></code>.<o:p><br />
</o:p></p>
<h3><a title="_Toc253865385" name="_Toc253865385"></a>The Conditional Comment Code Examples<o:p><br />
</o:p></h3>
<p class="MsoNormal">The syntax to note is “!” stand for “not”, so !IE means “not IE”. gt means “greater than”, gte means “greater than or equal”, lt means “less than”, lte means “less than or equal.”<o:p><br />
</o:p></p>
<p class="MsoNormal">Target ALL VERSIONS of IE<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if IE]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;all-ie-only.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">Target everything EXCEPT IE<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if !IE]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;not-ie.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">Target IE 7 ONLY<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if IE 7]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie7.css&#8221;&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">Target IE 6 ONLY<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if IE 6]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie6.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">Target IE 6 and LOWER<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if lt IE 7]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie6-and-down.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if lte IE 6]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie6-and-down.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">Target IE 7 and LOWER<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if lt IE 8]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie7-and-down.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if lte IE 7]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie7-and-down.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">Target IE 8 and LOWER<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if lt IE 9]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie8-and-down.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if lte IE 8]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie8-and-down.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">Target IE 6 and HIGHER<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if gt IE 5.5]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie6-and-up.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if gte IE 6]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie6-and-up.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">Target IE 7 and HIGHER<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if gt IE 6]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie7-and-up.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if gte IE 7]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie7-and-up.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">Target IE 8 and HIGHER<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if gt IE 7]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie8-and-up.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
<p class="MsoNormal">&lt;!&#8211;[if gte IE 8]&gt;</p>
<p class="MsoNormal"><span>            </span>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie8-and-up.css&#8221; /&gt;</p>
<p class="MsoNormal">&lt;![endif]&#8211;&gt;<o:p><br />
</o:p></p>
]]></content:encoded>
			<wfw:commentRss>http://tech.gpuri.com/50/multiple-browser-coding-guidelines/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Oracle OLAP Option</title>
		<link>http://tech.gpuri.com/49/oracle-olap-option/</link>
		<comments>http://tech.gpuri.com/49/oracle-olap-option/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 02:14:16 +0000</pubDate>
		<dc:creator>gpuri</dc:creator>
		
		<category><![CDATA[Database]]></category>

		<guid isPermaLink="false">http://tech.gpuri.com/49/oracle-olap-option/</guid>
		<description><![CDATA[The Oracle 10g Enterprise Edition OLAP Option extends the analytic capabilities of the Oracle database by providing new multidimensional datatypes, a multidimensional calculation engine, and a framework to build OLAP applications using SQL, PL/SQL and Java. Uniquely, the OLAP Option uses the Oracle database to store and manage its data, allowing you to take advantage [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.dbazine.com/datawarehouse/dw-articles/rittman1">Oracle 10<em>g</em> Enterprise Edition OLAP Option</a> extends the analytic capabilities of the Oracle database by providing new multidimensional datatypes, a multidimensional calculation engine, and a framework to build OLAP applications using SQL, PL/SQL and Java. Uniquely, the OLAP Option uses the Oracle database to store and manage its data, allowing you to take advantage of the scalability, reliability and manageability of the Oracle 10<em>g </em>platform.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.gpuri.com/49/oracle-olap-option/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How To Create an IE-Only Stylesheet</title>
		<link>http://tech.gpuri.com/48/how-to-create-an-ie-only-stylesheet/</link>
		<comments>http://tech.gpuri.com/48/how-to-create-an-ie-only-stylesheet/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 23:23:25 +0000</pubDate>
		<dc:creator>gpuri</dc:creator>
		
		<category><![CDATA[Browser]]></category>

		<guid isPermaLink="false">http://tech.gpuri.com/48/how-to-create-an-ie-only-stylesheet/</guid>
		<description><![CDATA[The tool of choice for fighting IE problems is the conditional stylesheet. IE provides comment tags, supported all the way up to the current IE 8 to target specific versions, as well as greater-than/less-than stuff for targeting multiple versions at once.
Why use conditional stylesheets?

You got problems, they need fixin’
Keeps your code hack-free and valid
Keeps your [...]]]></description>
			<content:encoded><![CDATA[<p>The tool of choice for fighting IE problems is the <a href="http://css-tricks.com/how-to-create-an-ie-only-stylesheet/"><strong>conditional stylesheet</strong></a>. IE provides comment tags, supported all the way up to the current IE 8 to target specific versions, as well as greater-than/less-than stuff for targeting multiple versions at once.</p>
<h4>Why use conditional stylesheets?</h4>
<ul>
<li>You got problems, they need fixin’</li>
<li>Keeps your code hack-free and valid</li>
<li>Keeps your main stylesheet clean</li>
<li>Perfectly acceptable technique, sanctioned by Microsoft</li>
</ul>
<p>1.    Create a stylesheet and javascript common for all browser, without using any hacks to work around rendering problems in MSIE<br />
2.    Create a stylesheet and javascripts common for all versions of MSIE.<br />
3.    Create a separate stylesheet and javascripts for each of the MSIE versions you want to target.<br />
4.    Include the stylesheets and javascripts from 2 and 3 by using conditional comments.</p>
<p>One good example can be found at <a href="http://www.gpuri.com">http://www.gpuri.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tech.gpuri.com/48/how-to-create-an-ie-only-stylesheet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Inject Google analytics code in HTML pages</title>
		<link>http://tech.gpuri.com/47/inject-google-analytics-code-in-html-pages/</link>
		<comments>http://tech.gpuri.com/47/inject-google-analytics-code-in-html-pages/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 22:43:01 +0000</pubDate>
		<dc:creator>gpuri</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tech.gpuri.com/47/inject-google-analytics-code-in-html-pages/</guid>
		<description><![CDATA[To update your HTML/JSP/PHP pages with the google analytics you can
use UNIX sed command and inject the two scripts provided for your
website by google analytics. Below is the code. This code replaces
&#60;/body&#62; tag with the scripts and &#60;/body&#62; tag.

find ./ -type f -iname &#8220;*.htm&#8221; &#124; xargs sed -i &#8217;s/&#60;\/body&#62;/&#60;script
type=\&#8221;text\/javascript\&#8221;&#62; var gaJsHost = \(\(&#8221;https:&#8221; ==
document.location.protocol\) ? [...]]]></description>
			<content:encoded><![CDATA[<pre>To update your HTML/JSP/PHP pages with the google analytics you can</pre>
<pre>use UNIX sed command and inject the two scripts provided for your</pre>
<pre>website by google analytics. Below is the code. This code replaces</pre>
<pre>&lt;/body&gt; tag with the scripts and &lt;/body&gt; tag.</pre>
<pre></pre>
<pre><font color="#0000ff">find ./ -type f -iname &#8220;*.htm&#8221; | xargs sed -i &#8217;s/&lt;\/body&gt;/&lt;script</font></pre>
<pre><font color="#0000ff">type=\&#8221;text\/javascript\&#8221;&gt; var gaJsHost = \(\(&#8221;https:&#8221; ==</font></pre>
<pre><font color="#0000ff">document.location.protocol\) ? &#8220;https:\/\/ssl.&#8221; : &#8220;http:\/\/www.&#8221;\);</font></pre>
<pre><font color="#0000ff">document.write\(unescape\(&#8221;%3Cscript src=&#8217;\&#8221;&#8221; + gaJsHost +</font></pre>
<pre><font color="#0000ff">&#8220;google-analytics.com\/ga.js&#8217;\&#8221; type=&#8217;\&#8221;text\/javascript</font></pre>
<pre><font color="#0000ff">&#8216;\&#8221;%3E%3C\/script%3E&#8221;\)\);</font></pre>
<pre><font color="#0000ff"> &lt;\/script&gt;&lt;script type=&#8221;text\/javascript&#8221;&gt; try { var pageTracker</font></pre>
<pre><font color="#0000ff"> = _gat._getTracker\(&#8221;UA-XXXXXXX-X&#8221;\); pageTracker._trackPageview\(\);</font></pre>
<pre><font color="#0000ff"> } catch\(err\) {}&lt;\/script&gt; &lt;\/body&gt;/g&#8217;</font></pre>
]]></content:encoded>
			<wfw:commentRss>http://tech.gpuri.com/47/inject-google-analytics-code-in-html-pages/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reduce code noise with Groovy</title>
		<link>http://tech.gpuri.com/46/reduce-code-noise-with-groovy/</link>
		<comments>http://tech.gpuri.com/46/reduce-code-noise-with-groovy/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 03:06:33 +0000</pubDate>
		<dc:creator>gpuri</dc:creator>
		
		<category><![CDATA[Groovy]]></category>

		<guid isPermaLink="false">http://tech.gpuri.com/46/reduce-code-noise-with-groovy/</guid>
		<description><![CDATA[Groovy&#8217;s concise syntax frees developers from typical Java™ constructs that are required for code compilation but don&#8217;t facilitate expressing what a program is really trying to accomplish. In this revival of the Practically Groovy series, Groovy developer and guest columnist J. Scott Hickey walks you through a series of comparisons between normal Java code and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ibm.com/developerworks/java/library/j-pg09196.html">Groovy&#8217;s</a> concise syntax frees developers from typical Java™ constructs that are required for code compilation but don&#8217;t facilitate expressing <em>what</em> a program is really trying to accomplish. In this revival of the <em>Practically Groovy</em> series, Groovy developer and guest columnist J. Scott Hickey walks you through a series of comparisons between normal Java code and the same Groovy code to show you how this exciting language frees you to focus on the important aspects of coding.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.gpuri.com/46/reduce-code-noise-with-groovy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JBoss ESB</title>
		<link>http://tech.gpuri.com/45/jboss-esb/</link>
		<comments>http://tech.gpuri.com/45/jboss-esb/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 20:43:05 +0000</pubDate>
		<dc:creator>gpuri</dc:creator>
		
		<category><![CDATA[ESB]]></category>

		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://tech.gpuri.com/45/jboss-esb/</guid>
		<description><![CDATA[If SOA is too expensive, complex or politically challenging, the technology won’t take off. How, then, is it possible to build an SOA that overcomes political and cost constraints? Driving an SOA strategy to success in a large organization requires a corporate-level CIO with the power to drive a vision, enforce a set of architectural [...]]]></description>
			<content:encoded><![CDATA[<p>If SOA is too expensive, complex or politically challenging, the technology won’t take off. How, then, is it possible to build an SOA that overcomes political and cost constraints? Driving an SOA strategy to success in a large organization requires a corporate-level CIO with the power to drive a vision, enforce a set of architectural goals and blueprints, and mediate financial allocations. <a href="http://www.mastertheboss.com/en/soa-a-esb/78-jboss-esb.html">To get a manageable SOA</a>, you’ll need to start with SOA platforms that represent a <em>relatively low investment</em>. That’ll likely mean tools and platforms that are open source, with support and ecosystem benefits available at a low cost.</p>
<p>JBoss team have designed their own Service Bus: JBoss Enterprise Service Bus  is a robust SOA solution designed since the release 4.2 with build-in fail-over, load balancing and delayed message redelivery. JBossESB allows you to distribute service instances across many nodes. Each node can be a virtual or physical machine running one or more instances of JBossESB.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.gpuri.com/45/jboss-esb/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to use the agent sample application in WebLogic 10 - OpenSSO</title>
		<link>http://tech.gpuri.com/44/how-to-use-the-agent-sample-application/</link>
		<comments>http://tech.gpuri.com/44/how-to-use-the-agent-sample-application/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 22:32:28 +0000</pubDate>
		<dc:creator>gpuri</dc:creator>
		
		<category><![CDATA[SSO]]></category>

		<guid isPermaLink="false">http://tech.gpuri.com/44/how-to-use-the-agent-sample-application/</guid>
		<description><![CDATA[This document describes to use the agent sample application in conjunction with the Weblogic 10.X Application Server and the J2EE Agent. Please note thatthe agent needs to be installed first before deploying this sample application.
]]></description>
			<content:encoded><![CDATA[<p>This document describes <a href="http://tech.gpuri.com/wp-content/uploads/2009/01/j2ee-policy-agent-demo-on-bea-wl10.doc" title="to use the agent sample application">to use the agent sample application</a> in conjunction with the Weblogic 10.X Application Server and the J2EE Agent. Please note thatthe agent needs to be installed first before deploying this sample application.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.gpuri.com/44/how-to-use-the-agent-sample-application/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OpenSSO Fedlet Demo</title>
		<link>http://tech.gpuri.com/42/fedlet-demo/</link>
		<comments>http://tech.gpuri.com/42/fedlet-demo/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 22:28:05 +0000</pubDate>
		<dc:creator>gpuri</dc:creator>
		
		<category><![CDATA[SSO]]></category>

		<guid isPermaLink="false">http://tech.gpuri.com/42/fedlet-demo/</guid>
		<description><![CDATA[I will try to demonstrate an IDP generating Fedlets, SP configuring and using this Fedlet for IDP initiated SSO, SP initiated SSO and transfer of identity attributes as part of the assertions from the IDP.
Here&#8217;s also the details and a write-up of steps of steps, which I&#8217;ve used for the setup.
]]></description>
			<content:encoded><![CDATA[<p>I will try to demonstrate an IDP generating Fedlets, SP configuring and using this Fedlet for IDP initiated SSO, SP initiated SSO and transfer of identity attributes as part of the assertions from the IDP.</p>
<p>Here&#8217;s also the <a href="http://tech.gpuri.com/wp-content/uploads/2009/01/fedlets-demo.doc" title="fedlets-demo.doc">details and a write-up of steps</a> of steps, which I&#8217;ve used for the setup.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.gpuri.com/42/fedlet-demo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using Adobe Flex in JSR-286 Portlets</title>
		<link>http://tech.gpuri.com/38/using-adobe-flex-in-jsr-286-portlets/</link>
		<comments>http://tech.gpuri.com/38/using-adobe-flex-in-jsr-286-portlets/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 21:04:44 +0000</pubDate>
		<dc:creator>gpuri</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://tech.gpuri.com/38/using-adobe-flex-in-jsr-286-portlets/</guid>
		<description><![CDATA[This article shall show you how the Adobe Flex SDK can be used in a Portal environment to enhance the user interface for a Portlet. It has also previously been possible to use Flex with JSR-168 Portlets and alike [FlexPortal], but with the new Portlet 2.0 specification (JSR-286) some things have improved, such as the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www-10.lotus.com/ldd/portalwiki.nsf/dx/Flex_Demo_Portlet_v5.pdf/$file/Flex_Demo_Portlet_v5.pdf">This article shall show</a> you how the Adobe Flex SDK can be used in a Portal environment to enhance the user interface for a Portlet. It has also previously been possible to use Flex with JSR-168 Portlets and alike [FlexPortal], but with the new Portlet 2.0 specification (JSR-286) some things have improved, such as the support for asynchronous requests, public render parameters and events. It will be shown what is possible with the technology combination Flex/Portlets and where the limits are.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.gpuri.com/38/using-adobe-flex-in-jsr-286-portlets/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JBoss Federated SSO</title>
		<link>http://tech.gpuri.com/39/jboss-federated-sso/</link>
		<comments>http://tech.gpuri.com/39/jboss-federated-sso/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 21:08:39 +0000</pubDate>
		<dc:creator>gpuri</dc:creator>
		
		<category><![CDATA[SSO]]></category>

		<guid isPermaLink="false">http://tech.gpuri.com/39/jboss-federated-sso/</guid>
		<description><![CDATA[The JBoss SSO Framework is a collection of components that software developers can easily integrate within their existing web applications to create a federation of trusted web sites. The framework has support for important SSO standards such as SAML.
]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.jboss.org/jbosssso/">JBoss SSO Framework</a> is a collection of components that software developers can easily integrate within their existing web applications to create a federation of trusted web sites. The framework has support for important SSO standards such as SAML.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.gpuri.com/39/jboss-federated-sso/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 2.102 seconds -->
<!-- Cached page served by WP-Cache -->
