<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Hastener's Blog</title>
    <description>Hasten Technologies Pvt Ltd</description>
    <link>http://www.hastentechnologies.com/blog/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.Net Syndication Generator 1.0.0.0 (http://dotnetblogengine.net/)</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.hastentechnologies.com/blog/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.hastentechnologies.com/blog/syndication.axd</blogChannel:blink>
    <dc:creator>Hasten</dc:creator>
    <dc:title>Hastener's Blog</dc:title>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Hasten" type="application/rss+xml" /><feedburner:emailServiceId>Hasten</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>Magento: Configuring Orbital Chase Paymentech Gateway</title>
      <description>&lt;p&gt;
&lt;strong&gt;Magento Commerce&lt;/strong&gt;, is a direct response to the emerging new needs of today&amp;#39;s online merchants. More than any feature or functionality what our clients really needs is &amp;quot;flexibility&amp;quot; is done through the magento. 
&lt;/p&gt;
&lt;p&gt;
We have a lot of payment gateways today to integrate with our e-commerce application. Here we see how to integrate one of the leading Gateway providers CHASE Payment Tech Gateway with Magento Commerce. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h3&gt;1. Creating CHASE Payment Module &lt;/h3&gt;
&lt;p&gt;
The CHASE Payment Module is included as Magento Commerce Extension, by&amp;nbsp;using &lt;strong&gt;Magento Module Creator.&lt;/strong&gt; Using Module Creator&amp;nbsp;the Payment Module template for both Administrator and Client Section will get added. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=Magento+Module+Creator+Orbital+Chase+Paymentech.jpg" alt="Magento Module Creator Orbital Chase Paymentech Gateway" /&gt; 
&lt;/p&gt;
&lt;p&gt;
The module&amp;nbsp;will get created and integrated into our existing magento site by specifying the parameters properly as mentioned above. The parameters are Name Space, Module, Magento Root Directory, Design Interface and Design. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h4&gt;1.1 Installing Module Creator &lt;/h4&gt;
&lt;p&gt;
In order to download, visit&amp;nbsp;Module Creator page in Magento Wiki. 
&lt;/p&gt;
&lt;p&gt;
After dowloading, to install the Module Creator, copy the index.php file&amp;nbsp;into a Blank folder&amp;nbsp;on your webserver. You have to put it in it&amp;rsquo;s own folder so that the index file does not conflict with other index files. Example: mysite.com/module_creator/ 
&lt;/p&gt;
&lt;p&gt;
Open the module creator index page in your web browser, and fill in the desired module information. If you enter your Magento directory, the module creator will attempt to install the module directly into Magento, so file permissions must be set correctly for this to happen. If your file permissions are incorrect, or you do not want the module installed right away, you can leave the Magento Directory blank, and the module creator will create the module in a folder called &lt;strong&gt;&amp;#39;&lt;em&gt;new&amp;#39;&lt;/em&gt;&lt;/strong&gt;, and place it under module creator&amp;rsquo;s folder. 
&lt;/p&gt;
&lt;p&gt;
Please note that if you enter in your magento directory to install to you must have the correct path. Let&amp;rsquo;s say that you have Magento installed here: &lt;br /&gt;
&lt;a href="http://www.my_site.com/magento/"&gt;http://www.my_site.com/magento/&lt;/a&gt;&lt;br /&gt;
And you have the Module Creator installed here:&lt;br /&gt;
&lt;a href="http://www.my_site.com/module_creator/"&gt;http://www.my_site.com/module_creator/&lt;/a&gt;&lt;br /&gt;
This means that the path that you would need to enter in the Module Creator is this:&lt;br /&gt;
../magento&lt;br /&gt;
The &amp;lsquo;..&amp;rsquo; signifies one directory up. 
&lt;/p&gt;
&lt;p&gt;
The new payment gateway gets installed in the &lt;strong&gt;/App/Core/Code/local folder&lt;/strong&gt; with default folder right permission without disturbing the existing payment gateways.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
For more information on Module Creator visit,&lt;br /&gt;
&lt;a href="http://www.magentocommerce.com/wiki/custom_module_with_custom_database_table"&gt;http://www.magentocommerce.com/wiki/custom_module_with_custom_database_table&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Note:&lt;/strong&gt;&lt;br /&gt;
Once the new payment module installed properly, go to the &lt;strong&gt;/var/cache &lt;/strong&gt;folder and delete all the files inside the folder and then run the application, now the new changes get reflected. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h3&gt;2. CHASE Module in Administrator Section &lt;/h3&gt;
&lt;p&gt;
Now we will add the Chase Paymentech Module to the administration section, so that we can update the Merchant ID, Terminal ID and Gateway URL as seen in the below screen. 
&lt;/p&gt;
&lt;p&gt;
The fields&amp;nbsp;configured in administration section can be customized in the &lt;strong&gt;system.xml&lt;/strong&gt; file located at the &lt;strong&gt;/App/Core/Code/Local/Mage/newmodule/etc&lt;/strong&gt; folder. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=Magento+Orbital+Chase+Paymentech+Configuration.jpg" alt="Magento Orbital Chase Paymentech Configuration" /&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h3&gt;3. CHASE Module in Client Section &lt;/h3&gt;
&lt;p&gt;
After the payment module is integrated in the Magento application using the Module Creator, the Orbtiz Chase Module on the Client Section will look like in the below screen. 
&lt;/p&gt;
&lt;p&gt;
Client&amp;nbsp;section Payment Information fields can be modified directly at, &lt;strong&gt;App/design/frontend/default/example-module/template/payment/form/cc.phtml&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h3&gt;4. Payment Processing with CHASE &lt;/h3&gt;
&lt;p&gt;
Once the Chase module payment process is integrated in the client section, the paymentmethod.php will do the backend process like checking the card details by sending to the Chase Paymentech and return the response from the Chase. 
&lt;/p&gt;
&lt;p&gt;
The &lt;strong&gt;paymentmethod.php&lt;/strong&gt; is located in the new module created by Module Creator, at &lt;strong&gt;/app/local/CHASE_Paymentech/Orbitz/Model/PaymentMethod.php&lt;/strong&gt;, 
&lt;/p&gt;
&lt;p&gt;
You can download the code from the below link. 
&lt;/p&gt;
&lt;p&gt;
&lt;a rel="enclosure" href="http://www.hastentechnologies.com/blog/file.axd?file=PaymentMethod.zip"&gt;PaymentMethod.zip (2.95 kb)&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The PHP code will explain you the process of reading the card information from the payment page and post it to the Chase using the payment gateway and receive the response back from the Chase. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h4&gt;4.1. Specifing the Payment Gateway URL &lt;/h4&gt;
&lt;p&gt;
In the code we are using &lt;strong&gt;CURL&lt;/strong&gt; to receive payment gateway response so we need to enable the &lt;strong&gt;extension=php_curl.dll&lt;/strong&gt; in &lt;strong&gt;php.ini&lt;/strong&gt;. Update the php.ini as per the requirement and restart the server. 
&lt;/p&gt;
&lt;p&gt;
Payment Gateway URL for Production &amp;ndash; &lt;br /&gt;
&amp;#39;https://orbital1.paymentech.net&amp;#39;&lt;br /&gt;
&amp;#39;https://orbital2.paymentech.net&amp;#39;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
Payment Gateway URL for Test &amp;ndash;&lt;br /&gt;
&amp;#39;https://orbitalvar2.paymentech.net/authorize&amp;#39; 
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;$value = Mage::getStoreConfig(&amp;#39;payment/ Orbitz_Paymentech/cgi_url&amp;#39;);&lt;br /&gt;
if (!$value || $value === false) {&lt;br /&gt;
&amp;nbsp; return &amp;#39;https://orbital1.paymentech.net&amp;#39;; &lt;br /&gt;
}&lt;br /&gt;
return $value;&lt;br /&gt;
&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
The Authorize and Capture event is done on the each order process. The Credit Card is get processed the specified amount sent as XML Request. The xml request was constructed as below, 
&lt;/p&gt;
&lt;code&gt;$xml=&amp;quot;&lt;!--l version=\"1.0\" encoding=\"UTF-8\--&gt;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;EC&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;AC&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;.htmlentities(trim($this-&amp;gt;getConfigData(&amp;#39;bin_no&amp;#39;)),ENT_QUOTES, &amp;#39;UTF-8&amp;#39;).&amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;.htmlentities(trim($this-&amp;gt;getConfigData(&amp;#39;merchant_id&amp;#39;)),ENT_QUOTES, &amp;#39;UTF-8&amp;#39;).&amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;.htmlentities(trim($this-&amp;gt;getConfigData(&amp;#39;terminal_id&amp;#39;)),ENT_QUOTES, &amp;#39;UTF-8&amp;#39;).&amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;.htmlentities(trim($payment-&amp;gt;getCcType()),ENT_QUOTES, &amp;#39;UTF-8&amp;#39;).&amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;.htmlentities(trim($payment-&amp;gt;getCcNumber()),ENT_QUOTES, &amp;#39;UTF-8&amp;#39;).&amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;.htmlentities(trim($exp),ENT_QUOTES, &amp;#39;UTF-8&amp;#39;).&amp;quot;&amp;quot;;&lt;br /&gt;
if(($payment-&amp;gt;getCcType()==&amp;#39;VI&amp;#39;) || ($payment-&amp;gt;getCcType()==&amp;#39;DI&amp;#39;)) {&lt;br /&gt;
&amp;nbsp; $xml .= &amp;quot;1&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;.htmlentities(trim($payment-&amp;gt;getCcCid()),ENT_QUOTES, &amp;#39;UTF-8&amp;#39;).&amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;.htmlentities(trim($billing-&amp;gt;getPostcode()),ENT_QUOTES, &amp;#39;UTF-8&amp;#39;).&amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;.htmlentities(trim($billing-&amp;gt;getStreet(1)),ENT_QUOTES, &amp;#39;UTF-8&amp;#39;).&amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;.htmlentities(trim($billing-&amp;gt;getCity()),ENT_QUOTES, &amp;#39;UTF-8&amp;#39;).&amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;CA&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;.htmlentities(trim($billing-&amp;gt;getFirstname()),ENT_QUOTES, &amp;#39;UTF-8&amp;#39;).&amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;.htmlentities(trim($order-&amp;gt;getIncrementId()),ENT_QUOTES, &amp;#39;UTF-8&amp;#39;).&amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;.htmlentities(trim($amt),ENT_QUOTES, &amp;#39;UTF-8&amp;#39;).&amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;AC&amp;quot;; &lt;br /&gt;
$xml .= &amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;;&lt;br /&gt;
$xml .= &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;/code&gt;
&lt;p&gt;
The request is sent as CURL post to Chase is as follows, 
&lt;/p&gt;
&lt;code&gt;$http = new Varien_Http_Adapter_Curl();&lt;br /&gt;
$config = array(&amp;#39;timeout&amp;#39; =&amp;gt; 30);&lt;br /&gt;
$http-&amp;gt;setConfig($config);&lt;br /&gt;
&lt;br /&gt;
$header= &amp;quot;POST /AUTHORIZE HTTP/1.0\r\n&amp;quot;; // HTTP/1.1 should work fine also&lt;br /&gt;
$header.= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
$header.= &amp;quot;Content-type: application/PTI40\r\n&amp;quot;;&lt;br /&gt;
$header.= &amp;quot;Content-length: &amp;quot; .strlen($xml) . &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$header.= &amp;quot;Content-transfer-encoding: text\r\n&amp;quot;;&lt;br /&gt;
$header.= &amp;quot;Request-number: 1\r\n&amp;quot;;&lt;br /&gt;
$header.= &amp;quot;Document-type: Request\r\n&amp;quot;;&lt;br /&gt;
$header.= &amp;quot;Interface-Version: Test 1.4\r\n&amp;quot;;&lt;br /&gt;
$header.= &amp;quot;Connection: close \r\n\r\n&amp;quot;; &lt;br /&gt;
$header.= $xml;&lt;br /&gt;
$ch = curl_init();&lt;br /&gt;
curl_setopt($ch, CURLOPT_URL,$this-&amp;gt;getApiGatewayUrl());&lt;br /&gt;
curl_setopt($ch, CURLOPT_HEADER, false); &lt;br /&gt;
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);&lt;br /&gt;
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);&lt;br /&gt;
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);&lt;br /&gt;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
$response = curl_exec($ch); &lt;br /&gt;
&lt;/code&gt;
&lt;p&gt;
The Chase response will get parsed from xml to array format and validate the response by each parameter as per the Chase Certification_WS document. 
&lt;/p&gt;
&lt;p&gt;
Chase will request you the code to scrutinize before approval. They will look through the parameters that you are sending in the Request, and how you are&amp;nbsp;parsing their Response &amp;amp; its error codes.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=fPvD3n0ghEA:NCMz5VOJtjg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=fPvD3n0ghEA:NCMz5VOJtjg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=fPvD3n0ghEA:NCMz5VOJtjg:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=fPvD3n0ghEA:NCMz5VOJtjg:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=fPvD3n0ghEA:NCMz5VOJtjg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=fPvD3n0ghEA:NCMz5VOJtjg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=fPvD3n0ghEA:NCMz5VOJtjg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=fPvD3n0ghEA:NCMz5VOJtjg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=fPvD3n0ghEA:NCMz5VOJtjg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=fPvD3n0ghEA:NCMz5VOJtjg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=fPvD3n0ghEA:NCMz5VOJtjg:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=fPvD3n0ghEA:NCMz5VOJtjg:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=fPvD3n0ghEA:NCMz5VOJtjg:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=fPvD3n0ghEA:NCMz5VOJtjg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=fPvD3n0ghEA:NCMz5VOJtjg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=fPvD3n0ghEA:NCMz5VOJtjg:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Hasten/~4/fPvD3n0ghEA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Hasten/~3/fPvD3n0ghEA/post.aspx</link>
      <author>Rafeek</author>
      <comments>http://www.hastentechnologies.com/blog/post/Magento-Configuring-Orbital-Chase-Paymentech-Gateway.aspx#comment</comments>
      <guid isPermaLink="false">http://www.hastentechnologies.com/blog/post.aspx?id=f5516206-698a-4b1e-aab7-621efceff9fb</guid>
      <pubDate>Sat, 23 May 2009 15:52:00 +0500</pubDate>
      <category>Apache</category>
      <category>Magento</category>
      <category>PHP</category>
      <dc:publisher>Rafeek</dc:publisher>
      <pingback:server>http://www.hastentechnologies.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.hastentechnologies.com/blog/post.aspx?id=f5516206-698a-4b1e-aab7-621efceff9fb</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.hastentechnologies.com/blog/trackback.axd?id=f5516206-698a-4b1e-aab7-621efceff9fb</trackback:ping>
      <wfw:comment>http://www.hastentechnologies.com/blog/post/Magento-Configuring-Orbital-Chase-Paymentech-Gateway.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.hastentechnologies.com/blog/syndication.axd?post=f5516206-698a-4b1e-aab7-621efceff9fb</wfw:commentRss>
    <feedburner:origLink>http://www.hastentechnologies.com/blog/post.aspx?id=f5516206-698a-4b1e-aab7-621efceff9fb</feedburner:origLink></item>
    <item>
      <title>Knowing which PORT is using by which APPLICATION</title>
      <description>&lt;p&gt;Recently for a client need to install our SilverLight application on his laptop for demo over GotoMeeting. The laptop is having Vista 64 bit Windows OS. After installing IIS 7 on it, the webserver&amp;#39;s Default Website was not starting. So checked everything - Services, Installed Apps in Programs &amp;amp; Features etc, to see whether Apache or Tomcat or any other webserver is running and blocking 80 port. But couldn&amp;#39;t see any of those applications.&lt;/p&gt;&lt;p&gt;Then started hunting to know who is blocking 80 port on that machine. Did little googling and found following 2 commands to know which app is listening to the 80 port.&lt;/p&gt;&lt;p&gt;Through these commands you can know easily which application is listening to a particular port. As well you can see all ports that are exposed and applications that are using them. This is a 2 step process. First we will see ,what are the ports that are listening by different Process Ids. Next using that PID we will get the Application name.&lt;/p&gt;&lt;p&gt;To know the listening ports on your machine type the following command in CMD prompt&lt;/p&gt;&lt;code&gt;netstat -ano | find /i &amp;quot;listening&amp;quot;&lt;/code&gt;&lt;p&gt;Fist column will show you the protocol TCP or UDP, next IP &amp;amp; PORT numbers of Source, next&amp;nbsp;IP &amp;amp; PORT numbers of Destination machine, next State (that we needed to filter the list), and finally the Process Id (PID).&lt;/p&gt;&lt;p&gt;From the last column we will take the Process Id and find the Application of it.&lt;/p&gt;&lt;p&gt;So for that lets Google and download a small application named &lt;a href="http://www.google.com/search?q=PULIST" target="_blank"&gt;PUList&lt;/a&gt;. The &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9B9DA78D-F7D1-4B8A-8A31-3BB725C7A069" target="_blank"&gt;Windows 2000 Resource Kit Tool&lt;/a&gt; needs you to go through Genuine OS check, and then you can download the PULIST.EXE. After downloading &amp;amp; installing PUList, navigate to the installed directory in CMD prompt. Run the following command in there,&lt;/p&gt;&lt;code&gt;pulist |find /I &amp;quot;6372&amp;quot;&lt;/code&gt;&lt;p&gt;or just&lt;/p&gt;&lt;p&gt;pulist&amp;nbsp;&lt;/p&gt;&lt;p&gt;will list all the processes that are running.&lt;/p&gt;&lt;p&gt;Finally we found that Skype is using the port 80. So after exiting it the IIS Default website started working.&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=WAHNPK5AF3M:DZWSgEv7XKE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=WAHNPK5AF3M:DZWSgEv7XKE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=WAHNPK5AF3M:DZWSgEv7XKE:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=WAHNPK5AF3M:DZWSgEv7XKE:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=WAHNPK5AF3M:DZWSgEv7XKE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=WAHNPK5AF3M:DZWSgEv7XKE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=WAHNPK5AF3M:DZWSgEv7XKE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=WAHNPK5AF3M:DZWSgEv7XKE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=WAHNPK5AF3M:DZWSgEv7XKE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=WAHNPK5AF3M:DZWSgEv7XKE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=WAHNPK5AF3M:DZWSgEv7XKE:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=WAHNPK5AF3M:DZWSgEv7XKE:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=WAHNPK5AF3M:DZWSgEv7XKE:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=WAHNPK5AF3M:DZWSgEv7XKE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=WAHNPK5AF3M:DZWSgEv7XKE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=WAHNPK5AF3M:DZWSgEv7XKE:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Hasten/~4/WAHNPK5AF3M" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Hasten/~3/WAHNPK5AF3M/post.aspx</link>
      <author>Ramana</author>
      <comments>http://www.hastentechnologies.com/blog/post/Knowing-which-PORT-is-using-by-which-APPLICATION.aspx#comment</comments>
      <guid isPermaLink="false">http://www.hastentechnologies.com/blog/post.aspx?id=339244c2-fb6b-44a0-8744-7d595d9b2230</guid>
      <pubDate>Mon, 20 Apr 2009 07:49:00 +0500</pubDate>
      <category>IIS 7</category>
      <category>Server Configuration</category>
      <category>Windows 2008</category>
      <dc:publisher>Ramana</dc:publisher>
      <pingback:server>http://www.hastentechnologies.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.hastentechnologies.com/blog/post.aspx?id=339244c2-fb6b-44a0-8744-7d595d9b2230</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.hastentechnologies.com/blog/trackback.axd?id=339244c2-fb6b-44a0-8744-7d595d9b2230</trackback:ping>
      <wfw:comment>http://www.hastentechnologies.com/blog/post/Knowing-which-PORT-is-using-by-which-APPLICATION.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.hastentechnologies.com/blog/syndication.axd?post=339244c2-fb6b-44a0-8744-7d595d9b2230</wfw:commentRss>
    <feedburner:origLink>http://www.hastentechnologies.com/blog/post.aspx?id=339244c2-fb6b-44a0-8744-7d595d9b2230</feedburner:origLink></item>
    <item>
      <title>Magento Menu Customization with Product List</title>
      <description>&lt;p&gt;
Magento main menu is construed based on the hierarchy like, 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;Root Category &amp;rarr; Category &amp;rarr; Sub-Category 
&lt;/p&gt;
&lt;p&gt;
We will customise the menu to show the Products of a category/su-bcategory along with its hierarchy in dropdown menu as seen below. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=Hasten-Magento+Category+Product+Menu+List.gif" alt="" /&gt; 
&lt;/p&gt;
&lt;p&gt;
This is a good feature if you have less products in a website. 
&lt;/p&gt;
&lt;p&gt;
In order to implement the above structure, we need to modify the &lt;strong&gt;navigation.php&lt;/strong&gt; file of &lt;strong&gt;drawItem()&lt;/strong&gt; function like below. The &lt;strong&gt;navigation.php&lt;/strong&gt; is available in the following location, 
&lt;/p&gt;
&lt;code&gt;app/code/core/Mage/Catalog/Block/Navigation.php &lt;/code&gt;
&lt;p&gt;
The code is, 
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;Public function drawItem($category, $level=0, $last=false){&lt;br /&gt;
&amp;nbsp;$html = &amp;#39;&amp;#39;; &lt;br /&gt;
&amp;nbsp;if (!$category-&amp;gt;getIsActive()) { &lt;br /&gt;
&amp;nbsp;&amp;nbsp;return $html; &lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;$children = $category-&amp;gt;getChildren();&lt;br /&gt;
&amp;nbsp;$hasChildren = $children &amp;amp;&amp;amp; $children-&amp;gt;count();&lt;br /&gt;
&amp;nbsp;/***** Getting Product List Start ******/&lt;br /&gt;
&amp;nbsp;$cur_category = Mage::getModel(&amp;#39;catalog/category&amp;#39;)-&amp;gt;load($category-&amp;gt;getId());&lt;br /&gt;
&amp;nbsp;$_productCollection = Mage::getResourceModel(&amp;#39;catalog/product_collection&amp;#39;)-&amp;gt;addCategoryFilter($cur_category)-&amp;gt;setOrder(&amp;#39;position&amp;#39;, &amp;#39;ASC&amp;#39;);&lt;br /&gt;
&amp;nbsp;$cnt=1;&lt;br /&gt;
&amp;nbsp;$hasProduct1=$_productCollection-&amp;gt;count();&lt;br /&gt;
&amp;nbsp;$phtmlChildren=&amp;#39;&amp;#39;;&lt;br /&gt;
&amp;nbsp;if($hasProduct1&amp;gt;=1){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;$l=$level+1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;foreach ($_productCollection AS $_product){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $cur_product = Mage::getModel(&amp;#39;catalog/product&amp;#39;)-&amp;gt;load($_product-&amp;gt;getId());&lt;br /&gt;
&amp;nbsp;&amp;nbsp; if ($cur_product-&amp;gt;getStatus()){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;$phtmlChildren.= &amp;#39;&amp;lt;li&amp;#39;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;if($cnt==$hasProduct1) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; $phtmlChildren.= &amp;#39; class=&amp;quot;level&amp;#39;.$l;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; $phtmlChildren.= &amp;#39; nav-&amp;#39;.$this-&amp;gt;htmlEscape($cur_product-&amp;gt;getName()).&amp;#39; last&amp;#39;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; $phtmlChildren.= &amp;#39; class=&amp;quot;level&amp;#39;.$l;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; $phtmlChildren.= &amp;#39; nav-&amp;#39;.$this-&amp;gt;htmlEscape($cur_product-&amp;gt;getName());&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;$phtmlChildren.= &amp;#39;&amp;quot;&amp;gt;&amp;#39;.&amp;quot;\n&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;$phtmlChildren.= &amp;#39; &amp;lt;a href=&amp;quot;/&amp;#39;.$cur_product-&amp;gt;getUrlPath() . &amp;#39;.html&amp;quot;&amp;gt;&amp;#39;. $this-&amp;gt;htmlEscape($cur_product-&amp;gt;getName()) . &amp;#39;&amp;lt;/a&amp;gt;&amp;#39;.&amp;quot;\n&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;$phtmlChildren.= &amp;#39;&amp;lt;/li&amp;gt;&amp;#39;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;$cnt=$cnt+1; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;/***** Getting Product List End ******/&lt;br /&gt;
&amp;nbsp;$html.= &amp;#39;&amp;lt;li&amp;#39;;&lt;br /&gt;
&amp;nbsp;if ($hasChildren || (!empty($phtmlChildren))) &lt;br /&gt;
&amp;nbsp;&amp;nbsp;$html.= &amp;#39; onmouseover=&amp;quot;toggleMenu(this,1)&amp;quot;&amp;nbsp;onmouseout=&amp;quot;toggleMenu(this,0)&amp;quot;&amp;#39;;&lt;br /&gt;
&amp;nbsp;$html.= &amp;#39; class=&amp;quot;level&amp;#39;.$level;&lt;br /&gt;
&amp;nbsp;$html.= &amp;#39; nav-&amp;#39;.str_replace(&amp;#39;/&amp;#39;, &amp;#39;-&amp;#39;, $category-&amp;gt;getRequestPath());&lt;br /&gt;
&amp;nbsp;if ($this-&amp;gt;isCategoryActive($category))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;$html.= &amp;#39; active&amp;#39;;&lt;br /&gt;
&amp;nbsp;if ($last)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;$html .= &amp;#39; last&amp;#39;;&lt;br /&gt;
&amp;nbsp;if ($hasChildren || (!empty($phtmlChildren))) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;$cnt = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;foreach ($children as $child)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; if ($child-&amp;gt;getIsActive()) &lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;$cnt++; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;$html .= &amp;#39; parent&amp;#39;;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;$html.= &amp;#39;&amp;quot;&amp;gt;&amp;#39;.&amp;quot;\n&amp;quot;;&lt;br /&gt;
&amp;nbsp;$html.= &amp;#39;&amp;lt;a href=&amp;quot;&amp;#39;.$this-&amp;gt;getCategoryUrl($category).&amp;#39;&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;#39;.$this-&amp;gt;htmlEscape($category-&amp;gt;getName()).&amp;#39;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;#39;.&amp;quot;\n&amp;quot;;&lt;br /&gt;
&amp;nbsp;$htmlChildren = &amp;#39;&amp;#39;; &lt;br /&gt;
&amp;nbsp;if ($hasChildren) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;$j = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;foreach ($children as $child)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; if ($child-&amp;gt;getIsActive())&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;$htmlChildren.= $this-&amp;gt;drawItem($child, $level+1, ++$j &amp;gt;= $cnt);&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;if ((!empty($htmlChildren)) || (!empty($phtmlChildren)))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;$html.= &amp;#39;&amp;lt;ul class=&amp;quot;level&amp;#39; . $level . &amp;#39;&amp;quot;&amp;gt;&amp;#39;.&amp;quot;\n&amp;quot; .$htmlChildren .$phtmlChildren .&amp;#39;&amp;lt;/ul&amp;gt;&amp;#39;;&lt;br /&gt;
&amp;nbsp;$html.= &amp;#39;&amp;lt;/li&amp;gt;&amp;#39;.&amp;quot;\n&amp;quot;;&lt;br /&gt;
&amp;nbsp;return $html;&lt;br /&gt;
}&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
The below lines in &lt;strong&gt;drawItem()&lt;/strong&gt; function will fetch the current sub-category&amp;#39;s product list based on the sub-category id. The &lt;strong&gt;$_productCollection&lt;/strong&gt; has the list of product of selected subcategory by getting the id as &lt;strong&gt;$category-&amp;gt;getId()&lt;/strong&gt; function. 
&lt;/p&gt;
&lt;code&gt;&amp;nbsp;$cur_category = Mage::getModel(&amp;#39;catalog/category&amp;#39;)-&amp;gt;load($category-&amp;gt;getId());&lt;br /&gt;
&amp;nbsp;$_productCollection = Mage::getResourceModel(&amp;#39;catalog/product_collection&amp;#39;)-&amp;gt;addCategoryFilter($cur_category)-&amp;gt;setOrder(&amp;#39;position&amp;#39;, &amp;#39;ASC&amp;#39;); &lt;/code&gt;
&lt;p&gt;
We&amp;nbsp;will loop through them and generate the menu structure using &lt;strong&gt;&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;&lt;/strong&gt; tag. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=G5B2NQk4Ki4:cDVFTGsDGH0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=G5B2NQk4Ki4:cDVFTGsDGH0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=G5B2NQk4Ki4:cDVFTGsDGH0:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=G5B2NQk4Ki4:cDVFTGsDGH0:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=G5B2NQk4Ki4:cDVFTGsDGH0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=G5B2NQk4Ki4:cDVFTGsDGH0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=G5B2NQk4Ki4:cDVFTGsDGH0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=G5B2NQk4Ki4:cDVFTGsDGH0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=G5B2NQk4Ki4:cDVFTGsDGH0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=G5B2NQk4Ki4:cDVFTGsDGH0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=G5B2NQk4Ki4:cDVFTGsDGH0:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=G5B2NQk4Ki4:cDVFTGsDGH0:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=G5B2NQk4Ki4:cDVFTGsDGH0:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=G5B2NQk4Ki4:cDVFTGsDGH0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=G5B2NQk4Ki4:cDVFTGsDGH0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=G5B2NQk4Ki4:cDVFTGsDGH0:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Hasten/~4/G5B2NQk4Ki4" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Hasten/~3/G5B2NQk4Ki4/post.aspx</link>
      <author>Rafeek</author>
      <comments>http://www.hastentechnologies.com/blog/post/Magento-Menu-Customization-with-Product-List.aspx#comment</comments>
      <guid isPermaLink="false">http://www.hastentechnologies.com/blog/post.aspx?id=dab590bf-7d1b-4927-852b-8cf7b4da20aa</guid>
      <pubDate>Tue, 03 Feb 2009 06:02:00 +0500</pubDate>
      <category>Magento</category>
      <category>PHP</category>
      <dc:publisher>Rafeek</dc:publisher>
      <pingback:server>http://www.hastentechnologies.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.hastentechnologies.com/blog/post.aspx?id=dab590bf-7d1b-4927-852b-8cf7b4da20aa</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.hastentechnologies.com/blog/trackback.axd?id=dab590bf-7d1b-4927-852b-8cf7b4da20aa</trackback:ping>
      <wfw:comment>http://www.hastentechnologies.com/blog/post/Magento-Menu-Customization-with-Product-List.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.hastentechnologies.com/blog/syndication.axd?post=dab590bf-7d1b-4927-852b-8cf7b4da20aa</wfw:commentRss>
    <feedburner:origLink>http://www.hastentechnologies.com/blog/post.aspx?id=dab590bf-7d1b-4927-852b-8cf7b4da20aa</feedburner:origLink></item>
    <item>
      <title>WebEx Meeting Integration Steps</title>
      <description>&lt;p&gt;
In order to integrate WebEx into web application we need to complete the following steps: 
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;strong&gt;Create a developer account on WebEx developer community&lt;br /&gt;
	&lt;/strong&gt;We need to create a developer account in the sandbox environment. The credentials identify and authenticate your web application request&amp;nbsp;when you make an API call to WebEx. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;strong&gt;Request &amp;amp; Response&lt;/strong&gt;&lt;br /&gt;
	Make the API calls, check the response and save to database or send the meeting details to participants via email 
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Creating WebEx Developer Account &lt;/h3&gt;
&lt;p&gt;
You will have to create a Developer Account on the WebEx developer environment in order to test your application. &amp;nbsp;Following are the steps: 
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;
	&lt;div&gt;
	Sign up at &lt;a href="http://developers.webex.com/"&gt;http://developers.webex.com/&lt;/a&gt; with a valid email id to recieve your credentials to the WebEx system. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	After signing up, account information will be sent to your mail id. It may take more time, as each application will be manually reviewed by WebEx team. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Email will have the SITE ID and PARTNER ID of your account. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	You have to use the above account information (USERNAME, PASSWORD, SITE ID, and PARTNER ID) in all the requests to authenticate your web application with WebEx. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Check API Reference Guide to understand more on Parameter nodes and Key Words for the requests to be made to organise meetings.&lt;br /&gt;
	&lt;a href="http://www.webex.com/pdf/white_paper_integration_APIs.pdf"&gt;http://www.webex.com/pdf/white_paper_integration_APIs.pdf&lt;/a&gt; page number 14 onwards. 
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Creating Meeting (Sample Code)&lt;/h3&gt;
&lt;p&gt;
In ASP.NET page, the following function will be called to schedule a meeting. The parameters will be Meeting Name, its Date and Time. In this example WebEx ID (Email Id), Password, Site Id, and Partner Id is hardcoded. 
&lt;/p&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected void SendCreateMeetingRequestToWebEx(string MeetingName, string MeetingDate, string MeetingTime)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string strReq = @&amp;quot;&amp;lt;?xml version=&amp;quot;&amp;quot;1.0&amp;quot;&amp;quot; encoding=&amp;quot;&amp;quot;UTF-8&amp;quot;&amp;quot;?&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;&amp;lt;serv:message xmlns:xsi=&amp;quot; + &amp;quot;\&amp;quot;&amp;quot; +&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;&lt;a href="http://www.w3.org/2001/XMLSchema-instance"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; + &amp;quot;\&amp;quot;&amp;quot; + &amp;quot;&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;header&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;securityContext&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;webExID&amp;gt;xxx@xxx.xxx&amp;lt;/webExID&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;password&amp;gt;xxxxxx&amp;lt;/password&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;siteID&amp;gt;000000&amp;lt;/siteID&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;partnerID&amp;gt;XXXX0000&amp;lt;/partnerID&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;/securityContext&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;/header&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;body&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;bodyContent xsi:type=&amp;quot; + &amp;quot;\&amp;quot;&amp;quot;&amp;nbsp;+&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;java:com.webex.service.binding.meeting.CreateMeeting&amp;quot; +&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;\&amp;quot;&amp;quot; + &amp;quot;&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;metaData&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;confName&amp;gt;&amp;quot; + MeetingName + &amp;quot;&amp;lt;/confName&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;/metaData&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;schedule&amp;gt; &amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;startDate&amp;gt;&amp;quot; + MeetingDate + &amp;quot; &amp;quot; + MeetingTime + &amp;quot;:00&amp;quot; + &amp;quot;&amp;lt;/startDate&amp;gt; &amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;/schedule&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;/bodyContent&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;/body&amp;gt;&amp;quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;&amp;lt;/serv:message&amp;gt;&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpWebRequest hwrRequest = ((HttpWebRequest)(HttpWebRequest.Create(&amp;quot; &lt;a href="https://apidemoeu.webex.com/WBXService/XMLService"&gt;https://apidemoeu.webex.com/WBXService/XMLService&lt;/a&gt;&amp;quot;))); 
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwrRequest.Method = &amp;quot;POST&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwrRequest.ContentType = &amp;quot;text/xml&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UTF8Encoding encoding = new UTF8Encoding();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] postBytes = encoding.GetBytes(strReq);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwrRequest.ContentLength = postBytes.Length;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stream postStream = hwrRequest.GetRequestStream();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; postStream.Write(postBytes, 0, postBytes.Length);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; postStream.Close();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpWebResponse hwrResponse = ((HttpWebResponse)(hwrRequest.GetResponse()));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stream responseStream = hwrResponse.GetResponseStream();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StreamReader sr = new StreamReader(responseStream);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string respString = sr.ReadToEnd();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; respString = respString.Trim(); 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*Here we are writing to a directory as XML file to check*/&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*Instead you read the XML nodes and find, is it success or a failure*/&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*If success, you will have Host meeting URL and Attendee meeting URL in the Response*/&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TextWriter res = new StreamWriter(Server.MapPath(@&amp;quot;WebExReqRes\CreateMeeting.xml&amp;quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res.WriteLine(respString.ToString(), true);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res.Close();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } 
&lt;/p&gt;
&lt;/code&gt;
&lt;p&gt;
The response will have the MeetingKey, Host URL, and Attendee URL if it is success. Now you have to push them to database to show respective URL to your users based on profile. And also you can frame emails&amp;nbsp;and send&amp;nbsp;to them handy. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=WebEx+Create+Meeting+Services+Operations.JPG" alt="" width="612" height="281" /&gt; 
&lt;/p&gt;
&lt;p&gt;
Further the MeetingKey you have to use to Update Meeting or Delete a Meeting or to create Join Meeting URL for each individual attendee seperately instead of common Attendee URL. 
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zix8zN-sigQ:MghXnuW0bok:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zix8zN-sigQ:MghXnuW0bok:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zix8zN-sigQ:MghXnuW0bok:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=zix8zN-sigQ:MghXnuW0bok:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zix8zN-sigQ:MghXnuW0bok:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=zix8zN-sigQ:MghXnuW0bok:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zix8zN-sigQ:MghXnuW0bok:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zix8zN-sigQ:MghXnuW0bok:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=zix8zN-sigQ:MghXnuW0bok:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zix8zN-sigQ:MghXnuW0bok:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zix8zN-sigQ:MghXnuW0bok:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=zix8zN-sigQ:MghXnuW0bok:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zix8zN-sigQ:MghXnuW0bok:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zix8zN-sigQ:MghXnuW0bok:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=zix8zN-sigQ:MghXnuW0bok:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zix8zN-sigQ:MghXnuW0bok:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Hasten/~4/zix8zN-sigQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Hasten/~3/zix8zN-sigQ/post.aspx</link>
      <author>Madhu</author>
      <comments>http://www.hastentechnologies.com/blog/post/WebEx-Meeting-Integration-Steps.aspx#comment</comments>
      <guid isPermaLink="false">http://www.hastentechnologies.com/blog/post.aspx?id=c882213e-e851-4c7e-9069-7f6298136b5f</guid>
      <pubDate>Wed, 05 Nov 2008 12:18:00 +0500</pubDate>
      <category>Teched</category>
      <category>Web Applications</category>
      <dc:publisher>Madhu</dc:publisher>
      <pingback:server>http://www.hastentechnologies.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.hastentechnologies.com/blog/post.aspx?id=c882213e-e851-4c7e-9069-7f6298136b5f</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.hastentechnologies.com/blog/trackback.axd?id=c882213e-e851-4c7e-9069-7f6298136b5f</trackback:ping>
      <wfw:comment>http://www.hastentechnologies.com/blog/post/WebEx-Meeting-Integration-Steps.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.hastentechnologies.com/blog/syndication.axd?post=c882213e-e851-4c7e-9069-7f6298136b5f</wfw:commentRss>
    <feedburner:origLink>http://www.hastentechnologies.com/blog/post.aspx?id=c882213e-e851-4c7e-9069-7f6298136b5f</feedburner:origLink></item>
    <item>
      <title>Right Browser at Right Time Google Chrome</title>
      <description>&lt;p&gt;
&lt;a href="http://googleblog.blogspot.com/2008/09/google-chrome-now-live.html" target="_blank" title="Google Chrome now live"&gt;Today&lt;/a&gt; Google has released their another beta product &amp;ndash; a &lt;a href="http://www.google.com/chrome" target="_blank" title="Google Chrome"&gt;web browser Google Chrome&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;a href="http://www.google.com/chrome/intl/en/why.html" target="_blank" title="A fresh take on the browser"&gt;Chrome Team&lt;/a&gt; says&lt;/em&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	We improved speed and responsiveness across the board. We also built V8, a more powerful JavaScript engine, to power the next generation of web applications that aren&amp;#39;t even possible in today&amp;#39;s browsers. 
&lt;/blockquote&gt;
&lt;p&gt;
More relief and bit tension as a development company with new &lt;a href="http://code.google.com/p/chromium/" target="_blank" title="Chromium is the open-source project behind Google Chrome."&gt;Google open source web browser&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http://www.hastentechnologies.com/blog/post/Right-Browser-at-Right-Time-Google-Chrome.aspx&amp;amp;title=Right Browser at Right Time Google Chrome" target="_blank"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.hastentechnologies.com/blog/post/Right-Browser-at-Right-Time-Google-Chrome.aspx" border="0" alt="kick it on DotNetKicks.com" width="82" height="18" /&gt; &lt;/a&gt;&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
We downloaded and tested it, looks sleek and different. 
&lt;/p&gt;
&lt;p&gt;
Relief from current slow browsers, Google Chrome is very light weighted and faster as promised. 
&lt;/p&gt;
&lt;p&gt;
Tension, need one more round of testing for browser compatibility with this new browser and fix CSS and JavaScript issues if any. 
&lt;/p&gt;
&lt;p&gt;
We spend most of time with Internet in checking mails, searching, online shopping, reading news, office work, banking - all in a browser. Within half an hour we will end up opening a dozen web pages in couple of browsers (since we don&amp;rsquo;t know when one hangs) 
&lt;/p&gt;
&lt;p&gt;
Now a days, clients are looking for web applications that should work like stand alone applications in browser, with all key events&amp;nbsp;and with advanced&amp;nbsp;mouse events. In order to build rich AJAX based web applications we will be using dojo, extjs, jquery, mootools, scriptaculous, yui, etc JavaScript libraries and write very heavy weight JavaScripts to generate sophisticated effects. 
&lt;/p&gt;
&lt;p&gt;
Main hurdles with current browsers are &lt;strong&gt;1)&lt;/strong&gt; JavaScript runs very slow. &lt;strong&gt;2)&lt;/strong&gt; If we open couple of tabs, the browser hangs, since it locks up something in other tab. 
&lt;/p&gt;
&lt;p&gt;
Chrome mainly addresses these two issues completely. It runs complex web applications very fast, thanks for &lt;a href="http://code.google.com/apis/v8/intro.html" target="_blank" title="Google V8 JavaScript Engine"&gt;Google V8 JavaScript Engine&lt;/a&gt;. It creates separate process for each tab, so if a tab is busy we can still use other tabs, and if any bug in rendering we can close only that tab. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.google.com/googlebooks/chrome/images/6.jpg" target="_blank" title="Google Chrome - Kill Tab"&gt;&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=Chrome+Kill+Tab.JPG" alt="Google Chrome - Kill Tabs" title="Google Chrome - Kill Tabs" width="276" height="408" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.google.com/googlebooks/chrome/images/8.jpg" target="_blank" title="Google Chrome - Kill Plugin"&gt;&lt;img style="width: 282px; height: 409px" src="http://www.hastentechnologies.com/blog/image.axd?picture=Chrome+Kill+Plugin.JPG" alt="Google Chrome - Kill Plugin" title="Google Chrome - Kill Plugin" width="282" height="409" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Firefox hopes to release its new version 3.1 by the end of the year, comes with JavaScript acceleration technology called TraceMonkey.&amp;nbsp;Which claims much more faster than&amp;nbsp;V8. Whatever may be the Browser War, ultimatly&amp;nbsp;we can build faster and safer Enterprice Web Application without any second thought. 
&lt;/p&gt;
&lt;p&gt;
Recently we have built a very big web application with &lt;a href="http://www.hastentechnologies.com/blog/blog/post/ExtJs-Tips-for-GridPanel-Row---Marking2c-Colouring2c-Focusing--Special-Key-Event-Firing.aspx" title="ExtJS"&gt;ExtJS&lt;/a&gt;. At times we thought of converting it to Silverlight, since the grids are not able to handle 500+ rows of data, dynamically with asynchronous reloads. Big forms were taking 6 to 15 secs to load. 
&lt;/p&gt;
&lt;p&gt;
Chrome really saves us from it with its fast JavaScript engine. You can check &lt;a href="http://extjs.com/forum/showthread.php?t=35794" target="_blank" title="ExtJS performance on large forms"&gt;Berend&amp;rsquo;s example&lt;/a&gt; in ExtJS forum,&amp;nbsp;it opens huge form (with 400+ fields) in just &amp;lt; 2 sec in Chrome, amazing. If you look at this example, of course, as said before some CSS need to be changed in skin, to align the dropdown arrow image&amp;nbsp;in left properly. 
&lt;/p&gt;
&lt;p&gt;
Or test your browsers&amp;#39; performance with &lt;a href="http://dromaeo.com/" target="_blank" title="DROMAEO - JavaScript Performance Test Suite"&gt;Dromaeo&lt;/a&gt; / &lt;a href="http://www2.webkit.org/perf/sunspider-0.9/sunspider.html" target="_blank" title="SunSpider JavaScript Benchmark"&gt;SunSpider&lt;/a&gt; site . Some of Dromaeo &lt;a href="https://wiki.mozilla.org/Dromaeo#Viewing_the_Results" target="_blank" title="Compares Safari 3.1, Firefox 3.0b5, Opera 9.5 nightly,IE 8b1, and Google Chrome b1 runs on Windows Vista."&gt;saved test results&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=Extjs+Enterprise+Application+in+Google+Chrome.JPG" alt="ExtJS Enterprise Application in Google Chrome" title="ExtJS Enterprise Application in Google Chrome" width="722" height="360" /&gt;&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
So, fellow Designers and Developers&amp;nbsp;modify your CSS and JavaScript&amp;nbsp;to make webpages compatible for new browser, and dear Testers and Clients you too, to find more bugs. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=yN2N0d_96lM:IqZwF29rgcs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=yN2N0d_96lM:IqZwF29rgcs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=yN2N0d_96lM:IqZwF29rgcs:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=yN2N0d_96lM:IqZwF29rgcs:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=yN2N0d_96lM:IqZwF29rgcs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=yN2N0d_96lM:IqZwF29rgcs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=yN2N0d_96lM:IqZwF29rgcs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=yN2N0d_96lM:IqZwF29rgcs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=yN2N0d_96lM:IqZwF29rgcs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=yN2N0d_96lM:IqZwF29rgcs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=yN2N0d_96lM:IqZwF29rgcs:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=yN2N0d_96lM:IqZwF29rgcs:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=yN2N0d_96lM:IqZwF29rgcs:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=yN2N0d_96lM:IqZwF29rgcs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=yN2N0d_96lM:IqZwF29rgcs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=yN2N0d_96lM:IqZwF29rgcs:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Hasten/~4/yN2N0d_96lM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Hasten/~3/yN2N0d_96lM/post.aspx</link>
      <author>Ramana</author>
      <comments>http://www.hastentechnologies.com/blog/post/Right-Browser-at-Right-Time-Google-Chrome.aspx#comment</comments>
      <guid isPermaLink="false">http://www.hastentechnologies.com/blog/post.aspx?id=195d9de0-ffe9-4c4f-96aa-b7d60c9dd040</guid>
      <pubDate>Tue, 02 Sep 2008 14:45:00 +0500</pubDate>
      <category>Browsers</category>
      <dc:publisher>Ramana</dc:publisher>
      <pingback:server>http://www.hastentechnologies.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.hastentechnologies.com/blog/post.aspx?id=195d9de0-ffe9-4c4f-96aa-b7d60c9dd040</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.hastentechnologies.com/blog/trackback.axd?id=195d9de0-ffe9-4c4f-96aa-b7d60c9dd040</trackback:ping>
      <wfw:comment>http://www.hastentechnologies.com/blog/post/Right-Browser-at-Right-Time-Google-Chrome.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.hastentechnologies.com/blog/syndication.axd?post=195d9de0-ffe9-4c4f-96aa-b7d60c9dd040</wfw:commentRss>
    <feedburner:origLink>http://www.hastentechnologies.com/blog/post.aspx?id=195d9de0-ffe9-4c4f-96aa-b7d60c9dd040</feedburner:origLink></item>
    <item>
      <title>Auto Forward Outlook 'Sent' Items for Backup</title>
      <description>&lt;p&gt;
This is third time I&amp;#39;m searching net for Auto BCC from Outlook. Whenever&amp;nbsp;I change my laptop I forget to take the VBA script backup, and search the net again to cook the code as I need. This time I thought of posting to blog so that in future if needed i can pick it faster as well it helps lot other. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http://www.hastentechnologies.com/blog/post/Auto-Forward-Outlook-Sent-Items-for-Backup.aspx&amp;amp;title=Auto Forward Outlook 'Sent' Items for Backup" target="_blank"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.hastentechnologies.com/blog/post/Auto-Forward-Outlook-Sent-Items-for-Backup.aspx" border="0" alt="kick it on DotNetKicks.com" width="82" height="18" /&gt; &lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
When&amp;nbsp;I send an email I want a copy to be on GMail, in case if I change my PST or have to search quickly on my sent emails or to keep a backup copy or even to check whether my outlook and Norton have delivered it correctly. Sometimes Nortorn Outbound Email Scanning service won&amp;#39;t resolve DNS properly&amp;nbsp;and shows error. If we have sent&amp;nbsp;2 or 3 mails&amp;nbsp;you won&amp;#39;t know which one is delivered and which one is not. So to be on safer side GMail helps me. 
&lt;/p&gt;
&lt;h2&gt;VBA&amp;nbsp;Code &lt;/h2&gt;&lt;code&gt;Private Sub Application_ItemSend(ByVal MyMail As Object, Status As Boolean)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim objEmails As Recipient&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim intRes As Integer&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strBcc As String 
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;&amp;#39;&amp;#39;&amp;#39; Your Bcc address &amp;#39;&amp;#39;&amp;#39;&amp;#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; strBcc = &amp;quot;&lt;a href="mailto:my.sent.item@gmail.com"&gt;my.sent.item@gmail.com&lt;/a&gt;&amp;quot; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume Next 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objEmails = MyMail.Recipients.Add(strBcc)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; objEmails.Type = olBCC&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not objEmails.Resolve Then&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; intRes = MsgBox(&amp;quot;Could not able to resolve Bcc address. Do you want to still deliever the message?&amp;quot;, vbYesNo + vbDefaultButton1, &amp;quot;Could Not Resolve Bcc Recipient&amp;quot;)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If intRes = vbNo Then&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status = True&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; End If 
&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objEmails = Nothing&lt;br /&gt;
End Sub &lt;/code&gt;
&lt;h2&gt;Outlook Configuration&amp;nbsp;&lt;/h2&gt;
&lt;ol&gt;
	&lt;li&gt;
	&lt;div&gt;
	In Outlook open the VBA editor by pressing Alt+F11 or Tools -&amp;gt; Macro -&amp;gt; Visual Basic Editor&amp;nbsp; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Open the ThisOutlookSession module, by double clicking on it. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Copy the above code&amp;nbsp;and paste it into ThisOutlookSession module 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Change the Bcc email address in the code 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Save it 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Now we need to generate the Digital Certificate: 
	&lt;/div&gt;
	&lt;div&gt;
	&lt;ul&gt;
		&lt;li&gt;Click the Start button -&amp;gt; All Programs -&amp;gt; Microsoft Office -&amp;gt; Microsoft Office Tools, -&amp;gt; Digital Certificate for VBA Projects. &lt;/li&gt;
		&lt;li&gt;In the your certificate&amp;#39;s name box, type a descriptive name for the certificate. &lt;/li&gt;
		&lt;li&gt;When the certificate confirmation message appears, click OK. &lt;br /&gt;
		&lt;br /&gt;
		&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=How+to+Create+Digital+Certificate.JPG" alt="" width="433" height="353" /&gt;&lt;br /&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;To verify the certificate in the Personal Certificates store:&lt;br /&gt;
	&lt;ul&gt;
		&lt;li&gt;Open Windows Internet Explorer. &lt;/li&gt;
		&lt;li&gt;Click on the Tools menu -&amp;gt; Internet Options, -&amp;gt; Content tab -&amp;gt; Certificates -&amp;gt; Personal tab.&lt;/li&gt;
		&lt;li&gt;You will find recently created certificate here&lt;br /&gt;
		&lt;br /&gt;
		&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=How+to+View+the+Certificates+Installed.JPG" alt="" width="426" height="456" /&gt;&lt;br /&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;Switch back to Outlook VBA editor (if closed press Alt+F11 in Outlook)&lt;/li&gt;
	&lt;li&gt;Click on ThisOutlookSession module &lt;/li&gt;
	&lt;li&gt;Click on the Tools menu -&amp;gt; Digital Signature&lt;/li&gt;
	&lt;li&gt;Choose the certificate and click Ok&lt;/li&gt;
	&lt;li&gt;Close the VBA Editor &lt;/li&gt;
	&lt;li&gt;Close the Outlook it may ask again for saving, click Yes&lt;br /&gt;
	&lt;br /&gt;
	&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=Outlook+VBA+Editor+Save+Message.JPG" alt="" width="415" height="173" /&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Reopen the Outlook, while opening it will prompt the&amp;nbsp;&amp;#39;Microsoft Office Outlook Security Notice&amp;#39;&lt;br /&gt;
	&lt;br /&gt;
	&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=Microsoft+Office+Outlook+Security+Notice.JPG" alt="" width="435" height="270" /&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Click on &amp;#39;Trust all documents from this publisher&amp;#39;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
That&amp;#39;s it! It works smoothly. If you change the code, don&amp;#39;t forget to re-apply the Digital Signature. If you like to test or troubleshoot in VBA Editor keep a bookmark (red dot)&amp;nbsp;against a line in the code and send a test mail. Outlook will come to that point and wait. Next press F8 or F5 to &lt;span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'"&gt;continue &lt;/span&gt;further. Click on breakpoint (red dot) again to remove the same. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=Outlook+Visual+Basic+Editor.JPG" alt="" width="648" height="519" /&gt; 
&lt;/p&gt;
&lt;p&gt;
Happy forwarding!!! 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zlVaK3ZtgvQ:UNB2OijqtKY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zlVaK3ZtgvQ:UNB2OijqtKY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zlVaK3ZtgvQ:UNB2OijqtKY:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=zlVaK3ZtgvQ:UNB2OijqtKY:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zlVaK3ZtgvQ:UNB2OijqtKY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=zlVaK3ZtgvQ:UNB2OijqtKY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zlVaK3ZtgvQ:UNB2OijqtKY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zlVaK3ZtgvQ:UNB2OijqtKY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=zlVaK3ZtgvQ:UNB2OijqtKY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zlVaK3ZtgvQ:UNB2OijqtKY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zlVaK3ZtgvQ:UNB2OijqtKY:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=zlVaK3ZtgvQ:UNB2OijqtKY:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zlVaK3ZtgvQ:UNB2OijqtKY:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zlVaK3ZtgvQ:UNB2OijqtKY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=zlVaK3ZtgvQ:UNB2OijqtKY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=zlVaK3ZtgvQ:UNB2OijqtKY:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Hasten/~4/zlVaK3ZtgvQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Hasten/~3/zlVaK3ZtgvQ/post.aspx</link>
      <author>Ramana</author>
      <comments>http://www.hastentechnologies.com/blog/post/Auto-Forward-Outlook-Sent-Items-for-Backup.aspx#comment</comments>
      <guid isPermaLink="false">http://www.hastentechnologies.com/blog/post.aspx?id=3327e3bb-aaea-404c-aad2-1b99283f8d46</guid>
      <pubDate>Wed, 06 Aug 2008 10:04:00 +0500</pubDate>
      <dc:publisher>Ramana</dc:publisher>
      <pingback:server>http://www.hastentechnologies.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.hastentechnologies.com/blog/post.aspx?id=3327e3bb-aaea-404c-aad2-1b99283f8d46</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://www.hastentechnologies.com/blog/trackback.axd?id=3327e3bb-aaea-404c-aad2-1b99283f8d46</trackback:ping>
      <wfw:comment>http://www.hastentechnologies.com/blog/post/Auto-Forward-Outlook-Sent-Items-for-Backup.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.hastentechnologies.com/blog/syndication.axd?post=3327e3bb-aaea-404c-aad2-1b99283f8d46</wfw:commentRss>
    <feedburner:origLink>http://www.hastentechnologies.com/blog/post.aspx?id=3327e3bb-aaea-404c-aad2-1b99283f8d46</feedburner:origLink></item>
    <item>
      <title>Apache Windows .htaccess - Password Protect Parent and Allow Sub Directory</title>
      <description>&lt;p&gt;
To protect a directory in Apache web server, you need to create two files &amp;ldquo;.htaccess&amp;rdquo; and &amp;ldquo;.htpasswd&amp;rdquo;. &amp;ldquo;.htaccess&amp;rdquo; has to be placed under your designated directory. Once you place &amp;ldquo;.htaccess&amp;rdquo; under a directory, all its sub directories will inherit its parent properties. Each folder can have its own &amp;ldquo;.htaccess&amp;rdquo; file, if it needs to override or extend its parents&amp;rsquo; properties. 
&lt;/p&gt;
&lt;p&gt;
&amp;ldquo;.htpasswd&amp;rdquo; is for storing Usernames and Passwords. It&amp;nbsp;can be placed in the each directory or at a common place to maintain all logins at one place. 
&lt;/p&gt;
&lt;p&gt;
In &amp;ldquo;.htaccess&amp;rdquo; file you have to specify the path to &amp;ldquo;.htpasswd&amp;rdquo;. To protect a web folder the contents in &amp;ldquo;.htaccess&amp;rdquo; will be 
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;AuthUserFile C:\wamp\passwords\.htpasswd &lt;br /&gt;
AuthName &amp;quot;This is Hasten secret area&amp;quot; &lt;br /&gt;
AuthType Basic &lt;br /&gt;
&amp;lt;Limit GET POST&amp;gt; &lt;br /&gt;
require valid-user &lt;br /&gt;
&amp;lt;/Limit&amp;gt; &lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http://www.hastentechnologies.com/blog/post/Apache-Windows-htaccess---Password-Protect-Parent-and-Allow-Sub-Directory.aspx&amp;amp;title=Apache Windows .htaccess - Password Protect Parent and Allow Sub Directory" target="_blank"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.hastentechnologies.com/blog/post/Apache-Windows-htaccess---Password-Protect-Parent-and-Allow-Sub-Directory.aspx" border="0" alt="kick it on DotNetKicks.com" width="82" height="18" /&gt; &lt;/a&gt;&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
To create &amp;ldquo;.htpasswd&amp;rdquo; file with Usernames and Passwords in it, you can find a utility &amp;ldquo;htpasswd.exe&amp;rdquo; under &amp;ldquo;&amp;lt;Apache&amp;rsquo;s installation directory&amp;gt;/bin&amp;rdquo; or you can create them online using &lt;a href="http://www.addedbytes.com/apache/password-protect-a-directory-with-htaccess/#username" target="_blank" title="Dave Child"&gt;Dave Child&lt;/a&gt;&amp;rsquo;s page. 
&lt;/p&gt;
&lt;p&gt;
In command prompt navigate to the above directory and type below command &lt;br /&gt;
&lt;code&gt;htpasswd .htpasswd a-user-name&lt;/code&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=Apache+-+htpasswd+Creation.JPG" alt="" width="520" height="204" /&gt; 
&lt;/p&gt;
&lt;p&gt;
It creates &amp;ldquo;.htpasswd&amp;rdquo; file under &amp;ldquo;&amp;lt;Apache&amp;rsquo;s installation directory&amp;gt;/bin&amp;rdquo; itself. Repeat the same command to add more usernames. Cut the file from there and paste it under desired place as mentioned in the &amp;ldquo;.htaccess&amp;rdquo; &amp;ndash; &amp;ldquo;AuthUserFile&amp;rdquo;. 
&lt;/p&gt;
&lt;p&gt;
If you create with Dave Child&amp;rsquo;s page, paste the text in notepad and save file as &amp;ldquo;.htpasswd&amp;rdquo; in desired directory as mentioned in the &amp;ldquo;.htaccess&amp;rdquo; &amp;ndash; &amp;ldquo;AuthUserFile&amp;rdquo;. 
&lt;/p&gt;
&lt;p&gt;
Up to now we have seen password protecting a parent folder. Now by placing the following &amp;ldquo;.htaccess&amp;rdquo; file in sub folder will make it unprotected. The contents in &amp;ldquo;.htaccess&amp;rdquo; will be 
&lt;/p&gt;
&lt;code&gt;Allow from all &lt;br /&gt;
Satisfy Any &lt;/code&gt;
&lt;p&gt;
That&amp;rsquo;s it! It&amp;rsquo;s simple! 
&lt;/p&gt;
&lt;p&gt;
Are you facing any problem, let&amp;rsquo;s do discuss here, post your comment. &lt;br /&gt;
Let me know your feedback. 
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=9txE31XKbnA:FaP0SFVRFBA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=9txE31XKbnA:FaP0SFVRFBA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=9txE31XKbnA:FaP0SFVRFBA:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=9txE31XKbnA:FaP0SFVRFBA:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=9txE31XKbnA:FaP0SFVRFBA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=9txE31XKbnA:FaP0SFVRFBA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=9txE31XKbnA:FaP0SFVRFBA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=9txE31XKbnA:FaP0SFVRFBA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=9txE31XKbnA:FaP0SFVRFBA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=9txE31XKbnA:FaP0SFVRFBA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=9txE31XKbnA:FaP0SFVRFBA:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=9txE31XKbnA:FaP0SFVRFBA:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=9txE31XKbnA:FaP0SFVRFBA:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=9txE31XKbnA:FaP0SFVRFBA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=9txE31XKbnA:FaP0SFVRFBA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=9txE31XKbnA:FaP0SFVRFBA:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Hasten/~4/9txE31XKbnA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Hasten/~3/9txE31XKbnA/post.aspx</link>
      <author>Ramana</author>
      <comments>http://www.hastentechnologies.com/blog/post/Apache-Windows-htaccess---Password-Protect-Parent-and-Allow-Sub-Directory.aspx#comment</comments>
      <guid isPermaLink="false">http://www.hastentechnologies.com/blog/post.aspx?id=212922d6-1d53-4f51-8d89-78474a6da0fa</guid>
      <pubDate>Wed, 06 Aug 2008 08:10:00 +0500</pubDate>
      <category>Apache</category>
      <category>Server Configuration</category>
      <category>Teched</category>
      <dc:publisher>Ramana</dc:publisher>
      <pingback:server>http://www.hastentechnologies.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.hastentechnologies.com/blog/post.aspx?id=212922d6-1d53-4f51-8d89-78474a6da0fa</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.hastentechnologies.com/blog/trackback.axd?id=212922d6-1d53-4f51-8d89-78474a6da0fa</trackback:ping>
      <wfw:comment>http://www.hastentechnologies.com/blog/post/Apache-Windows-htaccess---Password-Protect-Parent-and-Allow-Sub-Directory.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.hastentechnologies.com/blog/syndication.axd?post=212922d6-1d53-4f51-8d89-78474a6da0fa</wfw:commentRss>
    <feedburner:origLink>http://www.hastentechnologies.com/blog/post.aspx?id=212922d6-1d53-4f51-8d89-78474a6da0fa</feedburner:origLink></item>
    <item>
      <title>Configuring Apache and IIS Web Servers on Single Machine for 80 Port</title>
      <description>&lt;p&gt;
Before on Windows 2003 server, this same configuration has been done successfully. Now on Windows 2008 Web edition tried today it worked&amp;nbsp;too. 
&lt;/p&gt;
&lt;p&gt;
First need to download the &lt;strong&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6ec50b78-8be1-4e81-b3be-4e7ac4f0912d&amp;amp;displaylang=en" target="_blank" title="Windows Server 2003 Service Pack 1 32-bit Support Tools"&gt;Support Tools&lt;/a&gt;&lt;/strong&gt; from Microsoft site. Of course it is Windows Server 2003 Service Pack 1 32-bit Support Tools, but we need &amp;ldquo;httpcfg&amp;rdquo; command mainly to do this exercise. 
&lt;/p&gt;
&lt;p&gt;
&lt;a target="_blank" href="http://www.dotnetkicks.com/kick/?url=http://www.hastentechnologies.com/blog/post/Configuring-Apache-and-IIS-Web-Servers-on-Single-Machine-for-80-Port.aspx&amp;amp;title=Configuring Apache and IIS Web Servers on Single Machine for 80 Port"&gt;
                    &lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.hastentechnologies.com/blog/post/Configuring-Apache-and-IIS-Web-Servers-on-Single-Machine-for-80-Port.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;
                  &lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
In order to configure IIS7 and Apache&amp;nbsp;on same machine for port 80, need 2 or more IP addresses configured to your machines&amp;rsquo; network card. So that we can use one for Apache and the other to IIS. 
&lt;/p&gt;
&lt;p&gt;
In windows 2008 to add more IP is to LAN card, open Control Panel&amp;nbsp;&amp;rarr; Network and Sharing Center&amp;nbsp;&amp;rarr; Manage network connections 
&lt;/p&gt;
&lt;p&gt;
On your &amp;lsquo;Local Area Connection&amp;rsquo; right click and open properties. Double click on IP V4 option to open it properties. From &amp;lsquo;Advance&amp;rsquo; dialog you can add more IPs to the machine. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=Adding+More+IPs+to+a+Machine.JPG" alt="" width="796" height="470" /&gt; 
&lt;/p&gt;
&lt;p&gt;
To run the support tools commands, better to be in safer side, open the command prompt with administrator privileges. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=Open+Command+Prompt+as+Administrator+in+windows+2008.jpg" alt="" width="392" height="152" /&gt; 
&lt;/p&gt;
&lt;p&gt;
Change your path to the support tools installed directory, normally 
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;C:\Program Files\Support Tools&amp;gt;&lt;/code&gt; 
&lt;/p&gt;
&lt;p&gt;
Next execute these commands one after the other to set the IP 
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;httpcfg set iplisten -i xxx.xxx.xxx.xxx&lt;/code&gt; 
&lt;/p&gt;
&lt;p&gt;
to confirm 
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;httpcfg query iplisten&lt;/code&gt; 
&lt;/p&gt;
&lt;p&gt;
this will list the IPs that are binded to IIS. 
&lt;/p&gt;
&lt;p&gt;
then stop all HTTP services and restart 
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;net stop http /y&lt;/code&gt; &lt;code&gt;net start w3svc&lt;/code&gt; 
&lt;/p&gt;
&lt;p&gt;
This will stop 
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;Windows Remote Management (WS-Management) &lt;br /&gt;
World Wide Web Publishing Service &lt;br /&gt;
Print Spooler &lt;br /&gt;
IIS Admin Service&lt;/code&gt; 
&lt;/p&gt;
&lt;p&gt;
But it may start only &amp;lsquo;World Wide Web Publishing Service&amp;rsquo;, so restart your machine once the above setup is done, that will start other dependent services. 
&lt;/p&gt;
&lt;p&gt;
In some cases, like DotNetPanel control panel it looks for local loop back URL 127.0.0.1. So need to add the same and restart the HTTP service again. 
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;httpcfg set iplisten -i 127.0.0.1&lt;/code&gt; 
&lt;/p&gt;
&lt;p&gt;
In Apache&amp;rsquo;s httpd.conf you can make it listen to 80 port and add IP to your web site 
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;&amp;lt;VirtualHost XXX.XXX.XXX.XXX:80&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; DocumentRoot C:/my.website.path/&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ServerName example.com&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ServerAlias *.example.com &lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt; &lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;&lt;/code&gt;If you have any queries and like to discuss please post your comments below. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=QINFnN8XJQo:Qk1p9RnFxDI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=QINFnN8XJQo:Qk1p9RnFxDI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=QINFnN8XJQo:Qk1p9RnFxDI:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=QINFnN8XJQo:Qk1p9RnFxDI:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=QINFnN8XJQo:Qk1p9RnFxDI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=QINFnN8XJQo:Qk1p9RnFxDI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=QINFnN8XJQo:Qk1p9RnFxDI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=QINFnN8XJQo:Qk1p9RnFxDI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=QINFnN8XJQo:Qk1p9RnFxDI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=QINFnN8XJQo:Qk1p9RnFxDI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=QINFnN8XJQo:Qk1p9RnFxDI:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=QINFnN8XJQo:Qk1p9RnFxDI:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=QINFnN8XJQo:Qk1p9RnFxDI:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=QINFnN8XJQo:Qk1p9RnFxDI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=QINFnN8XJQo:Qk1p9RnFxDI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=QINFnN8XJQo:Qk1p9RnFxDI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Hasten/~4/QINFnN8XJQo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Hasten/~3/QINFnN8XJQo/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.hastentechnologies.com/blog/post/Configuring-Apache-and-IIS-Web-Servers-on-Single-Machine-for-80-Port.aspx#comment</comments>
      <guid isPermaLink="false">http://www.hastentechnologies.com/blog/post.aspx?id=4ed3f3eb-7738-4fbc-b128-e1b51e883d39</guid>
      <pubDate>Wed, 23 Jul 2008 12:10:00 +0500</pubDate>
      <category>Teched</category>
      <category>Windows 2008</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.hastentechnologies.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.hastentechnologies.com/blog/post.aspx?id=4ed3f3eb-7738-4fbc-b128-e1b51e883d39</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.hastentechnologies.com/blog/trackback.axd?id=4ed3f3eb-7738-4fbc-b128-e1b51e883d39</trackback:ping>
      <wfw:comment>http://www.hastentechnologies.com/blog/post/Configuring-Apache-and-IIS-Web-Servers-on-Single-Machine-for-80-Port.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.hastentechnologies.com/blog/syndication.axd?post=4ed3f3eb-7738-4fbc-b128-e1b51e883d39</wfw:commentRss>
    <feedburner:origLink>http://www.hastentechnologies.com/blog/post.aspx?id=4ed3f3eb-7738-4fbc-b128-e1b51e883d39</feedburner:origLink></item>
    <item>
      <title>ExtJS Tips for GridPanel Row - Marking, Colouring, Focusing &amp; Special Key Event Firing</title>
      <description>&lt;div align="right"&gt;
&lt;a target="_blank" href="http://www.dotnetkicks.com/kick/?url=http://www.hastentechnologies.com/blog/post/ExtJs-Tips-for-GridPanel-Row---Marking2c-Colouring2c-Focusing--Special-Key-Event-Firing.aspx&amp;amp;title=ExtJS Tips for GridPanel Row - Marking, Colouring, Focusing &amp; Special Key Event Firing"&gt;
                    &lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.hastentechnologies.com/blog/post/ExtJs-Tips-for-GridPanel-Row---Marking2c-Colouring2c-Focusing--Special-Key-Event-Firing.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;
                  &lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a href="http://extjs.com/" target="_blank" title="ExtJS"&gt;ExtJs&lt;/a&gt;, a powerful library for developing web application. Bit complex to learn &amp;amp; start with, but once you practice some examples it becomes easy. You need to have good knowledge in Object Oriented Programming to extend &amp;amp; implement your own features or controls,&amp;nbsp;and to see power of JavaScript &amp;amp; ExtJS. Working with ExtJs is really interesting! 
&lt;/p&gt;
&lt;p&gt;
Here listing some hints that may help you in your programming. Array-Grid example that comes with ext-2.0.2 is modified to demonstrate the same. 
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Focusing grid on load to activate down &amp;amp; up arrows &lt;/li&gt;
	&lt;li&gt;Colouring grid rows based on some criteria &lt;/li&gt;
	&lt;li&gt;Key events (especially Navigation keys) usage in grid with Internet Explorer (IE7) &amp;amp; Firefox &lt;/li&gt;
	&lt;li&gt;Marking selected grid row with some icon / text color change &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
The code in action can be seen at &lt;a href="http://www.hastentechnologies.com/blog/blog/examples/extjs/array-grid.html" target="_blank" title="Array Grid Example for Focus, Row Colour, Select Row Status, getKey, Keycode in ExtJS for IE &amp;amp; FF"&gt;ExtJs Array Grid Sample&lt;/a&gt;&lt;br /&gt;
Same can be downloaded from: &lt;a href="http://www.hastentechnologies.com/blog/blog/examples/extjs/array-grid.zip" target="_blank" title="Download: Array Grid Example for Focus, Row Colour, Select Row Status, getKey, Keycode in ExtJS for IE &amp;amp; FF"&gt;ExtJs Array Grid Sample - Source Code&lt;/a&gt; (~311 KB since extjs images &amp;amp; base scripts). &lt;br /&gt;
Main files that are modified: array-grid.html, array-grid.js &amp;amp; examples.css. 
&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;1. To focus the grid.&lt;/h2&gt;After rendering the grid&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; grid.getSelectionModel().selectFirstRow();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; grid.getView().focusEl.focus();&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;2. Row colouring&lt;/h2&gt;Mainly this is CSS twist with use of getRowClass to change the text color of whole row.&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; grid.getView().getRowClass = function(record, index){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (record.data.change&amp;lt;0.7 ? (record.data.change&amp;lt;0.5 ? (record.data.change&amp;lt;0.2 ? &amp;#39;red-row&amp;#39; : &amp;#39;green-row&amp;#39;) : &amp;#39;blue-row&amp;#39;) : &amp;#39;&amp;#39;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }; &lt;/code&gt;&lt;br /&gt;
getRowClass changes the row CSS properties its applied for, but inside a row each cell element will have its own CSS class again.&lt;br /&gt;
&lt;br /&gt;
In CSS for &amp;lsquo;cell-inner&amp;rsquo; we need to set the font color.&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .blue-row .x-grid3-cell-inner{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:blue;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; .red-row .x-grid3-cell-inner{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:red;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.green-row .x-grid3-cell-inner{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; color:green;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;3. Key Events&lt;/h2&gt;While working GridPanel, along with focusing the first row we were in a need of implementing the making of rows selected by user with Left Arrow &amp;amp; Right Arrow, as well they can navigate up &amp;amp; down with Up Arrow &amp;amp; Down Arrow.&lt;br /&gt;
&lt;br /&gt;
The below code works partially in IE. It won&amp;rsquo;t capture navigational (along with arrows, page up, page down, home, end) keys &amp;amp; some special keyevents. But it works perfect in Firefox.&amp;nbsp;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; grid.on(&amp;#39;keypress&amp;#39;, function(e){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(e.getKey());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }); &lt;/code&gt;
&lt;p&gt;
Whereas &amp;lsquo;keydown&amp;rsquo; keyboard event works perfectly in both browsers for all keys. But the e.getKey() in IE won&amp;rsquo;t get the key code for navigational keys &amp;amp; some special keys. So need to change that to normal &amp;ldquo;e.keyCode&amp;rdquo;. &lt;br /&gt;
&lt;br /&gt;
There maybe some property to set in ExtJS like in KeyNav -&amp;gt; forceKeyDown to true to make the getKey &amp;amp; keypress work in IE &amp;amp; FF. Not sure where &amp;amp; how exactly, but now the above quick solution worked without any problem.&lt;br /&gt;
&lt;br /&gt;
So the code will be,&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; grid.on(&amp;#39;keydown&amp;#39;, function(e){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(e.keyCode);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }); &lt;/code&gt;
&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;4. Marking Selected Grid Rows&lt;/h2&gt;In order to mark the selected rows, experimented on task example provided in ExtJs with Google Gears. Before experimenting used the data.columnName = &amp;lsquo;some value&amp;rsquo; to set &amp;amp; gridview&amp;rsquo;s refresh() to apply. But at a time only a row used to change &amp;amp; previous selected rows used to change back.&lt;br /&gt;
&lt;br /&gt;
In this same Array-Grid example added a new boolean value &amp;lsquo;true - flase&amp;rsquo; column as first column &amp;lsquo;Status&amp;rsquo;. Added a &amp;lsquo;renderer&amp;rsquo; to this new column, which sets a css class with empty box image if vale is false / tick mark if value true. Also 2 events, one mouse click and the other keydown event to grid to change the value of particular data element. Here the tricky point is if we change the value of it in store record, then automatically the respective CSS will be applied to it through its &amp;lsquo;renderer&amp;rsquo;. As said before if we change the &amp;lsquo;data&amp;rsquo; in grid it won&amp;rsquo;t work, we need to apply the change of value in record of the store.&lt;br /&gt;
&lt;br /&gt;
The code &amp;amp; css is&amp;nbsp;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; grid.on(&amp;#39;keydown&amp;#39;, function(e){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(e.keyCode == 37){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var rec = grid.getSelectionModel().getSelected();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rec.set(&amp;#39;status&amp;#39;, false);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else if(e.keyCode == 39){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var rec = grid.getSelectionModel().getSelected();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rec.set(&amp;#39;status&amp;#39;, true);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;grid.on(&amp;#39;rowclick&amp;#39;, function(grid, rowIndex, e){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var rec = grid.store.getAt(rowIndex);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rec.set(&amp;#39;status&amp;#39;, !rec.get(&amp;#39;status&amp;#39;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;grid.getView().focusEl.focus();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/code&gt; 
&lt;p&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .task-completed, .task-check-over {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; width:16px;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:16px;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cursor:pointer;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background: transparent url(../images/check.gif) no-repeat center -16px;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; .task-check-over {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background: transparent url(../images/check.gif) no-repeat center -32px;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
The above code in action can be seen at &lt;a href="http://www.hastentechnologies.com/blog/blog/examples/extjs/array-grid.html" target="_blank" title="Array Grid Example for Focus, Row Colour, Select Row Status, getKey, Keycode in ExtJS for IE &amp;amp; FF"&gt;ExtJs Array Grid Sample&lt;/a&gt;&lt;br /&gt;
Same can be downloaded from: &lt;a href="http://www.hastentechnologies.com/blog/blog/examples/extjs/array-grid.zip" target="_blank" title="Download: Array Grid Example for Focus, Row Colour, Select Row Status, getKey, Keycode in ExtJS for IE &amp;amp; FF"&gt;ExtJs Array Grid Sample - Source Code&lt;/a&gt; (~311 KB since extjs images &amp;amp; base scripts). &lt;br /&gt;
Main files that are modified: array-grid.html, array-grid.js &amp;amp; examples.css. 
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=EP9tvlW08PA:FpIs3qeB5t8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=EP9tvlW08PA:FpIs3qeB5t8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=EP9tvlW08PA:FpIs3qeB5t8:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=EP9tvlW08PA:FpIs3qeB5t8:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=EP9tvlW08PA:FpIs3qeB5t8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=EP9tvlW08PA:FpIs3qeB5t8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=EP9tvlW08PA:FpIs3qeB5t8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=EP9tvlW08PA:FpIs3qeB5t8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=EP9tvlW08PA:FpIs3qeB5t8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=EP9tvlW08PA:FpIs3qeB5t8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=EP9tvlW08PA:FpIs3qeB5t8:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=EP9tvlW08PA:FpIs3qeB5t8:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=EP9tvlW08PA:FpIs3qeB5t8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=EP9tvlW08PA:FpIs3qeB5t8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=EP9tvlW08PA:FpIs3qeB5t8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=EP9tvlW08PA:FpIs3qeB5t8:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Hasten/~4/EP9tvlW08PA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Hasten/~3/EP9tvlW08PA/post.aspx</link>
      <author>Ramana</author>
      <comments>http://www.hastentechnologies.com/blog/post/ExtJs-Tips-for-GridPanel-Row---Marking2c-Colouring2c-Focusing--Special-Key-Event-Firing.aspx#comment</comments>
      <guid isPermaLink="false">http://www.hastentechnologies.com/blog/post.aspx?id=8ec4228e-b538-407e-808e-1efd560f0819</guid>
      <pubDate>Sun, 16 Mar 2008 12:31:00 +0500</pubDate>
      <category>Teched</category>
      <dc:publisher>Ramana</dc:publisher>
      <pingback:server>http://www.hastentechnologies.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.hastentechnologies.com/blog/post.aspx?id=8ec4228e-b538-407e-808e-1efd560f0819</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://www.hastentechnologies.com/blog/trackback.axd?id=8ec4228e-b538-407e-808e-1efd560f0819</trackback:ping>
      <wfw:comment>http://www.hastentechnologies.com/blog/post/ExtJs-Tips-for-GridPanel-Row---Marking2c-Colouring2c-Focusing--Special-Key-Event-Firing.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.hastentechnologies.com/blog/syndication.axd?post=8ec4228e-b538-407e-808e-1efd560f0819</wfw:commentRss>
    <feedburner:origLink>http://www.hastentechnologies.com/blog/post.aspx?id=8ec4228e-b538-407e-808e-1efd560f0819</feedburner:origLink></item>
    <item>
      <title>Horizontal &amp; Vertical – Bidirectional JavaScript Scroller with Images &amp; HTML Content</title>
      <description>&lt;p align="right"&gt;
&lt;a target="_blank" href="http://www.dotnetkicks.com/kick/?url=http://www.hastentechnologies.com/blog/post/Horizontal--Vertical-e28093-Bidirectional-JavaScript-Scroller-with-Images--HTML-Content.aspx&amp;amp;title=Horizontal &amp; Vertical – Bidirectional JavaScript Scroller with Images &amp; HTML Content"&gt;
                    &lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.hastentechnologies.com/blog/post/Horizontal--Vertical-e28093-Bidirectional-JavaScript-Scroller-with-Images--HTML-Content.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;
                  &lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Here we are using &lt;a href="http://moofx.mad4milk.net/#mootools" target="_blank"&gt;Moo.fx for Mootools&lt;/a&gt; to do the trick of animation effect, inspiration of &lt;a href="http://demos.mootools.net/Fx.Scroll" target="_blank"&gt;Fx.Scroll demo&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.hastentechnologies.com/blog/image.axd?picture=HorizCapture.JPG" alt="" width="541" height="167" /&gt; 
&lt;/p&gt;
&lt;p&gt;
From &lt;a href="http://mootools.net/download/" target="_blank"&gt;Mootools&lt;/a&gt;, for this animation the main component is &lt;strong&gt;Fx.Scroll&lt;/strong&gt; &amp;amp; supporting component is &lt;strong&gt;Fx.Styles&lt;/strong&gt; along with &lt;span&gt;&amp;nbsp;&lt;/span&gt;other basic core modules that comes with it when we select the above two &amp;amp; download the script (mootools-release-1.11.js). 
&lt;/p&gt;
&lt;p&gt;
Programmatically if you would like to create the scrolling elements then element ids need to be created sequentially &lt;em&gt;&amp;ldquo;content&amp;rdquo; + i&lt;/em&gt;. 
&lt;/p&gt;
&lt;p&gt;
The problem with mootools Fx.Scroll is, if the element is in visible area and/or hidden area is not lengthy enough then it wont move to the focused element since it is already in visible area. So we will be looping through again our content elements to produce the extra elements for scroll effect. Basically the repeated count will be number of elements in visible area plus one. If you are able to see 4 elements at a time then repeat initial 5 elements at the end again. 
&lt;/p&gt;
&lt;p&gt;
We can change the direction, stop &amp;amp; start the looping of images or html or mixed elements. 
&lt;/p&gt;
&lt;p&gt;
Find it action which describes you more. Its blazing fast &amp;amp;&amp;nbsp;cross-browser. 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;a href="http://www.hastentechnologies.com/blog/blog/examples/scrollers/Horz1.html" target="_blank"&gt;Bidirectional Horizontal HTML Text and Image Scroller&lt;/a&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;a href="http://www.hastentechnologies.com/blog/blog/examples/scrollers/Vert2.html" target="_blank"&gt;Bidirectional Vertical HTML Text and Image Scroller&lt;/a&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Source of it for download: &lt;a href="http://www.hastentechnologies.com/blog/blog/examples/scrollers/scroller.zip" target="_blank"&gt;Bidirectional JavaScript Scroller&lt;/a&gt; (~20 KB)
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=xub6mgals9Q:zXsMHXz34as:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=xub6mgals9Q:zXsMHXz34as:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=xub6mgals9Q:zXsMHXz34as:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=xub6mgals9Q:zXsMHXz34as:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=xub6mgals9Q:zXsMHXz34as:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=xub6mgals9Q:zXsMHXz34as:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=xub6mgals9Q:zXsMHXz34as:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=xub6mgals9Q:zXsMHXz34as:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=xub6mgals9Q:zXsMHXz34as:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=xub6mgals9Q:zXsMHXz34as:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=xub6mgals9Q:zXsMHXz34as:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=xub6mgals9Q:zXsMHXz34as:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=xub6mgals9Q:zXsMHXz34as:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=xub6mgals9Q:zXsMHXz34as:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?i=xub6mgals9Q:zXsMHXz34as:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hasten?a=xub6mgals9Q:zXsMHXz34as:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hasten?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Hasten/~4/xub6mgals9Q" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/Hasten/~3/xub6mgals9Q/post.aspx</link>
      <author>Ramana</author>
      <comments>http://www.hastentechnologies.com/blog/post/Horizontal--Vertical-e28093-Bidirectional-JavaScript-Scroller-with-Images--HTML-Content.aspx#comment</comments>
      <guid isPermaLink="false">http://www.hastentechnologies.com/blog/post.aspx?id=5715c101-d4f2-4046-af40-043b49c16881</guid>
      <pubDate>Mon, 03 Mar 2008 18:35:00 +0500</pubDate>
      <category>Teched</category>
      <dc:publisher>Ramana</dc:publisher>
      <pingback:server>http://www.hastentechnologies.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.hastentechnologies.com/blog/post.aspx?id=5715c101-d4f2-4046-af40-043b49c16881</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.hastentechnologies.com/blog/trackback.axd?id=5715c101-d4f2-4046-af40-043b49c16881</trackback:ping>
      <wfw:comment>http://www.hastentechnologies.com/blog/post/Horizontal--Vertical-e28093-Bidirectional-JavaScript-Scroller-with-Images--HTML-Content.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.hastentechnologies.com/blog/syndication.axd?post=5715c101-d4f2-4046-af40-043b49c16881</wfw:commentRss>
    <feedburner:origLink>http://www.hastentechnologies.com/blog/post.aspx?id=5715c101-d4f2-4046-af40-043b49c16881</feedburner:origLink></item>
  </channel>
</rss>
