<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5218054539241440546</id><updated>2012-02-16T02:56:55.484-08:00</updated><category term='General Information'/><category term='Web related'/><category term='AJAX'/><category term='PHP'/><category term='Web 2.0'/><category term='Blog related'/><category term='Google'/><category term='ASP.NET'/><title type='text'>Revolution of Web</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-5371016490216216830</id><published>2009-11-18T05:34:00.000-08:00</published><updated>2009-11-18T05:35:33.991-08:00</updated><title type='text'>Windows 7 Virtual Wifi</title><content type='html'>Windows Virtual Wifi(abbreviated to VWiFi) is a new concept of Microsoft introduced in the version Windows 7.0.&lt;br /&gt; &lt;br /&gt;Through this a sigle LAN Card acts as two network adapters. &lt;br /&gt;One acts in STA (short for "station") mode and other acts in AP (Access Point) mode.&lt;br /&gt;&lt;br /&gt;This is achieved through the drivers (softwares of Microsoft). Each connection act as a separate layer in the driver. Through this technology each machine will act as a wifi access-point. This facility is not provided in the beta version. In the network connection section “'Wireless Network Connection 2” will be available in Windows 7.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How to configuring the VWifi in the machine&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;In command prompt type the command in the following format to create a new access point say “APnew”&lt;br /&gt;netsh wlan set hostednetwork mode=allow ssid=APnew key=password&lt;br /&gt;New Access Point can be started directly from control panel&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Thanks to Microsoft to share this knowledge&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd445708.aspx"&gt;msdn.microsoft.com/en-us/library/dd445708.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-5371016490216216830?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/5371016490216216830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/windows-7-virtual-wifi-windows-virtual.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/5371016490216216830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/5371016490216216830'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/windows-7-virtual-wifi-windows-virtual.html' title='Windows 7 Virtual Wifi'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-4864060201978337062</id><published>2009-11-17T02:13:00.001-08:00</published><updated>2009-11-17T02:13:30.861-08:00</updated><title type='text'></title><content type='html'>This article is a heads up to the cloud computing concept introduced in .NET 4.0&lt;br /&gt;&lt;br /&gt;"Azure" is project name from Microsoft for Cloud Computing. They are going to introduce this from the upcoming version of .NET Framework 4.0. It might make a dramatic changes in the existing Web applications.&lt;br /&gt;&lt;br /&gt;Through Cloud computing Microsoft targets for platform independency in their applications.&lt;br /&gt;That is Each web can communicate to any other servers directly.&lt;br /&gt;&lt;br /&gt;Advantages for ASP.NET applications:&lt;br /&gt;Following are the advantages of ASP.NET applications by implementing Cloud computing.&lt;br /&gt;&lt;br /&gt;1) Cost cutting - Both the small &amp; large scall organizations can implement this.&lt;br /&gt;2) More storage for Data.&lt;br /&gt;3) Mobilitiy of Data - Data can be moved to any kind of servers(e.g Data can easily moved to Unix based machine from Windows).&lt;br /&gt;4) More advantages on BCP(Disaster recoverty etc) plans&lt;br /&gt;&lt;br /&gt;By the implementation of Cloud computing, the Web application will give the same level of performance even the traffic to the site is at the peak.&lt;br /&gt;&lt;br /&gt;Disadvantages:&lt;br /&gt;&lt;br /&gt;Following jobs will be very hectic by the implementation of Azure.&lt;br /&gt;&lt;br /&gt;1) Implementation of session &lt;br /&gt;2) Implementation of authentication &lt;br /&gt;3) System Integration.&lt;br /&gt;4) Migration of existing application&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-4864060201978337062?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/4864060201978337062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/this-article-is-heads-up-to-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/4864060201978337062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/4864060201978337062'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/this-article-is-heads-up-to-cloud.html' title=''/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-5670475664274771474</id><published>2009-11-17T02:11:00.001-08:00</published><updated>2009-11-17T02:11:48.698-08:00</updated><title type='text'>Nesting Gridview in Repeater</title><content type='html'>Once I have tried to nest Gridview in a Repeater, you might wondering why we require this.&lt;br /&gt;&lt;br /&gt;The scenario was like that. Grid view has some limitations. Main thing is we can show the data in columns. But my rquirement was showing the first row as a heading. &lt;br /&gt;&lt;br /&gt;As follows&lt;br /&gt;&lt;br /&gt;-------------------Heading A category name from a query----------------------&lt;br /&gt;-------------------Details about that category from the same query-----------&lt;br /&gt;-------------------Details about that category from the same query-----------&lt;br /&gt;-------------------Details about that category from the same query-----------&lt;br /&gt;-------------------Details about that category from the same query-----------&lt;br /&gt;-------------------Details about that category from the same query-----------&lt;br /&gt;Slno    name    description   Date&lt;br /&gt;----   ------------ ------------------ -----------------&lt;br /&gt;----   ------------ ------------------ -----------------&lt;br /&gt;----   ------------ ------------------ -----------------&lt;br /&gt;----   ------------ ------------------ -----------------&lt;br /&gt;&lt;br /&gt;I hope the above example can give an outline about the scenario. I went for repeater with gridview.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;ltasp:UpdatePanel ID="updPanel" runat="server" UpdateMode="Always"&amp;gt&lt;br /&gt;&amp;ltContentTemplate&amp;gt&lt;br /&gt;&amp;ltasp:Repeater ID="rptid" runat="server" OnItemDataBound="rptid_RowDataBound" EnableViewState="false"&amp;gt&lt;br /&gt;&amp;ltItemTemplate&amp;gt&lt;br /&gt;&amp;lttable cellpadding="0" cellspacing="0" width="90%"&amp;gt&lt;br /&gt;  &amp;lttr&amp;gt&lt;br /&gt;           &amp;lttd&amp;gt&lt;br /&gt;                     &amp;nbsp;&lt;br /&gt;           &amp;lt/td&amp;gt                   &lt;br /&gt;       &amp;lt/tr&amp;gt&lt;br /&gt;      &amp;lttr&amp;gt&lt;br /&gt;           &amp;lttd id="tdid" class="style" align="left" runat="server" title="Click Here to expand/Collapse"&amp;gt&lt;br /&gt;&amp;ltasp:Label  ID="lblCategory" CssClass="Header" runat="server" Text='&amp;lt%#DataBinder.Eval(Container.DataItem,"CategoryID")%&amp;gt' EnableViewState="false"&amp;gt&amp;lt/asp:Label&amp;gt&lt;br /&gt;&amp;ltasp:HiddenField id="hidCategory" runat="server" value='&amp;lt%#DataBinder.Eval(Container.DataItem," CategoryID")%&amp;gt'/&amp;gt&lt;br /&gt;        &amp;lt/td&amp;gt&lt;br /&gt;       &amp;lt/tr&amp;gt &lt;br /&gt;&amp;lttr&amp;gt&lt;br /&gt;           &amp;lttd&amp;gt&lt;br /&gt;                     &amp;nbsp;&lt;br /&gt;           &amp;lt/td&amp;gt                   &lt;br /&gt;       &amp;lt/tr&amp;gt&lt;br /&gt;      &amp;lttr&amp;gt&lt;br /&gt;       &amp;lttr&amp;gt&lt;br /&gt;           &amp;lttd&amp;gt&lt;br /&gt;      &amp;ltasp:GridView ID="grdDetails"  runat="server"                         AllowPaging="false" EmptyDataText="No Data Available" SkinID="skinid " EnableViewState="false" Width="100%" style="display:none"&amp;gt&lt;br /&gt;                             &amp;ltColumns&amp;gt&lt;br /&gt;                            &amp;ltasp:BoundField DataField="AgreementName" HeaderText=" Award&amp;nbsp;Agreement&amp;nbsp;Name" /&amp;gt&lt;br /&gt;---------------------------Bind Code goes here-------------------------------&lt;br /&gt;---------------------------Bind Code goes here-------------------------------&lt;br /&gt;---------------------------Bind Code goes here-------------------------------&lt;br /&gt;---------------------------Bind Code goes here-------------------------------&lt;br /&gt;---------------------------Bind Code goes here-------------------------------&lt;br /&gt;---------------------------Bind Code goes here-------------------------------&lt;br /&gt;---------------------------Bind Code goes here-------------------------------&lt;br /&gt;---------------------------Bind Code goes here-------------------------------&lt;br /&gt;                            &amp;lt/Columns&amp;gt&lt;br /&gt;                        &amp;lt/asp:GridView&amp;gt  &lt;br /&gt;                     &amp;lt/td&amp;gt&lt;br /&gt;                  &amp;lt/tr&amp;gt &lt;br /&gt;                  &amp;lttr&amp;gt&lt;br /&gt;                    &amp;lttd&amp;gt&lt;br /&gt;                     &amp;nbsp;&lt;br /&gt;                    &amp;lt/td&amp;gt                   &lt;br /&gt;                  &amp;lt/tr&amp;gt                    &lt;br /&gt;            &amp;lt/ItemTemplate&amp;gt&lt;br /&gt;            &amp;lt/asp:Repeater&amp;gt&lt;br /&gt;&lt;br /&gt;In code behind we need to use gridview from the rowdatabound of repeater itself as shown below.&lt;br /&gt;protected void rptid_RowDataBound(object sender, RepeaterItemEventArgs e)&lt;br /&gt;    {   &lt;br /&gt;        try&lt;br /&gt;        {&lt;br /&gt;            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)&lt;br /&gt;            {&lt;br /&gt;---------------------------Bind Code goes here-------------------------------&lt;br /&gt;---------------------------Bind Code goes here-------------------------------&lt;br /&gt;GridView grdDetails = (GridView)e.Item.FindControl("grdDetails");&lt;br /&gt;---------------------------Bind Code goes here-------------------------------&lt;br /&gt;  }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-5670475664274771474?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/5670475664274771474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/nesting-gridview-in-repeater.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/5670475664274771474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/5670475664274771474'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/nesting-gridview-in-repeater.html' title='Nesting Gridview in Repeater'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-811297576881109862</id><published>2009-11-17T02:09:00.001-08:00</published><updated>2009-11-17T02:09:18.023-08:00</updated><title type='text'>Main Differences between ASP.NET 3.5 and ASP.NET 4.0</title><content type='html'>Main Differences between ASP.NET 3.5 and ASP.NET 4.0&lt;br /&gt;As we all know, ASP.NET 3.5 has introduced with the following main new features&lt;br /&gt;1) AJAX integration&lt;br /&gt;2) LINQ&lt;br /&gt;3) Automatic Properties&lt;br /&gt;4) Lambda expressions&lt;br /&gt;I hope it would be useful for everyone to know about the differences about asp.net 3.5 and its next version asp.net 4.0&lt;br /&gt;Because of space consumption I’ll list only some of them here.&lt;br /&gt;1) Client Data access&lt;br /&gt;ASP.NET 3.5: There is no direct method to access data from client side. We can go for any of these methods&lt;br /&gt;1) Pagemethods of script manager&lt;br /&gt;2) ICallbackEventHandler interface&lt;br /&gt;3) XMLHttphanlder component&lt;br /&gt;ASP.NET 4.0: In this framework there is an inbuilt feature for this. Following are the methods to implement them.&lt;br /&gt;• Client data controls &lt;br /&gt;• Client templates &lt;br /&gt;• Client data context &lt;br /&gt;i.e we can access the data through client data view &amp; data context objects from client side.&lt;br /&gt;2)  Setting Meta keyword and Meta description&lt;br /&gt;Meta keywords and description are really useful for the search engine listings.&lt;br /&gt;ASP.NET 3.5: It has a feature to add meta as following tag&lt;br /&gt;&amp;ltmeta name="keywords" content="These, are, my, keywords" /&gt; &lt;br /&gt;  &amp;ltmeta name="description" content="This is the description of my page" /&gt; &lt;br /&gt;&lt;br /&gt;ASP.NET 4.0: Here we can add the keywords and description in Page directives itself as shown below.&lt;br /&gt;&amp;lt%@ Page Language="C#"  CodeFile="Default.aspx.cs" &lt;br /&gt;  Inherits="_Default" &lt;br /&gt;  Keywords="Keyword1,Key2,Key3,etc" &lt;br /&gt;  Description="description" %&gt; &lt;br /&gt;&lt;br /&gt;2) Enableviewstage property for each control&lt;br /&gt;ASP.NET 3.5: this property has two values “True” or “false”&lt;br /&gt;ASP.NET 4.0: ViewStateMode property takes an enumeration that has three values: Enabled, Disabled, and Inherit.&lt;br /&gt;Here inherit is the default value for child controls of a control.&lt;br /&gt;3) Setting Client IDs&lt;br /&gt;&lt;br /&gt;Some times ClientID property creates head ach for the programmers. &lt;br /&gt;&lt;br /&gt;ASP.NET 3.5: We have to use ClientID property to  find out the id which is dynamically generated &lt;br /&gt;ASP.NET 4.0: The new ClientIDMode property is introduced to minimize the issues of earlier versions of ASP.NET.&lt;br /&gt;It has following values.&lt;br /&gt;AutoID – Same as ASP.NET 3.5&lt;br /&gt; Static – There won’t be any separate clientid generated at run time&lt;br /&gt; Predictable-These are used particularly in datacontrols. Format is like clientIDrowsuffix with the clientid vlaue&lt;br /&gt; Inherit- This value specifies that a control's ID generation is the same as its parent.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-811297576881109862?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/811297576881109862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/main-differences-between-aspnet-35-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/811297576881109862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/811297576881109862'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/main-differences-between-aspnet-35-and.html' title='Main Differences between ASP.NET 3.5 and ASP.NET 4.0'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-8994004408715920191</id><published>2009-11-12T06:36:00.001-08:00</published><updated>2009-11-15T04:29:13.728-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web related'/><title type='text'>Threats to the websites</title><content type='html'>Following are the threats to a normal website(not a secured one).&lt;br /&gt;&lt;br /&gt;1) Excess Privileges &amp; Tampering : If a user gets more permission than required &amp; Modification of resources/WebPages without authorization&lt;br /&gt;2) Spoofing : Using another users credentials to login to the system and modify the contents&lt;br /&gt;3) Backdoors : Use developer created maintenance hooks to logon to the system&lt;br /&gt;4) Information Disclosure : Eg disclosure of users Credit card information&lt;br /&gt;&lt;br /&gt;But Don’t feel like there is no solution for these threats.&lt;br /&gt;Following are them.&lt;br /&gt;&lt;br /&gt;1) Tampering:&lt;br /&gt;&lt;br /&gt;These are very common with less secured sites. You have to cross verify all the security permissions. Most of them can be caught at the time of unit testing itself.&lt;br /&gt;&lt;br /&gt;Following are the tips to avoid tampering in the application.&lt;br /&gt;1) Don’t pass any sensitive information through query strings&lt;br /&gt;2) Use encryption for all sensitive data&lt;br /&gt;3) Don’t store any sensitive data in cookies.&lt;br /&gt;4) 4) Check for cookies safety always.( add &amp;lthttpCookies domain="String" httpOnlyCookies="true" requireSSL="false" /&amp;gt in config file)&lt;br /&gt;5) the application side vulnerabilities including SQL injection occurs when user input is not filtered for escape characters and is then passed into a SQL statement. This result in the potential manipulation of the statements performed on the database by the end user of the application. Another eg is an anonymous user is allowed to access privileged area in an application which is somehow bypassed while testing the application.&lt;br /&gt;6) Run the application with minimum privileges&lt;br /&gt;&lt;br /&gt;2) Spoofing.&lt;br /&gt;&lt;br /&gt;Mostly spoofing is happened by the weak passwords. So the application should enforce the user to have a strong password. It should have a certain standard. E.g. 6charactered alphanumerical passwords with extra characters like #, $ * can consider as a strong one. Also alphabets and numeric should be in a combination mode.&lt;br /&gt;&lt;br /&gt;3) Backdoors&lt;br /&gt;Backdoors are being developer created holes to bypass the actual authentication and logon to the system easily for maintenance purposes. These vulnerabilities should be closed before making the application online.&lt;br /&gt;&lt;br /&gt;4) Backdoors Information Disclosure: Information disclosure can happen in several ways including hacking activity, low application/server security; failure in using encryption for critical data, login information and another big element is humans. Most of the application/server securities issues can be mitigated by applying patches, implementing SSL etc.but the difficult part is humans associated with each project. When they move from one to another company some critical information like passwords/backdoors etc also goes with them. Even though completely removing the risk is impossible some of the things we can do to reduce the risk are: Non Disclosure Agreements when the employee leaving the organization. And Exit interview explaining the consequences of disclosing the information.&lt;br /&gt;Disabling logins and changing all passwords whenever an employee terminate/leave&lt;br /&gt;&lt;br /&gt;Things to consider:&lt;br /&gt;1. Consider the security of the application from the initial stages of the project.&lt;br /&gt;2. Testing of the software should include application side vulnerabilities and input text filtering capabilities which cause buffer overflows.&lt;br /&gt;3. Change default passwords and remove unwanted accounts from the application before moving the system to production. Passwords policies should be enforced in the application.&lt;br /&gt;4. Infra team should take care of server vulnerabilities. Update patches and antivirus patterns on a regular basis. Lock down files, directories, and other resources. The application should also run with minimum privileges&lt;br /&gt;5. The application administrator should be careful about giving privileges to each user.&lt;br /&gt;6. Implement SSL for critical data and passing credentials.&lt;br /&gt;7. Limiting the application access by predefining IP Address or number of allowed connections at web server level. &lt;br /&gt;8. Let the developers provide the installation docs to the Server admin team and let them deploy the application on the production server.&lt;br /&gt;9. Periodic evaluation of security in all servers and applications.&lt;br /&gt;10. Sign Non Disclosure Agreement when the employee leaving the organization.&lt;br /&gt;11. Exit interview explaining the consequences of disclosing the information.&lt;br /&gt;12. Disabling logins and changing all passwords whenever an employee terminate/leave&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-8994004408715920191?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/8994004408715920191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/threats-to-websites.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/8994004408715920191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/8994004408715920191'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/threats-to-websites.html' title='Threats to the websites'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-9093640533383346004</id><published>2009-11-12T06:35:00.000-08:00</published><updated>2009-11-15T04:30:45.778-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Connect to a MSSQL(SqlServer)</title><content type='html'>Even though LAMP is the most familiar compination we can try with other databases too in PHP. Here is a sample for connecting to SQLServer from PHP.&lt;br /&gt;&lt;br /&gt;&amp;lt?php&lt;br /&gt;$myServer = "ServerName";&lt;br /&gt;$myUser = "UserName";&lt;br /&gt;$myPass = "Password";&lt;br /&gt;$myDB = "DBName"; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$dbhandle = mssql_connect($myServer, $myUser, $myPass) or die("Connection Failed"); &lt;br /&gt;$selected = mssql_select_db($myDB, $dbhandle) or die("Couldn't open the db"); &lt;br /&gt;$query = "SELECT postid, postname, time";&lt;br /&gt;$query .= "FROM Revolution-of-web";&lt;br /&gt;$query .= "WHERE label='PHP'"; &lt;br /&gt;&lt;br /&gt;$result = mssql_query($query);&lt;br /&gt;&lt;br /&gt;$numRows = mssql_num_rows($result); &lt;br /&gt;echo "&amp;lth1&amp;gt" . $numRows . " Row" . ($numRows == 1 ? "" : "s") . " Returned &amp;lt/h1&amp;gt"; &lt;br /&gt;&lt;br /&gt;while($row = mssql_fetch_array($result))&lt;br /&gt;{&lt;br /&gt;  echo "&amp;ltli&amp;gt" . $row["postid"] . $row["postname"] . $row["time"] . "&amp;lt/li&amp;gt";&lt;br /&gt;}&lt;br /&gt;mssql_close($dbhandle);&lt;br /&gt;?&amp;gt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-9093640533383346004?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/9093640533383346004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/connect-to-mssqlsqlserver.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/9093640533383346004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/9093640533383346004'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/connect-to-mssqlsqlserver.html' title='Connect to a MSSQL(SqlServer)'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-2710662324277516742</id><published>2009-11-12T06:33:00.000-08:00</published><updated>2009-11-15T04:30:36.241-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Sending mails by PHP.</title><content type='html'>Most of the time people are struggling with mailing concept of PHP. &lt;br /&gt;Here is an example to achieve this. &lt;br /&gt;&lt;br /&gt;&amp;ltform action="sendmail.php3" method="POST"&amp;gt&lt;br /&gt;&amp;ltinput type="text" size="22" name="subject" value="MailContent"&amp;gt&lt;br /&gt;&lt;br /&gt;&amp;lt form action="sendmail.php3" method="POST"&amp;gt&lt;br /&gt;&amp;lt input type="text" size="22" name="subject" value="MailContent"&amp;gt&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt?&lt;br /&gt;$to = "Senderemail@revolution-of-web.blogspot.com";&lt;br /&gt;$from_header = "From: $from";&lt;br /&gt;if($contents != "")&lt;br /&gt;{&lt;br /&gt;   mail($to, $subject, $contents, $from_header);   &lt;br /&gt;   header("Location: $HTTP_REFERER");&lt;br /&gt;}&lt;br /&gt;  else&lt;br /&gt;{&lt;br /&gt;   print("&amp;ltHTML&amp;gt&amp;ltBODY&amp;gtError, no comments were submitted!");&lt;br /&gt;   print("&amp;lt/BODY&amp;gt&amp;lt/HTML&amp;gt");&lt;br /&gt;}&lt;br /&gt;?&amp;gt&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here header("Location: $HTTP_REFERER"); will redirect back to the same url that visitor has came from. &lt;br /&gt;&lt;br /&gt;It can be modified, incase if you wish to show any other url as follows. &lt;br /&gt;&lt;br /&gt;header("Location: mailsucceed.html"); &lt;br /&gt;&lt;br /&gt;Sending HTML Email: Content-Type: text/html needs to be mentioned in case if you require to send a html email.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-2710662324277516742?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/2710662324277516742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/sending-mails-by-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/2710662324277516742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/2710662324277516742'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/sending-mails-by-php.html' title='Sending mails by PHP.'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-8881040332148398203</id><published>2009-11-12T06:31:00.000-08:00</published><updated>2009-11-15T04:30:05.937-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>AJAX handler for your application</title><content type='html'>We can have our own AJAX handler javascripts in our application. &lt;br /&gt;Following are the steps to achieve them. &lt;br /&gt;&lt;br /&gt;First create a callback object  &lt;br /&gt;this.XmlHttp; &lt;br /&gt;var method = 'GET'; &lt;br /&gt;function CallBackObject() &lt;br /&gt;{ &lt;br /&gt;this.XmlHttp = this.GetHttpObject(); &lt;br /&gt;} &lt;br /&gt;CallBackObject.prototype.GetHttpObject = function() &lt;br /&gt;{  &lt;br /&gt;var xmlhttp; &lt;br /&gt;&lt;br /&gt;try &lt;br /&gt;{ &lt;br /&gt;if ( window.XMLHttpRequest ) &lt;br /&gt;{ &lt;br /&gt;xmlhttp = new XMLHttpRequest(); &lt;br /&gt;} &lt;br /&gt;else if ( window.ActiveXObject ) &lt;br /&gt;{ &lt;br /&gt;try &lt;br /&gt;{ &lt;br /&gt;xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); &lt;br /&gt;}catch (e) &lt;br /&gt;{ &lt;br /&gt;try &lt;br /&gt;{ &lt;br /&gt;xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); &lt;br /&gt;}catch (e2) &lt;br /&gt;{ &lt;br /&gt;xmlhttp = false; &lt;br /&gt;} &lt;br /&gt;} &lt;br /&gt;} &lt;br /&gt;}catch (e) &lt;br /&gt;{ &lt;br /&gt;xmlhttp = false; &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;return xmlhttp; &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;Next step is creating a function which will send details to the server &lt;br /&gt;Here eventTarget is the control raised ajax post back event and eventArgument is the argument to be passed with the data.  data is the url query string and loadviewstate is a boolean denotes if need to send viewstate also. &lt;br /&gt;Mirrorpage is alos a boolean if it is true all the values in the form will be send to the server &lt;br /&gt;&lt;br /&gt;CallBackObject.prototype.DoCallBack = function(eventTarget, eventArgument, data, loadviewstate, mirrorpage) &lt;br /&gt;{ &lt;br /&gt;&lt;br /&gt;var theData = data; &lt;br /&gt;var theform = document.forms[0]; &lt;br /&gt;var thePage = window.location.pathname + window.location.search; &lt;br /&gt;var myDateTime = new Date() &lt;br /&gt;&lt;br /&gt;if(window.location.search == "") &lt;br /&gt;thePage  = thePage + "?tm=" + myDateTime.getMilliseconds(); &lt;br /&gt;else &lt;br /&gt;thePage  = thePage + "&amp;tm=" + myDateTime.getMilliseconds(); &lt;br /&gt;var eName = ''; &lt;br /&gt;theData  += '__EVENTTARGET='  + escape(eventTarget.split("$").join(":")) + '&amp;'; &lt;br /&gt;theData += '__EVENTARGUMENT=' + eventArgument + '&amp;'; &lt;br /&gt;if( loadviewstate == true ) &lt;br /&gt;{ &lt;br /&gt;theData += '__VIEWSTATE='    + escape(theform.__VIEWSTATE.value).replace(new RegExp('\\+', 'g'), '%2b') + '&amp;'; &lt;br /&gt;} &lt;br /&gt;theData += 'IsCallBack=true&amp;'; &lt;br /&gt;if( mirrorpage == true )&lt;br /&gt;  {&lt;br /&gt;      for( var i=0; i&amp;lttheform.elements.length; i++ )&lt;br /&gt;      {&lt;br /&gt;        eName = theform.elements[i].name;&lt;br /&gt;        if( eName &amp;&amp; eName != '')&lt;br /&gt;        {&lt;br /&gt;          if( eName == '__EVENTTARGET' || eName == '__EVENTARGUMENT' || eName == '__VIEWSTATE' )&lt;br /&gt;          {&lt;br /&gt;            // Do Nothing&lt;br /&gt;          }&lt;br /&gt;          else&lt;br /&gt;          {&lt;br /&gt;            theData = theData + escape(eName.split("$").join(":")) + '=' + theform.elements[i].value;&lt;br /&gt;            if( i != theform.elements.length - 1 )&lt;br /&gt;              theData = theData + '&amp;';&lt;br /&gt;          }&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;  }&lt;br /&gt;   if(method.toUpperCase() == 'GET')&lt;br /&gt;  {&lt;br /&gt; &lt;br /&gt;  thePage += ((thePage.indexOf('?') == -1)?'?':'&amp;') + theData; &lt;br /&gt;  }&lt;br /&gt;  else if(method.toUpperCase() == 'POST')&lt;br /&gt;  {&lt;br /&gt;postData = postData?this._sFormData + "&amp;" + postData:this._sFormData;&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;   if( this.XmlHttp )&lt;br /&gt;  { &lt;br /&gt;    if( this.XmlHttp.readyState == 4 || this.XmlHttp.readyState == 0 )&lt;br /&gt;    { &lt;br /&gt;      &lt;br /&gt;        try&lt;br /&gt;        {&lt;br /&gt;          var oThis = this;&lt;br /&gt;          this.XmlHttp.open(method, thePage, true);&lt;br /&gt;          this.XmlHttp.onreadystatechange = function(){ oThis.ReadyStateChange(); };&lt;br /&gt;          this.XmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');&lt;br /&gt;          this.XmlHttp.send(theData); &lt;br /&gt;        }&lt;br /&gt;        catch(err)&lt;br /&gt;        {&lt;br /&gt;       &lt;br /&gt;        }   &lt;br /&gt;        }}}&lt;br /&gt;CallBackObject.prototype.AbortCallBack = function()&lt;br /&gt;{&lt;br /&gt;  if( this.XmlHttp )&lt;br /&gt;    this.XmlHttp.abort();&lt;br /&gt;}&lt;br /&gt;// Loading&lt;br /&gt;CallBackObject.prototype.OnLoading = function(){}&lt;br /&gt;// Loaded&lt;br /&gt;CallBackObject.prototype.OnLoaded = function(){}&lt;br /&gt; // Interactive &lt;br /&gt;CallBackObject.prototype.OnInteractive = function(){}&lt;br /&gt; // Complete&lt;br /&gt;CallBackObject.prototype.OnComplete = function(responseText, responseXml)&lt;br /&gt;{&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt; // Abort&lt;br /&gt;CallBackObject.prototype.OnAbort = function(){}&lt;br /&gt; // Error&lt;br /&gt;CallBackObject.prototype.OnError = function(status, statusText){}&lt;br /&gt; &lt;br /&gt;CallBackObject.prototype.ReadyStateChange = function()&lt;br /&gt;{&lt;br /&gt;  if( this.XmlHttp.readyState == 1 )&lt;br /&gt;  {&lt;br /&gt;    this.OnLoading();&lt;br /&gt;  }&lt;br /&gt;  else if( this.XmlHttp.readyState == 2 )&lt;br /&gt;  {&lt;br /&gt;    this.OnLoaded();&lt;br /&gt;  }&lt;br /&gt;  else if( this.XmlHttp.readyState == 3 )&lt;br /&gt;  {&lt;br /&gt;    this.OnInteractive();&lt;br /&gt;  }&lt;br /&gt;  else if( this.XmlHttp.readyState == 4 )&lt;br /&gt;  { &lt;br /&gt;    &lt;br /&gt;    if( this.XmlHttp.status == 0 )&lt;br /&gt;      this.OnAbort();&lt;br /&gt;      &lt;br /&gt;    else if( this.XmlHttp.status == 200 &amp;&amp; this.XmlHttp.statusText == "OK" )&lt;br /&gt;      this.OnComplete(this.XmlHttp.responseText, this.XmlHttp.responseXML);&lt;br /&gt;    else&lt;br /&gt;      this.OnError(this.XmlHttp.status, this.XmlHttp.statusText, this.XmlHttp.responseText);&lt;br /&gt;      this.XmlHttp.close;&lt;br /&gt;     &lt;br /&gt;  }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-8881040332148398203?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/8881040332148398203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/ajax-handler-for-your-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/8881040332148398203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/8881040332148398203'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/ajax-handler-for-your-application.html' title='AJAX handler for your application'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-8914855226758093219</id><published>2009-11-12T06:30:00.000-08:00</published><updated>2009-11-15T04:29:36.840-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Download a file</title><content type='html'>While working with a scenario, I came across a situation to make the users to download a file.  To download a file we can have the following code&lt;br /&gt;&lt;br /&gt;try&lt;br /&gt;        {&lt;br /&gt;            string[] file = anrDownloadPdf.HRef.ToString().Split(Convert.ToChar("/"));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            string strUpdPath = System.Configuration.ConfigurationManager.AppSettings["FileUploadPath"];&lt;br /&gt;            if (File.Exists(Server.MapPath(strUpdPath + file[file.GetUpperBound(0)])))&lt;br /&gt;            {&lt;br /&gt;               &lt;br /&gt;                Response.ContentType = "Application/pdf";&lt;br /&gt;                Response.AddHeader("Content-Disposition", "attachment; filename=application.pdf");&lt;br /&gt;                Response.TransmitFile(anrDownloadPdf.HRef);&lt;br /&gt;&lt;br /&gt;               // Response.End(); Don’t use Respons.End here since itcan have the thread abortion exception&lt;br /&gt;                HttpContext.Current.ApplicationInstance.CompleteRequest();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        catch (Exception ex)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;        }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-8914855226758093219?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/8914855226758093219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/download-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/8914855226758093219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/8914855226758093219'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/download-file.html' title='Download a file'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-3994147475664732854</id><published>2009-11-12T06:29:00.000-08:00</published><updated>2009-11-15T04:29:36.841-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Multiple selection in listbox</title><content type='html'>Most of the people find difficulty to save multiple data into database while selecting a listbox.&lt;br /&gt;That’s possible by implementing the following method. &lt;br /&gt;&lt;br /&gt;For example in an application there are several languages to be selected. The user can select any number of language from the list box.&lt;br /&gt;&lt;br /&gt;We can add them into an collection called objColl&lt;br /&gt;&lt;br /&gt;List&amp;ltLanguageInfo&amp;gt objColl = new List&amp;ltLanguageInfo&amp;gt();&lt;br /&gt;            for (int intCount = 0; intCount &amp;lt lstLanguages.Items.Count; intCount++)&lt;br /&gt;            {&lt;br /&gt;                LanguageInfo objLanguages = new LanguageInfo();&lt;br /&gt;                if (lstLanguages.Items[intCount].Selected == true)&lt;br /&gt;                {&lt;br /&gt;                    objLanguages.LanguageID = Convert.ToInt32(lstLanguages.Items[intCount].Value);&lt;br /&gt;                    objColl.Add(objLanguages);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;The next thing we can do is, we can append a comma to each languageid&lt;br /&gt;IEnumerator&amp;ltLanguageInfo&amp;gt ILanguages = Languages.GetEnumerator();&lt;br /&gt;                while (ILanguages.MoveNext())&lt;br /&gt;                {&lt;br /&gt;                    sbLanguages.Append(((LanguageInfo)ILanguages.Current).LanguageID.ToString());&lt;br /&gt;                    sbLanguages.Append(",");&lt;br /&gt;                }&lt;br /&gt;(Here Languages is the list that we passed to update in database)&lt;br /&gt;In back-end just have a split method to split the data by comma. And it can be updated to the database.&lt;br /&gt;CREATE function [dbo].[fn_Split](&lt;br /&gt; @Languages nvarchar (1000),&lt;br /&gt; @CustomerId int,&lt;br /&gt; @Delimiter nvarchar (10)&lt;br /&gt; )&lt;br /&gt;returns @ValueTable table ([LanguageID] INT, [ProgramInfoId] INT)&lt;br /&gt;begin&lt;br /&gt; declare @NextString nvarchar(4000)&lt;br /&gt; declare @Pos int&lt;br /&gt; declare @NextPos int&lt;br /&gt; declare @CommaCheck nvarchar(1)&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; set @NextString = ''&lt;br /&gt; set @CommaCheck = right(@Languages,1) &lt;br /&gt; &lt;br /&gt;&lt;br /&gt; set @Languages = @Languages + @Delimiter&lt;br /&gt; &lt;br /&gt; set @Pos = charindex(@Delimiter,@Languages)&lt;br /&gt; set @NextPos = 1&lt;br /&gt; &lt;br /&gt; while (@pos &amp;lt&amp;gt  0)  &lt;br /&gt; begin&lt;br /&gt;  set @NextString = substring(@Languages,1,@Pos - 1)&lt;br /&gt; &lt;br /&gt;  insert into @ValueTable ( [LanguageID], [CustomerId]) Values (@CustomerId, @NextString)&lt;br /&gt; &lt;br /&gt;  set @Languages = substring(@Languages,@pos +1,len(@Languages))&lt;br /&gt;  &lt;br /&gt;  set @NextPos = @Pos&lt;br /&gt;  set @pos  = charindex(@Delimiter,@Languages)&lt;br /&gt; end&lt;br /&gt; &lt;br /&gt; return&lt;br /&gt;end&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-3994147475664732854?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/3994147475664732854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/multiple-selection-in-listbox.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/3994147475664732854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/3994147475664732854'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/multiple-selection-in-listbox.html' title='Multiple selection in listbox'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-4247392568650536476</id><published>2009-11-12T06:27:00.000-08:00</published><updated>2009-11-13T00:54:20.820-08:00</updated><title type='text'>Read files through Javascript</title><content type='html'>I Came across a scenario, i.e, as follows&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1) An ASP.Net application is configured in a server.&lt;br /&gt;2) I need to open a file from client side in a text area(the file can be any type)&lt;br /&gt;3) I can modify it &lt;br /&gt;4) I need to save the modifications in the same path of client&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here we can’t open the file in Fileupload control, since it uploads the file to the server location. The modified file can’t be save in the clients location.&lt;br /&gt;So, I went for Javascript. I just copy a code for illustration &lt;br /&gt;&lt;br /&gt;   &amp;ltform id="form1" runat="server"&amp;gt&lt;br /&gt;    &amp;ltdiv&amp;gt&lt;br /&gt;    &amp;ltinput type=text id="txtFile" /&amp;gt&amp;ltinput type="button" id="btnSub" value="Open" onclick="ReadFiles();" /&amp;gt&lt;br /&gt;    &amp;lt/p&amp;gt&lt;br /&gt;    &amp;nbsp;&amp;lttextarea id="txtFileData" name="S1"&amp;gt&amp;lt/textarea&amp;gt&amp;lt/div&amp;gt&lt;br /&gt;    &amp;lt/form&amp;gt &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;ltscript&amp;gt&lt;br /&gt;function ReadFiles()&lt;br /&gt;{&lt;br /&gt;var txt=document.getElementById('txtFile').value;&lt;br /&gt;var fso, f1, ts, s;&lt;br /&gt;    var ForReading = 1;&lt;br /&gt;    fso = new ActiveXObject("Scripting.FileSystemObject");&lt;br /&gt;   ts = fso.OpenTextFile(txt, ForReading);&lt;br /&gt;   s = ts.ReadLine();  &lt;br /&gt;    while(!ts.AtEndOfStream)&lt;br /&gt;{&lt;br /&gt;        s=s + ts.ReadLine();&lt;br /&gt;       } &lt;br /&gt;   &lt;br /&gt;   &lt;br /&gt;  document.getElementById('txtFileData').value=s;&lt;br /&gt;  ts.Close();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&amp;lt/script&amp;gt&lt;br /&gt;&lt;br /&gt;But here the Browser settings should enable the activeX objects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-4247392568650536476?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/4247392568650536476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/read-files-through-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/4247392568650536476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/4247392568650536476'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/read-files-through-javascript.html' title='Read files through Javascript'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-5785615009887457429</id><published>2009-11-12T06:25:00.000-08:00</published><updated>2009-11-15T04:29:36.841-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Thread abort exception</title><content type='html'>While working with an asp.net application, I came across a ThreadAbort Exception at Response.End statement. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause of this issue is: &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The Response.End method ends the page execution and shifts the execution to the Application_End Request event in the application's event pipeline. The line of code that follows Response.End is not executed. &lt;br /&gt;&lt;br /&gt;Same issue occurs in Response.Redirect &amp; Server.Transfer (Since Response.End is called internally for these methods). &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Remedies provided by microsoft are as follows. &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1) Use HttpContext.Current.ApplicationInstance.CompleteRequest method instead of Response.End to bypass the code execution to the Application_End Request event. &lt;br /&gt;&lt;br /&gt;2) For Response.Redirect, use an overload, Response.Redirect(String url, bool endResponse) that passes false for the endResponse parameter to suppress the internal call to Response.End. &lt;br /&gt;Example &lt;br /&gt;Code:&lt;br /&gt;&lt;br /&gt;Response.Redirect ("Default.aspx", false);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3) Use Server.Execute method instead of Server.Transfer &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Lessons Learned&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1)Always use the overloaded method of Response.Redirect and use false for end response&lt;br /&gt;2)Use HttpContext.Current.ApplicationInstance.CompleteRequest instead of Respons.End&lt;br /&gt;3)Use Server.Execute method instead of Server.Transfer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-5785615009887457429?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/5785615009887457429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/thread-abort-exception.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/5785615009887457429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/5785615009887457429'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/thread-abort-exception.html' title='Thread abort exception'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-6887934323416244745</id><published>2009-11-12T00:55:00.000-08:00</published><updated>2009-11-12T01:01:54.564-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Tips to improve performance for an asp.net application</title><content type='html'>1) Use Connection Pooling and Object Pooling&lt;br /&gt;2) Turn off Tracing unless until required&lt;br /&gt;3) Turn off Session State, if not required&lt;br /&gt;4) Disable View State of a Page if possible&lt;br /&gt;5) Set debug=false in web.config&lt;br /&gt;6) Avoid Response.Redirect as many places&lt;br /&gt;7) Use the String builder to concatenate string&lt;br /&gt;8) Avoid throwing exceptions&lt;br /&gt;9) Use Finally Method to kill resources&lt;br /&gt;10) Use Client Side Scripts for validations&lt;br /&gt;11) Avoid unnecessary round trips to the server&lt;br /&gt;12) Use Gzip Compression&lt;br /&gt;13) Use Page Output Caching and Proxy Servers&lt;br /&gt;14) Use Per-Request Caching&lt;br /&gt;15) Use Page.ISPostBack&lt;br /&gt;16) Include Return Statements with in the Function/Method&lt;br /&gt;17) Use Foreach loop instead of For loop for String Iteration&lt;br /&gt;18) Include Return Statements with in the Function/Method&lt;br /&gt;19) Avoid Unnecessary Indirection&lt;br /&gt;20) Use "ArrayLists" in place of arrays&lt;br /&gt;21) Always check Page.IsValid when using Validator Controls&lt;br /&gt;22) Use custom Paging&lt;br /&gt;23) Store your content by using caching&lt;br /&gt;24) Use low cost authentication&lt;br /&gt;25) Minimize the number of web server controls&lt;br /&gt;26) Avoid using unmanaged code&lt;br /&gt;27) Return Multiple Resultsets&lt;br /&gt;28) Avoid making frequent calls across processes&lt;br /&gt;29) Cleaning Up Style Sheets and Script Files&lt;br /&gt;30) Design with ValueTypes&lt;br /&gt;31) Minimize assemblies&lt;br /&gt;32) Encode Using ASCII When You Don't Need UTF&lt;br /&gt;33) Avoid Recursive Functions / Nested Loops&lt;br /&gt;34) Minimize the Use of Format ()&lt;br /&gt;35) Place StyleSheets into the Header&lt;br /&gt;36) Put Scripts to the end of Document&lt;br /&gt;37) Make JavaScript and CSS External&lt;br /&gt;38) Use DataReader instead of Dataset&lt;br /&gt;39) Make Enableviewstate property as false for the components(particularly for heavy items  like datagrid, datalist etc) if it is not necessary.&lt;br /&gt;40) Use xmlhttprequest object or scriptmanager to minimize post backs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-6887934323416244745?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/6887934323416244745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/tips-to-improve-performance-for-asp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/6887934323416244745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/6887934323416244745'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/tips-to-improve-performance-for-asp.html' title='Tips to improve performance for an asp.net application'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-6920731214206452030</id><published>2009-11-12T00:37:00.000-08:00</published><updated>2009-11-13T01:08:06.019-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Cookies safety</title><content type='html'>Cookies can be accessed from the client side using document.cookie. The information can be tampered by this. In order to avoid misusing this security features Microsoft came up with a solution.&lt;br /&gt;&lt;br /&gt;A tag in the web.config file as follows will disable this.&lt;br /&gt;&lt;br /&gt;&amp;lthttpCookies domain="String" httpOnlyCookies="true" requireSSL="false" /&amp;gt &lt;br /&gt;&lt;br /&gt;This will limit the attackers to gain access to this sensitive information through Cross Site Scripting (XSS) attacks&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-6920731214206452030?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/6920731214206452030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/cookies-safety.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/6920731214206452030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/6920731214206452030'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/cookies-safety.html' title='Cookies safety'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-6759629122803123802</id><published>2009-11-09T00:12:00.000-08:00</published><updated>2009-11-10T03:44:41.059-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General Information'/><title type='text'>Best anti viruses as of 2010</title><content type='html'>&lt;ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;span style="font-size:130%;color:#990000;"&gt;1. Shield Deluxe&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;Price:&lt;/span&gt; &lt;span style="color:#ff6666;"&gt;$19.99&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#6666cc;"&gt;Description:&lt;/span&gt;&lt;br /&gt;The best part of using Security Shield 2010 is the fact that is powered by BitDefender. This antivirus company protects tens of millions of home and corporate users across the globe. The Shield Deluxe 2010 will protect your PC and personal data from theft, making it worth considering.&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;Advanced Features:&lt;/span&gt;&lt;br /&gt;Total virus and spyware protection&lt;br /&gt;Free technical support&lt;br /&gt;Intelligent scanning&lt;br /&gt;Real time threat detection&lt;br /&gt;Hourly updates, Vista compatible&lt;br /&gt;Decides best security actions to take&lt;br /&gt;Stealth web browsing Excellent extended parental controlsUses and minimal system resources&lt;br /&gt;Monitors the activity of programs and processes that have been launched in the computer’s memory.&lt;br /&gt;Controls over changes in the file system. Proactive protection.&lt;br /&gt;Removes spyware parasites to protect your privacy and prevent system crashes and slow-downs.&lt;br /&gt;Protection from rootkits and worms.&lt;br /&gt;Blocks access to inappropriate websites and e-mail.&lt;br /&gt;Reduces the system load and postpones updates, allowing for secure gaming at top speed.&lt;br /&gt;Scans all Web, e-mail and instant messaging traffic in real-time.&lt;br /&gt;Advanced system maintenance tools. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#990000;"&gt;2. Trend Micro Antivirus Internet Security 2010&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;Price: &lt;/span&gt;&lt;span style="color:#ff6666;"&gt;$39.95&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;Description:&lt;/span&gt;&lt;br /&gt;Trend Micro AntiVirus plus AntiSpyware 2010 provides comprehensive and easy to use protection from viruses, intruders, and other Internet-based threats. Inexpensive product received excellent scores in our performance tests.&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;Advanced Features:&lt;/span&gt;&lt;br /&gt;· Effective Antivirus Protection&lt;br /&gt;· Customizable security for your home PCs&lt;br /&gt;· Prevents virus-infected emails&lt;br /&gt;· Home Protection for up to 3 PCs&lt;br /&gt;· Spyware and Adware Protection&lt;br /&gt;· Automatic Virus Pattern Updates&lt;br /&gt;· Enhanced Software History Cleaner&lt;br /&gt;· Effective Antivirus Protection&lt;br /&gt;· Excellent value&lt;br /&gt;· Free phone, email and chat support, with your annual subscription.&lt;br /&gt;· Block websites with inappropriate content based on specific categories.&lt;br /&gt;· Protect your privacy by getting rid of records listing Web sites and files recently opened.&lt;br /&gt;· Stops viruses, worms, spyware and bots.&lt;br /&gt;· Automatically download the latest signature updates. Quarantined file recovery.&lt;br /&gt;· Real-time protection. You can run scheduled and manual scans.&lt;br /&gt;· Keeps your system protected against all types of malicious threats.&lt;br /&gt;· Remote File Lock safeguards your private files in case your laptop is lost or stolen.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#990000;"&gt;3. Norton Antivirus 2010&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#9999ff;"&gt;Price:&lt;/span&gt; &lt;span style="color:#ff6666;"&gt;$39.99&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;Description:&lt;/span&gt;&lt;br /&gt;Norton AntiVirus 2010 provides fast, responsive defense against all types of malicious software. The new Norton Protection System employs a multilayered set of security technologies that work in concert to detect, identify, and block attacks.&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;Advanced Features:&lt;/span&gt;&lt;br /&gt;· Advanced antivirus with anti-spyware and Secures, stores and manages login and personal information&lt;br /&gt;· Automatically saves important files locally or to secured online storage&lt;br /&gt;· Maps your wireless home network&lt;br /&gt;· Free chat and phone support.&lt;br /&gt;· Monitor your home network and more safely connect to Wi-fi networks.&lt;br /&gt;· AutoFix technology will diagnose and fix common problems for you.&lt;br /&gt;· Automatically schedules scans and updates to occur while PC is idle.&lt;br /&gt;· Blocks browser exploits and protects against infected Web sites.&lt;br /&gt;· Prevents unauthorized users from changing your critical applications.&lt;br /&gt;· Monitors all processes and registry changes.&lt;br /&gt;· New Norton Internet Worm Protection blocks certain more sophisticated worms (such as Blaster and Sasser) before they enter your computer.&lt;br /&gt;· Best proactive protection&lt;br /&gt;· Rapid pulse updates every 5 to 15 minutes&lt;br /&gt;· Rootkit detection, two way firewall&lt;br /&gt;· Defends against Web-based attacks and Automatic Virus Pattern Updates &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;color:#990000;"&gt;4. Panda Antivirus Pro 2010&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#6666cc;"&gt;Price: &lt;/span&gt;&lt;span style="color:#ff6666;"&gt;$49.95&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#6666cc;"&gt;Description:&lt;br /&gt;&lt;/span&gt;Panda Antivirus features a new ultraFast scan engine, 30% faster than its predecessors, Panda's exclusive SmartClean technology. In a nutshell, a good antivirus solution for Windows, that keeps your computer protected from any Internet threats.&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;Advanced Features:&lt;/span&gt;&lt;br /&gt;· Automatically eliminates viruses&lt;br /&gt;· Anti-Malware Engine&lt;br /&gt;· On-demand scanning&lt;br /&gt;· Smart auto-configuration&lt;br /&gt;· Automatic Virus Pattern Updates&lt;br /&gt;· Intrusion prevention blocks known and unknown hacker attacks and vulnerability.&lt;br /&gt;· Identity protection: Anti-Phishing Filter, Anti-Banking Trojans Engine.&lt;br /&gt;· Incorporates an advanced heuristic scan that detects more identity theft.&lt;br /&gt;· Identity protection: Anti-Phishing Filter, Anti-Banking Trojans Engine.&lt;br /&gt;· Personal Firewall protects you against Internet-borne worms and hacker attacks.&lt;br /&gt;· Removes all traces of clutter left by spyware on your PC. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#990000;"&gt;5. ZoneAlarm Anti-virus 2010&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;Price:&lt;/span&gt; &lt;span style="color:#ff6666;"&gt;$19.95&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;Description:&lt;/span&gt;&lt;br /&gt;New engine delivers the best virus protection with significantly enhanced detection and removal capabilities. A configuration wizard leads you through setup, making it easy for everyday users to secure their systems fast. &lt;/p&gt;&lt;p&gt;&lt;span style="color:#6666cc;"&gt;Advanced Features:&lt;/span&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Wireless PC Protection: it sets appropriate security.&lt;/li&gt;&lt;li&gt;Pre-loaded security settings provide easy, instant virus protection. &lt;/li&gt;&lt;li&gt;Minimum PC resources and bandwidth consumption. &lt;/li&gt;&lt;li&gt;Proactive firewall protection with multiple layers of security. &lt;/li&gt;&lt;li&gt;Compatible with Windows 7 &lt;/li&gt;&lt;li&gt;Advanced antivirus, spyware removal protection &lt;/li&gt;&lt;li&gt;On demand scanner interface &lt;/li&gt;&lt;li&gt;Simple to install and run &lt;/li&gt;&lt;li&gt;Advanced virus removal technology &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color:#990000;"&gt;6. ESET NOD32 Antivirus T NOD32 Antivirs&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#6666cc;"&gt;Price:&lt;/span&gt; &lt;span style="color:#ff6666;"&gt;$39.99&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;Description:&lt;/span&gt;&lt;br /&gt;ESET NOD32 Antivirus proactively detects and disables viruses, trojans, worms, adware, spyware, phishing, rootkits. It includes advanced archive scanning, access control for removable media.&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;Advanced Features:&lt;/span&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Blocks all attempts to collect and forward your confidential data. &lt;/li&gt;&lt;li&gt;Best protection against zero-day threat and attacks. &lt;/li&gt;&lt;li&gt;Small size of update files, fast scanning speed and accurate detection .&lt;/li&gt;&lt;li&gt;Offers several layers of protection including real time email scanning. &lt;/li&gt;&lt;li&gt;Uses a combination of filtration methods &lt;/li&gt;&lt;li&gt;Identifies known and unknown threats &lt;/li&gt;&lt;li&gt;System restore &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color:#990000;"&gt;7. Kaspersky Anti-Virus 2010&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#6666cc;"&gt;Price: &lt;/span&gt;&lt;span style="color:#ff6666;"&gt;$39.95&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;Description:&lt;/span&gt;&lt;br /&gt;Kaspersky Anti-Virus protects your computer against known and unknown threats, and against unwanted data. Besides, it monitors system activities by user applications, preventing any dangerous actions by applications.&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;Advanced Features:&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;E-Mail IMAP and NNTP protocol checking support &lt;/li&gt;&lt;li&gt;Built-in system restore capabilities included &lt;/li&gt;&lt;li&gt;You can e-mail or call a toll-free number for live technical support &lt;/li&gt;&lt;li&gt;Users can change interface appearance &lt;/li&gt;&lt;li&gt;New threat response time: less than 2 hours &lt;/li&gt;&lt;li&gt;Heuristic analyzer &lt;/li&gt;&lt;li&gt;Self-protection from malware &lt;/li&gt;&lt;li&gt;Free Trial &lt;/li&gt;&lt;li&gt;Scans files and Internet traffic &lt;/li&gt;&lt;li&gt;Updates automatically&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-6759629122803123802?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/6759629122803123802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/best-anti-viruses-as-of-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/6759629122803123802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/6759629122803123802'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/best-anti-viruses-as-of-2010.html' title='Best anti viruses as of 2010'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-2987045383417557375</id><published>2009-11-08T22:53:00.000-08:00</published><updated>2009-11-08T23:30:49.094-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Sanbox search is refined and instant</title><content type='html'>Google has modified their search alogrithm with instant speed and more accuracy.&lt;br /&gt;&lt;br /&gt;The redundant data is null in the new search algorithm. Which is on production now. I'm using the new one. Which is really helpful for me to search many things instantly.&lt;br /&gt;&lt;br /&gt;http://www2.sandbox.google.com/&lt;br /&gt;&lt;br /&gt;The graphical part is as same..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-2987045383417557375?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/2987045383417557375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/sanbox-search-is-refined-and-instant.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/2987045383417557375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/2987045383417557375'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/sanbox-search-is-refined-and-instant.html' title='Sanbox search is refined and instant'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-165887303655134304</id><published>2009-11-06T05:58:00.000-08:00</published><updated>2009-11-08T22:47:35.843-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'></title><content type='html'>One of the stunning errors you may get while trying to run the .net application:Quote: &lt;br /&gt;Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. &lt;br /&gt;&lt;br /&gt;Parser Error Message: Access is denied: 'MyWebApp'. &lt;br /&gt;&lt;br /&gt;Source Error: &lt;br /&gt;&lt;br /&gt;Line 198: &lt;add assembly="*"/&gt; &lt;br /&gt;&lt;br /&gt;As you can see the debug information is quite unclear and it would leave no trace of idea as to where the problem is. &lt;br /&gt;&lt;br /&gt;The actual problem is because of the Microsoft Indexing Services which scans the Temporary ASP.NET Files and while doing so, the system puts a lock on the same. &lt;br /&gt;&lt;br /&gt;To resolve this, the following steps need to be carried out:- &lt;br /&gt;&lt;br /&gt;Start - Settings - Control Panel - Administrative Tools - Computer mangement. &lt;br /&gt;&lt;br /&gt;Expand the services and applications node and select the Indexing service node. &lt;br /&gt;&lt;br /&gt;Expand the Indexing Service Node and then select and expand the System Node. &lt;br /&gt;&lt;br /&gt;Right click on Directories and select new directory. browse the path to the temporary asp.net files c:\winnt\microsoft.net\framework\v1.1.4322\. &lt;br /&gt;&lt;br /&gt;Select the temporary asp.net files. give ok and then select the "NO" in the Include in index radiobutton. &lt;br /&gt;&lt;br /&gt;give ok and then stop and start the indexing service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-165887303655134304?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/165887303655134304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/one-of-stunning-errors-you-may-get.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/165887303655134304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/165887303655134304'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/one-of-stunning-errors-you-may-get.html' title=''/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-816632453752302714</id><published>2009-11-06T02:27:00.000-08:00</published><updated>2009-11-08T22:48:07.502-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google History by Timeline --- Awesome</title><content type='html'>Google is still unbeaten. Every one who uses Google gets inspired by them.&lt;br /&gt;&lt;br /&gt;Kindly check their Growth history by years&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/corporate/timeline/#start/"&gt;Click here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-816632453752302714?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/816632453752302714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/google-history-by-timeline-awesome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/816632453752302714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/816632453752302714'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/google-history-by-timeline-awesome.html' title='Google History by Timeline --- Awesome'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-4353978497317625081</id><published>2009-11-06T02:06:00.000-08:00</published><updated>2009-11-08T22:47:35.843-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET 3.5 JavaScript Intellisense hotfix</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_r6u7TZVX_wQ/SvP1mPU5HiI/AAAAAAAAACw/IR6Xq8BkecU/s1600-h/VS_JS_IntelliSense.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 246px;" src="http://3.bp.blogspot.com/_r6u7TZVX_wQ/SvP1mPU5HiI/AAAAAAAAACw/IR6Xq8BkecU/s320/VS_JS_IntelliSense.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5400930415445351970" /&gt;&lt;/a&gt;&lt;br /&gt;Microsoft has released a hot fix for JavaScript IntelliSense in Visual Studio. &lt;br /&gt;&lt;br /&gt;The fix can be applied on VS.NET 2008 with SP1. &lt;br /&gt;&lt;br /&gt;All we need to do is copy the JavaScript doc (in XML documentation format as used in standard C# documentation), with "-vsdoc.js" appended to the JScript file name, in the same source folder. &lt;br /&gt;&lt;br /&gt;Also, we can use the intellisense in an external JavaScript file, by specifying the configuration line on top of our JavaScript file. &lt;br /&gt;Code: &lt;br /&gt;/// &lt;reference path="filename.js"/&gt; &lt;br /&gt;May be we can use the same to create our custom well documented JScript library.. &lt;br /&gt;&lt;br /&gt;Definitely a productivity improvement tool for ASP.NET developers.. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;References: &lt;br /&gt;&lt;br /&gt;VS 2008 JavaScript Intellisense @ ScottGu's Blog &lt;br /&gt;&lt;br /&gt;Visual Studio patched for better jQuery IntelliSense &lt;br /&gt;&lt;br /&gt;IntelliSense flavor for Visual Studio 2008 JavaScript files @ Microsoft Help and Support &lt;br /&gt;&lt;br /&gt;JQuery IntelliSense in Visual Studio 2008 &lt;br /&gt;&lt;br /&gt;The format for JavaScript doc comments&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-4353978497317625081?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/4353978497317625081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/aspnet-35-javascript-intellisense.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/4353978497317625081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/4353978497317625081'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/aspnet-35-javascript-intellisense.html' title='ASP.NET 3.5 JavaScript Intellisense hotfix'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_r6u7TZVX_wQ/SvP1mPU5HiI/AAAAAAAAACw/IR6Xq8BkecU/s72-c/VS_JS_IntelliSense.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-1168783771079330473</id><published>2009-11-06T01:51:00.000-08:00</published><updated>2009-11-08T22:47:35.843-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>HttpCompression</title><content type='html'>Through HTTP compression a web application performance will increase tremendously&lt;br /&gt;(depending on the browser support).&lt;br /&gt;In PHP / ColdFusion this is built in and can be done using popular plug-in like &lt;a href="http://rakaz.nl/code/combine" target="_blank"&gt;Combine&lt;/a&gt; and &lt;a href="http://code.google.com/p/minify/" target="_blank"&gt;Minify&lt;/a&gt;.&lt;br /&gt;In ASP.NET this can be achieved by either configuring the IIS, or modifying the Global.asax file.  There is an online tool available to check the compressionClick here &lt;a href="http://www.aspnetresources.com/tools/httpcompression.aspx" target="_blank"&gt;online tool&lt;/a&gt;&lt;br /&gt;Rate of compression is more means faster response, less bandwidth, and a more satisfied end-user!!  But take care while using this in AJAX application. Better don’t go for it.&lt;br /&gt;&lt;br /&gt;void Application_PreRequestHandlerExecute(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;          HttpApplication app = sender as HttpApplication;&lt;br /&gt;          string acceptEncoding = app.Request.Headers["Accept-Encoding"];&lt;br /&gt;          Stream prevUncompressedStream = app.Response.Filter;&lt;br /&gt;          if (!(app.Context.CurrentHandler is Page app.Context.CurrentHandler.GetType().Name == "SyncSessionlessHandler")&lt;br /&gt;                   app.Request["HTTP_X_MICROSOFTAJAX"] != null)&lt;br /&gt;                   return;&lt;br /&gt;          if (acceptEncoding == null  acceptEncoding.Length == 0)&lt;br /&gt;                   return;&lt;br /&gt;          acceptEncoding = acceptEncoding.ToLower();&lt;br /&gt;          if (acceptEncoding.Contains("deflate")  acceptEncoding == "*")&lt;br /&gt;          {&lt;br /&gt;                   // defalte&lt;br /&gt;                   app.Response.Filter = new DeflateStream(prevUncompressedStream,&lt;br /&gt;                             CompressionMode.Compress);&lt;br /&gt;                   app.Response.AppendHeader("Content-Encoding", "deflate");&lt;br /&gt;          } else if (acceptEncoding.Contains("gzip"))&lt;br /&gt;          {&lt;br /&gt;                   // gzip&lt;br /&gt;                   app.Response.Filter = new GZipStream(prevUncompressedStream,&lt;br /&gt;                             CompressionMode.Compress);&lt;br /&gt;                   app.Response.AppendHeader("Content-Encoding", "gzip");&lt;br /&gt;          }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We have two compression methods. They are Deflate and GZIP. They are using the name space System.IO.Compression&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-1168783771079330473?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/1168783771079330473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/httpcompression.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/1168783771079330473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/1168783771079330473'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/httpcompression.html' title='HttpCompression'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-8250995267711639337</id><published>2009-11-06T01:49:00.001-08:00</published><updated>2009-11-08T22:48:34.070-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web 2.0'/><title type='text'>Web 2.0 drawbacks</title><content type='html'>As per the Secure Enterprise 2.0 Forum following are the most vulnerable things for Web2.0&lt;br /&gt;1)   Information Leakage&lt;br /&gt;Web 2.0 combined with our "work-from-anywhere" lifestyle has begun to blur the lines between work and private life. Because of this psychological shift, people may inadvertently share information their employer would have considered sensitive. Even if individuals aren't sharing the equivalent of trade secrets, the accumulation of the small "non-sensitive" items they share can allow a business's competitors to gain intelligence about what's going on and being worked on at that company.&lt;br /&gt;&lt;br /&gt;2)   Phishing Although phishing isn't just a risk associated with Web 2.0 technologies by any means, the multitude of dissimilar client software in use makes it harder for consumers to distinguish between the genuine and the fake web sites. That enables more effective phishing attacks.&lt;br /&gt;&lt;br /&gt;3)   Cross Site Scripting (XSS) In a stored cross site scripting (XSS) vulnerability, malicious input sent by an attacker is stored in the system then displayed to other users. Systems that allow users to input formatted content - like HTML for example - are especially susceptible to this attack. At risk are blogs, social networks, and wikis. An example of this attack from last year was the Yahoo HotJobs XSS vulnerability exploit, where hackers used JavaScript to steal session cookies of victims. Last year and in previous years, XSS worms were also to blame for attacks on Orkut, MySpace etc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4)   Cross Site Request Forgery (CSRF) In CSRFs, victim visit what appear to be innocent-looking web sites, but which contain malicious code which generates requests to a different site instead. Due to heavy use of AJAX, Web 2.0 applications are potentially more vulnerable to this type of attack. In legacy apps, most user-generated requests produced a visual effect on the screen, making CSRF easier to spot. Web 2.0 systems' lack of visual feedback make this attack less apparent. A recent example of a CSRF involved a vulnerability in Twitter in which site owners could get the Twitter profiles of their visitors.&lt;br /&gt;5)      Insufficient Authentication Controls&lt;br /&gt;In many Web 2.0 applications, content is trusted in the hands of many users, not just a select number of authorized personnel. That means there's a greater chance that a less-experienced user will make a change that will negatively affect the overall system. This change in a system's design can also be exploited by hackers who now have access to a greater number of "administrative" accounts whose passwords can often be easily cracked if the correct security controls are not in place. The systems also may have insufficient brute-force controls, permit clear text passwords, or have been tied together in a single-sign-on environment, making an attack that much riskier.&lt;br /&gt;6)      &lt;br /&gt;7)      Injection Flaws Web 2.0 technologies tend to be vulnerable to new types of injection attacks including XML injection, XPath injection, JavaScript injection, and JSON injection for no other reason beyond the fact that the Web 2.0 applications tend to use and rely on those technologies. With increased use, comes increased risk. In addition, because Web 2.0 apps often rely on client side code, they more often perform some client-side input validation which an attacker can bypass.&lt;br /&gt;8)      Information Integrity Data integrity is one of the key elements of data security. Although a hack could lead to loss of integrity, so can unintentional misinformation. A great example of this in the public arena is a mistaken edit on Wikipedia which is then accepted as fact by many of the site's visitors. In a business environment, having systems open to many users allows a malicious or mistaken user or users to post and publish inaccurate information which destroys the integrity of the data.&lt;br /&gt;9)      Insufficient Anti-automation Programmatic interfaces of Web 2.0 applications let hackers automate attacks easier. In addition to brute force and CSRF attacks, other examples include the automated retrieval of a large amount of information and the automated opening of accounts. Anti-automation mechanisms like Captchas can help slow down or thwart these types of attacks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-8250995267711639337?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/8250995267711639337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/web-20-drawbacks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/8250995267711639337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/8250995267711639337'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/web-20-drawbacks.html' title='Web 2.0 drawbacks'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5218054539241440546.post-637396572177959459</id><published>2009-11-06T00:30:00.000-08:00</published><updated>2009-11-08T22:49:01.279-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blog related'/><title type='text'>Revolution Of Web</title><content type='html'>&lt;div&gt;&lt;font face="verdana" size="2"&gt;Hi freinds, this is Nishithraj Narayanan. This blog is my long term wish. &lt;/font&gt;&lt;font face="verdana" size="2"&gt;I'm a deadly fan of web. I would like to share any information about web through this blog.&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;font face="Verdana" size="2"&gt;&lt;/font&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;font face="verdana" size="2"&gt;We can categorize them in future.&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;font face="verdana" size="2"&gt;&lt;/font&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;font face="verdana" size="2"&gt;I'm an asp.net developer. I'm intersted to share my technical knowledge with you. However I don't like to restrict this blog only for Microsoft. We can have the categories like PHP, JSP, CGI, Javascript, VBScript, Web 2.0  etc(Anything related to web).&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;font face="verdana" size="2"&gt;&lt;/font&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;font size="2"&gt;&lt;font face="trebuchet ms" color="#990000"&gt;Come And Join With Me.&lt;/font&gt; &lt;/font&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5218054539241440546-637396572177959459?l=revolution-of-web.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://revolution-of-web.blogspot.com/feeds/637396572177959459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/revolution-of-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/637396572177959459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5218054539241440546/posts/default/637396572177959459'/><link rel='alternate' type='text/html' href='http://revolution-of-web.blogspot.com/2009/11/revolution-of-web.html' title='Revolution Of Web'/><author><name>Nishith Raj</name><uri>http://www.blogger.com/profile/15403967343939347111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
