<?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-3521747541502985402</id><updated>2012-01-19T00:25:15.818+05:30</updated><category term='C#'/><category term='Adsense'/><category term='New Technologies'/><category term='Humanoid Robotics'/><category term='MS SQL Reporting Services'/><category term='Telerik Reporting'/><category term='Enterprise Service Bus'/><category term='WPF'/><category term='Concurrent Programming'/><category term='Web Technologies'/><category term='SQL Server'/><category term='Networking'/><title type='text'>Pubudini's Information &amp; Communication Techonology Blog</title><subtitle type='html'>Freedom to Express...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>95</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-5783976969308346625</id><published>2011-08-23T23:02:00.000+05:30</published><updated>2011-08-23T23:02:32.297+05:30</updated><title type='text'>Age of Empires 2 (AOE) graphic quality is low/colours are different in Windows 7 - Fix</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&amp;nbsp;Do you suffer with the problem of low quality graphics or different color problems (Grass looks like red and green instead of green, etc.) of Age of Empires 2 in Windows 7? Follow the following steps as a fix for it.&lt;br /&gt;&lt;br /&gt;1. Run the Age of Empires 2 game.&lt;br /&gt;&lt;br /&gt;2. Alt + Tab to the task manager and END the process "explorer.exe".&lt;br /&gt;&lt;i&gt;(If you haven't open the task manager before just right click the task bar and click on "Start Task Manager" to open it. "explorer.exe" is there in the processes tab.)&amp;nbsp;&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;3. Alt + Tab back to the game.&lt;br /&gt;&lt;br /&gt;You will see that same old High quality graphics will return as Windows Vista. :) &lt;br /&gt;After finishing the game Alt + Tab back to the task manager and start the process (As new task) "explorer.exe" get the Task bar, etc back. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;f&lt;!--google_ad_client = "pub-2205948478621443";/* 728x90, created 12/12/10 */google_ad_slot = "0743992394";google_ad_width = 728;google_ad_height = 90;//--&gt;&lt;/script&gt; &lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-5783976969308346625?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/5783976969308346625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2011/08/age-of-empires-2-aoe-graphic-quality-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5783976969308346625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5783976969308346625'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2011/08/age-of-empires-2-aoe-graphic-quality-is.html' title='Age of Empires 2 (AOE) graphic quality is low/colours are different in Windows 7 - Fix'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-6275501834269164666</id><published>2011-01-07T11:22:00.000+05:30</published><updated>2011-01-08T19:17:01.891+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C#: How to format a decimal to have thousand separator with current UI culture</title><content type='html'>See following example:&lt;br /&gt;decimal sum = 120400600; &lt;br /&gt;string sumText = sum.ToString("N0", Thread.CurrentThread.CurrentCulture.NumberFormat);&lt;br /&gt;&lt;br /&gt;Output: &lt;br /&gt;120,400,600&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;SumOfDeath.ToString("N0", Thread.CurrentThread.CurrentCulture.NumberFormat)&lt;!--google_ad_client = "pub-2205948478621443";/* 728x90, created 12/12/10 */google_ad_slot = "0743992394";google_ad_width = 728;google_ad_height = 90;//--&gt;&lt;/script&gt; &lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;Here I have used the format "N0" as I don't need any decimal points. According to your requiremet you can use "N2", "N4", etc.&lt;br /&gt;&lt;script type="text/javascript"&gt;SumOfDeath.ToString("N0", Thread.CurrentThread.CurrentCulture.NumberFormat)&lt;!--google_ad_client = "pub-2205948478621443";/* 728x90, created 12/12/10 */google_ad_slot = "0743992394";google_ad_width = 728;google_ad_height = 90;//--&gt;&lt;/script&gt; &lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-6275501834269164666?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/6275501834269164666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2011/01/c-how-to-format-decimal-to-have.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6275501834269164666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6275501834269164666'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2011/01/c-how-to-format-decimal-to-have.html' title='C#: How to format a decimal to have thousand separator with current UI culture'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-6251740902616617270</id><published>2011-01-04T14:34:00.002+05:30</published><updated>2011-06-27T13:01:08.336+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>How to resize the columns of WPF List View according to the width of the content</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;You may need to re size the width of a WPF list view to fit to the width of the cell with longest item in the column. Here is the sample code. Please note here I am not showing you the XAML example. But it is same the you can call "ResizeListViewColumnsToContent" event handle on List view load as below with XAML also.&lt;br /&gt;&lt;script type="text/javascript"&gt;s&lt;!--google_ad_client = "pub-2205948478621443";/* 728x90, created 12/12/10 */google_ad_slot = "0743992394";google_ad_width = 728;google_ad_height = 90;//--&gt;&lt;/script&gt; &lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;s&lt;!--google_ad_client = "pub-2205948478621443";/* 728x90, created 12/12/10 */google_ad_slot = "0743992394";google_ad_width = 728;google_ad_height = 90;//--&lt;/script&gt;&lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;private static void ResizeListViewColumnsToContent(object sender, RoutedEventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var listView = (ListView)sender;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var gridView = listView.View as GridView;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (gridView != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var column in gridView.Columns)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (double.IsNaN(column.Width))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; column.Width = column.ActualWidth;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; column.Width = double.NaN;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;script type="text/javascript"&gt;s&lt;!--google_ad_client = "pub-2205948478621443";/* 728x90, created 12/12/10 */google_ad_slot = "0743992394";google_ad_width = 728;google_ad_height = 90;//--&gt;&lt;/script&gt; &lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;s&lt;!--google_ad_client = "pub-2205948478621443";/* 728x90, created 12/12/10 */google_ad_slot = "0743992394";google_ad_width = 728;google_ad_height = 90;//--&gt;&lt;/script&gt; &lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;Then you can use this method anywhere you need to resize the list view columns according to the content.&lt;br /&gt;For an example as follows as list view Loaded event.&lt;br /&gt;&lt;br /&gt;ListView listView = new ListView();&lt;br /&gt;listView .Loaded += ResizeListViewColumnsToContent;&lt;br /&gt;&lt;br /&gt;Or else like follows.&lt;br /&gt;&lt;br /&gt;ListView listView = new ListView();&lt;br /&gt;ResizeListViewColumnsToContent(listView, null)&lt;br /&gt;&lt;br /&gt;Please note that the ListView I am talking here is System.Windows.Controls.ListView &lt;br /&gt;&lt;script type="text/javascript"&gt;s&lt;!--google_ad_client = "pub-2205948478621443";/* 728x90, created 12/12/10 */google_ad_slot = "0743992394";google_ad_width = 728;google_ad_height = 90;//--&gt;&lt;/script&gt; &lt;script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-6251740902616617270?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/6251740902616617270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2011/01/how-to-resize-columns-of-wpf-list-view.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6251740902616617270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6251740902616617270'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2011/01/how-to-resize-columns-of-wpf-list-view.html' title='How to resize the columns of WPF List View according to the width of the content'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-5217969794047322386</id><published>2010-12-11T22:19:00.003+05:30</published><updated>2010-12-12T21:16:40.977+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='New Technologies'/><title type='text'>Mobile Router Configuration Tool (MRCTool)</title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt;Mobile Router Configuration Tool (MRCTool)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;H.P.N. Prasanna, T.C. Sandanayake&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Faculty of Information Technology, University of Moratuwa, Sri Lanka&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Email: pubudu1984@gmail.com, thanuja@itfac.mrt.ac.lk&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:OfficeDocumentSettings&gt;   &lt;o:AllowPNG/&gt;  &lt;/o:OfficeDocumentSettings&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:TrackMoves/&gt;   &lt;w:TrackFormatting/&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:DoNotPromoteQF/&gt;   &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:SplitPgBreakAndParaMark/&gt;    &lt;w:EnableOpenTypeKerning/&gt;    &lt;w:DontFlipMirrorIndents/&gt;    &lt;w:OverrideTableStyleHps/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathPr&gt;    &lt;m:mathFont m:val="Cambria Math"/&gt;    &lt;m:brkBin m:val="before"/&gt;    &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;    &lt;m:smallFrac m:val="off"/&gt;    &lt;m:dispDef/&gt;    &lt;m:lMargin m:val="0"/&gt;    &lt;m:rMargin m:val="0"/&gt;    &lt;m:defJc m:val="centerGroup"/&gt;    &lt;m:wrapIndent m:val="1440"/&gt;    &lt;m:intLim m:val="subSup"/&gt;    &lt;m:naryLim m:val="undOvr"/&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"  DefSemiHidden="true" DefQFormat="false" DefPriority="99"  LatentStyleCount="267"&gt;   &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;   &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;   &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;   &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;   &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;   &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;   &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;   &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"   UnhideWhenUsed="false" Name="Table Grid"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;   &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;   &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;   &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;   &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;   &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;}&lt;/style&gt; &lt;![endif]--&gt;  &lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;i&gt;&lt;span style="font-size: 12pt; text-transform: uppercase;"&gt;Abstract&lt;/span&gt;&lt;/i&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;i&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;In the world there is a higher explosion of mobile phone usage and proliferation of various wireless network technologies. There are various researches are carried out on providing various value added services to the mobile users on demand. In this research domain one of the very attractive areas is providing mobile user experience to interconnect with private networks through mobile phone through the service provider’s network and Internet to fulfill various user utilities through mobile phone. There is a special need of a mobile application which will be very helpful for network administrators to do monitoring, configurations and troubleshooting of network routers, switches when they are out of reach of the network through mobile phone. This research addressed that issue by providing a solution by developing Mobile Router Configuration Tool.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;i&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;The tool is consisting of four main modules called Telnet Handler, Secure Shell Client, Session Manager and Logger. These modules are specially designed for Mobile Router Configuration Tool to be function in a very user friendly manner for the benefiting the users allowing them to access their local network routers through Internet by using an advance mobile phone like pocket pc or a smart phone. Therefore this tool can be very helpful for the network administrators who have great responsibilities on providing a real time, reliable service.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt; text-transform: uppercase;"&gt;1.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Introduction&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;As there is a higher explosion of mobile users and the proliferation of heterogeneous wireless networks, various communities carrying researches which are actively looking to securely and seamlessly integrate applications and serviceswith mobile clients. This requires innovations in mobile clients, mobile user experience, service delivery network, platforms, enterprise applications, wireless communications, and unified management. In addition to that, other comprehensive research areas in wireless and mobile technology are Near Field Communications, Personal Area Wireless, Local Area Wireless, Regional Area Wireless, Broadband Wireless and Cellular Wireless [1]. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;In this research domain, there are various ongoing projects as well as successful projects which regard to provide mobile user experience to interconnect with private networks through mobile phone through service provider’s network and Internet. Among those projects there are different products in the market which enable functionalities to provide secure connections to compatible intranet and mobile operator services for access from mobile devices like mobile Virtual Private Network (VPN) Clients, Telnet Clients and Secure Shell (SSH) Clients, such as PUTTY [2], Midpssh, [3], Nokia’s Mobile VPN Client [4], Bluefire Security Technologies’ VPN client [5] and Global Technology Associates, Inc’s Mobile VPN Client [6]. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;Although in this research domain as well as above mentioned products available, there is no customized product or solution exactly designed for facilitating the mobile or PDA users to configure, access or trouble shoot network interconnecting devices such as routers and switches using mobile console. Therefore, a system with those features will definitely help network administrators a lot by enabling network trouble shooting, change configuration of network devices from any ware in the world they which reduces network administrative burden very much. This paper is a review on the system to solve above mentioned problem with very comprehensive mobile router configuration tool (MRCTool) which allows the user to be interconnected with their core network devices through mobile phone and do the configurations, troubleshooting within fingertips.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt; text-transform: uppercase;"&gt;2.0 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Literature review&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;In the present day, there are various mobile applications based on telnet primarily used as a diagnostic tool for HTTP, SMTP, and other protocols. Mainly, people are using telnet for diagnosing server problems. Mobile phone was an ideal device for using telnet for these purposes because it can easily connect to the local network for test as well as using its only Internet connection to connect to a server from a point outside the local network. This chapter explains and distinguishes positive and negative features in between many attempts of applications based on Mobile technology and Telnet developed by various communities all over the world.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt;"&gt;2.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mobile Telnet Client Applications&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt;"&gt; &lt;/span&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;There are many proprietary as well as open source mobile applications have been developed in the world for various purposes such as network protocol diagnosis, server diagnosis, configurations, etc. In addition there are various VPN client and SSH client applications also available to enable network security. Among them most mobile SSH client software can be downloaded free of charge but mobile VPN clients are totally vendor proprietary products. All of those products are targeted on diagnosing network servers. Although there is no exact Mobile tool purposely developed for doing diagnosis and configurations of network gateways such as routers, switches, etc.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;Among those tools in 2008 Strinum Software has introduced a telnet client tool called MobiTerm which runs on Windows 2000 and 2005 mobile operating systems on .NET compact framework. It is a Telnet Client for Windows Mobile/Smartphone with full VT ANSI support. It is optimized for use on Windows Mobile PDA's Smart phones and works great on landscape phones like the Motorola Q [7]. MuTelnet 2.0.1 is another telnet client for J2ME/MIDP mobile devices. It has features of direct TCP connection to remote sites, an ANSI-compatible terminal with off-screen scrolling, an interface adapted to limited input capabilities, bookmark management, command history and control characters support. In order to run this application java compatible mobile platform is needed [8]. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;Aleq Berka, a consultant in the Czech Republic has introduced a mobile version of PuTTY, an open source Telnet and SSH client which is fully open source tool for pocket pc. PocketPuTTY is distributed under the BSD license, and supports SSH1, SSH2, Telnet, private key authentication and color terminal emulation. It currently runs on Windows Mobile 2003 and Windows Mobile 5.0[2, 9]. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;Karl von Randow have developed another Mobile tool called MidpSSH as a SSH and Telnet client for MIDP 1.0 / 2.0 (J2ME) devices such as Java capable cell phones and other mobile devices. MidpSSH is based upon Floyd SSH and Telnet Floyd by Radek Polak, who ported the Java Telnet/SSH Applet to the MIDP platform. MidpSSH adds a GUI and a number of other features to Floyd SSH. This also a free and open source software and it has features of SSH1, SSH2 and Telnet support, Saving session profiles, Macros for entering frequently typed commands, Interactive input mode including typing special keys and control key combinations, Cursor movement using keypad or game control, VT320 terminal emulation and Traffic usage reporting[3].&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;There is another tool called ZaTelnet Professional which is a Telnet, SSH, SSH1 and SSH2 Serial client for devices supporting Microsoft Compact Framework 1.0 or 2.0. It also emulates&lt;/span&gt;&lt;span lang="EN-GB" style="font-size: 12pt;"&gt; &lt;/span&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;terminal VT100. ZaTelnet Professional supports SSH2 authorization by "plain password", "private key file" and "keyboard interactive". There are four variants of this software available for Pocket PC with MS CF 1.0, Pocket PC with MS CF 2.0, MS Smartphone with CF 1.0 and MS Smartphone 2005 with CF2 for newest devices like Mototola Q, T-Mobile DASH and Samsung BlackJack. ZaTelnet Professional boasts a handful of improvements that make remote administration of Unix and other servers via Telnet/SSH1/SSH2/Serial (cable or BlueTooth) protocol using mobile devices simpler and more efficient [10].&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;Joel Ivory Johnson, software developer of RDA providing solutions to clients using Microsoft technologies for web and Windows applications has developed another simple telnet client in .NET compact framework targeting the function of diagnosing server problems by easily connecting to the local network for testing as well as using its only Internet connection to connect to a server from a point outside the local network. This tool is targeted on Windows Mobile 5 Professional devices and the developer has tested the program on both the HTC Wizard (branded Cingular 8125) and an iPaq 4705. And the developer says that it was unable to run this software on Motorola Q as a thread related exception that occurred [11].&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt; text-transform: uppercase;"&gt;3.0 &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AIM AND OBJECTIVES OF THE RESEARCH&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;The aim of the research is to create a Secure Mobile Application Tool (Telnet Client) which is capable of providing secure connection to local intranets and facilitating the user enabling network device configurations (specially routers) and troubleshooting features through Mobile phone or PDA.&lt;/span&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt; line-height: 150%; text-transform: uppercase;"&gt;4.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 12pt; line-height: 150%;"&gt;METHODOLOGY OF THE RESEARCH&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 150%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;Nowadays there great tend of developing Mobile application tools for various purposes to bring the various utilities to people’s finger trips without the limitations irrespective of the location. In most of the organizations use a local network facility in communication and. &amp;nbsp;The responsibility of the network administrators is to provide a real time services. &amp;nbsp;, The research study has addressed the need of a mobile router configuration tool which enables fast and secure access and configuration console to routers on the local network. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt;"&gt;4.1 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Approach on the system&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;There are various mobile versions of Telnet Client, SSH Client and VPN Client available in the market as well as some of them are for free also [12]. All of those tools are purposely designed to access remote computers through local network or internet. The research study has identified the need of designing such software specially targeting on access on network routing devices like routers, switches, etc on demand. Such kind software will be a great support for network administrators who have a grater responsibility of providing a real time administration service for the clients.&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;The system has designed is a Router configuration tool to provide above best solution for above mentioned problems which compatible to operate on mobile devices like Pocket PCs, PDA, Smart phones, etc. The tool is capable of connecting to routers on local network through internet using Telnet port 23 with security enabled through SSH or high secure VPN tunnel. The figure 1 will give a brief understanding about the network functions of the system. The tool is intended to provide very user friendly GUI to allow users to login to the routers by providing proper credentials and after authentication it will allow the user to access the intended router and configure it or view details about up and down interfaces, etc for trouble shooting purposes. One of the objectives of the research study is to develop the prototype firstly in according to be compatible of accessing the Cisco routers as the Cisco has 60% share on global market with its network product solutions. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;The study has&amp;nbsp; identified some of the telnet Mobile Client software are written in C++ Language with Symbian compatibility, some are with J2ME as Midlets for java enable phones and vey few in .NET platform. The study shows the benefits declared by Microsoft for their Mobile Development platform [13] with using C# language [14] capabilities. In addition the study has developed the system with capability of concurrent improvement by adding more features like customizing the system according to the types of specific routers, layer 3 switches and allow users to easily do the configuration using few button clicks without typing very lengthy commands in the console which speed up the functions of the system and evolve to give the maximum user satisfaction. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt; text-transform: uppercase;"&gt;5.0 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RESEARCH FINDINGS&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;The Mobile Router Configuration Tool (MRCTool) is operated in a pocket pc and can be connected to routers or layer 3 switches in the local network through Internet and provides its functionalities. The MRCTool is intended to be act as a telnet Client and VPN/SSH Client in order to provide remote login function as well as secure communication between the mobile and local network devices. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;For the flexibility of the design and the implementation, the system has been developed as several modules. Figure 2 will shows the module design of the MRCTool. Figure 1 shows the six basic modules in the tool at the initial development stage. Those are Telnet Handler, SSH Client, Session Manager, Logger, Console terminal and Graphical User Interface. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt;"&gt;5.1. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Telnet Handler&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;Telnet Handler is the backbone of the system which handles the telnet protocol and needs implementations for several methods to handle the telnet options and to be able to read and write the buffer. The telnet handler facilitates the function of remote login to the remote router using telnet port (port 23) which is very important functionality of the whole system to communicate with the remote routers. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt;"&gt;5.2. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SSH/VPN Client&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;SSH/VPN Client module is responsible for providing security of communication among the router and the mobile phone. The encryption used by SSH provides confidentiality and integrity of data over an insecure network, such as the Internet. The remote routers connect to VPN Server with public IP that will allows more secure communication through VPN tunnel. Therefore VPN Client in the MRCTool is responsible about the establishing secure connection in between VPN Server and the Mobile device.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt;"&gt;5.3. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Session Manager&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;Session manager is another important component of the system which responsible of initiating a telnet sessions offering methods to write to the session and notifies the client when information is available to be read from the session. When using MRCTool all the login credentials of particular router or layer three switch can be saved as Telnet file in the Mobile Device storage and can be used for next time new session without re entering the credentials again. Also session manger is designed to do the functionality of giving the session information to the Logger for regular logging mechanism.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt;"&gt;5.4. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Logger&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;Transaction auditing and logging play an important business function within the configuration functionalities of MRCTool. A goal of the MRCTool is to gain real time access to the routers and to configure them or do troubleshooting. An auditing framework will allows tracking the data at a business level and all the communications happened and errors occurred while using MRCTool for remote login will be properly logged for future use. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt;"&gt;5.5. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console Terminal&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;There are various Terminal types such as character buffer, ECMA48, etc. and the tool allows the user to select the terminal types that can be emulated to facilitate console the services. Therefore Console terminal is responsible for that functionality and also it emulate a terminal console with given number of rows and columns according to the matching terminal type as an interpreter to them.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt;"&gt;5.6. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Graphical User Interface (GUI)&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;GUI is the very important part of the design as the user interacts with MRCTool functionalities through GUI. Therefore I have designed the GUI components of the MRCTool to be implemented as very user friendly and interactive.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;The implementation of the tool is currently ongoing using .NET Compact frame work and Windows Mobile 5.0 development environment using the protocol technologies Telnet and SSH.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;At the initial stage this tool is being implemented to be compatible for communication with Cisco router standards.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt; text-transform: uppercase;"&gt;6.0 ConclusionS&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;The network remote logging diagnosis tools which designed to be compatible for mobile devices existing in the world have purposely designed for diagnosing and configuring network workstations like servers, remote computers, etc. There is no exact product developed so far mainly targeting the monitoring, configuration and troubleshooting functions of network nodes like routers, switches, etc. Therefore, there is a need of designing a mobile too to address that unsolved problem.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;This research study has been carried out a comprehensive literaturereview about mobile and telnet applications in order to identifying a solution for the problem of mobile router setting. The MRCTool gives a lot of benefits to the network administrators by allowing them to access the network routers or layer 3 switches through the Mobile Device from anywhere in the world through wireless media. The tool gives high secure and fast telnet facility to the routers and allows executing any router configuration or trouble shooting command easily as similar to normal desktop computer-router telnet connection. In addition the tool allows the user the facility of saving the credentials of a particular connection and make the user free of setting up connection settings each and every time they need to login to a particular router. And also the tool logs all the details of a particular session which allows the network administrators to check the configurations done by them any time. In addition the future work for the implementation of the system is to fully customize the system with compatible to various router types and commands to be executed with simple button clicks on user hand and the capability adapting the system to be run on less expensive ordinary mobile device in the market rather than expensive pocket pc’s and smart phones.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt; text-transform: uppercase;"&gt;7.0 ACKNOWLEDGEMET&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;This research study has supported by the undergraduate division of the Faculty of IT and the head of the department of Information technology. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: 12pt; text-transform: uppercase;"&gt;8.0 References&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify; text-indent: -0.25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[1]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wireless and Mobile [online]. [Accessed 20th September 2008]. Available from World Wide Web : http://www.cisco.com/web/about/ac50/ac207/crc_new/ciscoarea/wireless.html&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[2]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Aleq Berka, About Pocket Putty [online]. [Accessed 20th September 2008]. Available from World Wide Web: http://www.pocketputty.net&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[3]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Karl von Randow (14 March 2008), MidpSSH Mobile SSH Client [online]. [Accessed 20th September 2008]. Available from World Wide Web :http://www.xk72.com/midpssh&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[4]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Nokia VPN Client [online]. [Accessed 16th November 2008]. Available from World Wide Web : http://www.nokiaforbusiness.com/nfb/find_a_product/product_details.html&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[5]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bluefire Security Technologies Mobile Security VPN v2.7.5.706.(01-24-2008) [online].Accessed 9th October 2008]. Available from World Wide Web: http://www.mobilecastle.biz/mobiles/pocket-pc-applications/42283-bluefire-security-technologies-mobile-security-vpn-v2-7-5-706-regged-dvtpda.html&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[6]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Global Technology Associates, Inc. (2009), GTA Mobile VPN Client for Mobile and Remote Virtual Private Networks [online]. Accessed 15th November 2008]. Available from World Wide Web: www.gta.com/options/vpn&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[7]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MobiTerm 1.0.0 (July 14, 2008) [online]. Accessed 15th November 2008]. Available from World Wide Web:http://www.bestsoftware4download.com/software/t-free-mobiterm-download-ryvqpskj.html&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[8]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MuTelnet 2.0.1 (March 12th, 2008) [online]. Accessed 20th September 2008]. Available from World Wide Web:http://handheld.softpedia.com/get/Internet-Utilities/MuTelnet-26947.shtml&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[9]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Windows Mobile [online]. Accessed 2nd October 2008]. Available from World Wide Web: http://en.wikipedia.org/wiki/Windows_Mobile&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify; text-indent: -0.25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[10]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ZaTelnet Professional: a Telnet/SSH/Serial (Blue Tooth) client for MS Smartphones and Pocket PC [online]. Accessed 15th November 2008]. Available from World Wide Web: http://www.zatelnet.com/zap/main.php&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[11]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Joel Ivory Johnson (5 Aug 2007) Windows Mobile Telnet Client [online]. Accessed 15th November 2008]. Available from World Wide Web: http://www.codeproject.com/KB/mobile/WiMoTelnetClient.aspx&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[12]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Free mobile Telnet/SSH client achieves stable release (Apr. 25, 2006) [online]. [Accessed 21th September 2008]. Available from World Wide Web : &lt;a href="http://www.windowsfordevices.com/news/NS4284583699.html"&gt;&lt;span style="color: windowtext; text-decoration: none;"&gt;http://www.windowsfordevices.com/news/NS4284583699.html&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[13]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .NET Framework [online]. Accessed 2nd October 2008]. Available from World Wide Web: http://en.wikipedia.org/wiki/.NET_Framework&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[14]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C Sharp (programming language) [online]. Accessed 23rd September 2008]. Available from World Wide Web: http://en.wikipedia.org/wiki/C_Sharp_(programming_language)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[15]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Glenn Letham (June 2003), Introducing Windows Mobile 2003 [online]. Accessed 5th September 2008]. Available from World Wide Web: http://www.wirelessdevnet.com/articles/pocketPC2003&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[16]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Telnet [online]. Accessed 20th September 2008]. Available from World Wide Web: http://en.wikipedia.org/wiki/Telnet&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[17]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Secure Shell [online]. Accessed 20th September 2008]. Available from World Wide Web: &amp;nbsp;http://en.wikipedia.org/wiki/Secure_Shell&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; text-align: justify;"&gt;&lt;span lang="EN-GB" style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;[18]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VPN Technologies: Definitions and Requirements (July 2008) [online]. Accessed 20th September 2008]. Available from World Wide Web: http://www.vpnc.org/vpn-technologies.html&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;FIGURES&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Figure 1: Functioning Network Diagram of the System&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/TQOrSsnBWnI/AAAAAAAAAaE/9y2fS1swcmA/s1600/111.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="72" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/TQOrSsnBWnI/AAAAAAAAAaE/9y2fS1swcmA/s320/111.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Figure 2: Module Design of the MRCTool&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/TQOrbUMz7fI/AAAAAAAAAaI/lTiUD6aBucA/s1600/222.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="162" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/TQOrbUMz7fI/AAAAAAAAAaI/lTiUD6aBucA/s320/222.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-5217969794047322386?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/5217969794047322386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/12/mobile-router-configuration-tool.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5217969794047322386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5217969794047322386'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/12/mobile-router-configuration-tool.html' title='Mobile Router Configuration Tool (MRCTool)'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Egl3Jnl8JzA/TQOrSsnBWnI/AAAAAAAAAaE/9y2fS1swcmA/s72-c/111.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-8658155035827349545</id><published>2010-11-22T15:34:00.000+05:30</published><updated>2010-12-12T21:16:19.860+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C#.NET: How to format a decimal number to show thousand separator according to UI Culture</title><content type='html'>See following sample which trying to format sample number 25400.&lt;br /&gt;&lt;br /&gt;decimal decimalNumber = 25400;&lt;br /&gt;string number = (decimalNumber).ToString("N0", CultureInfo.CurrentUICulture.NumberFormat);&lt;br /&gt;&lt;br /&gt;after formatting the number looks like follows 25,400(Here my UI Culture is en-US and the thousand separator may vary according to the user's UI culture)&lt;br /&gt;&lt;br /&gt;If you need to show two decimal points then use following code.&lt;br /&gt;string number = (decimalNumber).ToString("N2", CultureInfo.CurrentUICulture.NumberFormat);&lt;br /&gt;&lt;br /&gt;Then the output will looks like 25,400.00&lt;br /&gt;&lt;br /&gt;Like wise you can use "N3", "N4" etc. to change the allowed number of decimal points.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-8658155035827349545?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/8658155035827349545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/11/cnet-how-to-format-decimal-number-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8658155035827349545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8658155035827349545'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/11/cnet-how-to-format-decimal-number-to.html' title='C#.NET: How to format a decimal number to show thousand separator according to UI Culture'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-1050377446258044007</id><published>2010-10-25T22:03:00.000+05:30</published><updated>2010-10-25T22:03:40.536+05:30</updated><title type='text'>Error: "Cannot find one or more components. Please reinstall the application" in Visual Studio 2010 Macros in Windows 7</title><content type='html'>May be you got the above error message when trying to load macro project in your Visual Studio after a Windows update or VS reinstall.&lt;br /&gt;&lt;br /&gt;Uninstalling Visual Studio 2010 also removes the Visual Studio Macro Tools package. If the computer also has Visual Studio 2008 or SQL Server 2008, then reinstalling Visual Studio 2010 does not reinstall the Visual Studio Macro Tools package. This causes an error when the Macros IDE is started, and Visual Studio crashes if you try to recreate the MyMacros.vsmacros project.&lt;br /&gt;&lt;br /&gt;To resolve this issue:&lt;br /&gt;&lt;br /&gt;   1. Delete the following file:&lt;br /&gt;          *     On a 64-bit operating system: "%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\Common7\IDE\1033\Microsoft.VSDesignerUI.dll"&lt;br /&gt;          *     On a 32-bit operating system: "%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\1033\Microsoft.VSDesignerUI.dll"&lt;br /&gt;   2. On the Add or Remove programs page, select Uninstall/Change Visual Studio 2010 and then click Next.&lt;br /&gt;   3. Select Add or Remove features.&lt;br /&gt;   4. Clear and then re-select any of the features in the list.  This causes the update state to be enabled.&lt;br /&gt;   5. Finish the Setup wizard. Visual Studio Macro Tools should be installed.&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;1. &lt;a href="http://social.msdn.microsoft.com/Forums/en/vbide/thread/9a8079f1-4a0b-455d-80df-e9daadc2bc34"&gt;http://social.msdn.microsoft.com/Forums/en/vbide/thread/9a8079f1-4a0b-455d-80df-e9daadc2bc34&lt;/a&gt;&lt;br /&gt;&lt;a href="http://download.microsoft.com/download/8/C/E/8CE18AE7-CAA8-4A4C-87CF-0C3DF772322D/VS2010RTM.htm"&gt;&lt;br /&gt;2. http://download.microsoft.com/download/8/C/E/8CE18AE7-CAA8-4A4C-87CF-0C3DF772322D/VS2010RTM.htm&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-1050377446258044007?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/1050377446258044007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/10/error-cannot-find-one-or-more.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/1050377446258044007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/1050377446258044007'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/10/error-cannot-find-one-or-more.html' title='Error: &quot;Cannot find one or more components. Please reinstall the application&quot; in Visual Studio 2010 Macros in Windows 7'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-2787206521099343597</id><published>2010-09-17T00:36:00.003+05:30</published><updated>2011-01-04T14:46:19.335+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>WPF data grid bound column for numeric values with solution to double tab focus issue</title><content type='html'>This solution will solve the headache of pressing tab two times or mouse double click to make the grid cell editable. This solution can be customized to use with DataGridTemplateColumn as well. I have created the code in more generalized way as you can use it easily. &lt;br /&gt;&lt;br /&gt;public class DataGridINumberTextBoxColumn : DataGridBoundColumn&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;protected override FrameworkElement GenerateEditingElement(DataGridCell cell, object dataItem)&lt;br /&gt;{&lt;br /&gt;DataGridCellHelper helper = new DataGridCellHelper();&lt;br /&gt;helper.SetFocus(cell);&lt;br /&gt;&lt;br /&gt;var elem = new NumberTextBox() { AllowNull = false, Focusable = true, BorderThickness = new Thickness(0) };&lt;br /&gt;BindingBase binding = Binding;&lt;br /&gt;if (binding != null)&lt;br /&gt;{&lt;br /&gt;elem.SetBinding(TextBox.TextProperty, binding);&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;BindingOperations.ClearBinding(elem, TextBox.TextProperty);&lt;br /&gt;}&lt;br /&gt;return elem;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected override FrameworkElement GenerateElement(DataGridCell cell, object dataItem)&lt;br /&gt;{&lt;br /&gt;DataGridCellHelper helper = new DataGridCellHelper();&lt;br /&gt;helper.SetFocus(cell);&lt;br /&gt;&lt;br /&gt;var elem = new INumberTextBox() { AllowNull = false, Focusable = true, BorderThickness = new Thickness(0) };&lt;br /&gt;BindingBase binding = Binding;&lt;br /&gt;if (binding != null)&lt;br /&gt;{&lt;br /&gt;elem.SetBinding(TextBox.TextProperty, binding);&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;BindingOperations.ClearBinding(elem, TextBox.TextProperty);&lt;br /&gt;}&lt;br /&gt;return elem;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;internal class DataGridCellHelper &lt;br /&gt;{&lt;br /&gt;private DataGrid dataGrid;&lt;br /&gt;&lt;br /&gt;// Sets the focus of the cell child with the events of the Data grid which that cell belongs to&lt;br /&gt;public void SetFocus(DataGridCell cell)&lt;br /&gt;{&lt;br /&gt;cell.KeyDown += CellKeyDown;&lt;br /&gt;dataGrid = FindVisualParent&lt;datagrid&gt;(cell);&lt;br /&gt;dataGrid.CurrentCellChanged += DataGridCurrentCellChanged;&lt;br /&gt;dataGrid.PreparingCellForEdit += DataGridPreparingCellForEdit;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Trap TAB+SHIFT key press and move focus to the previous UI control&lt;br /&gt;instance containing the event data.&lt;/param&gt;public void CellKeyDown(object sender, KeyEventArgs e)&lt;br /&gt;{&lt;br /&gt;if (e.Key == Key.Tab &amp;&amp; (Keyboard.Modifiers &amp; ModifierKeys.Shift) == ModifierKeys.Shift)&lt;br /&gt;MoveToPreviousControl(e.OriginalSource);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Moves focus to previous control of sender.&lt;br /&gt;private static void MoveToPreviousControl(object sender)&lt;br /&gt;{&lt;br /&gt;var element = (TextBox) sender;&lt;br /&gt;if (element != null) element.MoveFocus(new TraversalRequest(FocusNavigationDirection.Previous));&lt;br /&gt;}   &lt;br /&gt;&lt;br /&gt;private void DataGridCurrentCellChanged(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;dataGrid.BeginEdit();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private static void DataGridPreparingCellForEdit(object sender, DataGridPreparingCellForEditEventArgs e)&lt;br /&gt;{&lt;br /&gt;var element = e.EditingElement;&lt;br /&gt;var childElem = FindVisualChild&lt;textbox&gt;(element);&lt;br /&gt;if (childElem != null) childElem.Focus();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Finds the visual parent of the given UI element&lt;br /&gt;private static T FindVisualParent&lt;t&gt;(UIElement element) where T : UIElement&lt;br /&gt;{&lt;br /&gt;UIElement parent = element;&lt;br /&gt;while (parent != null)&lt;br /&gt;{&lt;br /&gt;T elm = parent as T;&lt;br /&gt;if (elm != null)&lt;br /&gt;{&lt;br /&gt;return elm;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;parent = VisualTreeHelper.GetParent(parent) as UIElement;&lt;br /&gt;}&lt;br /&gt;return null;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Finds the visual child  of the given UI element&lt;br /&gt;private static T FindVisualChild&lt;t&gt;(UIElement element) where T : UIElement&lt;br /&gt;{&lt;br /&gt;UIElement child = element;&lt;br /&gt;while (child != null)&lt;br /&gt;{&lt;br /&gt;T elm = child as T;&lt;br /&gt;if (elm != null)&lt;br /&gt;{&lt;br /&gt;return elm;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;child = VisualTreeHelper.GetChild(child,0) as UIElement;&lt;br /&gt;}&lt;br /&gt;return null;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;If you need to see the code of the NumberTextBox go to the following post.&lt;br /&gt;&lt;a href="http://pubudini.blogspot.com/2010/09/how-to-programmatically-create-wpf-data.html"&gt;http://pubudini.blogspot.com/2010/09/how-to-programmatically-create-wpf-data.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Reference :  &lt;a href="http://www.cwithb.com/2009/11/wpf-datagrid-and-the-dreaded-double-tab-focus-issue/"&gt;http://www.cwithb.com/2009/11/wpf-datagrid-and-the-dreaded-double-tab-focus-issue/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-2787206521099343597?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/2787206521099343597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/09/wpf-data-grid-bound-coumn-for-numeric.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/2787206521099343597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/2787206521099343597'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/09/wpf-data-grid-bound-coumn-for-numeric.html' title='WPF data grid bound column for numeric values with solution to double tab focus issue'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-1985977114692777292</id><published>2010-09-15T21:45:00.000+05:30</published><updated>2011-01-04T14:46:19.336+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>How to programmatically create a WPF data grid column which only accepts numeric values without using xaml</title><content type='html'>Use the following two classes to create the number text box column.&lt;br /&gt;&lt;br /&gt;public class DataGridTemplateColumn DataGridNumberTextBoxColumn&lt;br /&gt;{ &lt;br /&gt;   public DataGridNumberTextBoxColumn(Binding binding)&lt;br /&gt;    {&lt;br /&gt;      var factory = new FrameworkElementFactory(typeof(NumberTextBox));&lt;br /&gt;      factory.SetValue(NumberTextBox.TextProperty, binding);&lt;br /&gt;      var cellTemplate = new DataTemplate {VisualTree = factory};&lt;br /&gt;      CellTemplate = cellTemplate;&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class NumberTextBox : TextBox&lt;br /&gt;  {&lt;br /&gt;    protected override void OnPreviewTextInput(System.Windows.Input.TextCompositionEventArgs e)&lt;br /&gt;    {&lt;br /&gt;      e.Handled = !AreAllValidNumericChars(e.Text);&lt;br /&gt;      base.OnPreviewTextInput(e);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static bool AreAllValidNumericChars(string str)&lt;br /&gt;    {&lt;br /&gt;      bool ret = true;&lt;br /&gt;      if (str == System.Globalization.NumberFormatInfo.CurrentInfo.CurrencyDecimalSeparator |&lt;br /&gt;          str == System.Globalization.NumberFormatInfo.CurrentInfo.CurrencyGroupSeparator |&lt;br /&gt;          str == System.Globalization.NumberFormatInfo.CurrentInfo.CurrencySymbol |&lt;br /&gt;          str == System.Globalization.NumberFormatInfo.CurrentInfo.NegativeSign |&lt;br /&gt;          str == System.Globalization.NumberFormatInfo.CurrentInfo.NegativeInfinitySymbol |&lt;br /&gt;          str == System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator |&lt;br /&gt;          str == System.Globalization.NumberFormatInfo.CurrentInfo.NumberGroupSeparator |&lt;br /&gt;          str == System.Globalization.NumberFormatInfo.CurrentInfo.PercentDecimalSeparator |&lt;br /&gt;          str == System.Globalization.NumberFormatInfo.CurrentInfo.PercentGroupSeparator |&lt;br /&gt;          str == System.Globalization.NumberFormatInfo.CurrentInfo.PercentSymbol |&lt;br /&gt;          str == System.Globalization.NumberFormatInfo.CurrentInfo.PerMilleSymbol |&lt;br /&gt;          str == System.Globalization.NumberFormatInfo.CurrentInfo.PositiveInfinitySymbol |&lt;br /&gt;          str == System.Globalization.NumberFormatInfo.CurrentInfo.PositiveSign)&lt;br /&gt;        return ret;&lt;br /&gt;&lt;br /&gt;      int l = str.Length;&lt;br /&gt;      for (int i = 0; i &lt; l; i++)&lt;br /&gt;      {&lt;br /&gt;        char ch = str[i];&lt;br /&gt;        ret &amp;= Char.IsDigit(ch);&lt;br /&gt;      }&lt;br /&gt;      return ret;&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;Crete the number textbox column as follows.&lt;br /&gt;&lt;br /&gt;      DataGridgrid = new DataGrid&lt;br /&gt;               {&lt;br /&gt;                 ItemsSource = testSourceList,&lt;br /&gt;                 IsReadOnly = false,&lt;br /&gt;                 AutoGenerateColumns = false&lt;br /&gt;               };&lt;br /&gt;&lt;br /&gt;grid.Columns.Add(new DataGridNumberTextBoxColumn(new Binding("BindValue")) { Header = "TestHeader"});&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-1985977114692777292?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/1985977114692777292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/09/how-to-programmatically-create-wpf-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/1985977114692777292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/1985977114692777292'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/09/how-to-programmatically-create-wpf-data.html' title='How to programmatically create a WPF data grid column which only accepts numeric values without using xaml'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-192686063002927951</id><published>2010-07-16T16:25:00.004+05:30</published><updated>2010-12-12T21:17:42.676+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><title type='text'>Firefox is not displaying my photos in  facebook, etc.</title><content type='html'>I faced a problem as in the topic that Firefox didn't display my photos in sites such as Facebook as thumbnails. I found what is the reason for it and got fixed.&lt;br /&gt;&lt;br /&gt;Open the Firefox browser. Go to&lt;br /&gt;&lt;br /&gt;Tools --&gt; Options --&gt; Content --&gt; &lt;br /&gt;Make Sure &lt;span style="font-weight:bold;"&gt;Load images automatically&lt;/span&gt; checkbox is checked. &lt;br /&gt;&lt;br /&gt;Then click on &lt;span style="font-weight:bold;"&gt;Exceptions&lt;/span&gt; button.&lt;br /&gt;There you can see the sites which are blocked to display images. &lt;br /&gt;&lt;br /&gt;If the site you need to display images is there as &lt;span style="font-weight:bold;"&gt;blocked&lt;/span&gt; select it and click &lt;span style="font-weight:bold;"&gt;Remove site&lt;/span&gt;. Then restart Firefox.&lt;br /&gt;&lt;br /&gt;Like wise you can customize settings to allow or block displaying images from sites as you need.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-192686063002927951?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/192686063002927951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/07/firefox-is-not-displaying-my-photos-in.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/192686063002927951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/192686063002927951'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/07/firefox-is-not-displaying-my-photos-in.html' title='Firefox is not displaying my photos in  facebook, etc.'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-12479190719129019</id><published>2010-07-01T23:10:00.002+05:30</published><updated>2010-07-14T14:38:36.059+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>How to reset primary key indent to 1 when inserting new records (after deletion of all records) in SQL Server</title><content type='html'>First delete all the records of the data table where you need to insert new records. Then add following two rows(in bold) at the beginning and end of your data insert script as follows an run the script.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;set IDENTITY_INSERT TableName ON&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;INSERT INTO [DatabaseName].[dbo].[TableName]([IndentityColumn],[Column2], [Column3])&lt;br /&gt; values(1,'test','test')&lt;br /&gt;INSERT INTO [DatabaseName].[dbo].[TableName]([IndentityColumn],[Column2], [Column3])&lt;br /&gt; values(2,'test2','test2')&lt;br /&gt;INSERT INTO [DatabaseName].[dbo].[TableName]([IndentityColumn],[Column2], [Column3])&lt;br /&gt; values(3,'test3','test3')&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;set IDENTITY_INSERT TableName OFF&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-12479190719129019?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/12479190719129019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/07/how-to-reset-primary-key-indent-to-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/12479190719129019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/12479190719129019'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/07/how-to-reset-primary-key-indent-to-1.html' title='How to reset primary key indent to 1 when inserting new records (after deletion of all records) in SQL Server'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-983006373050618284</id><published>2010-05-24T12:37:00.003+05:30</published><updated>2010-07-14T14:39:03.312+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Telerik Reporting'/><title type='text'>How to prevent displying the page number in the first page of Telerik Report</title><content type='html'>If you have added the page number in the Report footer of your Telerik report, it is very easy to prevent displaying the page number in the first page. It can be done by preventing displaying the report footer on the first page. &lt;br /&gt;&lt;br /&gt;In your report select the report footer and right click and go to properties(Or press F4 key to view properties of selected item in Visual Studio). Then set the property "PrintOnFirstPage" to "False". Then the page footer which have page number will not be displayed in the report's first page.&lt;br /&gt;&lt;br /&gt;Please note if you have data to be displayed more than page number in the report footer as that data also will not be displayed in the Report's first page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-983006373050618284?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/983006373050618284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/05/how-to-prevent-displying-page-number-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/983006373050618284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/983006373050618284'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/05/how-to-prevent-displying-page-number-in.html' title='How to prevent displying the page number in the first page of Telerik Report'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-9163491550767158758</id><published>2010-05-14T22:16:00.005+05:30</published><updated>2010-07-14T14:39:03.313+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Telerik Reporting'/><title type='text'>How to add a TOC (Table of Contents) to Large Telerik Report with sub reports</title><content type='html'>At the moment I am writing this article (May 2010) Telerik Reporting doesn't support the TOC feature. So we have to manually implement that feature.&lt;br /&gt;&lt;br /&gt;I have used an open source .Net PDF class library called &lt;a href="http://sourceforge.net/projects/itextsharp/files/"&gt;iTextSharp &lt;/a&gt;for the purpose.&lt;br /&gt;&lt;br /&gt;Here I will mention the steps of generating the TOC.&lt;br /&gt;1. First add 2 string Report parameters to your report. (I have named them as TopicsForTOC and PagesForTOC)&lt;br /&gt;&lt;br /&gt;2. Then add two Html text boxes to the report where you need to put TOC and set the vlaue of those Html text boxes as the above added 2 report parameters subsequently.&lt;br /&gt;See the figure below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/S-2BrjIuEfI/AAAAAAAAANw/BssbC3qmYFQ/s1600/Untitled.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 239px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/S-2BrjIuEfI/AAAAAAAAANw/BssbC3qmYFQ/s400/Untitled.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5471171707491193330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. Don't forget to add book marks to the report headings or sub report headings which you need to add to the TOC.&lt;br /&gt;&lt;br /&gt;4. Then using a familiar method to you generate your report once by passing null for the TopicsForTOC  and PagesForTOC and get the report as byte array. (If you need to know how to generate a Telerik Report from C# code in Form base or Console application by passing parameters manually there are plenty of resources available on web. If you can't find drop a comment I will give some sample source codes)&lt;br /&gt;&lt;br /&gt;5. Pass that byte array to the following methods to generate TOC. Don't forget to add a reference to iTextSharp.dll in your class where you add following methods. You can download the latest version of iTextSharp at &lt;a href="http://sourceforge.net/projects/itextsharp/files/"&gt;sourceforge.net&lt;/a&gt;. I have used the itextsharp-5.0.1.1-dll for development.&lt;br /&gt;&lt;br /&gt;public static string[] BuildToc(byte[] pdfData)&lt;br /&gt;        {&lt;br /&gt;            using (MemoryStream ms = new MemoryStream())&lt;br /&gt;            {&lt;br /&gt;                SimpleBookmark.ExportToXML(SimpleBookmark.GetBookmark(new PdfReader(new RandomAccessFileOrArray(pdfData), null)), ms, "UTF-8", false);&lt;br /&gt;                ms.Position = 0;&lt;br /&gt;                SortedList&lt;int, string&gt; sl = new SortedList&lt;int, string&gt;();&lt;br /&gt;&lt;br /&gt;                using (XmlReader xr = XmlReader.Create(ms))&lt;br /&gt;                {&lt;br /&gt;                    xr.MoveToContent();&lt;br /&gt;                    string page = null;&lt;br /&gt;                    string text = null;&lt;br /&gt;                    Regex re = new Regex(@"^\d+");&lt;br /&gt;&lt;br /&gt;                    while (xr.Read())&lt;br /&gt;                    {&lt;br /&gt;                        //Filter by the nodes with depth 1 to remove the report name from toc&lt;br /&gt;                        if (xr.NodeType == XmlNodeType.Element &amp;&amp; xr.Name == "Title" &amp;&amp; xr.IsStartElement() &amp;&amp; xr.Depth != 1)&lt;br /&gt;                        {&lt;br /&gt;                            // extract page number from 'Page' attribute &lt;br /&gt;                            if (xr.GetAttribute("Page") != null)&lt;br /&gt;                                page = re.Match(xr.GetAttribute("Page")).Captures[0].Value;&lt;br /&gt;&lt;br /&gt;                            xr.Read();&lt;br /&gt;&lt;br /&gt;                            if (xr.NodeType == XmlNodeType.Text)&lt;br /&gt;                            {&lt;br /&gt;                                text = xr.Value.Trim();&lt;br /&gt;&lt;br /&gt;                                if (text != null &amp;&amp; page != null)&lt;br /&gt;                                    sl.Add(Convert.ToInt32(page), text);&lt;br /&gt;                            }&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                  &lt;br /&gt;                    return createHTMLTOC(sl);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;public static string[] createHTMLTOC(SortedList&lt;int,string&gt; sortedList)&lt;br /&gt;        {&lt;br /&gt;            StringBuilder sbTopics = new StringBuilder();&lt;br /&gt;            StringBuilder sbPages = new StringBuilder();&lt;br /&gt;            string[] tocArray = new string[2];&lt;br /&gt;            int index = 1;&lt;br /&gt;&lt;br /&gt;            foreach (KeyValuePair&lt;int, string&gt; key in sortedList)&lt;br /&gt;            {&lt;br /&gt;                sbTopics.Append(index + ". "+key.Value.ToString() + "&lt;br/&gt;");&lt;br /&gt;                sbPages.Append(key.Key.ToString() + "&lt;br/&gt;");&lt;br /&gt;                index++;&lt;br /&gt;            }&lt;br /&gt;            tocArray[0] = sbTopics.ToString();&lt;br /&gt;            tocArray[1] = sbPages.ToString();&lt;br /&gt;&lt;br /&gt;            return tocArray;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;The TOC is returned as string array with two elements. First Element contains the Topics of TOC and second element contains the adjacent page numbers of those topics in Html format.&lt;br /&gt;&lt;br /&gt;6. Regenerate your Telerik Report by passing the values of tocArray[0] for TopicsForTOC and tocArray[1] for PagesForTOC parameters.&lt;br /&gt;&lt;br /&gt;7.You can see the TOC displayed in the Html Text boxes nicely.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-9163491550767158758?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/9163491550767158758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/05/how-to-add-toc-table-of-contents-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/9163491550767158758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/9163491550767158758'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/05/how-to-add-toc-table-of-contents-to.html' title='How to add a TOC (Table of Contents) to Large Telerik Report with sub reports'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Egl3Jnl8JzA/S-2BrjIuEfI/AAAAAAAAANw/BssbC3qmYFQ/s72-c/Untitled.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-329391701505861518</id><published>2010-03-30T16:34:00.005+05:30</published><updated>2010-07-14T14:38:26.490+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C#.NET: How to to store a data collection in web.config or app.config and reuse</title><content type='html'>If we have some static data which are not to be stored in the database but should be in a place where we can edit when needed we add those data in a config file. (In web.config if it is web application and in app.config if it is Windows application)&lt;br /&gt;Here I am showing you how to store a collection of data.&lt;br /&gt;&lt;br /&gt;First add a configuration section to your config file as follows.&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;lt;configSections&amp;gt;&lt;br /&gt;&amp;lt;section name="ReportTextGroupConfiguration" type="Path_Of_the_Class.ReportTextGroupConfiguration,Path_of_the_assembly"/&amp;gt;&lt;br /&gt;&amp;lt;/configSections&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;ReportTextGroupConfiguration&amp;gt;&lt;br /&gt;    &amp;lt;ReportTextDetailsGroups&amp;gt;&lt;br /&gt;      &amp;lt;add group="group1" isEditable="true" /&amp;gt;&lt;br /&gt;      &amp;lt;add group="group2" isEditable="true" /&amp;gt;&lt;br /&gt;      &amp;lt;add group="group3" isEditable="true" /&amp;gt;&lt;br /&gt;      &amp;lt;add group="group4" isEditable="false"/&amp;gt;&lt;br /&gt;    &amp;lt;/ReportTextDetailsGroups&amp;gt;&lt;br /&gt;  &amp;lt;/ReportTextGroupConfiguration&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&lt;br /&gt;As I have added you can add parameters as much as you need to be added to the collection as above code and isEditable.&lt;br /&gt;&lt;br /&gt;Then you have create following classes to fetch data as a collection from the config file. Follwong class is created to refer the configuration section named "ReportTextGroupConfiguration" in the config file.&lt;br /&gt;&lt;br /&gt;public class ReportTextGroupConfiguration : ConfigurationSection&lt;br /&gt;    {&lt;br /&gt;        private static readonly ILog log = LogManager.GetInstance(typeof(ReportTextGroupConfiguration));&lt;br /&gt;        private static ReportTextGroupConfiguration reportConfig;&lt;br /&gt;&lt;br /&gt;        // Gets the ReportTextGroupConfiguration section&lt;br /&gt;        public static ReportTextGroupConfiguration GetConfig()&lt;br /&gt;        {&lt;br /&gt;            if (reportConfig == null)&lt;br /&gt;                reportConfig = ConfigurationManager.GetSection("ReportTextGroupConfiguration") as ReportTextGroupConfiguration;&lt;br /&gt;&lt;br /&gt;            log.Debug("Retrieved ReportTextGroupConfiguration section from the application config file.");&lt;br /&gt;&lt;br /&gt;            return reportConfig;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        //Represents ReportTextDetailsGroups element in the configuration file&lt;br /&gt;        [ConfigurationProperty("ReportTextDetailsGroups", IsRequired = false)]&lt;br /&gt;        public ReportConfigElementCollection ReportTextDetailsGroups&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return this["ReportTextDetailsGroups"] as ReportConfigElementCollection;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Following class is used to refer the config elements we have added in the config file. There you have to set properties of the each and every elements and there should be one element which is unique and to be used as the key element. Here I have defined "group" as the key element.&lt;br /&gt;&lt;br /&gt; public class ReportConfigElement:ConfigurationElement&lt;br /&gt;    {&lt;br /&gt; &lt;br /&gt;        [ConfigurationProperty("group", IsRequired = true, IsKey = true)]&lt;br /&gt;        public string Group&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return this["group"] as string;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        [ConfigurationProperty("isEditable", IsRequired = true)]&lt;br /&gt;        public string IsEditable&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return this["isEditable"] as string;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Following class is the model of the element collection.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class ReportConfigElementCollection : ConfigurationElementCollection&lt;br /&gt;    {&lt;br /&gt;        public ReportConfigElement this[int index]&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return base.BaseGet(index) as ReportConfigElement;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                if (base.BaseGet(index) != null)&lt;br /&gt;                {&lt;br /&gt;                    base.BaseRemoveAt(index);&lt;br /&gt;                }&lt;br /&gt;                base.BaseAdd(index, value);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public new ReportConfigElement this[string key]&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return base.BaseGet(key) as ReportConfigElement;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected override ConfigurationElement CreateNewElement()&lt;br /&gt;        {&lt;br /&gt;            return new ReportConfigElement();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected override object GetElementKey(ConfigurationElement element)&lt;br /&gt;        {&lt;br /&gt;            return ((ReportConfigElement)element).Group;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;Now I will show an example how to get the data stored in the web.config as a collection and add to a selected list to be assigned for a dropdown list in ASP.NET MVC.&lt;br /&gt;&lt;br /&gt; //fetch groups from web config and set to dropdown&lt;br /&gt;            ReportTextGroupConfiguration reportGroupConfig = ReportTextGroupConfiguration.GetConfig();&lt;br /&gt;            List&lt;SelectListItem&gt; ReportTextDetailsGroupItems = new List&lt;SelectListItem&gt;();&lt;br /&gt;&lt;br /&gt;            foreach (ReportConfigElement element in reportGroupConfig.ReportTextDetailsGroups)&lt;br /&gt;            {&lt;br /&gt;                if (element.Group != null)&lt;br /&gt;                {&lt;br /&gt;                     ReportTextDetailsGroupItems.Add(new SelectListItem&lt;br /&gt;                    {&lt;br /&gt;                        Text = element.Group,&lt;br /&gt;                        Value = element.Group&lt;br /&gt;                        //Value = element.IsEditable&lt;br /&gt;                    });&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;ViewData["ReportTextDetailsGroups"] = ReportTextDetailsGroupItems;&lt;br /&gt;&lt;br /&gt;Finally follwing is the Code of the .aspx view page where the list is added to the dropdown list.&lt;br /&gt;&lt;br /&gt;&amp;lt;%=Html.DropDownList("ReportTextData.Group", (System.Collections.Generic.List&lt;SelectListItem&gt;)(ViewData["ReportTextDetailsGroups"] == null ? "" : ViewData["ReportTextDetailsGroups"]), new { @class = "smallDropdownList" })%&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-329391701505861518?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/329391701505861518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/03/cnet-how-to-to-store-and-get-data.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/329391701505861518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/329391701505861518'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/03/cnet-how-to-to-store-and-get-data.html' title='C#.NET: How to to store a data collection in web.config or app.config and reuse'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-9134952568668089979</id><published>2010-03-19T09:39:00.004+05:30</published><updated>2010-03-25T13:13:27.006+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><title type='text'>How to solve problem in Jquery with ASP.NET mvc: When text box name have a dot jquery function doesn't identify it</title><content type='html'>&lt;%=Html.TextBox("UserData.Name", ViewData["Name"] == null ? "" : ViewData["Name"])%&gt;&lt;br /&gt;&lt;br /&gt;In your Asp.NET MVC view page when you have a textbox name with a dot like above may be you have face the problem that your jquery function will not identify it's name.&lt;br /&gt;&lt;br /&gt;function enableTextBoxes(){&lt;br /&gt;     $("#UserData.Name").attr("disabled",false);  &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;So there are two solutions for it. When you check the HTML code of the view you will see that textbox ID has auto generated from name by replacing dot with underscore (_).&lt;br /&gt;So you can use that name like below.&lt;br /&gt;&lt;br /&gt;function enableTextBoxes(){&lt;br /&gt;     $("#UserData_Name").attr("disabled",false);  &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Or else you can add two back slashes in front of the special character dot like below.&lt;br /&gt;&lt;br /&gt;function enableTextBoxes(){&lt;br /&gt;     $("#UserData\\.Name").attr("disabled",false);  &lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-9134952568668089979?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/9134952568668089979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/03/when-text-box-name-have-dot-jquery.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/9134952568668089979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/9134952568668089979'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/03/when-text-box-name-have-dot-jquery.html' title='How to solve problem in Jquery with ASP.NET mvc: When text box name have a dot jquery function doesn&apos;t identify it'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-4867077007345652041</id><published>2010-03-19T09:26:00.003+05:30</published><updated>2010-03-21T19:46:01.949+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><title type='text'>Jquery with ASP.NET mvc: How to call an action method when selected item changed in a drop down list</title><content type='html'>In your View page imagine you have a dropdown list like this.&lt;br /&gt;&lt;br /&gt;&lt;%= Html.DropDownList("drop_down_list_id", (System.Collections.Generic.List&lt;SelectListItem&gt;)(ViewData["Names"] == null ? "" : ViewData["Names"]), new { @class = "smallDropdownList" })%&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Following is the jquery function which calls the mentioned controller's action method when dropdown list's selected item changed.&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt; &lt;br /&gt;&lt;br /&gt;$(document).ready(function() {          &lt;br /&gt;&lt;br /&gt;$("#drop_down_list_id").change(function () {&lt;br /&gt;&lt;br /&gt;this.form.action = "/ControllerName/ActionName";&lt;br /&gt;this.form.submit();&lt;br /&gt;&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;});&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-4867077007345652041?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/4867077007345652041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/03/jquery-with-aspnet-mvc-how-to-call.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4867077007345652041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4867077007345652041'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/03/jquery-with-aspnet-mvc-how-to-call.html' title='Jquery with ASP.NET mvc: How to call an action method when selected item changed in a drop down list'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-3778157148158701205</id><published>2010-03-15T11:24:00.008+05:30</published><updated>2010-03-21T19:50:34.183+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='New Technologies'/><title type='text'>How to Generate source documentation using Sandcastle</title><content type='html'>Sandcastle is one of the best tools of creating source documentation which are freely available. I found a very good tutorial written on How to Generate source documentation using Sandcastle. Following is the link of it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bloggingabout.net/blogs/jschreuder/archive/2007/03/20/using-sandcastle-is-increasingly-mature.aspx"&gt;http://bloggingabout.net/blogs/jschreuder/archive/2007/03/20/using-sandcastle-is-increasingly-mature.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;While been thanking to the author of the above article I will explain the proceedure with more screen shots and steps as follows. Hope this will be helpful for beginners.&lt;br /&gt; &lt;br /&gt;First you have to download and install the CTP and the Sandcastle Helper.&lt;br /&gt;&lt;br /&gt;   &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E82EA71D-DA89-42EE-A715-696E3A4873B2&amp;displaylang=en"&gt;Download &lt;/a&gt;March CTP&lt;br /&gt;   &lt;a href="http://shfb.codeplex.com/releases/view/29710"&gt;Download &lt;/a&gt;Eric Woodruff's Sandcastle helper.&lt;br /&gt;&lt;br /&gt;After installing above software we following is the simple way of creating a source documentation using them.&lt;br /&gt;&lt;br /&gt;First you have to make sure that the project created XML document. Click on project properties and tick the checkbox  XML Documentation File and give the path. Refer to the following image if it is not clear. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/S53OFMwdPkI/AAAAAAAAANA/3wIXHODGAhU/s1600-h/1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 359px;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/S53OFMwdPkI/AAAAAAAAANA/3wIXHODGAhU/s400/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5448737712907304514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Assume that your project name is "testProject" and when build the project you will see the project assembly testProject.dll and the XML file testProject.XML is there in the bin folder.&lt;br /&gt;&lt;br /&gt;Now open the SandCastle Help File Builder UI and go to File --&gt; New Project and give a name and a place that the new project to be saved ad follows.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/S53Pl3Wk4uI/AAAAAAAAANI/mtWBDhFw5I8/s1600-h/2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/S53Pl3Wk4uI/AAAAAAAAANI/mtWBDhFw5I8/s400/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5448739373608919778" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then you will get the SandCastle Help File Builder UI like follows.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Egl3Jnl8JzA/S53P_DraFjI/AAAAAAAAANQ/N0QuXEIUw6s/s1600-h/3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 299px;" src="http://2.bp.blogspot.com/_Egl3Jnl8JzA/S53P_DraFjI/AAAAAAAAANQ/N0QuXEIUw6s/s400/3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5448739806414247474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the right side of the above image you can see the Project Explorer Window. Under the project as following image shows add the testProject.dll (Your project assembly) as the Documentation source. Then you will see testProject.XML (Your project XML file) also added to the Project Explorer.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/S53RpMWvgiI/AAAAAAAAANg/SdNCIApW7Wc/s1600-h/4.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 280px;" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/S53RpMWvgiI/AAAAAAAAANg/SdNCIApW7Wc/s400/4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5448741629809623586" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Finally what you have to do is click on Build the Help File Icon as follows.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/S53SD1VmdxI/AAAAAAAAANo/8JA6PWg6dC0/s1600-h/5.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 299px;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/S53SD1VmdxI/AAAAAAAAANo/8JA6PWg6dC0/s400/5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5448742087487289106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It will take some time to build the help file according to the size of your source code. After build succeeded you can click on  Documentation --&gt; View Help file to view the help file. Or else find the location of the Help File (.chm).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-3778157148158701205?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/3778157148158701205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/03/how-to-generate-source-documentation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3778157148158701205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3778157148158701205'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/03/how-to-generate-source-documentation.html' title='How to Generate source documentation using Sandcastle'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Egl3Jnl8JzA/S53OFMwdPkI/AAAAAAAAANA/3wIXHODGAhU/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-1722417877650015249</id><published>2010-03-08T15:50:00.003+05:30</published><updated>2010-03-21T19:46:01.950+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><title type='text'>ASP.NET MVC dropdown list selected item</title><content type='html'>I will show you how to load data to ASP.NET MVC dropdown list. Here I am using a Enumerable strong types for the items of the drop downlist as follows.&lt;br /&gt;&lt;br /&gt;public enum Language&lt;br /&gt;    {&lt;br /&gt;        Sinhala = 1,&lt;br /&gt;        English = 2,&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;I will set the language items as follows in the controller method.&lt;br /&gt;&lt;br /&gt;//Set Language&lt;br /&gt;            var languageItems = new List&lt;SelectListItem&gt;();&lt;br /&gt;            var names = Enum.GetNames(typeof(Language));&lt;br /&gt;            Enum.GetValues(typeof(Language));&lt;br /&gt;&lt;br /&gt;            for (var i = 0; i &lt; names.Length; i++)&lt;br /&gt;            {&lt;br /&gt;                languageItems.Add(new SelectListItem&lt;br /&gt;                {&lt;br /&gt;                    Text = names[i],&lt;br /&gt;                    Value = values.GetValue(i).ToString()&lt;br /&gt;                });&lt;br /&gt;            }&lt;br /&gt;            ViewData["Language"] = languageItems;&lt;br /&gt;&lt;br /&gt;In the View page I will add the dropdown list using Html helper as follows.&lt;br /&gt;&lt;br /&gt;&amp;lt;%=Html.DropDownList("language_text", (System.Collections.Generic.List&lt;SelectListItem&gt;)(ViewData["Language"] == null ? "" : ViewData["Language"]), new { @class = "smallDropdownList" })%&amp;gt;&lt;br /&gt;&lt;br /&gt;This is the simple way to load data to drop down list from Enum.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you need to load data to drop down list  from the Web.config or app.config use the following code in the controller class action.&lt;br /&gt;&lt;br /&gt; //Set product code&lt;br /&gt;            var productCodes = ConfigurationManager.AppSettings["ProductCodes"];&lt;br /&gt;            var productCodeItems = new List&lt;SelectListItem&gt;();&lt;br /&gt;            names = productCodes.Split(',');&lt;br /&gt;            productCodes.Split(',');&lt;br /&gt;&lt;br /&gt;            for (var i = 0; i &lt; names.Length; i++)&lt;br /&gt;            {&lt;br /&gt;                productCodeItems.Add(new SelectListItem&lt;br /&gt;                {&lt;br /&gt;                    Text = names[i],&lt;br /&gt;                    Value = names[i]&lt;br /&gt;                });&lt;br /&gt;            }&lt;br /&gt;            ViewData["ProductCode"] = productCodeItems;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I have added the Product Codesin the Web config or app config as follows.&lt;br /&gt;&lt;br /&gt;&amp;lt;appSettings&amp;gt;&lt;br /&gt;    &amp;lt;add key="ProductCodes" value="123,456" /&amp;gt;&lt;br /&gt;  &amp;lt;/appSettings&amp;gt;&lt;br /&gt;&lt;br /&gt;You will met a scenario like you need to load a intended selected item to the dropdown list. Then You can use the code like this if you get the data from Enum.&lt;br /&gt;&lt;br /&gt;//Set Language&lt;br /&gt;string language = "Sinhala"; //Set the language to be selected item in the drop down&lt;br /&gt;                List&lt;SelectListItem&gt; languageItems = new List&lt;SelectListItem&gt;();&lt;br /&gt;                string[]  namesLanguage = Enum.GetNames(typeof(Language));&lt;br /&gt;                Array valuesLanguage = Enum.GetValues(typeof(Language));&lt;br /&gt;&lt;br /&gt;                for (int i = 0; i &lt; namesLanguage.Length; i++)&lt;br /&gt;                {&lt;br /&gt;&lt;br /&gt;                    if (language == namesLanguage[i])&lt;br /&gt;                    {&lt;br /&gt;                        languageItems.Add(new SelectListItem&lt;br /&gt;                        {&lt;br /&gt;                            Text = namesLanguage[i],&lt;br /&gt;                            Value = valuesLanguage.GetValue(i).ToString(),&lt;br /&gt;                            Selected = true&lt;br /&gt;                        });&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;                    else&lt;br /&gt;                    {&lt;br /&gt;                        languageItems.Add(new SelectListItem&lt;br /&gt;                        {&lt;br /&gt;                            Text = namesLanguage[i],&lt;br /&gt;                            Value = namesLanguage[i]&lt;br /&gt;                        });&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                ViewData["Language"] = languageItems;&lt;br /&gt;&lt;br /&gt;Or else use the code like this if you get data from config.&lt;br /&gt;&lt;br /&gt; //Set product code&lt;br /&gt;string productCode = "123";//Set the product code to be selected in the drop down&lt;br /&gt;                string productCodes = ConfigurationManager.AppSettings["ProductCodes"];&lt;br /&gt;                List&lt;SelectListItem&gt; productCodeItems = new List&lt;SelectListItem&gt;();&lt;br /&gt;&lt;br /&gt;                while (productCodes.Length &gt; 0)&lt;br /&gt;                {&lt;br /&gt;                    string productCode;&lt;br /&gt;                    if (productCodes.IndexOf(",") &gt; 0)&lt;br /&gt;                    {&lt;br /&gt;                        productCode = productCodes.Substring(0, productCodes.IndexOf(","));&lt;br /&gt;                    }&lt;br /&gt;                    else&lt;br /&gt;                    {&lt;br /&gt;                        productCode = productCodes;&lt;br /&gt;                    }&lt;br /&gt;                    if (productCode.Trim() == productCode)&lt;br /&gt;                    {&lt;br /&gt;                        productCodeItems.Add(new SelectListItem&lt;br /&gt;                        {&lt;br /&gt;                            Text = productCode,&lt;br /&gt;                            Value = productCode,&lt;br /&gt;                            Selected = true&lt;br /&gt;                        });&lt;br /&gt;                    }&lt;br /&gt;                    else&lt;br /&gt;                    {&lt;br /&gt;                        productCodeItems.Add(new SelectListItem&lt;br /&gt;                        {&lt;br /&gt;                            Text = productCode,&lt;br /&gt;                            Value = productCode&lt;br /&gt;                        });&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                    if (productCodes.IndexOf(",") &gt; 0)&lt;br /&gt;                    {&lt;br /&gt;                        productCodes = productCodes.Substring(productCodes.IndexOf(",") + 1);&lt;br /&gt;                    }&lt;br /&gt;                    else&lt;br /&gt;                    {&lt;br /&gt;                        break;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                ViewData["ProductCode"] = productCodeItems;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There is on more thing to be remembered when you set the selected item. You may face a problem like the drop down list will not make the selected item you have made selected true like above code snippet but drop down list will load as default. The reason for this problem is that asp.net MVC first looks for a match between the name of the drop down and a property on the model. If there’s a match, the selected value of the SelectList is overridden. Changing the name of the drop down is all it takes to remedy the issue.&lt;br /&gt;&lt;br /&gt;So when you need to set selected item to your dropdown list do not use the model parameter name but use a different name. For clear in above code snippets if I use the the same name "Language" or "ProductCode" for drop down list as follows that problem will occur.&lt;br /&gt;&lt;br /&gt;&amp;lt;%=Html.DropDownList("Language", (System.Collections.Generic.List&lt;SelectListItem&gt;)(ViewData["Language"] == null ? "" : ViewData["Language"]), new { @class = "smallDropdownList" })%&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;%=Html.DropDownList("ProductCode", (System.Collections.Generic.List&lt;SelectListItem&gt;)(ViewData["ProductCode"] == null ? "" : ViewData["ProductCode"]), new { @class = "smallDropdownList" })%&amp;gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;In order to avoid the problem I used some different names like follows.&lt;br /&gt;&lt;br /&gt;&amp;lt;%=Html.DropDownList("language_text", (System.Collections.Generic.List&lt;SelectListItem&gt;)(ViewData["Language"] == null ? "" : ViewData["Language"]), new { @class = "smallDropdownList" })%&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;%=Html.DropDownList("productCode_text", (System.Collections.Generic.List&lt;SelectListItem&gt;)(ViewData["ProductCode"] == null ? "" : ViewData["ProductCode"]), new { @class = "smallDropdownList" })%&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-1722417877650015249?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/1722417877650015249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/03/aspnet-mvc-dropdown-list-selected-item.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/1722417877650015249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/1722417877650015249'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/03/aspnet-mvc-dropdown-list-selected-item.html' title='ASP.NET MVC dropdown list selected item'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-3117667553964607841</id><published>2010-03-02T21:26:00.004+05:30</published><updated>2010-03-21T19:46:01.951+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><title type='text'>ASP.NET MVC Unit testing - Session Mocking with MOQ</title><content type='html'>If your MVC controller use session objects when you write unit tests and try to run them you will definitely get the error "Object reference not set to an instance of object" type error if you haven't mock the Session in your unit test project. For the purpose I have use the Unit testing tool &lt;a href="http://code.google.com/p/moq/"&gt;MOQ&lt;/a&gt;. You can download the MOQ binaries from &lt;a href="http://code.google.com/p/moq/downloads/list"&gt;here&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Just add a reference to moq.dll from your project and create few methods like below inside your controllerTest class.&lt;br /&gt;&lt;br /&gt;public Mock&lt;ControllerContext&gt; CreateMockControllerContext()&lt;br /&gt;        {&lt;br /&gt;            var mock = new Mock&lt;ControllerContext&gt;();&lt;br /&gt;&lt;br /&gt;            mock.Setup(p =&gt; p.HttpContext.Session["personName"]).Returns("personName");&lt;br /&gt;            mock.Setup(p =&gt; p.HttpContext.Session["id"]).Returns("id");&lt;br /&gt;&lt;br /&gt;            return mock;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;HomeController CreateHomeController()&lt;br /&gt;        {&lt;br /&gt;            return new HomeController();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;HomeController CreateHomeController As()&lt;br /&gt;        {&lt;br /&gt;            var controller = CreateHomeController();&lt;br /&gt;            controller.ControllerContext = CreateMockControllerContext().Object;&lt;br /&gt;            return controller;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;Now inside your Test method implement the controller mock like this.&lt;br /&gt;&lt;br /&gt;[TestMethod]&lt;br /&gt;public void TestSearchJobsWithGivenPersonNameOnly()&lt;br /&gt;        {&lt;br /&gt;            // Arrange&lt;br /&gt;            HomeController controller = new HomeController();&lt;br /&gt;            controller = CreateHomeControllerAs();&lt;br /&gt;&lt;br /&gt;            // Act&lt;br /&gt;            var result = controller.SearchJobs() as ViewResult;&lt;br /&gt;&lt;br /&gt;            // Assert&lt;br /&gt;            Assert.AreEqual(5, controller.ViewData["RecordCount"]);&lt;br /&gt;        }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-3117667553964607841?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/3117667553964607841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/03/aspnet-mvc-unit-testing-session-mocking.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3117667553964607841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3117667553964607841'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/03/aspnet-mvc-unit-testing-session-mocking.html' title='ASP.NET MVC Unit testing - Session Mocking with MOQ'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-9054711528886158362</id><published>2010-02-27T01:35:00.003+05:30</published><updated>2011-01-08T19:17:25.776+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Regular Expressions Library</title><content type='html'>I found a very good site which have various kind of regular expressions such as &lt;a href="http://regexlib.com/DisplayPatterns.aspx?cattabindex=4&amp;categoryId=5"&gt;Date Time Validation Regular Expressions&lt;/a&gt;, etc. which are very useful for programmers.&lt;br /&gt;Following is the link of the web site.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://regexlib.com/"&gt;http://regexlib.com&lt;/a&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/3521747541502985402-9054711528886158362?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/9054711528886158362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/02/regular-expressions-library.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/9054711528886158362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/9054711528886158362'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/02/regular-expressions-library.html' title='Regular Expressions Library'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7749993485117903530</id><published>2010-02-26T19:27:00.002+05:30</published><updated>2010-03-21T19:50:47.557+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>System.ArgumentException: The directory name C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\config is invalid.</title><content type='html'>When you run Unit tests in Visual studio and if your project have config files sometimes you may have face this kind of error when trying to run the unit tests after modifying config files.&lt;br /&gt;&lt;br /&gt;Therefore in order to solve the problem what you have to do is replace and copy the new config files or the folder which config files are containing into C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ folder. This path may depend according to the location you have installed Visual Studio.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-7749993485117903530?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7749993485117903530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/02/systemargumentexception-directory-name.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7749993485117903530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7749993485117903530'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/02/systemargumentexception-directory-name.html' title='System.ArgumentException: The directory name C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\config is invalid.'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-407275159025398990</id><published>2010-02-26T00:38:00.002+05:30</published><updated>2010-03-21T19:46:01.952+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C#.NET : How to convert PDF document to byte array and byte array to PDF document</title><content type='html'>Converting a pdf document will be very helpful for you when you need totransfer PDF document over different remote applications. Use following method for it. Don't forget add reference to System.IO;&lt;br /&gt;&lt;br /&gt; private byte[] StreamPDFToByte()&lt;br /&gt;        {&lt;br /&gt;            string filename = "C:\\sample.pdf";&lt;br /&gt;            FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);&lt;br /&gt;&lt;br /&gt;            // Create a byte array of file stream length&lt;br /&gt;            byte[] byteData = new byte[fs.Length];&lt;br /&gt;&lt;br /&gt;            //Read block of bytes from stream into the byte array&lt;br /&gt;            fs.Read(byteData, 0, System.Convert.ToInt32(fs.Length));&lt;br /&gt;&lt;br /&gt;            //Close the File Stream&lt;br /&gt;            fs.Close();&lt;br /&gt;            return byteData; //return the byte data&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;On the other hand you may need to convert the byte array into a PDF file back. So use following method.&lt;br /&gt;&lt;br /&gt;  private void StreamByteToPDF(byte[] byteData)&lt;br /&gt;        {&lt;br /&gt;            string filename = "C:\\Newsample.pdf";&lt;br /&gt;            FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write);&lt;br /&gt;&lt;br /&gt;            //Read block of bytes from stream into the byte array&lt;br /&gt;            fs.Write(byteData, 0, byteData.Length);&lt;br /&gt;&lt;br /&gt;            //Close the File Stream&lt;br /&gt;            fs.Close();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;Enjoy the C#.NET programming.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-407275159025398990?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/407275159025398990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/02/cnet-how-to-convert-pdf-document-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/407275159025398990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/407275159025398990'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/02/cnet-how-to-convert-pdf-document-to.html' title='C#.NET : How to convert PDF document to byte array and byte array to PDF document'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-4589473110216494275</id><published>2010-02-13T14:43:00.002+05:30</published><updated>2010-03-21T19:46:46.641+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>How to find SQL Server name using a query</title><content type='html'>Use the following query.&lt;br /&gt;&lt;br /&gt;select @@servername&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/3521747541502985402-4589473110216494275?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/4589473110216494275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/02/how-to-find-sql-server-name-using-query.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4589473110216494275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4589473110216494275'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/02/how-to-find-sql-server-name-using-query.html' title='How to find SQL Server name using a query'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-9059844010616798944</id><published>2010-02-08T16:26:00.002+05:30</published><updated>2010-03-21T19:46:46.642+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>How to install SQL Server 2000 in Windows Vista</title><content type='html'>Normally Windows Vista doesn't support MS SQL Server 2000. Even though the best solution is to go for MS SQL Server 2005 or higher technology if you have any requirement to run MS SQL Server 2000 in Windows Vista following is the simplest way.&lt;br /&gt;&lt;br /&gt;1.Install Microsoft Virtual Server (&lt;a href="http://technet.microsoft.com/en-us/virtualserver/default.aspx"&gt;Download from here&lt;/a&gt;)&lt;br /&gt;2.Then install SQL Server 2000&lt;br /&gt;&lt;br /&gt;I was able to successfully install MS SQL Server 2000 Developer edition in Windows Vista using above method.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-9059844010616798944?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/9059844010616798944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/02/how-to-install-sql-server-2000-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/9059844010616798944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/9059844010616798944'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/02/how-to-install-sql-server-2000-in.html' title='How to install SQL Server 2000 in Windows Vista'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-6644591345628917230</id><published>2010-01-15T14:36:00.002+05:30</published><updated>2010-03-21T19:46:46.642+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>How to display Row Number in SQL Select Query</title><content type='html'>Use ROW_NUMBER() function in MS SQL Server. Following is an example.  &lt;br /&gt;&lt;br /&gt;SELECT ROW_NUMBER() OVER(ORDER BY Column1) as Row, &lt;br /&gt; [Column1], [Column2], [Column3],[Column4] &lt;br /&gt; FROM [TableName]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-6644591345628917230?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/6644591345628917230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/01/how-to-display-row-number-in-sql-select.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6644591345628917230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6644591345628917230'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/01/how-to-display-row-number-in-sql-select.html' title='How to display Row Number in SQL Select Query'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-1773632924397877759</id><published>2010-01-15T14:02:00.001+05:30</published><updated>2011-01-08T19:17:35.875+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>How to extracr year, month, day from datetime in MS SQL Server</title><content type='html'>Use the function DATEPART() as follows.&lt;br /&gt;&lt;br /&gt;SELECT DATEPART(year, GETDATE()) AS 'Year'&lt;br /&gt;SELECT DATEPART(day, GETDATE()) as 'Day'&lt;br /&gt;SELECT DATEPART(month, GETDATE()) as 'Month'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-1773632924397877759?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/1773632924397877759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/01/how-to-extracr-year-month-day-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/1773632924397877759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/1773632924397877759'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/01/how-to-extracr-year-month-day-from.html' title='How to extracr year, month, day from datetime in MS SQL Server'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-4789051562895249691</id><published>2010-01-05T12:22:00.002+05:30</published><updated>2010-03-21T19:46:01.953+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>ASP.NET with C# : How to send an email</title><content type='html'>In your web.config add the following section under configuration section.&lt;br /&gt;&lt;br /&gt;&amp;lt;system.net&gt;&lt;br /&gt;&amp;lt;mailSettings&gt;&lt;br /&gt;&amp;lt;smtp deliveryMethod="network" from="test@test.com"&gt;&lt;br /&gt;&amp;lt;network host="mail.test.com" port="25" defaultCredentials="true"/&gt;&lt;br /&gt;&amp;lt;/smtp&gt;&lt;br /&gt;&amp;lt;/mailSettings&gt;&lt;br /&gt;&amp;lt;/system.net&gt;&lt;br /&gt;&lt;br /&gt;Please replace test@test.com and mail.test.com with your email address and email server name.&lt;br /&gt;&lt;br /&gt;Then create a class (Email.cs) with following code.&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Configuration;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Security;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.HtmlControls;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;using System.Web.UI.WebControls.WebParts;&lt;br /&gt;using System.Xml.Linq;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Net.Mail;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class Email&lt;br /&gt;{&lt;br /&gt; public Email()&lt;br /&gt; {&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;    public void sendEmail(string body, string subject, string toAddress)&lt;br /&gt;    {&lt;br /&gt;        //Create an object of MailMessage class&lt;br /&gt;        MailMessage message = new MailMessage();&lt;br /&gt;&lt;br /&gt;        //Add the MessageToEmailID i.e. recipient's EmailID&lt;br /&gt;        message.To.Add(new MailAddress(toAddress));&lt;br /&gt;&lt;br /&gt;        message.Subject     = subject;&lt;br /&gt;        message.IsBodyHtml  = true;&lt;br /&gt;        message.Body        = body;&lt;br /&gt;        &lt;br /&gt;        SmtpClient objSMTP = new SmtpClient();&lt;br /&gt;      &lt;br /&gt;        objSMTP.Send(message);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Then you can use this method in anywhere in the code behind of your ASP.NET pages and send the email. For and example see following code which send an email for the button click of btn_sendEmail.&lt;br /&gt;&lt;br /&gt;protected void btn_sendEmail_Click(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;            Email email = new Email();&lt;br /&gt;            email.sendEmail("test email body", "test subject", "test@test.com");&lt;br /&gt;    }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-4789051562895249691?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/4789051562895249691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/01/aspnet-with-c-how-to-send-email.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4789051562895249691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4789051562895249691'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/01/aspnet-with-c-how-to-send-email.html' title='ASP.NET with C# : How to send an email'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-8914299834033758633</id><published>2010-01-05T12:17:00.002+05:30</published><updated>2010-03-21T19:45:28.701+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C# : How to add a new line to the body of the email</title><content type='html'>May be you have already tried "System.Environment.NewLine", '\n' or "\n" and failed.&lt;br /&gt;So use "&amp;lt;br&gt;" insted of them. You will get the new line in the email body.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-8914299834033758633?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/8914299834033758633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2010/01/c-how-to-add-new-line-to-body-of-email.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8914299834033758633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8914299834033758633'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2010/01/c-how-to-add-new-line-to-body-of-email.html' title='C# : How to add a new line to the body of the email'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7141967885852741036</id><published>2009-12-22T17:07:00.002+05:30</published><updated>2010-03-21T19:46:01.954+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><title type='text'>ASP.NET : How to create user without using email or security questions</title><content type='html'>The Membership.CreateUser() also has an overload with only the user name and password as parameters.&lt;br /&gt;&lt;br /&gt;       Membership.CreateUser("New User", "Password");&lt;br /&gt;&lt;br /&gt;But when trying to use this overload following error comes: "The password-answer supplied is invalid." To receover it add following code to your web.config .&lt;br /&gt;&lt;br /&gt;&amp;lt;system.web&gt;&lt;br /&gt;&amp;lt;membership defaultProvider="TestMembershipProvider"&gt;&lt;br /&gt;            &lt;br /&gt;&amp;lt;providers&gt;&lt;br /&gt;&amp;lt;add name=" TestMembershipProvider" type="System.Web.Security.SqlMembershipProvider" &lt;br /&gt;             connectionStringName="TestCon" &lt;br /&gt;             applicationName="eBuyAdmin" &lt;br /&gt;             minRequiredPasswordLength="1" &lt;br /&gt;             minRequiredNonalphanumericCharacters="0"            &lt;br /&gt;             enablePasswordReset="true"&lt;br /&gt;             requiresQuestionAndAnswer="false"&lt;br /&gt;             requiresUniqueEmail="false"&lt;br /&gt;             passwordFormat="Hashed"&lt;br /&gt;             maxInvalidPasswordAttempts="5"         &lt;br /&gt;             passwordStrengthRegularExpression=""/&gt;&lt;br /&gt; &amp;lt;/providers&gt;&lt;br /&gt; &amp;lt;/membership&gt;  &lt;br /&gt;      &amp;lt;/system.web&gt;&lt;br /&gt;&lt;br /&gt;This removes the default membership provider as defined in the machine.config and adds the same one but this time with more relaxed password format and questions settings.&lt;br /&gt;Now run the web application again and see that you can add new users with no error. Customize the web config code according to your requirement.&lt;br /&gt;&lt;br /&gt;Reference&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/theproblemsolver/archive/2006/01/13/80928.aspx"&gt;http://msmvps.com/blogs/theproblemsolver/archive/2006/01/13/80928.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-7141967885852741036?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7141967885852741036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/12/aspnet-how-to-create-user-without-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7141967885852741036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7141967885852741036'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/12/aspnet-how-to-create-user-without-using.html' title='ASP.NET : How to create user without using email or security questions'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-4883990837399530881</id><published>2009-12-09T18:05:00.001+05:30</published><updated>2010-03-21T19:45:28.702+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C#.NET: How to convert string to byte array</title><content type='html'>Just use the following code for the conversion.&lt;br /&gt;&lt;br /&gt;string testString="test";         &lt;br /&gt;System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();&lt;br /&gt;byte[] testByteArray = encoding.GetBytes(testString);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-4883990837399530881?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/4883990837399530881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/12/cnet-how-to-convert-string-to-byte.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4883990837399530881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4883990837399530881'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/12/cnet-how-to-convert-string-to-byte.html' title='C#.NET: How to convert string to byte array'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-2700101285929447552</id><published>2009-11-24T10:52:00.003+05:30</published><updated>2011-01-08T19:17:49.884+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><title type='text'>How to add HTML, XML code into blog post</title><content type='html'>There is very easy method. &lt;br /&gt;&lt;br /&gt;Replace &amp;lt; with   &amp; l t ;  &lt;br /&gt;&amp;gt;   with   &amp; g t ;&lt;br /&gt;&lt;br /&gt;Remove the spaces and use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-2700101285929447552?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/2700101285929447552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/11/how-to-add-html-xml-code-into-blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/2700101285929447552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/2700101285929447552'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/11/how-to-add-html-xml-code-into-blog-post.html' title='How to add HTML, XML code into blog post'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-8216534116332334566</id><published>2009-11-24T10:18:00.003+05:30</published><updated>2010-03-21T19:50:15.896+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>ASP.NET: How to add Membership and Roles Databases to SQL Server</title><content type='html'>Go to the following location path where you have installed .NET Framework. &lt;br /&gt;&lt;br /&gt;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727&lt;br /&gt;&lt;br /&gt;Note: This path may vary according to your system installation folder. If so search for aspnet_regsql.exe and find out the exe file and double click on it to run. &lt;br /&gt;&lt;br /&gt;There you get following window.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/Swtmz_gUEuI/AAAAAAAAAM0/Dg101Q_Pd4Q/s1600/1.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 310px;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/Swtmz_gUEuI/AAAAAAAAAM0/Dg101Q_Pd4Q/s400/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5407528820994740962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click next and follow the guidelines to insert the Membership Tables and Roles Tables to an existing database or to a new database according to your need.&lt;br /&gt;&lt;br /&gt;Refer the &lt;a href="http://www.asp.net/learn/security/"&gt;MSDN&lt;/a&gt; to find out how to configure Web.Config in your ASP.NET Web Site to access those databases.&lt;br /&gt;&lt;br /&gt;Following is how I added those credentials to Web.config.&lt;br /&gt;&lt;br /&gt;&amp;lt;connectionStrings&amp;gt;&lt;br /&gt;    &amp;lt;add name="CONNECTION_NAME" connectionString="Data Source=SERVER_NAME;Initial Catalog=DATABASE_NAME; User ID=USER_NAME;Password=PASSWORD" providerName="System.Data.SqlClient" /&amp;gt;&lt;br /&gt;  &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;membership defaultProvider="TESTMembershipProvider"&amp;gt;&lt;br /&gt;      &amp;lt;providers&amp;gt;&lt;br /&gt;        &amp;lt;add name="eBuyMembershipProvider"&lt;br /&gt;             type="System.Web.Security.SqlMembershipProvider"&lt;br /&gt;             connectionStringName="CONNECTION_NAME"&lt;br /&gt;             applicationName="APPLICATION_NAME"&lt;br /&gt;             minRequiredPasswordLength="5"&lt;br /&gt;             minRequiredNonalphanumericCharacters="0" /&amp;gt;&lt;br /&gt;      &amp;lt;/providers&amp;gt;&lt;br /&gt;    &amp;lt;/membership&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;roleManager enabled="true" &lt;br /&gt;      defaultProvider="TESTSqlRoleProvider"&lt;br /&gt;      cacheRolesInCookie="true"&lt;br /&gt;      createPersistentCookie="false"&lt;br /&gt;      cookieProtection="All"&amp;gt;&lt;br /&gt;      &lt;br /&gt;      &amp;lt;providers&amp;gt;&lt;br /&gt;        &amp;lt;add name="TESTSqlRoleProvider"&lt;br /&gt;             type="System.Web.Security.SqlRoleProvider"&lt;br /&gt;             applicationName="APPLICATION_NAME"&lt;br /&gt;             connectionStringName="CONNECTION_NAME" /&amp;gt;&lt;br /&gt;      &amp;lt;/providers&amp;gt;&lt;br /&gt;    &amp;lt;/roleManager&amp;gt;&lt;br /&gt;&lt;br /&gt;Replace what indicated in CAPITAL to your database and application names.&lt;br /&gt;&lt;br /&gt;Now you can access the Membership and Roles providers using your application code directly.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;Membership.GetAllUsers();&lt;br /&gt;Roles.CreateRole("Administartor");&lt;br /&gt;&lt;br /&gt;Experience the powers of ASP.NET Security. &lt;br /&gt;&lt;br /&gt;Refer &lt;a href="http://www.asp.net/learn/security/"&gt;MSDN &lt;/a&gt;for detailed tutorials on providing SQL Membership Authentication and Role base authorization.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-8216534116332334566?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/8216534116332334566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/11/aspnet-how-to-add-membership-and-roles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8216534116332334566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8216534116332334566'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/11/aspnet-how-to-add-membership-and-roles.html' title='ASP.NET: How to add Membership and Roles Databases to SQL Server'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Egl3Jnl8JzA/Swtmz_gUEuI/AAAAAAAAAM0/Dg101Q_Pd4Q/s72-c/1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7317973408842418729</id><published>2009-11-24T08:31:00.002+05:30</published><updated>2010-03-21T19:45:28.702+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C#.NET: How to convert ArrayList to String Array or Array of Defined type</title><content type='html'>There is a method called ToArray() which can be used for this purpose. There is one overload for this method too with Type as a parameter. Refer to following example.&lt;br /&gt;Which converts an object ArrayList into string Array.&lt;br /&gt;&lt;br /&gt; ArrayList list = new ArrayList();&lt;br /&gt; String[] arr = new String[list.Count];&lt;br /&gt; arr = (String[])list.ToArray(typeof(string));&lt;br /&gt;&lt;br /&gt;For more information please refer following &lt;a href="http://msdn.microsoft.com/en-us/library/fcyyh2hb.aspx"&gt;MSDN&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-7317973408842418729?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7317973408842418729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/11/cnet-how-to-convert-arraylist-to-string.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7317973408842418729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7317973408842418729'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/11/cnet-how-to-convert-arraylist-to-string.html' title='C#.NET: How to convert ArrayList to String Array or Array of Defined type'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-4260948498491738069</id><published>2009-11-10T17:46:00.003+05:30</published><updated>2010-03-21T19:44:50.323+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>How to get System Date from  SQL Server</title><content type='html'>Use the GETDATE() function as follows.&lt;br /&gt;&lt;br /&gt;SELECT GETDATE() AS Today&lt;br /&gt;&lt;br /&gt;Result is as follows. Note that function will return both date and time.&lt;br /&gt;&lt;br /&gt;Today&lt;br /&gt;-----------------------&lt;br /&gt;2009-11-10 17:48:00.310&lt;br /&gt;&lt;br /&gt;According to what date type you need you have to convert the date returns from the GETDATE() function. For an example if you need date only then use the CONVERT function as follows.&lt;br /&gt;&lt;br /&gt;SELECT convert(varchar,GETDATE(), 101) AS Today&lt;br /&gt;&lt;br /&gt;Result is as follows. Note that follow code will converts the result of GETDATE() to a VARCHAR and sets the style to 101(MM/DD/YYYY). &lt;br /&gt;&lt;br /&gt;Today&lt;br /&gt;----------&lt;br /&gt;11/10/2009&lt;br /&gt;&lt;br /&gt;There are various date CONVERT formats you can used according to your need.&lt;br /&gt;&lt;br /&gt;CONVERT(varchar,GETDATE(),108) 'hh:mm:ss'&lt;br /&gt;CONVERT(varchar,GETDATE(),114) 'hh:mm:ss:mmm'&lt;br /&gt;CONVERT(varchar,GETDATE(),113) 'dd Mmm yyyy hh:mm:ss:mmm'&lt;br /&gt;CONVERT(VarChar(50), GETDATE(), 104)&lt;br /&gt;CONVERT(VarChar(50), GETDATE(), 103)&lt;br /&gt;CONVERT(VarChar(50), GETDATE(), 100)&lt;br /&gt;CONVERT(VarChar(50), GETDATE(), 101)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-4260948498491738069?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/4260948498491738069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/11/how-to-get-system-date-from-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4260948498491738069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4260948498491738069'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/11/how-to-get-system-date-from-sql-server.html' title='How to get System Date from  SQL Server'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-3212987729988062484</id><published>2009-11-10T15:23:00.003+05:30</published><updated>2009-11-10T16:29:25.027+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>How to dynamically number rows in a SELECT statement</title><content type='html'>I found a good article on above topic which helped me a lot to do operations in MS SQL Server (2005 or 2008) using rank() and row_number() methods. So I thought of adding this post with a link to that article for my and your further references.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/q186133/"&gt;&lt;br /&gt;http://support.microsoft.com/kb/q186133/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Following is a sample query I wrote to fetch data from database table called MiniCategory and rank is returned as  RowID.&lt;br /&gt;&lt;br /&gt;SELECT rank()  OVER (ORDER BY m.MiniCatId) AS RowID, m.MiniCatId, m.MiniCatName&lt;br /&gt; FROM [MiniCategory] m WHERE m.SubCatId =1 ORDER BY RowID&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Following is a sample query I wrote to fetch data from database table called MiniCategory which outputs the records of the table according to the descending order of HitCount and the row numbers will adjust in according to.&lt;br /&gt;&lt;br /&gt;SELECT row_number() OVER (ORDER BY HitCount DESC) &lt;br /&gt;AS RowId, s1.MiniCatId,s1.HitCount,s1.MiniCatName,s1.SubCatId&lt;br /&gt;FROM (SELECT MiniCatId, MiniCatName, SubCatId, HitCount=MAX(HitCount) &lt;br /&gt;FROM [MiniCategory] &lt;br /&gt;GROUP BY MiniCatId, MiniCatName,SubCatId) AS s1&lt;br /&gt;WHERE SubCatId = 1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-3212987729988062484?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/3212987729988062484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/11/how-to-dynamically-number-rows-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3212987729988062484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3212987729988062484'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/11/how-to-dynamically-number-rows-in.html' title='How to dynamically number rows in a SELECT statement'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-3080192079432396893</id><published>2009-11-05T14:23:00.003+05:30</published><updated>2009-11-10T16:29:06.940+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Technologies'/><title type='text'>How to add tab icons to your web site</title><content type='html'>It is very simple. What you have to do is add the following code to the &amp;lt;head&amp;gt; of your html file. &lt;br /&gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;link rel="shortcut icon" href="images/logo.gif"&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;br /&gt;Here replace the path of your image with "images/logo.gif" and save and refresh the web page. &lt;br /&gt;Here you go... you will find the icon on the tab and address bar. Isn't it very simple? &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Note: I have checked this with only &lt;a href="http://www.mozilla.com/en-US/firefox/upgrade.html"&gt;Mozilla FireFox&lt;/a&gt; browser.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-3080192079432396893?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/3080192079432396893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/11/how-to-add-tab-icons-to-your-web-site.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3080192079432396893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3080192079432396893'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/11/how-to-add-tab-icons-to-your-web-site.html' title='How to add tab icons to your web site'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-5820281875492103595</id><published>2009-11-03T09:19:00.001+05:30</published><updated>2009-11-03T09:30:23.097+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>How to reset primary key indent to 1 after deletion of records in SQL Server</title><content type='html'>Do you need to reset auto incremental primary key column index to 1 after deleting some records in the table in Microsoft SQL Server. Therefore what you have to do it run the following code as a query in the relevant database.&lt;br /&gt;&lt;br /&gt;DBCC CHECKIDENT (‘Table_Name’, RESEED, 0)&lt;br /&gt;&lt;br /&gt;Replace “Table_Name” with your Table name and the above query will change the primary key column index to 0 and when you insert next record column will start from index 1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-5820281875492103595?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/5820281875492103595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/11/how-to-reset-primary-key-indent-to-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5820281875492103595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5820281875492103595'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/11/how-to-reset-primary-key-indent-to-1.html' title='How to reset primary key indent to 1 after deletion of records in SQL Server'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-1268059440014231782</id><published>2009-10-28T10:38:00.003+05:30</published><updated>2009-11-03T09:30:23.098+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Microsoft SQL Server 2008 - Error on saving modified table</title><content type='html'>Do you fed up with struggling to save a table after modification with the following error?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can't be re-created or enabled the option Prevent saving changes that require the table to be re-created."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have found some good articles which explain how to resolve it and I am not going to write the solution again but you can go to following links for assistance. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://geekswithblogs.net/frankw/archive/2008/05/29/saving-table-changes-is-safer-in-sql-server-2008.aspx"&gt;http://geekswithblogs.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dotnetslackers.com/SQL/re-154257_SQL_Server_2008_Error_Saving_changes_is_not_permitted.aspx"&gt;http://dotnetslackers.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-1268059440014231782?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/1268059440014231782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/10/microsoft-sql-server-2008-error-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/1268059440014231782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/1268059440014231782'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/10/microsoft-sql-server-2008-error-on.html' title='Microsoft SQL Server 2008 - Error on saving modified table'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-5862497133978783201</id><published>2009-10-23T13:35:00.000+05:30</published><updated>2009-11-03T09:26:43.450+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='New Technologies'/><title type='text'>How to start USSD Application Development</title><content type='html'>Normally in order to send data to mobile subscribers handset when they requesting by dialing a code (Eg: *100#, etc) we have to get access to USSD Server of Mobile Service Provider. In Mobile Service Provider’s USSD Server we can take a Provider Account from them and Configure URL of our service there. Then when the subscriber dials the relevant code the USSD server browser will direct that request to our third party application. &lt;br /&gt;&lt;br /&gt;In our side what we have to do is to develop the application to analyze the request send generate menus by taking data from a database and send back to the USSD server. Then USSD server will direct that response to subscriber’s hand set. The format of the response we have to make to send for the USSD Server will depend on the USSD browser in the USSD Server. May be we have to send the response in Http, XML, VXML, etc. In each response we have to add the functions to each menu item pressed by the user.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-5862497133978783201?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/5862497133978783201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/10/how-to-start-ussd-application.html#comment-form' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5862497133978783201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5862497133978783201'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/10/how-to-start-ussd-application.html' title='How to start USSD Application Development'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-3574901720244863064</id><published>2009-09-25T15:05:00.014+05:30</published><updated>2009-11-03T09:26:30.934+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='New Technologies'/><title type='text'>How CPU is made</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPGJJxw7I/AAAAAAAAAJk/lh4lAijZ9zI/s1600-h/1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 258px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPGJJxw7I/AAAAAAAAAJk/lh4lAijZ9zI/s400/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385336590127186866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Sand. Made up of 25 percent silicon, is, after oxygen, the second most abundant chemical element that's in the earth's crust. Sand, especially quartz, has high percentages of silicon in the form of silicon dioxide (SiO2) and is the base ingredient for semiconductor manufacturing.&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SryPGVzTbEI/AAAAAAAAAJs/fWK_5gn34TU/s1600-h/2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 387px; height: 338px;" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SryPGVzTbEI/AAAAAAAAAJs/fWK_5gn34TU/s400/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385336593522584642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After procuring raw sand and separating the silicon, the excess material is disposed of and the silicon is purified in multiple steps to finally reach semiconductor manufacturing quality which is called electronic grade silicon. The resulting purity is so great that electronic grade silicon may only have one alien atom for every one billion silicon atoms. After the purification process, the silicon enters the melting phase. In this picture you can see how one big crystal is grown from the purified silicon melt. The resulting mono-crystal is called an ingot.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPG6I-5HI/AAAAAAAAAJ0/GUCSXF1Zvxg/s1600-h/3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 286px; height: 338px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPG6I-5HI/AAAAAAAAAJ0/GUCSXF1Zvxg/s400/3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385336603277190258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A mono-crystal ingot is produced from electronic grade silicon. One ingot weighs approximately 100 kilograms (or 220 pounds) and has a silicon purity of 99.9999 percent.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPHfyIaqI/AAAAAAAAAJ8/9GhaxBeFXsM/s1600-h/4.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 298px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPHfyIaqI/AAAAAAAAAJ8/9GhaxBeFXsM/s400/4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385336613381892770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The ingot is then moved onto the slicing phase where individual silicon discs, called wafers, are sliced thin. Some ingots can stand higher than five feet. Several different diameters of ingots exist depending on the required wafer size. Today, CPUs are commonly made on 300 mm wafers.&lt;br /&gt;&lt;br /&gt;Once cut, the wafers are polished until they have flawless, mirror-smooth surfaces. Intel doesn't produce its own ingots and wafers, and instead purchases manufacturing-ready wafers from third-party companies. Intel�s advanced 45 nm High-K/Metal Gate process uses wafers with a diameter of 300 mm (or 12-inches). When Intel first began making chips, it printed circuits on 50 mm (2-inches) wafers. These days, Intel uses 300 mm wafers, resulting in decreased costs per chip.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPH-0WsWI/AAAAAAAAAKE/B3JX-5R8Ooo/s1600-h/5.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 311px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPH-0WsWI/AAAAAAAAAKE/B3JX-5R8Ooo/s400/5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385336621712716130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The blue liquid, depicted above, is a photo resist finish similar to those used in film for photography. The wafer spins during this step to allow an evenly-distributed coating that's smooth and also very thin.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SryPRainOII/AAAAAAAAAKM/G6rUZeXHOmg/s1600-h/6.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 293px; height: 338px;" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SryPRainOII/AAAAAAAAAKM/G6rUZeXHOmg/s400/6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385336783773317250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At this stage, the photo-resistant finish is exposed to ultra violet (UV) light. The chemical reaction triggered by the UV light is similar to what happens to film material in a camera the moment you press the shutter button.&lt;br /&gt;&lt;br /&gt;Areas of the resist on the wafer that have been exposed to UV light will become soluble. The exposure is done using masks that act like stencils. When used with UV light, masks create the various circuit patterns. The building of a CPU essentially repeats this process over and over until multiple layers are stacked on top of each other.&lt;br /&gt;&lt;br /&gt;A lens (middle) reduces the mask's image to a small focal point. The resulting "print" on the wafer is typically four times smaller, linearly, than the mask's pattern.&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPRnQXrbI/AAAAAAAAAKU/oreg3bwwweE/s1600-h/7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 358px; height: 338px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPRnQXrbI/AAAAAAAAAKU/oreg3bwwweE/s400/7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385336787186462130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the picture we have a representation of what a single transistor would appear like if we could see it with the naked eye. A transistor acts as a switch, controlling the flow of electrical current in a computer chip. Intel researchers have developed transistors so small that they claim roughly 30 million of them could fit on the head of a pin.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPSN5dlKI/AAAAAAAAAKc/_dKSpbHnVc8/s1600-h/8.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 288px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPSN5dlKI/AAAAAAAAAKc/_dKSpbHnVc8/s400/8.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385336797559362722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After being exposed to UV light, the exposed blue photo resist areas are completely dissolved by a solvent. This reveals a pattern of photo resist made by the mask. The beginnings of transistors, interconnects, and other electrical contacts begin to grow from this point.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryPSeVefGI/AAAAAAAAAKk/kzhKk69GEyk/s1600-h/9.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 310px;" src="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryPSeVefGI/AAAAAAAAAKk/kzhKk69GEyk/s400/9.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385336801971829858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The photo resist layer protects wafer material that should not be etched away. Areas that were exposed will be etched away with chemicals.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPS9aWr6I/AAAAAAAAAKs/UZ5BGIEq40Q/s1600-h/10.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 276px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPS9aWr6I/AAAAAAAAAKs/UZ5BGIEq40Q/s400/10.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385336810313789346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After the etching, the photo resist is removed and the desired shape becomes visible.&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryPfjMleVI/AAAAAAAAAK0/Ys0EtKYkVRI/s1600-h/11.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 284px;" src="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryPfjMleVI/AAAAAAAAAK0/Ys0EtKYkVRI/s400/11.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337026615015762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More photo resist (blue) is applied and then re-exposed to UV light. Exposed photo resist is then washed off again before the next step, which is called ion doping. This is the step where ion particles are exposed to the wafer, allowing the silicon to change its chemical properties in a way that allows the CPU to control the flow of electricity.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryPf010nWI/AAAAAAAAAK8/u15V-U7DXA8/s1600-h/12.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 307px; height: 338px;" src="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryPf010nWI/AAAAAAAAAK8/u15V-U7DXA8/s400/12.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337031351377250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Through a process called ion implantation (one form of a process called doping) the exposed areas of the silicon wafer are bombarded with ions. Ions are implanted in the silicon wafer to alter the way silicon?i these areas conduct electricity. Ions are propelled onto the surface of the wafer at very high velocities. An electrical field accelerates the ions to a speed of over 300,000 km/hour (roughly 185,000 mph)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryPgW-qBaI/AAAAAAAAALE/Rop0BCdKILw/s1600-h/13.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 298px;" src="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryPgW-qBaI/AAAAAAAAALE/Rop0BCdKILw/s400/13.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337040515237282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After the ion implantation, the photo resist will be removed and the material that should have been doped (green) now has alien atoms implanted.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SryPgnIcgJI/AAAAAAAAALM/gq4VSvlRyXo/s1600-h/14.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 276px;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SryPgnIcgJI/AAAAAAAAALM/gq4VSvlRyXo/s400/14.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337044851261586" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;This transistor is close to being finished. Three holes have been etched into the insulation layer (magenta color) above the transistor. These three holes will be filled with copper, which will make up the connections to other transistors.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPg4wuQhI/AAAAAAAAALU/69P-slSkhx8/s1600-h/15.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 254px; height: 338px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPg4wuQhI/AAAAAAAAALU/69P-slSkhx8/s400/15.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337049583600146" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The wafers are put into a copper sulphate solution at this stage. Copper ions are deposited onto the transistor through a process called electroplating. The copper ions travel from the positive terminal (anode) to the negative terminal (cathode) which is represented by the wafer.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPnhkX5EI/AAAAAAAAALc/8iChSBZuBP4/s1600-h/16.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 307px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPnhkX5EI/AAAAAAAAALc/8iChSBZuBP4/s400/16.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337163616871490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The copper ions settle as a thin layer on the wafer surface.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SryPoHlq9gI/AAAAAAAAALk/pe9_Fy_jZAw/s1600-h/17.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 286px;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SryPoHlq9gI/AAAAAAAAALk/pe9_Fy_jZAw/s400/17.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337173822862850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The excess material is polished off leaving a very thin layer of coppe&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryPoQq2vOI/AAAAAAAAALs/v--ixqrHpMw/s1600-h/18.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 265px;" src="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryPoQq2vOI/AAAAAAAAALs/v--ixqrHpMw/s400/18.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337176260525282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Multiple metal layers are created to interconnects (think wires) in between the various transistors. How these connections have to be wired is determined by the architecture and design teams that develop the functionality of the respective processor (for example, Intel's Core i7 processor). While computer chips look extremely flat, they may actually have over 20 layers to form complex circuitry. If you look at a magnified view of a chip, you will see an intricate network of circuit lines and transistors that look like a futuristic, multi-layered highway system.&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SryPo01_gcI/AAAAAAAAAL0/d7P6jHrHdnA/s1600-h/19.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 263px; height: 338px;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SryPo01_gcI/AAAAAAAAAL0/d7P6jHrHdnA/s400/19.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337185970913730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This fraction of a ready wafer is being put through a first functionality test. In this stage test patterns are fed into every single chip and the response from the chip monitored and compared to "the right answer."&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPpE31x5I/AAAAAAAAAL8/92BkKCYQusg/s1600-h/20.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 122px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPpE31x5I/AAAAAAAAAL8/92BkKCYQusg/s400/20.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337190273632146" /&gt;&lt;/a&gt;&lt;br /&gt;After tests determine that the wafer has a good yield of functioning processor units, the wafer is cut into pieces (called dies).&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPwqcP8FI/AAAAAAAAAME/pYILwVAcCAI/s1600-h/21.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 237px; height: 338px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPwqcP8FI/AAAAAAAAAME/pYILwVAcCAI/s400/21.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337320617537618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The dies that responded with the right answer to the test pattern will be put forward for the next step (packaging). Bad dies are discarded. Several years ago, Intel made key chains out of bad CPU dies.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SryPxGLa6SI/AAAAAAAAAMM/acSgTD_6kCw/s1600-h/22.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 244px;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SryPxGLa6SI/AAAAAAAAAMM/acSgTD_6kCw/s400/22.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337328063146274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is an individual die, which has been cut out in the previous step (slicing). The die shown here is a die of an Intel Core i7 processor.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryPxtu96BI/AAAAAAAAAMU/P_fTCRuPi_4/s1600-h/23.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 346px; height: 338px;" src="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryPxtu96BI/AAAAAAAAAMU/P_fTCRuPi_4/s400/23.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337338681223186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;The substrate, the die, and the heatspreader are put together to form a completed processor. The green substrate builds the electrical and mechanical interface for the processor to interact with the rest of the PC system. The silver heatspreader is a thermal interface where a cooling solution will be applied. This will keep the processor cool during operation.&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SryPyErQQpI/AAAAAAAAAMc/jwmdW3-bjrM/s1600-h/24.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 111px;" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SryPyErQQpI/AAAAAAAAAMc/jwmdW3-bjrM/s400/24.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337344839664274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A microprocessor is the most complex manufactured product on earth. In fact, it takes hundreds of steps and only the most important ones have been visualized in this picture story.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryPyau6VhI/AAAAAAAAAMk/NnfcKhCW5f4/s1600-h/25.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 295px;" src="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryPyau6VhI/AAAAAAAAAMk/NnfcKhCW5f4/s400/25.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337350760584722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;During this final test the processors will be tested for their key characteristics (among the tested characteristics are power dissipation and maximum frequency).&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryP8bdORsI/AAAAAAAAAMs/QYSMWxvpj6w/s1600-h/26.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 126px;" src="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SryP8bdORsI/AAAAAAAAAMs/QYSMWxvpj6w/s400/26.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385337522753521346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Based on the test result of class testing processors with the same capabilities are put into the same transporting trays. This process is called "binning". Binning determines the maximum operating frequency of a processor, and batches are divided and sold according to stable specifications.&lt;br /&gt; &lt;br /&gt;The manufactured and tested processors (again Intel Core i7 processor is shown here) either go to system manufacturers in trays or into retail stores in a box. Many thanks to Intel for supplying the text and photos in this picture story. Check out Intel's site for full size images of this entire process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-3574901720244863064?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/3574901720244863064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/how-cpu-is-made.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3574901720244863064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3574901720244863064'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/how-cpu-is-made.html' title='How CPU is made'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Egl3Jnl8JzA/SryPGJJxw7I/AAAAAAAAAJk/lh4lAijZ9zI/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-8353127992307431816</id><published>2009-09-14T12:06:00.003+05:30</published><updated>2009-09-14T12:11:09.295+05:30</updated><title type='text'>University of Moratuwa Tops Google Summer of Code</title><content type='html'>Univeristy of Moratuwa has been in the Top Position of the Google Summer of Code since 2005 and this year 2009 also it has been topped among Top 10 colleges of Project Accpted Students from world wide. Sri Lanka is proud of University of Moratuwa and students of University of Moratuwa who bring respect to the country.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://google-opensource.blogspot.com/2009/09/tasty-new-google-summer-of-code-stats.html"&gt;Click here&lt;/a&gt;&lt;/span&gt; for more information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-8353127992307431816?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/8353127992307431816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/university-of-moratuwa-tops-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8353127992307431816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8353127992307431816'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/university-of-moratuwa-tops-google.html' title='University of Moratuwa Tops Google Summer of Code'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-4959525946831928014</id><published>2009-09-11T16:04:00.007+05:30</published><updated>2009-09-11T16:36:49.338+05:30</updated><title type='text'>Research Paper publication in CSSL 27th National Information Technology Conference (NITC 2009), Colombo, Sri Lanka</title><content type='html'>The Research paper on Mobile Router Configuration Tool(MRCTool) authored by me (H.P.N. Prasanna , BSc. (Hons) in IT Graduate of Faculty of IT, University of Moratuwa) and T.C. Sandanayake (Lecturer, Faculty of IT, University of Moratuwa) was succefully published in the 27th National Information Technology Conference (NITC 2009), Colombo, Sri Lanka organized by Computer Society of Sri Lanka (CSSL).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cssl.lk/images/stories/poster-presentation.jpg"&gt;Click here&lt;/a&gt; for More information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-4959525946831928014?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/4959525946831928014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/research-paper-on-mobile-router.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4959525946831928014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4959525946831928014'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/research-paper-on-mobile-router.html' title='Research Paper publication in CSSL 27th National Information Technology Conference (NITC 2009), Colombo, Sri Lanka'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-6576193847236348840</id><published>2009-09-02T12:15:00.002+05:30</published><updated>2009-09-12T14:20:48.836+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Constraints of Existing Technology and Future Directions of Humanoid Robotics</title><content type='html'>Humanoids are among the most complex machines on this earth. Therefore recreation of humans through humanoids is not an easy or simple task. In this review paper writer has concentrated on successful and unsuccessful ambitions of many robotic projects. Following subsections have focused on the current capabilities of existing humanoid robotic systems and the future directions that researchers should address. These issues are simply the initial stages as what writer identified from referring various documents on past and ongoing robotic projects and writer expects that this will be a rich source of both new research questions and innovative solutions to existing problems also.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1.Coherence&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When considering the visual attention of humanoids, existing technology uses simple input cues such as visual motion and sounds. Still humanoids are used to respond for one cue in one moment only. They are not capable of responding for more than one visual cue or motion cue simultaneously as humans do. For an example when a robot is carrying out a task like grasping or manipulating an object, if a particular face appears on its visual field at the same time, the robot is not able to detect the face while keeping its attention to the object being manipulated also. But it cannot be predicted that whether the robotic system will give the priority for which incident from the both and that depends on the current goals and motivations of the system. [1] Therefore reader should be able to understand the issues could be taken place when such incidents occur when humanoids are coming to do tasks in natural environment. Robotic researchers have to focus their attention in deep about this problem to make humanoids more sensible and interactive.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. Other Perceptual Systems&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When comparing humanoid with human beings, humanoids have very little number of tactile sensors (touch sensors). Existing robots have kinesthetic sensors on some joints of their body to provide a sense of hardness when it is walking. But there is no humanoid projects existing, which try to found a useful way to use that information given by sensors and the force sensing at every joint. In addition still researchers have not focused about implementing primary human chemical senses such as smell and taste to humanoids. [1] It is worth to pay attention on developing these features also.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3. Deeper Visual Perception&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is important to mention that projects on humanoid robotics have been concentrated on applying many visual capabilities for their robots such as motion perception, face detection and eye localizing, content free motor routine like smooth pursuit, the vestibule- ocular reflex [2] and vergence control. [1]  Researchers have been successful when applying feature to their humanoids for some extend but when considering as a whole all those features are still in the developing stage. It is important to enhance object recognition systems as well as face recognition systems. Basically humanoids should be improved at least to identify the human faces, picture, toys, etc. separately with fewer mistakes in order to understand and react with natural environment.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;4. The Sense of Time&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is obvious that the existing humanoids have no sense of time and everything they have is in present always. It is a major problem that how to relate the necessarily static and timeless aspects of memory that are present in neural networks, registration maps, self organizing maps, nearest neighbor approximations and associative memory to the flow of the time as humans experience. According to Rodney A. Brooks, Cynthia Breazeal, Matthew Marjanovi C, Brian Scassellati, Matthew M. Williamson discuss in their research paper “The Cog Project: Building a Humanoid Robot”, it is a real technical challenge and they claim that it is necessary to find a solution to the problem of how episodic memory might arise which enables the humanoids to sense the time aspects. [1]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;5. Flexible Actuators&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Each joint of humanoids need numerous actuators and there are hundreds of gears and motors available within a humanoid in according to the number of degrees of freedom that motions are used. The current materials used for above purpose are very heavy and inflexible. Therefore if there is a new invention of synthetic muscle-type material that could operate through signals and pulses that will be a great help for the future evaluation of humanoids. [3]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;6. Brain Power&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The current humanoids have only the maximum brain power equivalent to the child of 1-2 years old or less. As people intend to use humanoid for the purposes like human care or assistance, purposefully humanoids should have an equivalent brain power for humans to be trusted by humans to use them interact their day to day life. Therefore, there is a great necessary of enhancing brain power of humanoid to make their thinking and self learning and decision making abilities in success. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[1]Rodney A. Brooks, Cynthia Breazeal, Matthew Marjanovi C, Brian Scassellati, Matthew M. Williamson (1994), The Cog Project: Building a Humanoid Robot, MIT Artificial Intelligence Lab&lt;br /&gt;[2]Gregory D. Hager, Wen Chung Chang, A.S. Morse (February 1995), Robot Hand-Eye Coordination based on Stereo Vision, Control System (volume 15)&lt;br /&gt;[03]Austin Weber-Senior Editor (July 2005), Humanoid Robots Are No Longer Science Fiction, “Assembly” The Robotics &amp; Vision Industry. www.Assemblymag.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-6576193847236348840?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/6576193847236348840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/constraints-of-existing-technology-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6576193847236348840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6576193847236348840'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/constraints-of-existing-technology-and.html' title='Constraints of Existing Technology and Future Directions of Humanoid Robotics'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-4448087660168562695</id><published>2009-09-02T12:13:00.001+05:30</published><updated>2009-09-12T14:20:48.836+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Humanoid Robotics Development Environments</title><content type='html'>The technology humanoid robotics has been come along way with the cooperation of many other supportive technologies and science. Day by day all these technologies face for several modifications as well as enhancements. Earlier developers of humanoids tried to hard code the primary human behaviours to robots by using programming languages like C, C++, etc. But nowadays researchers have realized that it is efficient to use more biologically motivated techniques like Artificial Neural Networks for that purpose. [1, 2] &lt;br /&gt;&lt;br /&gt;As the functions and infrastructure of the human body is very complex rather than the any other machine ever been researchers may be able to identify new areas of research in human body and behaviour when they are trying to develop humanoids to be as same as humans. Artificial Intelligence, Artificial Neural Networks and Genetic Algorithms are some of the development techniques that the researchers use to recreate human behaviours into their humanoids such as learning, decision making, reacting, etc. On the other hand they also focus their attention on implementing human appearance and the other actions to their robots to make them more efficient and natural. Researchers at MIT Laboratory believe that the key to creating human-like behaviour is to create a robot that can learn from natural interactions with a human. [2, 3]  But according to David Bruemmer discuss in his web article on Humanoid Robotics, still there are a list of difficult questions to be answered. Those are how do we give humanoids the ability to impress their own meaning onto the world, how can humanoids direct their own development, how do we motivate this development, how much a priori skill and knowledge do we build in, using what level of representation, what, if any, bounds should be imposed. [3] The answers for these questions have not well defined yet but humanoids are being developing day by day all over the world and time and development may give the answers for any problem eventually. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;References&lt;/span&gt;&lt;br /&gt;[1]Genci Capi, Yasuo  Nasu, Kazuhisa Mitobe, Leonard Barolli (2002), Autonomous humanoid robot locomotion based on neural networks,The Industrial Robot,ABI/INFORM Global,  pg. 252-258&lt;br /&gt;[2]Rodney A. Brooks, Cynthia Breazeal, Matthew Marjanovi C, Brian Scassellati, Matthew M. Williamson (1994), The Cog Project: Building a Humanoid Robot, MIT Artificial Intelligence Lab&lt;br /&gt;[3]David Bruemmer (2006), Humanoid Robotics, http://www.inl.gov/adaptiverobotics/humanoidrobotics, downloaded on 24th May 2007&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-4448087660168562695?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/4448087660168562695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/humanoid-robotics-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4448087660168562695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4448087660168562695'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/humanoid-robotics-development.html' title='Humanoid Robotics Development Environments'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7927710467103842189</id><published>2009-09-02T11:34:00.004+05:30</published><updated>2009-09-12T14:20:48.836+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Applications of Humanoid Robotics</title><content type='html'>This article describes some of the applications in humanoid robotics using past and present ongoing projects to convince the reader the existence and the evolution of the technology. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/Sp4LQ6VR57I/AAAAAAAAAIA/G1ILnSwAMLk/s1600-h/q9.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 232px;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/Sp4LQ6VR57I/AAAAAAAAAIA/G1ILnSwAMLk/s400/q9.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376747390291273650" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 01 – Cog an upper-torso humanoid robot&lt;br /&gt;   (Source: The Cog Project: Building a Humanoid Robot, MIT Artificial Intelligence Lab)&lt;br /&gt;&lt;br /&gt;In “The Cog Project: Building a Humanoid Robot” Rodney A. Brooks, Cynthia Breazeal, Matthew Marjanovi C, Brian Scassellati and Matthew M. Williamson discuss on MIT project, named Cog Project. Cog is a humanoid, who equipped with a sophisticated visual system capable of saccades, smooth pursuit, vergence, and head and eye coordination through modeling of the human vestibule-ocular reflex. [7] Cog is able to respond to visual stimulations, sounds and the human gesture as well. According to the developers Cog is able to learn diverse behaviors everything from simple to hard tasks such as playing with a slinky to using a hammer. But the authors claim that their robot is still in a developing stage and there are more things to be enhanced in its features in the future. [16] Figure 01 shows the simple appearance of Cog.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/Sp4LRpJVlfI/AAAAAAAAAII/x4q4I1iaJKA/s1600-h/q10.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 205px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/Sp4LRpJVlfI/AAAAAAAAAII/x4q4I1iaJKA/s400/q10.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376747402857649650" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 02 –Kismet interacts with one of its creators at the MIT AI laboratory.&lt;br /&gt;(Source: Humanoid Robotics, &lt;a href="http://www.inl.gov/adaptive robotics/humanoid robotics"&gt;http://www.inl.gov/adaptive robotics/humanoid robotics&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;There is another project carries out in MIT Laboratory  by Cynthia Breazeal, Aaron Edsinger, Paul Fitzpatrick,Brian Scassellati, and Paulina Varchavskaia on a robot head called Kismet. Kismet has eyebrows, eyelids, ears as well as a mouth to discern and respond to people by nodding and eye contact. Day by day Kismet is trained to express, human expressions such as happiness, anger, sadness and fear by its face. [13] Figure 02 shows the appearance of Kismet when it is interacting with its one creator.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/Sp4L80q_beI/AAAAAAAAAIQ/PdVyR1ChWNY/s1600-h/q11.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/Sp4L80q_beI/AAAAAAAAAIQ/PdVyR1ChWNY/s400/q11.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376748144685968866" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 03 – Infanoid, a naturalistic embodiment.&lt;br /&gt;(Source: Hideki Kozima and Hiroyuki Yano(2000),&lt;br /&gt;A Robot that Learns to Communicate with Human Caregivers, Communications Research Laboratory, Kyoto, Japan,)&lt;br /&gt;&lt;br /&gt;Hideki Kozima and Hiroyuki Yano discuss another robot platform Infanoid in “A Robot that Learns to Communicate with Human Caregivers”. They have equipped Infanoid with a lot of features such as, &lt;br /&gt;&lt;br /&gt;• Tracking an nonspecific human face in a cluttered background&lt;br /&gt;• Determining roughly the direction of the human face being tracked&lt;br /&gt;• Tracking objects with salient color and texture, e.g. toys&lt;br /&gt;• Pointing to or reaching out for the object or face by using the arms and torso&lt;br /&gt;• Gazing alternately between the face and object&lt;br /&gt;• Vocalizing canonical babbling with lip-synching.&lt;br /&gt;  &lt;br /&gt;Figure 03 shows a natural view of Infanoid. Authors explain the further development of Infanoid as that they are working on modules for gaze tracking, imperfect verbal limitation, and more, in order to provide the robot with the basic physicl skills 6-to-9-month-olds, as an initial stage for social and communicative development. [10]&lt;br /&gt;&lt;br /&gt;There is another robot introduced by Bjorn Verrelst, Jimmy Vermeulen, Bram Vanderborght, Ronald Van Ham, Joris Naudet, Dirk LefeberFrank Daerden and Michael Van Damme in “Motion genetayion and control for the pneumatic biped Lucy”. According to the developers the robot Lucy is actuated with pleated pneumonic artificial muscles which have interesting characteristics that can be exploited for legged machines. Authors claim that the muscles of Lucy are strong enough to carry an additional payload as well. Figure 04 shows that the robot Lucy who is less than 30Kg in weight and is 150cm in height. [4]&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Egl3Jnl8JzA/Sp4L9ED1FfI/AAAAAAAAAIY/V4O6cHl28HQ/s1600-h/q12.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 209px; height: 305px;" src="http://2.bp.blogspot.com/_Egl3Jnl8JzA/Sp4L9ED1FfI/AAAAAAAAAIY/V4O6cHl28HQ/s400/q12.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376748148816680434" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 04 – Photograph of Lucy.&lt;br /&gt;(Source: Motion genetayion and control for the pneumatic biped “LUCY”, International Journal of Humanoid Robotics Vol. 3, No. 1 67–103, World Scientific Publishing Company.)&lt;br /&gt;&lt;br /&gt;The magazine Assembly (May 2007) reports that, Rajesh Rao, the Associate professor of computer science and engineering at the University of Washington is carrying out a project with his colleagues as he claims on “taking a primitive first step on controlling movement of a humanoid robot with signals of human brain”. As Rao explains an individual can order a robot to move to specific locations and pick up specific objects simply by generating correct brain waves that reflects the individual’s instructions. The person who controls the robot should wear a cap embedded with 32 electrodes and those electrodes catch the brain signals by using a technique called electroencephalography. [3]&lt;br /&gt;&lt;br /&gt;In addition, the person can watch the movements of the robot on the computer screen via two cameras. Robot identifies the object to be picked up by its cameras and that inputs are also conveyed to users computer screen too. When the person looks at the object to be picked up, then sees it is brighten. Then the computer detects the characteristic pattern of brain activity and conveys the choice back to the robot and to precede the activity. The same mechanism is followed to determine the choice of location after picking up the object. According to the current situation of the project “the thought commands” are limit to a certain set of instructions such as move forward, pick up one object from two, pick the object up and bring it to one of two locations. If this technology can be improved successfully then one day it might be able to use for semi autonomous robots for the jobs like helping disabled people or performing everyday tasks in a person’s home. [2]&lt;br /&gt;&lt;br /&gt;Other competitive humanoid developer is Toyota who unveiled two types of robots that called “partner robots”. These models are intended for manufacturing applications and they are able to use hands to carryout may tasks. The Toyota engineers developed the robots using the technology they perfected through car manufacturing, such as ultra compact motors to move fingers, arms and other joints, sensors for detecting body inclination and mechanisms to correct body posture to the upright position. Toyota claims that partner robots have human characteristics, such as being agile, warm and kind and also intelligent enough to operate a variety of devices used for personal assistance, care for elderly, manufacturing and mobility. [3]&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;  There some non automotive manufactures also who is developing humanoids such as Fujitsu Ltd (Tokyo) has created a Humanoid for Open Architecture Platform (HOAP). Its HOPE-2 robot can be connected to a personal computer as a research tool for studying movement control and communication with humans. Figure 05 shows a kicking action done by a robot crated by Fujitsu Ltd. &lt;br /&gt;&lt;br /&gt;Another company Hitachi Ltd (Tokyo) has introduced a humanoid called EMIEW (Excellent Mobility and Interactive Existence as Workmate). The 4 foot tall robot has features of self balancing and two-wheel-motion mechanism that enable to move it in compact spaces. Sensors measure the gradient and help the humanoid balance. It shifts its centre of gravity by swinging its body from left to right. That helps the robot to make agile changes in direction, unlike humanoids that use human like feet. [3]&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/Sp4L9uC2R4I/AAAAAAAAAIg/y-yqCllpfBg/s1600-h/q13.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 265px; height: 289px;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/Sp4L9uC2R4I/AAAAAAAAAIg/y-yqCllpfBg/s400/q13.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376748160086853506" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 05– A humanoid created by Fujitsu Ltd&lt;br /&gt;   (Source: Humanoid Robots are No Longer Science Fiction, “Assembly” The Robotics &amp; Vision Industry. www.Assemblymag.com)&lt;br /&gt;&lt;br /&gt;Kawada Industries Inc. and Yaskawa Electric corp. (Japan) have developed a robot called HRP-2p, which feature 30 degree of freedom including two hip-joint axes. By using a high density electronic package, engineers were able to eliminate the heavy back pack of batteries and computers that other humanoids used. The Korea Institute of Science and Technology has developed a 5 feet robot that they claim as “the first network based humanoid in the world”. Unlike the other humanoids who have built in circuits with intelligent capabilities, this humanoid is linked with a outside computer via high speed wireless network and it exchange information with that server and quickly receive directions, allowing it to interact with people and environment  [3]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When considering about all the examples mentioned above, it is obvious that the technology humanoid robotics is growing rapidly while introducing enhanced feature to robots day by day. But there is a main weakness that the writer has identified that the developers of those robots have not cared more about the appearance of their robots as much as they cared about the other features. As reader can see on the figures robots like Kismet, Infanoid, Cog and Lucy have very rough appearance which is very similar to machines rather than humans. They do not have a human friendly look of their own. May be Honda has introduced their new robot Asimo with a lot of enhanced feature as well as human friendly soft appearance because to avoid that problem. Asimo is as smaller as a size of a child and weighs only about 43Kg. [1] Figure in my previous post shows a clear front view of Asimo. Honda claims that Asimo is more stable and able to move easily and efficiently around typical domestic environment at a top speed of 3Km/h. In addition the robots like Ursula [5] and Acroid [18] also have human friendly appearance but they do not have more sophisticated features that Asimo belongs to. See Figure 06 for the appearance of them.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/Sp4RjHA0W1I/AAAAAAAAAIo/ZNsKwUfc3tw/s1600-h/q14.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 203px; height: 305px;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/Sp4RjHA0W1I/AAAAAAAAAIo/ZNsKwUfc3tw/s400/q14.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376754300002523986" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 06 – The humanoid Actroid with co-creator Hiroshi Ishiguro.&lt;br /&gt;(Source: Humanoid robot, Wikipedia the free encyclopedia,www.en.wikipedia.org/wiki/Humand robot)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[01]Alicia Jones (2007),  Honda’s Newest ASIMO Humanoid Robot Sprints to Its North American Debut At Consumer Electronics Show, American Honda Motor Co. &lt;br /&gt;[02]Austin Weber (May 2007), Humanoid Robot Brain Control, Assembly, ProQuest Science Journals, pg. 11&lt;br /&gt;[03]Austin Weber-Senior Editor (July 2005), Humanoid Robots Are No Longer Science Fiction, “Assembly” The Robotics &amp; Vision Industry. www.Assemblymag.com&lt;br /&gt;[04]Bjorn Verrelst, Jimmy Vermeulen, Bram Vanderborght, Ronald Van Ham, Joris Naudet, Dirk LefeberFrank Daerden, Michael Van Damme (2006), Motion genetayion and control for the pneumatic biped “Lucy” , International Journal of Humanoid Robotics Vol. 3, No. 1 67–103, World Scientific Publishing Company.&lt;br /&gt;[05]David Bruemmer (2006), Humanoid Robotics, http://www.inl.gov/adaptiverobotics/humanoidrobotics, downloaded on 24th May 2007  &lt;br /&gt;[06]E. Yoshida, P. Blazevic, V. Hugel, K. Yokoi and K. Harada (2006), Pivoting a large object: whole body manipulation by a humanoid robot. FRL, AIST Japan, LISV France.&lt;br /&gt;[07]Gregory D. Hager, Wen Chung Chang, A.S. Morse (February 1995), Robot Hand-Eye Coordination based on Stereo Vision, Control System (volume 15)&lt;br /&gt;[08]Genci Capi, Yasuo Nasu, Leonard Barolli, Kazuhisa Mitobe, Mitsuhiro Yamano (2001), Real time generation of humanoid robot optimal gait for going upstairs using intelligent algoritms The Industrial Robot, ABI/INFORM Global, pg. 489-497&lt;br /&gt;[09]Genci Capi, Yasuo  Nasu, Kazuhisa Mitobe, Leonard Barolli (2002), Autonomous humanoid robot locomotion based on neural networks,The Industrial Robot,ABI/INFORM Global,  pg. 252-258&lt;br /&gt;[10] Hideki Kozima and Hiroyuki Yano (2000),&lt;br /&gt;A Robot that Learns to Communicate with Human Caregivers, Communications Research Laboratory, Kyoto, Japan&lt;br /&gt;[11]Hirochika Inoue, Susumu Tachi, Yoshi Nakamura (The University of Tokyo), Kazuo Hirai (Honda R&amp;D Co.Ltd.), Nariaki Ohyu (Manufacturing Science and Technology Center), Shigeoki Hirai, Kazuo Tanie, Kazuhito Yokoi and Hirohisa Hirukawa (AIST, METI), (April 2001) Overview of Humanoid Robotics Project of METI, Proceedings of the 32nd ISR(International Symposium on Robotics), Japan.&lt;br /&gt;[12]J. Rojas and R. A. Peters (2004), Sensory integration with articulated motion on a humanoid robot, Center for Intelligent Systems, Vanderbilt University, Nashville TN, USA&lt;br /&gt;[13]Mark L. Swinson, David J. Bruemmer (2000), Expanding Frontiers of Humanoid Robotics, IEEE Intelligent Systems Special Issue on Humanoid Robotics&lt;br /&gt;[14]Maureen Byko (November 2003), Personi- fication: The materials science and engineering of humanoid robots, JOM-ABI/INFORM Trade &amp; Industry, pg. 14-18&lt;br /&gt;[15]Rob Knight and Ulrich Nehmzow (October 2002), Walking Robots | A Survey and a Research Proposal, Technical Report CSM-375, Department of Computer Science, University of Essex&lt;br /&gt;[16]Rodney A. Brooks, Cynthia Breazeal, Matthew Marjanovi C, Brian Scassellati, Matthew M. Williamson (1994), The Cog Project: Building a Humanoid Robot, MIT Artificial Intelligence Lab&lt;br /&gt;[17] Rui Cortesao (2004), Data fusion architecture for robotic assembly tasks based on human sensory skills, IEEE Transactions on robotics(volume 20), December 2004, pg 941&lt;br /&gt;[18]Williams, Karl P. (2004), HumanoidRobot, Wikepedia,WikimediaFoundation,www.en.wikipedia.org/wiki/Humanod robot, Modified on 10 May 2007&lt;br /&gt;[19]Yoseph Bar-Cohen (September 2004), Bionic Humans Using EAP as Artificial Muscles Reality and Challenges, Jet Propulsion Laboratory / Caltech, 4800 Oak Grove Drive ,Pasadena, USA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-7927710467103842189?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7927710467103842189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/applications-of-humanoid-robotics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7927710467103842189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7927710467103842189'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/applications-of-humanoid-robotics.html' title='Applications of Humanoid Robotics'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Egl3Jnl8JzA/Sp4LQ6VR57I/AAAAAAAAAIA/G1ILnSwAMLk/s72-c/q9.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-8616884236281113355</id><published>2009-09-02T11:30:00.002+05:30</published><updated>2009-09-12T14:20:48.836+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>8. Power Supply for Humanoid Robots</title><content type='html'>Power supply is another critical part of the humanoid robotics that is being uncovered for enhancements day by day. Most humanoids currently use batteries that require frequent charging. In addition, batteries take most of valuable space and extra weight. That means half of the weight of current humanoids is taken by batteries. As a solution for above problem, fuel cells have come into the action again as a power source for humanoid robots. [1] In addition there are some alternative power sources in research such as Air muscles, Ionic polymer-metal composites, shape memory alloys and Polyacrylonitrille. [2] Above mentioned technologies of power supply are still in the research state and have a great success forward in the development process of humanoid robotics.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[1]Austin Weber-Senior Editor (July 2005), Humanoid Robots Are No Longer Science Fiction, “Assembly” The Robotics &amp; Vision Industry. www.Assemblymag.com&lt;br /&gt;[2]Rob Knight and Ulrich Nehmzow (October 2002), Walking Robots | A Survey and a Research Proposal, Technical Report CSM-375, Department of Computer Science, University of Essex&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-8616884236281113355?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/8616884236281113355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/power-supply-for-humanoid-robots.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8616884236281113355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8616884236281113355'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/power-supply-for-humanoid-robots.html' title='8. Power Supply for Humanoid Robots'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-3651265852343314886</id><published>2009-09-01T15:43:00.002+05:30</published><updated>2009-09-02T11:22:46.375+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>7. Existing Actuation Methods</title><content type='html'>Yet there is no artificial material that could match with the performance of natural muscle fibre. But there are well matured traditional actuation systems and converting their power output to a muscle like response is kind of a difficult matter.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;7.1. Electric Motors&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The most of the robots are operated purely by electric motors because they are comparatively cheap and easy to control. The main problem with using electric motors is converting their rotational output to a linear one. This can be achieved through various mechanical devices, such as a rack and pinion or a lead screw. However, these tend to be heavy and lack the quick response time of muscle. Linear motors, that are like a standard rotary motor rolled out flat, are able to generate extensive forces at very extensive speeds. Anyway that technique is not been utilized in any robot yet. [1]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;7.2. Pneumatics&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pneumatics are able to offer a very fast response time and can release their energy in sudden bursts like muscle. They tend to suffer from a reputation as being hard to control and are generally used only for what is known as `bang-bang' control, that is to say, on or off. Double acting cylinders are available though, which offer fine control through differential pressure control. The main problems are the cost and the heaviness of equipment such as both bottles and compressors used as a provision of an on-board air supply. [1]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;7.3. Hydraulics&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hydraulics are the most powerful of the actuation systems and mainly find use in heavy machinery like mechanical diggers. Hydraulics are able to supply vast force, but the problem is noise and smoke of an internal combustion engine to drive the pump. They are generally unsuitable for mobile robots as anything big enough to justify being powered by hydraulics would presently be far too dangerous and unreliable to let loose. [1]  &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Reference&lt;/span&gt;&lt;br /&gt;[1]Rob Knight and Ulrich Nehmzow (October 2002), Walking Robots | A Survey and a Research Proposal, Technical Report CSM-375, Department of Computer Science, University of Essex&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-3651265852343314886?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/3651265852343314886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/7-existing-actuation-methods.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3651265852343314886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3651265852343314886'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/7-existing-actuation-methods.html' title='7. Existing Actuation Methods'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-430727961605941819</id><published>2009-09-01T15:40:00.001+05:30</published><updated>2009-09-02T11:22:46.376+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>6. Actuators</title><content type='html'>Actuators are playing a significant role in controlling and manipulating the movements of the humanoid whole body equipments. Currently in robotic industry there are many type of actuators are using for the above purposes such as motors, artificial muscles, etc. According to the proficiency of actuators the accuracy of all the movements of the humanoid body depends. &lt;br /&gt;&lt;br /&gt;When considering about the structure of the humanoid hand it’s probably developed as a multi fingered hand in most of humanoids. All actuators are mounted in the hand itself and probably the size of the hand is similar to the size of the human hand.  In past there were only one motor to control the movements of the all fingers but now humanoids like Asimo is capable of holding objects of various shapes by using its new thumb joint that has separate motors for each finger. [1] Each joint in humanoids requires numerous actuators and their can be hundred gears and motors according to the degree of motion used. Artificial muscles are also used as actuators for both arms and legs too. [2, 3]   There are several types of actuation methods used for those muscles and that is described in next section. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[1]Austin Weber-Senior Editor (July 2005), Humanoid Robots Are No Longer Science Fiction, “Assembly” The Robotics &amp; Vision Industry. www.Assemblymag.com&lt;br /&gt;[2]Maureen Byko (November 2003), Personi- fication: The materials science and engineering of humanoid robots, JOM-ABI/INFORM Trade &amp; Industry, pg. 14-18&lt;br /&gt;[3]Rob Knight and Ulrich Nehmzow (October 2002), Walking Robots | A Survey and a Research Proposal, Technical Report CSM-375, Department of Computer Science, University of Essex&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-430727961605941819?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/430727961605941819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/6-actuators.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/430727961605941819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/430727961605941819'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/6-actuators.html' title='6. Actuators'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7877506107287616390</id><published>2009-09-01T15:32:00.003+05:30</published><updated>2009-09-02T11:22:46.376+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>5. Arm control and dexterous manipulation</title><content type='html'>Not only legs but hands are also plays a major role in carrying out tasks done by humanoids. Some of the tasks that researchers mainly concern about are catching balls, juggling, chopping vegetables, performing telesurgery, puring a coffee, etc. Robot arms have been came along a long way of evolution and past there were large and heavy robot arms with noisy, awkward hydraulics and now there are some humanoids with sleek, compliant limb with high strength to weight ratios. As humanoid body functions are linked to each other, small error in even single joint can be caused to reduce the performance of the whole system. [1, 2] Figure 01 shows the Robonaut’s hand manipulating an object.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SpzyOGF0XiI/AAAAAAAAAH4/LYpWZBit_zo/s1600-h/q8.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 275px;" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SpzyOGF0XiI/AAAAAAAAAH4/LYpWZBit_zo/s400/q8.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376438379140636194" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 01 – Robonaut’s hand and body.&lt;br /&gt;(Source: NASA Developing Robots with Human Traits, www.nasa.gov)&lt;br /&gt;&lt;br /&gt;Reference&lt;br /&gt;[1]David Bruemmer (2006), Humanoid Robotics, http://www.inl.gov/adaptiverobotics/humanoidrobotics, downloaded on 24th May 2007  &lt;br /&gt;[2]E. Yoshida, P. Blazevic, V. Hugel, K. Yokoi and K. Harada (2006), Pivoting a large object: whole body manipulation by a humanoid robot. FRL, AIST Japan, LISV France.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-7877506107287616390?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7877506107287616390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/5-arm-control-and-dexterous.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7877506107287616390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7877506107287616390'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/5-arm-control-and-dexterous.html' title='5. Arm control and dexterous manipulation'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Egl3Jnl8JzA/SpzyOGF0XiI/AAAAAAAAAH4/LYpWZBit_zo/s72-c/q8.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7725861308557384865</id><published>2009-09-01T15:26:00.003+05:30</published><updated>2009-09-02T11:22:46.376+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>4. Legged locomotion</title><content type='html'>Legs are among the main body components of humanoids that allow them to take full use of resources available in the natural environment. Walking is not only the simple forward and backward movement of legs but to perform a successful walking in any kind of terrain, full body balancing is a major requirement. [1] In past it was a great problem when developing humanoids about how to apply body balancing for them when they are moving. But nowadays scientists have overcome these difficulties and the newest robots like Honda’s Asimo is capable of walk up stairs, running, pulling a trolley and serving drink for a crowd as well. [2, 3]&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SpzwsAbNuFI/AAAAAAAAAHw/CqqnW5jii38/s1600-h/q7.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SpzwsAbNuFI/AAAAAAAAAHw/CqqnW5jii38/s400/q7.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376436693992585298" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 01 – Asimo, the newest robot introduced by Honda&lt;br /&gt;(Source: &lt;a href="http://asimo.honda.com/InsideAsimo.aspx"&gt;http://asimo.honda.com/InsideAsimo.aspx&lt;/a&gt;, American Honda Motor Co.)&lt;br /&gt;&lt;br /&gt;So far almost all the solutions that have been implemented in hardware for walking have one aspect in common. They all take a view of walking as inflexible and defined sequence of events. From now on this will be referred to as a ‘servo-style approach to walking’, as it concentrates on placing the legs in the right place at the right time according to a predefined algorithm. It also emphasizes the importance of rigid connections between actuators and any parts of the robot that actually contact the ground to improve the accuracy, stability and bandwidth of position control. The most obvious problem with traditional walking systems is that they are extremely slow moving. There is another major problem with the servo approach that is, it consumes great amounts of energy in the basic walking motion. The solutions for the above mentioned problems being uncovering day by day with new experiments and inventions. [3, 4]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[1]David Bruemmer (2006), Humanoid Robotics, http://www.inl.gov/adaptiverobotics/humanoidrobotics, downloaded on 24th May 2007  &lt;br /&gt;[2]Alicia Jones (2007),  Honda’s Newest ASIMO Humanoid Robot Sprints to Its North American Debut At Consumer Electronics Show, American Honda Motor Co. &lt;br /&gt;[3]Rob Knight and Ulrich Nehmzow (October 2002), Walking Robots | A Survey and a Research Proposal, Technical Report CSM-375, Department of Computer Science, University of Essex&lt;br /&gt;[4]Genci Capi, Yasuo Nasu, Leonard Barolli, Kazuhisa Mitobe, Mitsuhiro Yamano (2001), Real time generation of humanoid robot optimal gait for going upstairs using intelligent algoritms The Industrial Robot, ABI/INFORM Global, pg. 489-497&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-7725861308557384865?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7725861308557384865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/4-legged-locomotion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7725861308557384865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7725861308557384865'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/4-legged-locomotion.html' title='4. Legged locomotion'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Egl3Jnl8JzA/SpzwsAbNuFI/AAAAAAAAAHw/CqqnW5jii38/s72-c/q7.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-8957531905894005129</id><published>2009-09-01T15:23:00.001+05:30</published><updated>2009-09-02T11:22:46.376+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>3. Learning and adaptive behavior</title><content type='html'>When robots are going to interact with everyday environments they should be able to apply their existing capabilities to cooperate with the environmental changes as well. Therefore humanoids are capable of learning new tasks by analyzing and sequencing existing behaviors. Autonomous learning is the major way that humanoids should learn because it is essential to allow humanoids to learn by their own. That means humanoids should have been told ‘what to do’ rather than ‘how to do’ because to make them more natural and allow them to improve their existence within the natural environment. [1]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[1]David Bruemmer (2006), Humanoid Robotics, &lt;a href="http://www.inl.gov/adaptiverobotics/humanoidrobotics"&gt;http://www.inl.gov/adaptiverobotics/humanoidrobotics&lt;/a&gt;, downloaded on 24th May 2007&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-8957531905894005129?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/8957531905894005129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/3-learning-and-adaptive-behavior.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8957531905894005129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8957531905894005129'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/3-learning-and-adaptive-behavior.html' title='3. Learning and adaptive behavior'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7167556840788910525</id><published>2009-09-01T15:18:00.004+05:30</published><updated>2009-09-02T11:22:46.376+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>2. Human-robot interaction</title><content type='html'>This area is all about interaction between humans and robots. There are issues to concern such as efficient and accurate communication between humans and robots, safety interaction with them as well as training procedures for robots to catch the human gestures, facial expressions, etc. Final concern on this area is to consider the methods that the humanoid robot can interact with human day to day life safely and helpfully. [1] Following are some examples for the humanoids that interact with humans in various ways. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SpzuFcDLcjI/AAAAAAAAAHg/-aqZEy5aI4Q/s1600-h/q5.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 190px; height: 218px;" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SpzuFcDLcjI/AAAAAAAAAHg/-aqZEy5aI4Q/s400/q5.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376433832369812018" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 01– Minerva's face with a 'happy' expression (Source: Humanoid Robotics,&lt;a href="http://www.inl.gov/adaptiverobotics/humanoidrobotics"&gt;http://www.inl.gov/adaptiverobotics/humanoidrobotics&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Figure 01 shows the robot Minerva, a tour guide at the Smithsonian National Museum of American History. Minerva is capable of attract people and guide them through the museum as well. [1, 2]&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/Spzurzf7UxI/AAAAAAAAAHo/Daclbp0P294/s1600-h/q6.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 150px; height: 212px;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/Spzurzf7UxI/AAAAAAAAAHo/Daclbp0P294/s400/q6.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376434491499434770" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 02 – Ursula, the entertainment robot (Source: HumanoidRobotics, http://www.inl.gov/ adaptiverobotics/humanoidrobotics)&lt;br /&gt;&lt;br /&gt;is another female robot named ‘Ursula’ developed by Florida Robotics for the purpose of entertain crowds in Universal Studios. Ursula is a remote controlled robot who has the capabilities to walk, dance and play music as also. [1, 3]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[1]David Bruemmer (2006), Humanoid Robotics, http://www.inl.gov/adaptiverobotics/humanoidrobotics, downloaded on 24th May 2007  &lt;br /&gt;[2]Mark L. Swinson, David J. Bruemmer (2000), Expanding Frontiers of Humanoid Robotics, IEEE Intelligent Systems Special Issue on Humanoid Robotics&lt;br /&gt;[3]Williams, Karl P. (2004), HumanoidRobot, Wikepedia,WikimediaFoundation,www.en.wikipedia.org/wiki/Humanod robot, Modified on 10 May 2007&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-7167556840788910525?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7167556840788910525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/2-human-robot-interaction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7167556840788910525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7167556840788910525'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/2-human-robot-interaction.html' title='2. Human-robot interaction'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Egl3Jnl8JzA/SpzuFcDLcjI/AAAAAAAAAHg/-aqZEy5aI4Q/s72-c/q5.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-2553879649150925317</id><published>2009-09-01T15:06:00.002+05:30</published><updated>2009-09-02T11:22:46.377+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Perception Sensors - Floor Surface sensors</title><content type='html'>&lt;span style="font-weight:bold;"&gt;1.4 Floor Surface sensors&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The sensors in the foot of the humanoids allow them to identify the type of the floor to decide whether that is a even or uneven floor in order to control the mechanism of walking to keep the optimal body balance while walking on the floor. For an instance the Honda’s robot Asimo is capable of maneuver toward its destination without stopping, by comparing any deviation between the input map and the information obtained from the surrounding area from its floor surface sensor. In addition that robot can autonomously change its path if its sensors detect any obstacles. [1]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[1]Austin Weber-Senior Editor (July 2005), Humanoid Robots Are No Longer Science Fiction, “Assembly” The Robotics &amp; Vision Industry. www.Assemblymag.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-2553879649150925317?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/2553879649150925317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/perception-sensors-floor-surface.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/2553879649150925317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/2553879649150925317'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/perception-sensors-floor-surface.html' title='Perception Sensors - Floor Surface sensors'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-8152799920721126937</id><published>2009-09-01T15:03:00.004+05:30</published><updated>2009-09-02T11:22:46.377+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Perception Sensors - Audio sensors</title><content type='html'>&lt;span style="font-weight:bold;"&gt;1.3 Audio sensors&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For audio cueing two or more microphones is used for a particular humanoid. As an example for the methods of sound capturing and source identifying procedure, audio system procedure of the robot ISAC is explained below. Here ISAC has used two stereo microphones for audio cueing of the camera head through sonic localization. There is an algorithm is based on a cross-channel ratio of sound energy between the right and the left audio channels. A sound intensity envelope is detected in both channels and passed through a low-pass digital Butterworth filter. To determine the detection ratio, a sound source was measured at 11 different pan angle locations. The values of the ratios at each location were computed and were used as references to estimate the direction of the source of a sound. These values can be calibrated easily at any time to adjust the system for different ambient noise conditions. Upon the detection of a sound that exceeds a threshold in both channels, the ratio of channels energy and one of the 11 angular intervals is selected as the direction of the sound. The detected angle is made available to other agents in the system. [1] Figure 04 shows the general appearance of ISAC.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SpzqwBu5l2I/AAAAAAAAAHY/VIP4ezaazco/s1600-h/q4.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 185px; height: 248px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SpzqwBu5l2I/AAAAAAAAAHY/VIP4ezaazco/s400/q4.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376430165993297762" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 04 – The humanoid robot, ISAC&lt;br /&gt;(Source:  Sensory integration with articulated motion on a humanoid robot, Center for Intelligent Systems, Vanderbilt University, Nashville TN, USA&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Reference&lt;/span&gt;&lt;br /&gt;[1]J. Rojas and R. A. Peters (2004), Sensory integration with articulated motion on a humanoid robot, Center for Intelligent Systems, Vanderbilt University, Nashville TN, USA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-8152799920721126937?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/8152799920721126937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/1-perception-sensors_8857.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8152799920721126937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8152799920721126937'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/1-perception-sensors_8857.html' title='Perception Sensors - Audio sensors'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Egl3Jnl8JzA/SpzqwBu5l2I/AAAAAAAAAHY/VIP4ezaazco/s72-c/q4.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-5304120541025647694</id><published>2009-09-01T14:55:00.005+05:30</published><updated>2009-09-12T14:39:13.306+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Perception Sensors - Vision sensors</title><content type='html'>&lt;span style="font-weight:bold;"&gt;1.2 Vision sensors&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Many humanoid used a range of cameras as the eyes to capture the signals about the outside world objects in front of the robot. Some robots used grey scale cameras and some robots used colour CCD cameras. When cameras take input images from the out side environment those images are analysed and categorized by the brain system PC of the robot in order to compare with its knowledge bases to identify the particular objects or the motion of them before responding to that event. Following is an example of a visual system procedure used by Vanderbilt University for their robot ISAC. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SpzpHEMK4hI/AAAAAAAAAHQ/wBvkKIAH4r8/s1600-h/q3.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 263px;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SpzpHEMK4hI/AAAAAAAAAHQ/wBvkKIAH4r8/s400/q3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376428362766672402" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 01 – System integration for the visual system.&lt;br /&gt;(Source:  Sensory integration with articulated motion on a humanoid robot, Center for Intelligent Systems, Vanderbilt University, Nashville TN, USA)&lt;br /&gt;&lt;br /&gt;In the above system as mentioned in Figure 03 the images provided by the cameras are captured by an agent that encapsulates all the frame grabber functionalities. Then, the objects are extracted from the images through color or motion segmentation. The center of collection is calculated and used by the saccade module to fixate on the target position. A velocity signal is also calculated and used by the smooth pursuit module. Both eye movements experience a slight delay that accounts for the movement of the camera. Data streams are passed as quickly as possible to keep the camera head on target. Saccades and smooth pursuits behave similarly to each other. [1] According to the structure of Vision sensory system the procedure of capturing and processing mentioned above can be different.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://pubudini.blogspot.com/2009/09/1-perception-sensors_8857.html"&gt;NEXT&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Reference&lt;/span&gt;&lt;br /&gt;[1]J. Rojas and R. A. Peters (2004), Sensory integration with articulated motion on a humanoid robot, Center for Intelligent Systems, Vanderbilt University, Nashville TN, USA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-5304120541025647694?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/5304120541025647694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/1-perception-sensors_01.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5304120541025647694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5304120541025647694'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/1-perception-sensors_01.html' title='Perception Sensors - Vision sensors'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Egl3Jnl8JzA/SpzpHEMK4hI/AAAAAAAAAHQ/wBvkKIAH4r8/s72-c/q3.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-8210100732656736606</id><published>2009-09-01T14:42:00.005+05:30</published><updated>2009-09-12T14:37:30.414+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Perception Sensors - Sensors in hand</title><content type='html'>&lt;span style="font-weight:bold;"&gt;1.1 Sensors in hand&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tactile sensors (touch sensors) are playing a major role of performing humanoid behavior such as picking or carrying objects. When considering the sensors of hand of the humanoids, there are many sensors integrated for each fingers of the hand. For an instance, in robot HRP-1 introduced by Ministry of Economy, Trade and Industry (METI) of Japan, there is a 3-axis force sensor mounted at the tip of each finger and a small pressure sensor is attached at the first cushion of each finger. By using the measurements from these sensors, the robots can control the grasping force according to an object. [1] Figure 01 shows the appearance of the robot hand of HRP-1.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SpzmgGvR2vI/AAAAAAAAAHA/ny6jOTjAB1o/s1600-h/q1.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 265px; height: 240px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SpzmgGvR2vI/AAAAAAAAAHA/ny6jOTjAB1o/s400/q1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376425494412647154" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 01 – Multi fingered hand of the robot HRP-1&lt;br /&gt;(Source: Overview of Humanoid Robotics Project of METI, Proceedings of the 32nd ISR (International Symposium on Robotics), Japan.)&lt;br /&gt;&lt;br /&gt;NASA’s robot Robonaut, the human-size robot features advanced sensors that measure the movement of forearms and five fingered hands. It is capable of exerting the correct amount of force and control to perform some difficult work such as tightening fasteners with a pistol-grip screwdriver or a ratchet wrench. Its each arm contains more than 150 sensors that control and monitor force position, temperature, torque and touch. [2, 3] Figure 02 describes the components of the Rabonaut’s hand.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SpzmghnHryI/AAAAAAAAAHI/El6GIS4EJPU/s1600-h/q2.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 263px; height: 282px;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SpzmghnHryI/AAAAAAAAAHI/El6GIS4EJPU/s400/q2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376425501626183458" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 02 – Parts of Robonaut's hand. NASA Johnson Space Center&lt;br /&gt;(Source: HumanoidRobotics, &lt;a href="http://www.inl.gov/adaptiverobotics/humanoidrobotics"&gt;http://www.inl.gov/adaptiverobotics/humanoidrobotics&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://pubudini.blogspot.com/2009/09/1-perception-sensors_01.html"&gt;NEXT&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[1]Hirochika Inoue, Susumu Tachi, Yoshi Nakamura (The University of Tokyo), Kazuo Hirai (Honda R&amp;D Co.Ltd.), Nariaki Ohyu (Manufacturing Science and Technology Center), Shigeoki Hirai, Kazuo Tanie, Kazuhito Yokoi and Hirohisa Hirukawa (AIST, METI), (April 2001) Overview of Humanoid Robotics Project of METI, Proceedings of the 32nd ISR(International Symposium on Robotics), Japan.&lt;br /&gt;&lt;br /&gt;[2]Austin Weber-Senior Editor (July 2005), Humanoid Robots Are No Longer Science Fiction, “Assembly” The Robotics &amp; Vision Industry. www.Assemblymag.com&lt;br /&gt;&lt;br /&gt;[3]David Bruemmer (2006), Humanoid Robotics, http://www.inl.gov/adaptiverobotics/humanoidrobotics, downloaded on 24th May 2007&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-8210100732656736606?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/8210100732656736606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/1-perception-sensors.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8210100732656736606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8210100732656736606'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/1-perception-sensors.html' title='Perception Sensors - Sensors in hand'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Egl3Jnl8JzA/SpzmgGvR2vI/AAAAAAAAAHA/ny6jOTjAB1o/s72-c/q1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-6303089767929166289</id><published>2009-09-01T14:38:00.002+05:30</published><updated>2009-09-12T14:35:06.803+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Major Researches in Humanoid Robotics</title><content type='html'>Humanoid robotics is not a technology that constrained to particular area of research but it has a collaboration of vast technological and scientific areas such as Computer Engineering, Mechanics, Electrics, Artificial Intelligence, Robotics, Cognitive Science, Psychology, Physics, Neurobiology, Arts, Philosophy, etc.  All of the above areas involve in various varieties of technology to perform humanoid robotics projects successfully. Humanoids are not only the robots who looks like humans by having a head, body, two legs and two hands but they also have to act like humans by performing actions such as talking, walking, receive information and responding, etc. Therefore all of the researches on humanoid robotics is depend on developing the appearance as well as behaviors of humanoids. Following are some of the key areas to concern among all these researches. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Perception – Sensors &lt;/span&gt;  &lt;br /&gt;&lt;br /&gt;Perception is mainly about sensing things from outside environment such as vision, smell, taste, sonar, haptic feedback, tactile sensors as well as motion sensors. In addition, implementation of unconscious physiological mechanisms like vestibulo-ocular reflex is allowed humanoids to track visual areas while moving as humans also do. Not only that, research in perception contains the attentional, sensor fusion and perceptual categorization mechanisms to implement coordinate sensing and filter simulation. [1, 2, 3]  &lt;br /&gt;In humanoids sensors are mainly used for capturing the signals and control the hand, vision as well as audio. According to the type of the humanoid robotic project the sensory system used for above purposes can be little bit different. Following are some examples for those sensory systems taken from current ongoing projects.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;&lt;a href="http://pubudini.blogspot.com/2009/09/1-perception-sensors.html"&gt;NEXT&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[01]David Bruemmer (2006), Humanoid Robotics, http://www.inl.gov/adaptiverobotics/humanoidrobotics, downloaded on 24th May 2007&lt;br /&gt;&lt;br /&gt;[2]Gregory D. Hager, Wen Chung Chang, A.S. Morse (February 1995), Robot Hand-Eye Coordination based on Stereo Vision, Control System (volume 15)&lt;br /&gt;&lt;br /&gt;[3]Rui Cortesao (2004), Data fusion architecture for robotic assembly tasks based on human sensory skills, IEEE Transactions on robotics(volume 20), December 2004, pg 941&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-6303089767929166289?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/6303089767929166289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/09/major-researches-in-humanoid-robotics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6303089767929166289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6303089767929166289'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/09/major-researches-in-humanoid-robotics.html' title='Major Researches in Humanoid Robotics'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-3379123286334461912</id><published>2009-08-26T17:33:00.003+05:30</published><updated>2009-09-02T11:22:46.378+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Humanoid Robotics - Overview</title><content type='html'>Robotics is not a technology that emerged recently into the world; it has a great history of evolution. Among the robotic techniques humanoid robotics is one of the outgoing technology that also improving more and more from ancient times to now. In the second century B.C., a hero of Alexander has been constructed statues, doors and small mechanical animals that could be energetic by water, air and steam pressure. By the eighteenth century, there were complex mechanical dolls which were able to write short phrases, play musical instruments, and carry out other uncomplicated natural acts.   Nowadays, robots no longer mystery or cause to arise peoples’ curiosity, but have become a vital mainstay of global industry.&lt;br /&gt;&lt;br /&gt;Recreation of humans is not the main objective of creating humanoids but the objective is to make something different from the creations that have ever been to use as an assistant to get done the difficult tasks that humans for many purposes. Therefore humanoids can be used to perform tasks where dangerous or dirty jobs available such as working in land mines, wars, etc. In addition humanoids can be developed to used for regular jobs such as factory assistants, receptionists and even for as singers, dancers to entertain people. For an example Ursula, a female robot, sings, dances and speaks to her audiences at Universal Studios and ISAC another humanoid at Vanderbilt University feeds for physically challenged research individuals.  All these robots are in the state of research in this moment also, but there is a great improvement in the projects like Honda’s robot Asimo. One day, Asimo will be truly useful in helping people with important tasks, like assisting an elderly person or getting medicine for someone confined to bed or a wheel chair.&lt;br /&gt;&lt;br /&gt;On the other hand if researchers are attempting to reproduce human body by developing humanoids, that leads to a great understanding of the human body and behavior. Therefore humanoid robots can be used as a research tool for variety of scientific areas such as Cognitive Science, Medicine, Biomechanics, etc. There are a lot of ongoing projects all over the world on this moment also on several research areas including those mentioned above as well. Some of these projects are mainly concerns about using humanoids to model the cognitive or physical aspects of humans and there are some other projects which concerns to achieve commercial objectives by using humanoids for service and entertainment purposes. &lt;br /&gt;&lt;br /&gt;In the future people can expect a lot of improvement in the area of humanoid robotics as writer have explained above and society may be more artificial than ever before. People may build relationships with humanoids and begin to interact with them normally. While developing of the humanoids there may be new solutions occur for the medical areas such as replacing human body parts for high performance artificial parts, etc. Among all these technologies and researches one of the influenced questions is what is the impact of those products to the traditional human environment and weather it would be better or a worse one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-3379123286334461912?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/3379123286334461912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/08/humanoid-robotics-overview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3379123286334461912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3379123286334461912'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/08/humanoid-robotics-overview.html' title='Humanoid Robotics - Overview'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7710253963284018825</id><published>2009-08-26T17:26:00.002+05:30</published><updated>2009-09-02T11:22:46.378+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Introduction to Humanoid Robotics</title><content type='html'>When the world is changing more and more by improving technologies human desires and fascination also grows more and more seeking new changes into the life to make it more comfortable and attractive. People will never be satisfied with existing resources, facilities or entertainment. They always need to do something new or to feel something new by making their dreams true. Technology is the carrier who takes most of those dreams into reality. Nowadays humanoid robotics can be considered as a technology which is in a most higher place among those emerging technologies and it was a fascination in the society about making robots who acts and looks like humans who we called ‘humanoid robots’. At past there was a dream convinced by film, fiction and television that those humanoids will work for us, take care of us, teach our children, and even become our best friends or lovers as well. But nowadays that is not only limited to a dream but coming to a reality step by step. Humanoid robotics is still a developing technological area that has to overcome a lot of difficulties to make it successful. &lt;br /&gt;&lt;br /&gt;Many researches in humanoid robotics have exposed a variety of new problems and few solutions to typical problems in robotics, artificial intelligence, and control theory. When considering about the imagination about the robots, what people have done is too small in according to what have to be done. It is very interesting to find out the solutions for the problems that arise one by one when developing humanoid robots because most of the solutions firstly not occur as the technical solutions but as a great imagination arising in a human mind. Therefore nowadays humanoid robotics has been caused to major emergence in research areas not only as it has technical value but also with commercial, security and entertainment values to the society. When considering with humanoid robots who are improving successfully to act like humans such as Honda’s Asimo, Osaka University’s Actroid, Sony’s Qrio, Robocup Humanoid League’s Pino, we can see that the era of human identical robots is not so far. People have to be ready to work with humanoids, get help from them and to help them, teach them and to get taught by them, get friendly with them and to live with them in the near future. &lt;br /&gt;&lt;br /&gt;For the Independent study the reason of choosing a research area like  ‘Humanoid robotics’ is, it is not only a single fascinating technology but also a huge collection of wide technologies. That means areas such as mechanical, electrical and computer engineering, robotics, computer science, artificial intelligence, psychology, physics, biology, cognitive science, neurobiology, philosophy, linguistics and arts collaboratively involve with humanoid projects around the world.  Therefore by studying about Humanoid Robotics writer could gain sound knowledge about most of the emerging technologies in the world. This independent study may be caused to spread the areas of thinking and imagination to find out solutions for the world’s new trends.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-7710253963284018825?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7710253963284018825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/08/introdcution-to-humanoid-robotics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7710253963284018825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7710253963284018825'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/08/introdcution-to-humanoid-robotics.html' title='Introduction to Humanoid Robotics'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-6900723267163598556</id><published>2009-08-20T15:52:00.001+05:30</published><updated>2009-09-02T11:23:34.379+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='New Technologies'/><title type='text'>Kingston Technology unveils world's first 256GB USB flash drive</title><content type='html'>Kingston Technology Europe Ltd , a subsidiary of Kingston Technology Company , Inc. , the independent world specialist in memory products , has launched the world's first 256GB USB flash drive , the Kingston Technology DataTraveler 300.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Egl3Jnl8JzA/So0kCmDwF8I/AAAAAAAAAG4/PRJPrFTm-n0/s1600-h/image001.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 260px; height: 170px;" src="http://2.bp.blogspot.com/_Egl3Jnl8JzA/So0kCmDwF8I/AAAAAAAAAG4/PRJPrFTm-n0/s400/image001.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5371989557517490114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is the highest capacity available for a USB in the market. With this launch , Kingston Technology has positioned itself to be a leader in this high-capacity USB arena. &lt;br /&gt;&lt;br /&gt;The Kingston DataTraveler 300 will enable users to carry around a whole digital world , ranging from an outstanding 51 , 000 images , or 54 DVD's , or 365 CD's , or a whole database of documents equal to a 1km paper tower. &lt;br /&gt;&lt;br /&gt;The Kingston DataTraveler 300 is perfect for netbook and notebook users who want to extend the limited capacity of their machines. With a host of benefits such as fast transfer speed and password protect software , it is the ideal devise for business consumers who work with large databases , or even designers who need to transfer large graphic files from one place to another.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-6900723267163598556?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/6900723267163598556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/08/kingston-technology-unveils-worlds.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6900723267163598556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6900723267163598556'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/08/kingston-technology-unveils-worlds.html' title='Kingston Technology unveils world&apos;s first 256GB USB flash drive'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Egl3Jnl8JzA/So0kCmDwF8I/AAAAAAAAAG4/PRJPrFTm-n0/s72-c/image001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-8281584019136395181</id><published>2009-08-18T18:39:00.002+05:30</published><updated>2009-08-18T18:59:29.216+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C#.net - How to create a text  file</title><content type='html'>For creating text file in C#.net there I found two methods.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;First method:&lt;/span&gt;  Use the CreateText Method of the File Class. The CreateText method is taking  the path of the file to be created as an argument.  It creates a file in the specified path and returns a StreamWriter object which can be used to write contents to the file. &lt;br /&gt;&lt;br /&gt;public void writeFile()&lt;br /&gt;    {&lt;br /&gt;    StreamWriter SW;&lt;br /&gt;    SW=File.CreateText("c:\\NewFile.txt");&lt;br /&gt;    SW.WriteLine("Sri Lanka is a paradise");&lt;br /&gt;    SW.WriteLine("I love my motherland");&lt;br /&gt;    SW.Close();&lt;br /&gt;    Console.WriteLine("New text file Created Successfully");&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note: In the code above “c:\\NewFile.txt” the file name and path given by me and replace this with your intended file name and path.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Second Method:&lt;/span&gt; Use the FileInfo method. As the CreateTExt method this FileInfo method also taking the path of the file to be created as an argument.  It creates a file in the specified path and we can use StreamWriter object  to write contents to the file. &lt;br /&gt;&lt;br /&gt;public void writeFile()&lt;br /&gt;    {&lt;br /&gt;//Create the log file and append text to it&lt;br /&gt;            FileInfo t = new FileInfo("c:\\NewFile.txt");&lt;br /&gt;&lt;br /&gt;//Use following AppendText method to append text again and again into same file&lt;br /&gt;            StreamWriter sw = t.AppendText();&lt;br /&gt;            sw.WriteLine("Sri Lanka is a paradise");&lt;br /&gt;            sw.Close();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;You can call any of the above methods directly in the same class or by creating an object of the class that above method containing from anywhere in the namespace.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-8281584019136395181?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/8281584019136395181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/08/cnet-how-to-create-text-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8281584019136395181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8281584019136395181'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/08/cnet-how-to-create-text-file.html' title='C#.net - How to create a text  file'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-5425941896465776773</id><published>2009-07-10T11:20:00.001+05:30</published><updated>2009-08-18T18:59:21.994+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Mobile VPN</title><content type='html'>A mobile VPN is a network configuration in which mobile devices such as notebook computers or personal digital assistants (PDAs) access a virtual private network (VPN) or an intranet while moving from one physical location to another.&lt;br /&gt;&lt;br /&gt;An effective mobile VPN provides continuous service to users and can seamlessly switch across access technologies and multiple public and private networks. The functioning of an effective mobile VPN is transparent to the end user without compromising security or privacy.&lt;br /&gt;&lt;br /&gt;From an article on SearchMobileComputing.com, Lisa Phifer, vice-president of Core Competence Inc., explains the special requirements of mobile VPNs and how they work:&lt;br /&gt;&lt;br /&gt;PPTP, IPsec and SSL VPNs identify the device at the far end of the tunnel by IP address. This works well for users who tunnel from stationary devices: a home PC over residential broadband, a laptop over a hotel LAN, or even a PDA at a Wi-Fi hot spot. But put that device in motion, and physical connectivity, point of network attachment, and IP address are all likely to change. A conventional VPN client simply cannot survive such changes. The tunnel breaks, application sessions disconnect or time out, and the user must restart the business communication from scratch.&lt;br /&gt;&lt;br /&gt;Mobile VPN solutions from such vendors as Columbitech, Ecutel, IBM, ipUnplugged, Motorola, NetMotion, Nokia, Padcom and Radio IP are designed to adapt transparently to these changes. In a mobile VPN, a VPN server still sits at the edge of your company network, enabling secure tunneled access by authenticated, authorized VPN clients. Mobile VPN tunnels are not tied to physical IP addresses, however. Instead, each tunnel is bound to a logical IP address. That logical IP address sticks to the mobile device no matter where it may roam. For example, a mobile VPN client can:&lt;br /&gt;&lt;br /&gt;    * Roam from one wireless AP to another at a public Wi-Fi hot spot.&lt;br /&gt;    * Leave Wi-Fi coverage and start using a 3G connection (e.g., EV-DO).&lt;br /&gt;    * Leave 3G coverage and start using a slower 2G connection (e.g., 1xRTT).&lt;br /&gt;    * Return to the office and start using a docked Ethernet LAN connection.&lt;br /&gt;&lt;br /&gt;In this example, the mobile VPN client uses four or five different physical IP addresses while retaining one logical IP address. Applications running on the mobile device and inside the corporate network communicate through that one logical IP address, remaining blissfully unaware of the user's motion and associated physical/network transitions.&lt;br /&gt;&lt;br /&gt;For more information go to the following reference&lt;br /&gt;&lt;a href="http://searchmobilecomputing.techtarget.com/sDefinition/0,,sid40_gci1227022,00.html"&gt;http://searchmobilecomputing.techtarget.com/sDefinition/0,,sid40_gci1227022,00.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-5425941896465776773?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/5425941896465776773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/07/mobile-vpn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5425941896465776773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5425941896465776773'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/07/mobile-vpn.html' title='Mobile VPN'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7048599028674489073</id><published>2009-07-10T11:12:00.003+05:30</published><updated>2009-08-18T18:59:15.010+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Cisco Mobile VPN</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Increase Mobile Worker Productivity&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Cisco Mobile VPN is a Cisco IOS IP Mobility solution that offers continuous secure mobility experiences to users on the move.&lt;br /&gt;&lt;br /&gt;Users don't need to continually restart and reauthenticate the connection or any intranet applications running on it. This helps improve their efficiency and productivity while protecting the security of corporate mobile traffic.&lt;br /&gt;&lt;br /&gt;Cisco Mobile VPN enables mobile workers to use various wireless and wired connections to securely access the organization's intranet. It is applicable for:&lt;br /&gt;&lt;br /&gt;    * Network-based secure mobility: All IP devices connected to the mobilized network have transparent, secure mobility.&lt;br /&gt;    * Host-based secure mobility: A single device, such as a laptop or a tablet PC, is secured and mobile.&lt;br /&gt;&lt;br /&gt;The secure mobility is established through Cisco IOS IP Mobility technology and Cisco VPN technology. For device-based mobility, third-party client software is needed.&lt;br /&gt;&lt;br /&gt;Cisco IOS IP Mobility technology is the foundation for the Cisco Mobile VPN. It provides an uninterrupted application and service experience to users. In addition, its intelligent connection management function automatically connects to the best interface based on an administrative policy, the interface bandwidth, or WLAN signal strength.&lt;br /&gt;&lt;br /&gt;For more information go to reference&lt;br /&gt;&lt;a href="http://www.cisco.com/en/US/products/ps6744/products_ios_protocol_group_home.html"&gt;http://www.cisco.com/en/US/products/ps6744/products_ios_protocol_group_home.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-7048599028674489073?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7048599028674489073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/07/cisco-mobile-vpn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7048599028674489073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7048599028674489073'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/07/cisco-mobile-vpn.html' title='Cisco Mobile VPN'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-4656852541590254300</id><published>2009-07-10T11:08:00.000+05:30</published><updated>2009-07-10T11:10:46.425+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Virtual Private Network (VPN)</title><content type='html'>A virtual private network (VPN) is a computer network in which some of the links between nodes are carried by open connections or virtual circuits in some larger networks (such as the Internet), as opposed to running across a single private network. The Link Layer protocols of the virtual network are said to be tunneled through the transport network. One common application is to secure communications through the public Internet, but a VPN does not need to have explicit security features such as authentication or content encryption. For example, VPNs can also be used to separate the traffic of different user communities over an underlying network with strong security features, or to provide access to a network via customized or private routing mechanisms. VPN service providers may offer best-effort performance, or may have a defined service level agreement (SLA) with their VPN customers. Generally, a VPN has a topology more complex than point-to-point.&lt;br /&gt;&lt;br /&gt;For more information click following reference&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Virtual_private_network"&gt;http://en.wikipedia.org/wiki/Virtual_private_network&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-4656852541590254300?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/4656852541590254300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/07/virtual-private-network-vpn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4656852541590254300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4656852541590254300'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/07/virtual-private-network-vpn.html' title='Virtual Private Network (VPN)'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7409793724206816233</id><published>2009-07-07T11:50:00.002+05:30</published><updated>2009-07-07T11:53:14.352+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Humanoid Robot Brain Control - Article 8</title><content type='html'>Rajesh Rao, the Associate professor of computer science and engineering at the University of Washington is carrying out a project with his colleagues as he claims on “taking a primitive first step on controlling movement of a humanoid robot with signals of human brain”. As Rao explains an individual can order a robot to move to specific locations and pick up specific objects simply by generating correct brain waves that reflects the individual’s instructions. If this technology can be improved successfully then one day it might be able to use for semi autonomous robots for the jobs like helping disabled people or performing everyday tasks in a person’s home. &lt;br /&gt;&lt;br /&gt;The person who controls the robot should wear a cap embedded with 32 electrodes and those electrodes catch the brain signals by using a technique called electroencephalography. In addition, the person can watch the movements of the robot on the computer screen via two cameras. According to the current situation of the project “the thought commands” are limit to a certain set of instructions such as move forward, pick up one object from two, pick the object up and bring it to one of two locations.&lt;br /&gt;&lt;br /&gt;Robot identifies the object to be picked up by its cameras and that inputs are also conveyed to users computer screen too. When the person looks at the object to be picked up, then sees it is brighten. Then the computer detects the characteristic pattern of brain activity and conveys the choice back to the robot and to precede the activity. The same mechanism is followed to determine the choice of location after picking up the object.&lt;br /&gt;&lt;br /&gt;The developers plan to enhance the capabilities of the robot to perform tasks like avoiding obstacles in a room which requires more complex commands from human brain to control. In addition Rao claims that they need to get to the point of using actual objects that people might want the robot gather, as well as having the robot move through multiple rooms. Their one goal of future research is to enable the robot’s behavior more adaptive to the environment.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Reference:&lt;/span&gt;&lt;br /&gt;[1] Austin Weber (May 2007), Humanoid Robot Brain Control, Assembly, ProQuest Science Journals, pg. 11&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-7409793724206816233?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7409793724206816233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/07/humanoid-robot-brain-control.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7409793724206816233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7409793724206816233'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/07/humanoid-robot-brain-control.html' title='Humanoid Robot Brain Control - Article 8'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-8997833899971947325</id><published>2009-07-07T11:41:00.004+05:30</published><updated>2009-07-07T11:52:44.404+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Pivoting a large object: whole-body manipulation by a humanoid robot - Article 7</title><content type='html'>Prototyping the humanoid robots that can perform complicated tasks such as manipulation, navigation in dynamic environments, or serving tasks is one of the main areas of research in robotics. The manipulation task is one of the leading application areas for humanoid robots as they have a high potential for executing a variety of tasks by fully exploiting their high mobility and adaptability due to large number of degrees of freedom. This manipulation has several advantages such as dexterity and stability over other methods like pushing or lifting. For an example the concept of a humanoid manipulating an object in contact with the ground is an interesting research challenge. The dynamic balance of the robot cannot be managed in the same way as in the case of the robot walking simply. The manipulated object brings a new kinematic chain and exerts a reaction force on the robot that must be considered. To cooperate with these problems, position and impedance control framework is introduced first to grasp and manipulate the object, together with a whole-body balancing control. Then, resolved momentum control (RMC) is adopted to allow the robot to step forward after manipulation by keeping the hand position with the object.&lt;br /&gt;&lt;br /&gt;For a humanoid to manipulate a large object using a whole-body motion, pivoting manipulation, as humans often do, for example, to move an oil drum or a barrel, is considerably have advantages of the aspects below.&lt;br /&gt;&lt;br /&gt;• Precise positioning: When the object is not held in pushing, uncertainty is more considerable than pivoting, and also tumbling has limitation in reaching. Although some of these problems can be overcome using sophisticated control methods and the robot can move the object to the desired position in a more basic way.&lt;br /&gt;&lt;br /&gt;• Adaptability to rough terrains: Pushing is difficult in rough terrains, but there pivoting can be easily adapted. Lifting and tumbling can be used, but pivoting is more flexible in manipulation and according to the variety in shape and weight of manipulated objects.&lt;br /&gt;&lt;br /&gt;• Stability: Pivoting has advantage of lower risk of falling over lifting when manipulating large or heavy objects. In addition, the manipulated object can make widening the stability margin in some cases.&lt;br /&gt;&lt;br /&gt;Table 01- Comparison of methods of manipulation of a large object by a humanoid&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SlLnwmq2XPI/AAAAAAAAAGg/yX3s_cJf0eQ/s1600-h/h1.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 81px;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SlLnwmq2XPI/AAAAAAAAAGg/yX3s_cJf0eQ/s320/h1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5355597729096948978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The manipulation is executed by repeating the following two phases:&lt;br /&gt;• Manipulation of control phase: The manipulation is done in a quasi-static way by repeating rotation of the object about an axis. The contact force to hold the object is controlled using impedance control. The manipulation is performed through whole-body motion coordination to achieve both manipulation and stable body balancing.&lt;br /&gt;• Robot motion phase: The robot moves towards the object with the hands at the same position to continue manipulation. The body motion is planned through RMC.&lt;br /&gt;&lt;br /&gt;Figure 01-Flow of pivoting manipulation&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SlLoPzNnoYI/AAAAAAAAAGo/UvL7sMCQDTQ/s1600-h/h2.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 298px;" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SlLoPzNnoYI/AAAAAAAAAGo/UvL7sMCQDTQ/s320/h2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5355598265039954306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The algorithm of the pivoting manipulation task is summarized in the figure 01. &lt;br /&gt;1. The object is inclined by angle α around an axis a, which includes a vertex v on the plane so that the object has a point contact with the plane at v (Figure 3(a)).&lt;br /&gt;2. The object is rotated by angle β around the vertical axis z on vertex v to move to the desired direction (Figure 3(b)). As a result, the axis a is rotated to a’ on the plane.&lt;br /&gt;3. The object is rotated by −α around the rotated axis a’ until the front bottom edge of the object touches the ground. The ‘displacement of the object’ is defined as the distance between the projected points of its centre of mass (CoM) before and after the manipulation &lt;br /&gt;4. If the displacement of the object exceeds the value D, the robot steps toward the desired direction.&lt;br /&gt;5. Otherwise, it continues step 1 or terminates the motion.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Control techniques for manipulation and robot motion&lt;br /&gt;In the manipulation control phase, the robot is supposed to firmly grasp the object by two hands without slipping. First there is impedance control to manipulate the contact force to hold the object. Then, a method of body balancing is adopted to maintain the CoM in the supporting phase during manipulation. There is a assumption of manipulation is done for a rectangular box-shaped object in a quasi-static manner by repeating the rotations on a plane.&lt;br /&gt;&lt;br /&gt;Grasping: Since quasi-static motion is assumed, a position control for robot hands to achieve the path for the desired motion is adopted. The robot hands are placed on the two sides of the object therefore that they can exert forces in the opposite direction.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SlLovPsSSYI/AAAAAAAAAGw/oIzyQYHaDdY/s1600-h/h3.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 120px;" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SlLovPsSSYI/AAAAAAAAAGw/oIzyQYHaDdY/s400/h3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5355598805260716418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Whole body balancing: Not only applying the force to the hand for manipulation during but also robot has to keep the balance of the whole body.  The balancing control is performed by moving the position of the waist. In this way the pivoting manipulation is generated as a resulting compensation of disturbance due to the contact with the object.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;References:&lt;/span&gt;&lt;br /&gt;[1] E. Yoshida, P. Blazevic, V. Hugel, K. Yokoi and K. Harada (2006), Pivoting a large object: whole-body manipulation by a humanoid robot. FRL, AIST Japan, LISV France.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-8997833899971947325?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/8997833899971947325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/07/pivoting-large-object-whole-body.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8997833899971947325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8997833899971947325'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/07/pivoting-large-object-whole-body.html' title='Pivoting a large object: whole-body manipulation by a humanoid robot - Article 7'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Egl3Jnl8JzA/SlLnwmq2XPI/AAAAAAAAAGg/yX3s_cJf0eQ/s72-c/h1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-6410188333616894537</id><published>2009-07-07T11:39:00.000+05:30</published><updated>2009-07-07T11:52:44.404+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Humanoid Robots Are No Longer Science Fiction - Article 6</title><content type='html'>When considering about the history of the humanoid robotics, robots have appeared in the international exhibitions in past. For example there was a robot called Elektro who made entertainment to the visitors by smoking cigarettes and walking across a stage in the Westinghouse Electric Pavilion in 1939. When we come to the current situation Honda is in a major position of developing humanoids such as Asimo (name stands for Advance Step In Innovative Mobility). Honda claim that they are developing Asimo for personal assistant applications, but the company is also exploring the potential manufacturing uses. The automakers intend to make Asimo to work side by side with their workers in 2010. There Engineers try to speed up Asimo’s movement and make its coordination more fluid because currently robot is taking a short pause before switching between walking and climbing stairs. The new version of Asimo is capable of maneuvering towards its destination without stopping, by comparing any deviation between the input map information and the information obtained from the surrounding area from its floor-surface sensor. The robot can autonomously change its path if its sensors detect any obstacles. In addition, Asimo is capable of holding objects of various shapes by using its new thumb joint that has separate motors for each finger. Previously one motor operated all five fingers. The next stages of enhancements are, enable Asimo to think by itself and develop new vision and force sensors to make the interaction smoother.&lt;br /&gt;&lt;br /&gt;Other competitive humanoid developer is Toyota who unveiled two types of robots that called “partner robots”. These models are intended for manufacturing applications and they are able to use hands to carryout may tasks. The Toyota engineers developed the robots using the technology they perfected through car manufacturing, such as ultra compact motors to move fingers, arms and other joints, sensors for detecting body inclination and mechanisms to correct body posture to the upright position. Toyota claims that partner robots have human characteristics, such as being agile, warm and kind and also intelligent enough to operate a variety of devices used for personal assistance, care for elderly, manufacturing and mobility.&lt;br /&gt;   &lt;br /&gt;There some non automotive manufactures also who is developing humanoids such as Fujitsu Ltd (Tokyo) has created a Humanoid for Open Architecture Platform (HOAP). Its HOPE-2 robot can be connected to a personal computer as a research tool for studying movement control and communication with humans. Another company Hitachi Ltd (Tokyo) has introduced a humanoid called EMIEW (Excellent Mobility and Interactive Existence as Workmate). The 4 foot tall robot has features of self balancing and two-wheel-motion mechanism that enable to move it in compact spaces. Sensors measure the gradient and help the humanoid balance. It shifts its centre of gravity by swinging its body from left to right. That helps the robot to make agile changes in direction, unlike humanoids that use human like feet.&lt;br /&gt;&lt;br /&gt;Kawada Industries Inc. and Yaskawa Electric corp. (Japan) have developed a robot called HRP-2p, which feature 30 degree of freedom including two hip-joint axes. By using a high density electronic package, engineers were able to eliminate the heavy back pack of batteries and computers that other humanoids used. The Korea Institute of Science and Technology has developed a 5 feet robot that they claim as “the first network based humanoid in the world”. Unlike the other humanoids who have built in circuits with intelligent capabilities, this humanoid is linked with a outside computer via high speed wireless network and it exchange information with that server and quickly receive directions, allowing it to interact with people and environment. &lt;br /&gt;&lt;br /&gt;Scientists at NASA Johnson Space Centre (Houston) have developed a humanoid for extravehicular activities such as building the International Space Station. Robonaut, the human-size robot features advanced sensors that measure the movement of forearms and five fingered hands. It is capable of exerting the correct amount of force and control to perform some difficult work such as tightening fasteners with a pistol-grip screwdriver or a ratchet wrench. Its each arm contains more than 150 sensors that control and monitor force. In addition Robonaut was designed to be used in outer space and its technology can be applied to more down-to-earth applications, such as building and maintaining undersea pipelines.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Areas to be enhanced in Humanoid robotics&lt;/span&gt;&lt;br /&gt;According to Kazuhiko Kawamura, director of the Center for Intelligent Systems at Vanderbilt University, one of the unsolved research issues in robotics is learning because developers cannot program robots to face every kind of situation practically. Therefore Kawamura and his colleagues have developed flexible control software called Intelligent Machine Architecture (IMA). There is an agent called self agent and it represent a robot itself. Concept behind that is just like a human, future robot must be aware of itself as well as the environment to become an effective partner to humans. An emerging area called “machine consciousness” is much related to this concept usage. There is another invention for “learning by doing” performed by a team of scientists in Massachusetts Institute of Technology and they have developed a biped that can continuously adapt to a terrain as it walks. Customized learning software allows the robot to teach itself to walk in less than 20 minutes or about 600 steps. As it toddlers when it learns to walk the robot has been named as Toddler. It is the first invention of robot that learns to walk without any prior information built into the controller.&lt;br /&gt;&lt;br /&gt;Each joint in humanoids requires numerous actuators and their can be hundred gears and motors according to the degree of motion used. Current material used for these purposes are very heavy and inflexible, therefore its worth if synthetic muscle-type material could be developed to be operated by signals and pulses. In addition, new energy sources must be developed for humanoids. Because most devices currently use batteries which need frequent recharging and those are very heavy and take much space. Therefore fuel cells may be more efficient energy source. Another problem to be concerned is enhancing the “brain power” of humanoids.&lt;br /&gt;&lt;br /&gt;There are many ongoing researches to make humanoids to move more similar to humans. For instance a team of researchers at Purdue University carrying out a project with the goal of making robots to adapt quickly to new situations so that they can compete a variety of tasks which are not specifically programmed to perform. In addition a group of engineers in Cornell University have built robots (Cornell) that closely imitate the human gait and match human efficiency. According to Andy Ruina, a professor of theoretical and applied mechanics, humanoids such as Asimo moves smoothly, but on a large flat feet and it consumes more energy with comparing to human. But he claims that their Cornell biped uses energy only to push off, while Asimo and other humanoids unnecessarily use energy to absorb work. Unlike other robots, Ruina’s machine supplies power to ankles to push off and when the forward foot hits the ground, a microchip controller tells the rear foot to push off. During the forward swing of each leg, a small motor stretches a spring, which is finally released to provide the push.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A team of researchers at the University of Michigan and the Laboratoire Automatique (France) have developed a humanoid called RABBIT which they claim as the “first known robot to walk and balance like a human”. According to the scientist who made the control theory for the machine, the balancing ability programmed into has many applications in the medical field, such as smart prosthetics that adapt to the wearer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;References:&lt;/span&gt;&lt;br /&gt;[1] Austin Weber-Senior Editor (July 2005), Humanoid Robots Are No Longer Science Fiction, “Assembly” The Robotics &amp; Vision Industry. www.Assemblymag.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-6410188333616894537?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/6410188333616894537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/07/humanoid-robots-are-no-longer-science.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6410188333616894537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6410188333616894537'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/07/humanoid-robots-are-no-longer-science.html' title='Humanoid Robots Are No Longer Science Fiction - Article 6'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7684082122108193628</id><published>2009-07-07T11:33:00.002+05:30</published><updated>2009-07-07T11:52:44.404+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Walking Robots - Article 5</title><content type='html'>For the environments that the robots run in, wheels are definitely the most sensible choice because wheels are easy to control, as they act very predictably given a flat surface to run on. The power systems behind wheeled locomotion are well developed and understood, and they are a cheap solution. However, there are some environments in which wheels are almost completely useless. In a domestic environment, the obvious problem is getting up stairs, though for the types of large buildings that presently have uses for robots, this is normally accommodated by lifts. In the outside world though, there is rarely a handy lift around. Therefore there should be another walking mechanism for the robots rather than wheels, especially for humanoid robots wheels are no longer usable because they have not look and act like humans if they use wheels.&lt;br /&gt;&lt;br /&gt;So far almost all the solutions that have been implemented in hardware for walking have one aspect in common. They all take a view of walking as inflexible and defined sequence of events. From now on this will be referred to as a servo-style approach to walking, as it concentrates on placing the legs in the right place at the right time according to a predefined algorithm. It also emphasizes the importance of rigid connections between actuators and any parts of the robot that actually contact the ground to improve the accuracy, stability and bandwidth of position control.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Problems with Servo-Style Walking&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Speed&lt;/span&gt;&lt;br /&gt;The most obvious problem with traditional walking systems is that they are extremely slow moving. Honda’s humanoid Asimo represents the state-of-the-art and yet it can only manage about 2 or 3km/h at maximum speed. One of the main interests of walking systems for crossing rough terrain is the ability to move at near to top speed apart from of the condition of the ground. Asimo is long way from being able to achieve this, as even the stairs that it climbs for the press have to be specially prepared to prevent any accidents&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. Energy Efficiency&lt;/span&gt;&lt;br /&gt;There is another major problem with the servo approach that is, it consumes great amounts of energy in the basic walking motion. Asimo is designed to be self-contained and it only carries enough power to walk for about 30 minutes, a time period that is not enough for serious exploration. Battery technology is improving constantly, being driven by the mobile phone market and the development of electric cars. There are some suggested solutions in the form of a mobile power cell, capable of supplying orders of magnitude more power than present batteries. In the meantime, an alternative would be to make robots that walk more efficiently in terms of energy consumption. &lt;br /&gt;&lt;br /&gt;There is one approach was first pioneered by McGeer resembles the kind of mechanical solution found in walking toys. He demonstrated that a four bar mechanism in the shape of the skeleton of the lower half of the human body could walk unaided down a slight incline. As long as the lengths and masses of the various components were correctly tuned, a simple pendulum motion is enough to produce very fluid and human like walking. Curved feet complete the control by self-correcting for any mild perturbations. This approach is now known as McGeer's theory of passive dynamic bipedal locomotion, were the gait is simply a `natural repetitive motion of a dynamical system'. The advantage of this system is that it consumes minimal energy and requires no computer control for normal walking on a flat surface. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Following are some technologies being developing to be used for walking mechanisms in robotic industry.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Artificial Muscles&lt;/span&gt;&lt;br /&gt;In some decades there is the challenge of constructing an artificial muscle. An artificial muscle is a contractile device that should imitate mammalian, reptile or insect muscle as closely as possible, particularly in terms of its strength to weight ratio and the speed of response.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Existing Actuation Methods&lt;/span&gt;&lt;br /&gt;Yet there is no artificial material that could match with the performance of natural muscle fibre. But there are well matured traditional actuation systems but converting their power output to a muscle like response is very difficult matter.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Electric Motors&lt;/span&gt;&lt;br /&gt;The most of the robots are operated purely by electric motors, as they are relatively cheap and well understood, making them easy to control. The main problem with using electric motors is converting their rotational output to a linear one. This can be achieved through various mechanical devices, such as a rack and pinion or a lead screw. However, these tend to be heavy and lack the quick response time of muscle. Linear motors, that are like a standard rotary motor rolled out at, are able to generate considerable forces at very considerable speeds. Anyway above technique is been utilized in any robot yet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. Pneumatics&lt;/span&gt;&lt;br /&gt;Pneumatics are able to offer a very fast response time and can release their energy in sudden bursts like muscle. They tend to suffer from a reputation as being hard to control and are generally used only for what is known as `bang-bang' control, that is to say, on or off. Double acting cylinders are available though, which offer fine control through differential pressure control. The main problems are the cost and the heaviness of equipment such as both bottles and compressors used as a provision of an on-board air supply. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3. Hydraulics&lt;/span&gt;&lt;br /&gt;Hydraulics are the most powerful of the actuation systems and mainly find use in heavy machinery like mechanical diggers. JCB, for instance, now offer a remote-controlled, converted loader called Fire Spy, which can tackle fires under instruction from an operator up to 100m away. Hydraulics are able to supply vast force, but suffer from the noise and smoke of an internal combustion engine to drive the pump. They are generally unsuitable for mobile robots as anything big enough to justify being powered by hydraulics would presently be far too dangerous and unreliable to let loose.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Alternative Sources of Power&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Air Muscle&lt;/span&gt;&lt;br /&gt;The McKibben air muscle is first seen in 1968. It is a mechanically simple device that consists of a flexible bladder surrounded by a braided mesh sleeve, typically made of nylon cord. The bladder is inflated with compressed air and is designed to expand circumferentially. The strands of the sleeve are less extensible and this results in an axial contraction of the muscle. Despite an excellent strength to weight ratio and rapid response the air muscle has only had limited success. For large static robots and the kind of tasks that they are usually required to perform there are more familiar actuators, like standard pneumatic cylinders. For mobile robots there is the serious drawback of having to carry enough compressed air to operate for any reasonable length of time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. Ionic Polymer-Metal Composites&lt;/span&gt;&lt;br /&gt;A completely different approach has focused on materials that can change shape through the direct application of electricity or a chemical agent. An example of this is a new class of materials known as ionic polymer-metal composites. These significant materials exhibit massive strains under applied voltage differences, allowing them to ex from at sheets into substantially curved shapes. The material begins as a flat sheet and is made of a polymer matrix, which is coated in platinum. The advantage of this is that it can be cut into any shape to form complex and elegant grippers. Strictly speaking this does not constitute a muscle as it incorporates the structural member also. However, it is a useful technology and is likely to find many uses in low power actuation roles, mainly space technology, until a cheaper manufacturing route can be found.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3. Shape Memory Alloys&lt;/span&gt;&lt;br /&gt;Another class of materials that change shape under the application of electricity are Shape Memory Alloys, or SMA, though here it is the heating effect of an electric current that actuates them. The most common of these is Nitinol, which is a nickel-titanium alloy that exhibits extreme contraction when heated. The wire typically comes in very fine strands, measuring from 80 to 250 µm in diameter. As a result they have an extremely high power to weight ratio, but large bundles must be used to generate significant forces. Contraction rates are controlled by the heating and cooling of the wire and can be long, resulting in slow response times. Even with a great deal of interest from several Japanese companies and the building of some proving robots the uses of SMA have been limited. Present trends indicate that they are more suited to micro actuators where more conventional motors cannot fit.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;8. Polyacrylonitrile&lt;/span&gt;&lt;br /&gt;One of most promising new materials to emerge is Polyacrylonitrile, a form of artificial silk, classed as a gel polymer, as its properties lie somewhere between a plastic and a gel. There are claims that it can respond as fast as human muscle tissue, in about 20 milliseconds and that it is twice as strong. What is not clear is whether these two properties can be achieved simultaneously. The activation method is a change in pH, which requires the fibres to be housed in a watertight bag and used with chemicals to cause changes in length. A review conducted at MIT acknowledged that it is a potentially very useful material, but that there are some major problems to overcome before it can be considered as a reliable solution. So far, none of the artificial muscle systems have made much impact on the practical difficulties of building robots. Even as the pursuit of artificial systems that imitate the capability of natural ones is a good target, but it does not necessarily achieve working solutions as quickly as needed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;References:&lt;/span&gt;&lt;br /&gt;  [1] Rob Knight and Ulrich Nehmzow (October 2002), Walking Robots | A Survey and a Research Proposal, Technical Report CSM-375, Department of Computer Science, University of Essex&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-7684082122108193628?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7684082122108193628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/07/walking-robots-article-5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7684082122108193628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7684082122108193628'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/07/walking-robots-article-5.html' title='Walking Robots - Article 5'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-4548890600138966258</id><published>2009-07-07T11:31:00.000+05:30</published><updated>2009-07-07T11:52:44.404+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>A Robot that Learns to Communicate with Human Caregivers - Article 4</title><content type='html'>Communications Research Laboratory at Kyoto is developing an infant-like humanoid robot, named Infanoid, to investigate the follolwing mechanisms of social intelligence that will allow it to communicate with human beings and participate in human social activities. The proposed model is an epigenetic model of social intelligence that shows how the robot acquires communicative behavior through interaction with its social environment, especially with human caregivers. The model has three stages: &lt;br /&gt;&lt;br /&gt;(1) The acquisition of intentionality, which enables the robot to intentionally use certain methods for obtaining goals.&lt;br /&gt;&lt;br /&gt; (2) Identification with others, which enables it to indirectly experience other people's behavior.&lt;br /&gt;&lt;br /&gt; (3) Social communication, in which the robot empathetically understands other people's behavior by ascribing to the intention that best explains the behavior.&lt;br /&gt;&lt;br /&gt;The robot, Infanoid, is being constructed as a possible naturalistic embodiment for the communicative development. When considering the body structure of the robot, it has the same kinematical structure of the upper body of three-year-old human infant. Currently, 23 degree of freedom (DOFs) (5 in the head, 3 in the neck, 6 in each arm (excluding the hand), and 3 in the trunk) are arranged in a 480-mm-tall upper body. Infanoid is mounted on a table for face-to-face interaction with a human caregiver sitting in a chair. Infanoid has a foveated stereo vision head and its each of the eyes has two color CCD cameras and the lower one has a wide angle lens that spans the visual field (about 120 degrees horizontally), and the upper one has a telephoto lens that takes a close-up image on the fovea (about 20 degrees horizontally). There are three motors drive the eyes, controlling their direction (pan and common tilt). The motors also help the eyes to perform a saccade of over 45 degrees within 100 msec, as well as smooth pursuit of visual targets. The images from the cameras are fed into massively parallel image processors (IMAP Vision) for facial and non-facial feature tracking, which enables real-time attentional interaction with the interlocutor and with a third object. In addition, the head has lips with 2 DOFs which allow the mouth to open and smile for facial expressions and lip-synching with vocalization. Each DOF is controlled by interconnected MCUs; high level sensory-motor information is processed by a cluster of Linux PCs. &lt;br /&gt;&lt;br /&gt;Infanoid has been equipped with the following functions: &lt;br /&gt;&lt;br /&gt;(1) Tracking a nonspecific human face in a cluttered background.&lt;br /&gt;(2) Determining roughly the direction of the human face being tracked.&lt;br /&gt;(3) Tracking objects with salient color and texture, e.g. toys.&lt;br /&gt;(4) Pointing to or reaching out for the object or face by using the arms and torso &lt;br /&gt;(5) gazing alternately between the face and object.&lt;br /&gt;(6) Vocalizing canonical babbling with lip-synching. Currently, developers are working on modules for gaze tracking, imperfect verbal imitation, in order to provide Infanoid with the basic physical skills of 6-to-9-month-olds, as an initial stage for social and communicative development.&lt;br /&gt;&lt;br /&gt;A robot that possesses the following can acquire intentionality by exploring the environment.&lt;br /&gt;&lt;br /&gt;(1) A sensory-motor system, with which the robot can utilize the affordance that emerges between the robot and the environment.&lt;br /&gt;(2) A repertoire of behaviors, whose initial contents are innate reflexes, e.g. grasping whatever the hand touches.&lt;br /&gt;(3) A set of drives, like hunger or fatigue that triggers off one or a combination of behaviors in the repertoire.&lt;br /&gt;(4) A value system that evaluates what the robot perceives (both exteroception and proprioception), for instance pleasure and displeasure.&lt;br /&gt;(5) A learning mechanism that reinforces (positively or negatively) a behavior according to the value of the result.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Joint attention is the act of sharing each other's attentional focus. It spotlights objects and events (and concepts, in later stages of infants' development) being attended to by two or more participants of communication, thus creating a shared context in front of them. It enables the robot to observe what others exteroceptively perceive from the environment, and action capture translates the observed action of others into its own motor program or proprioception so that it can reproduce the same action. Action capture is another act of mapping another person's bodily movements or postures onto one's own motor program or proprioception. This mapping connects deferent modalities such as one observes another person's body exteroceptively (mainly visually) and moves or proprioceptively feels one's own body. Together with joint attention, action capture enables the robot to indirectly experience someone else's behavior by translating the other person's behavior into its own virtual behavior. In addition action capture on facial gestures helps infants and caregivers to share emotional contents of the interaction. Reflexive imitation of the caregivers' facial expressions would induce similar emotion in the infants. Together with joint attention, infants and caregivers would be able to share emotion towards their jointly attended targets and this would often be observed in the form of social referencing, where infants look into their caregivers' face when they have encountered something whose value (e.g. safe or dangerous) is unknown.&lt;br /&gt;&lt;br /&gt;Developers’ epigenetic approach to socially communicative intelligence was originally motivated by the recent study of ‘Autism’ and related developmental disorders. Recent research on autism found that autism is caused by specific and mainly hereditary brain damage. People with autism have difficulties in social interaction, verbal communication, and maintaining a diversity of behavior. Autistic infants and children also have difficulty in creating and maintaining joint attention with others (even their caregivers) and in immediate and deferred imitation. These facts suggest that joint attention and action capture play important roles in infants' and children's social development. The epigenetic approach outlined in this paper attempts to provide robots and artificial intelligence systems with the core abilities outlined here, which are absent or malfunctioning in autistic people, for acquiring intentionality, identifying with others, and empathetically understanding other people's intentions. Researchers believe that their approach, where the naturalistic embodiment becomes situated in the social environment through interactive learning with human caregivers, would be an effective solution to creating social beings that can participate in human social activities.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;[1] Hideki Kozima,Hiroyuki Yano(2000), A Robot that Learns to Communicate with Human Caregivers, Communications Research Laboratory, Kyoto, Japan&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-4548890600138966258?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/4548890600138966258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/07/robot-that-learns-to-communicate-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4548890600138966258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4548890600138966258'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/07/robot-that-learns-to-communicate-with.html' title='A Robot that Learns to Communicate with Human Caregivers - Article 4'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-6217510545780691937</id><published>2009-07-07T11:27:00.002+05:30</published><updated>2009-07-07T11:52:44.405+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Recent Popular Projects in Humanoid Robotics - Article 3</title><content type='html'>Ministry of Economy, Trade and Industry (METI) of Japan has launched a project on humanoid robotics from 1998. The objective of this project is to develop a safe and reliable human friendly robot system that capable of carrying out complicated tasks and supporting humans within the environment of human lives and activities. The project is run on a new scheme, called a platform based approach, and the platform is developed at phase one and it is utilized by contributors of the project as an infrastructure for R&amp;D at phase two. The platform consists of a humanoid robot, a tele-existence cockpit to control the robot and an equivalent virtual robot. In phase two (2000-2002), research and development were carried out on the applications of humanoid robots with consideration given to the needs of industries in which areas that such robots might be used. Improvement and addition of elemental technologies will be carried out using the platforms developed in phase one. The applications include maintenance tasks of industrial plants, tele-operation of construction machines, human care, security services and construction works.&lt;br /&gt;&lt;br /&gt;The platform humanoid robot is a human type robot with two arms and two legs, which walks by biped locomotion. The height of the robot is 1600 mm, its width 600 mm width and its weight 99kg excluding the batteries respectively. Honda R&amp;D has done the implementation of the specifications on with their feasibility verification, and three copies of the robot have been provided. The name of the robot is HRP-1. It is able to move on an uneven floor with bumps and dents of 20 mm or less by biped walking at a speed of 2 km/h or faster. The robot is also capable of going up and down steps of 200 mm or less in height at a speed of 1.5 sec/step. It can pick up an object from the floor with dual arms and carry out the two movements noted above at the stated speed when the object weighs less than 10 kg. The robot can operate for more than 30 minutes with the batteries. The stereo cameras, that can pan and tilt, are mounted in the head and stereo microphone and speaker at the breast. The audio and visual information obtained by these devices can be sent to a remote computer. The commands and the measurements are translated between the robot and the remote cockpit through the reflective memory system. There are two ways to read and write the data to the reflective memory of the robot. The one way is to connect the reflective memory of the remote cockpit to the one of the robot directly by the optical fiber. The other way is using wireless LAN and a communication CPU for the connection. The image from the stereo camera and the sound from the microphone and to the speaker are communicated by analog wireless data transmitter via AV connector. &lt;br /&gt;&lt;br /&gt;The robot’s multi-fingered hand has also been developed by Honda R&amp;D for a part of the hardware platform. The hand has four fingers and all actuators are mounted in the hand itself, the size of the hand is similar to the size of the human hand. A 3-axis force sensor is mounted at the tip of each finger and a small pressure sensor is attached at the first cushion of each finger. By using the measurements from these sensors, it can control the grasping force according to an object. The dual arm system with the multi-fingered hands is constructed in order to examine the performance of the hands. But the current version of the humanoid robot has not enough payloads for mounting the hand controller, so developers has used only upper body of the humanoid robot. The both of the hand and the arm can also be tele-operated by using the master hand system. Developers have been developing the following functions for applying humanoid robot HRP-1 to the application. The first one is a navigator to lead the robot to the destination through corridors and stairs by using IC tags. The second one is whole-body control software to let the robot do the maintenance task while stabilizing its posture.  &lt;br /&gt;&lt;br /&gt;Developers have been exploiting the new usages of humanoid robot through the following developments. Construction machines play an important role in the rescue activities, but sometimes the environments are too risky to approach. If a humanoid robot can drive a construction machine and it can be operated from a remote site, the construction machine can work at a dangerous place. This humanoid robot operator has two advantages than automated construction machine. It is much easier to carry the robot to a disaster site than moving the special construction machine. Besides, the robot may be less expensive than developing the special automated machine whose required number is relatively small. A navigation vision system can guide the robot to move in a daily environment. The view images from the robot’s cameras are produced by 3-D graphics at an operator’s client site to compensate the delay time of the network. The hands of the robot are controlled to open/close a door and turn on/off a switch. When considering cooperative works in the open air, it is obvious that many tasks can be carried out by an expert and a beginner. It is more realistic for a humanoid robot to be a novice partner of an expert human, and still then people can save a labor force. Researchers have been developing the following technologies to realize the application. A small portable/wearable controller of the robot is developed for the human partner. The arms are under compliance control to help the cooperative works with the human. The ability of the biped locomotion of the robot is enhanced to cope with rough surface in the open air. The vision is also used to locate the position of the hand relative to the target object. These enhancements are to be implemented on a new humanoid robot HRP-2. &lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;[01] Hirochika Inoue, Susumu Tachi, Yoshi Nakamura (The University of Tokyo), Kazuo Hirai (Honda R&amp;D Co.Ltd.), Nariaki Ohyu (Manufacturing Science and Technology Center), Shigeoki Hirai, Kazuo Tanie, Kazuhito Yokoi and Hirohisa Hirukawa (AIST, METI), (April 2001) Overview of Humanoid Robotics Project of METI, Proceedings of the 32nd ISR(International Symposium on Robotics), Japan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-6217510545780691937?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/6217510545780691937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/07/recent-popular-projects-in-humanoid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6217510545780691937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6217510545780691937'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/07/recent-popular-projects-in-humanoid.html' title='Recent Popular Projects in Humanoid Robotics - Article 3'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-6545836072557106264</id><published>2009-07-07T11:17:00.002+05:30</published><updated>2009-07-07T11:52:44.405+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Humanoid Robotics - Article 2</title><content type='html'>In their eagerness to make robots "think like humans," early humanoid researchers focused on high-level cognition and provided no mechanism for building control from the bottom up. Most of the systems modeled are not acquire their knowledge through interaction with the real world like humans. When situated in the real world, these robots possessed little mastery over it. Even in the fortunate event that sensors could accurately connect internal 'archetypes' to real-world objects, robots could only extend the knowledge push upon them in basic, systematic ways. Such robots carried out predetermined actions with no ability to react to unexpected features of the environment or task. &lt;br /&gt;&lt;br /&gt;Realizing the limitations of hard-coded, externally derived solutions, many within the AI community decided to look to fields such as neuroscience, cognitive psychology, and biology for new insight. The core of human action, it was argued, derives from motor skills and implicit behavior encodings that lie under the level of conscious awareness. Today, the question for Humanoid Robotics is how best to instruct these primitive behaviors to robots. Many researchers find it ineffective to directly hard-code such low-level behavior with imperative languages like C or C++ and instead use a more biologically motivated technique such as artificial neural networks.&lt;br /&gt;&lt;br /&gt;Researchers believed that they could use ANN (Artificial Neural Networks)s to simulate the distributed, parallel nature of computation in the brain, allowing skills and knowledge to be conditioned as implicit generalizations of repeated experience. As it turns out, ANNs fail to capture the recursive power of the human brain. Unlike an ANN where the structure of the network is usually fixed, the brain's highly integrated, well-ordered structure emerges through competition between separately evolving collectives of neurons. Although ANNs do not accurately model cognitive capacities of the human cortex, they do offer a truly unique and effective way to encode motor-skills and low-level behavior. It may be that, like the cerebellum and other, older structures of the brain, ANNs can provide a foundation on which high-level learning can be built. In any case, they have provided powerful insight into understanding both machine and biological learning. &lt;br /&gt;&lt;br /&gt;Other learning techniques such as reinforcement learning and genetic algorithms have also played a role in modeling various levels of learning. Reinforcement learning can be used as an 'unsupervised,' learning-with-a-critic approach where mappings from percepts to actions are learned inductively through trial and error. Other approaches use evolutionary methods that begin with an initial pool of program elements and use genetic operators such as recombination and mutation to generate successive generations of increasingly 'fit' controllers. Using these approaches and others, robots can learn by adjusting parameters, exploiting patterns, evolving rule sets, generating entire behaviors, devising new strategies, predicting environmental changes, and recognizing the strategies of opponents or exchanging knowledge with other robots. Such robots have the potential to acquire new knowledge at a variety of levels and to adapt existing knowledge to new purposes. Robots now learn to solve problems in ways that humans can scarcely understand.&lt;br /&gt;&lt;br /&gt;By using Automated Development through Real-World Interaction robots can learn by doing. The mechanical sophistication of a full-fledged humanoid body poses a devastating challenge to even the most robust learning technique. The more complex a humanoid body, the harder it is to place constraints necessary for productive learning. Ultimately, the conventional learning techniques described above are limited by the fact that they are tools wielded by human designers, rather than self-directed capabilities of the robot. Although robots will always require an initial program, this fact does not prevent them from building indefinitely, intentionally and creatively upon it. Researchers at MIT believe that the key to creating human-like behavior is to create a robot that can learn from natural interactions with a human. [1] Before we can transform a cognitive architecture into a developing mind, there are a host of difficult questions to be answered. How do we give humanoids the ability to impress their own meaning onto the world? How can humanoids direct their own development? How do we motivate this development? How much a priori skill and knowledge do we build in? Using what level of representation? What, if any, bounds should be imposed? But the answers for those questions have not well defined yet.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;David Bruemmer (2006), Humanoid Robotics, &lt;a href="http://www.inl.gov/adaptiverobotics/humanoidrobotics"&gt;http://www.inl.gov/adaptiverobotics/&lt;br /&gt;humanoidrobotics&lt;/a&gt;, downloaded on 24th May 2007&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-6545836072557106264?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/6545836072557106264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/07/humanoid-robotics-article-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6545836072557106264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6545836072557106264'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/07/humanoid-robotics-article-2.html' title='Humanoid Robotics - Article 2'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-2043694582644236747</id><published>2009-07-07T11:11:00.003+05:30</published><updated>2009-07-07T11:52:44.405+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humanoid Robotics'/><title type='text'>Humanoid Robotics - Article 1</title><content type='html'>Humanoid robotics is one of the emerging technologies in the world which has a long history also. Like many other new technologies, these early generations of commercially available humanoids are costly curiosities, useful for entertainment, but little else. But in time, the imagination is that they will carry out a wide variety of tasks in homes, battlefields, nuclear plants, government installations, factory floors, and even space stations. Humanoids will show emotion, forge relationships, make decisions, and develop as they learn through interaction with the environment. Already, humanoid robots can autonomously perform task decomposition necessary to carry out high-level, complex commands given through gesture and speech. Humanoids can adapt and orchestrate existing capabilities as well as create new behaviors using a variety of machine learning techniques.&lt;br /&gt;&lt;br /&gt;Humanoid Robotics also offers a unique research tool for understanding the human brain and body. Already, humanoids have provided revolutionary new ways for studying cognitive science. Using humanoids, researchers can represent their theories and take them to task at a variety of levels. When considering about the evolution of robotics history witnessed that in the second century B.C., Hero of Alexander constructed statues, doors and small mechanical animals that could be animated by water, air and steam pressure. By the eighteenth century, elaborate mechanical dolls were able to write short phrases, play musical instruments, and perform other simple, life-like acts. With the rise of the computer, people immediately began to envision the potential for encoding human intelligence into textual programs, but soon discovered that static programs and rule-based logic cannot capture the true essence of human intelligence. Nowadays there are full-scale humanoid robots that roughly imitate the physical dynamics and mechanical dexterity of the human body.&lt;br /&gt; &lt;br /&gt;Humanoid Robotics is not an attempt to recreate humans. The goal is not, nor should it ever be, to make machines that can be mistaken for or used interchangeably with real human beings. But the goal is to create a new kind of tool, fundamentally different from any we have yet seen because it is designed to work with humans as well as for them. At present, Humanoid Robotics is not a well-defined field, but rather an underlying impulse driving collaborative efforts that crosscut many disciplines. Mechanical, electrical and computer engineers, roboticists, computer scientists, artificial intelligence researchers, psychologists, physicists, biologists, cognitive scientists, neurobiologists, philosophers, linguists and artists all contribute and lay claim to the diverse humanoid projects around the world. Certainly, some projects choose to emphasize the form and mechanical function of the humanoid body. Others may focus on the software to animate these bodies. There are projects that use humanoid robots to model the cognitive or physical aspects of humans. Other projects are more concerned with developing useful applications for commercial use in service or entertainment industries.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Rather than distinguish humanoids by their physical construction, it is important to identify several complementary research areas that, so far, have stood out as distinct emphases. Ultimately, a fully-fledged humanoid robot will incorporate work from each of the areas below. &lt;br /&gt;&lt;br /&gt;1. Perception: This area includes computer vision as well as a great variety of other sensing modalities including taste, smell, sonar, IR, hap tic feedback, tactile sensors, and range of motion sensors. It also includes implementation of unconscious physiological mechanisms such as the vestibulo-ocular reflex, which allows humans to track visual areas of interest while moving.&lt;br /&gt;&lt;br /&gt;2. Human-robot interaction: This area includes the study of human factors related to the tasking and control of humanoid robots. How will we communicate efficiently, accurately, and conveniently with humanoids? Another concern is that many humanoids are, at least for now, large and heavy. How can we insure the safety of humans who interact with them? Much work in this area is focused on coding or training mechanisms that allow robots to pick up visual cues such as gestures and facial expressions that guide interaction.&lt;br /&gt;&lt;br /&gt;3. Learning and adaptive behavior: For robots to be useful in everyday environments, they must be able to adapt existing capabilities to cope with environmental changes. Eventually, humanoids will learn new tasks on the fly by sequencing existing behaviors.&lt;br /&gt;&lt;br /&gt;4. Legged locomotion: For humanoids to exploit the way in which we have structured our environment, they will need to have legs. They must be able to walk up stairs and steep inclines and over rough, uneven terrain.&lt;br /&gt; &lt;br /&gt;5. Arm control and dexterous manipulation: Researchers are working on agile tasks including catching balls, juggling, chopping vegetables, performing tele-surgery, and pouring coffee. From a mechanical point of view, robot arms have come a long way, even in the last year or so. Once large and heavy with noisy, awkward hydraulics, some humanoids now have sleek, compliant limbs with high strength to weight ratios. While mechanical innovation will and should continue, the real hard problem is how to move from brittle, hard-coded dexterity toward adaptive control where graceful degradation can be realized.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;References :&lt;br /&gt;David Bruemmer (2006), Humanoid Robotics, &lt;a href="http://www.inl.gov/adaptiverobotics/humanoidrobotics"&gt;http://www.inl.gov/adaptiverobotics/&lt;br /&gt;humanoidrobotics&lt;/a&gt;, downloaded on 24th May 2007&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-2043694582644236747?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/2043694582644236747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/07/humanoid-robotics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/2043694582644236747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/2043694582644236747'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/07/humanoid-robotics.html' title='Humanoid Robotics - Article 1'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-6849195693066390930</id><published>2009-07-04T15:54:00.002+05:30</published><updated>2009-07-04T16:05:14.993+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concurrent Programming'/><title type='text'>Mutual Exclusion - Concurrent Programming</title><content type='html'>Mutual exclusion (often abbreviated to mutex) algorithms are used in concurrent programming to avoid the simultaneous use of a common resource, such as a global variable, by pieces of computer code called critical sections. A critical section is a piece of code where a process or thread accesses a common resource. The critical section by itself is not a mechanism or algorithm for mutual exclusion. A program, process, or thread can have critical section in it without any mechanism or algorithm, which implements mutual exclusion.&lt;br /&gt;&lt;br /&gt;Examples of such resources are fine-grained flags, counters or queues, used to communicate between code that runs concurrently, such as an application and its interrupt handlers. The problem is acute because a thread can be stopped or started at any time.&lt;br /&gt;&lt;br /&gt;To illustrate: suppose a section of code is altering a piece of data over several program steps, when another thread, perhaps triggered by some unpredictable event, starts executing. If this second thread reads from the same piece of data, the data, which is in the process of being overwritten, is in an inconsistent and unpredictable state. If the second thread tries overwriting that data, the ensuing state will probably be unrecoverable. These shared data being accessed by critical sections of code, must therefore be protected, so that other processes which read from or write to the chunk of data are excluded from running.&lt;br /&gt;&lt;br /&gt;A mutex is also a common name for a program object that negotiates mutual exclusion among threads, also called a lock.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Reference:- &lt;a href="http://en.wikipedia.org/wiki/Mutual_exclusion"&gt;http://en.wikipedia.org/wiki/Mutual_exclusion&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-6849195693066390930?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/6849195693066390930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/07/mutual-exclusion-concurrent-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6849195693066390930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6849195693066390930'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/07/mutual-exclusion-concurrent-programming.html' title='Mutual Exclusion - Concurrent Programming'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7413381707733239824</id><published>2009-06-27T13:19:00.002+05:30</published><updated>2009-07-01T11:42:36.903+05:30</updated><title type='text'>Simple Translater using Google Language</title><content type='html'>&lt;iframe style='width:500px; height:375px;' src='http://www.popfly.com/users/404959/Simple%20Translator.small' frameborder='no' allowtransparency='true'&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-7413381707733239824?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7413381707733239824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/06/simple-calculator-using-google-language.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7413381707733239824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7413381707733239824'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/06/simple-calculator-using-google-language.html' title='Simple Translater using Google Language'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-6989050396154638382</id><published>2009-06-06T09:00:00.003+05:30</published><updated>2009-06-06T09:13:15.200+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C# - How to generate a Tree View accoring to iterative structure</title><content type='html'>Following methods can be used to generate a tree view according to a given iterative structure. The advantage of using these methods to create the tree view is they search for all the available child nodes also in to each and every node existing level. I have used following methods to load the folder structure of a SQL Report Server to a tree View. &lt;br /&gt;&lt;br /&gt;/// This method is used build the nodes of the treeview iteratively according  &lt;br /&gt;/// to the names passed by Build tree methods&lt;br /&gt;&lt;br /&gt; public void BuildNodesFromTokens(string[] tokens, TreeNodeCollection nodes)&lt;br /&gt;        {&lt;br /&gt;            string[] newtoks = new string[tokens.Length - 1];&lt;br /&gt;&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                if (nodes.Count &gt; 0)&lt;br /&gt;                {&lt;br /&gt;                    int matchFound = 0;&lt;br /&gt;&lt;br /&gt;                    foreach (TreeNode tr in nodes)&lt;br /&gt;                    {&lt;br /&gt;                        if (tokens[0].Equals(tr.Text))&lt;br /&gt;                        {&lt;br /&gt;                            for (int i = 0; i &lt; newtoks.Length; i++)&lt;br /&gt;                            {&lt;br /&gt;                                newtoks[i] = tokens[i + 1];&lt;br /&gt;                            }&lt;br /&gt;                            matchFound++;&lt;br /&gt;                            AddNode(newtoks, tr);&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                    if (matchFound == 0)&lt;br /&gt;                    {&lt;br /&gt;                        nodes.Add(new TreeNode(tokens[0]));&lt;br /&gt;&lt;br /&gt;                        if (tokens.Length - 1 &gt; 0)&lt;br /&gt;                        {&lt;br /&gt;                            nodes[nodes.Count - 1].ExpandAll();&lt;br /&gt;&lt;br /&gt;                            for (int i = 0; i &lt; newtoks.Length; i++)&lt;br /&gt;                            {&lt;br /&gt;                                newtoks[i] = tokens[i + 1];&lt;br /&gt;                            }&lt;br /&gt;                            AddChild(newtoks, nodes[nodes.Count - 1]);&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;&lt;br /&gt;                    nodes.Add(new TreeNode(tokens[0]));&lt;br /&gt;&lt;br /&gt;                    if (tokens.Length - 1 &gt; 0)&lt;br /&gt;                    {&lt;br /&gt;                        nodes[nodes.Count - 1].ExpandAll();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                        for (int i = 0; i &lt; newtoks.Length; i++)&lt;br /&gt;                        {&lt;br /&gt;                            newtoks[i] = tokens[i + 1];&lt;br /&gt;                        }&lt;br /&gt;                        AddChild(newtoks, nodes[nodes.Count - 1]);&lt;br /&gt;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            catch (Exception ex)&lt;br /&gt;            {&lt;br /&gt;                throw ex;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      /// This method is used to add the nodes for the tree view itreratively&lt;br /&gt;&lt;br /&gt; private void AddNode(string[] tokens, TreeNode node)&lt;br /&gt;        {&lt;br /&gt;            string[] newtoks = null;&lt;br /&gt;&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                if (tokens.Length != 0)&lt;br /&gt;                {&lt;br /&gt;                    newtoks = new string[tokens.Length - 1];&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                if (node.Nodes.Count &gt; 0)&lt;br /&gt;                {&lt;br /&gt;&lt;br /&gt;                    int matchFound = 0;&lt;br /&gt;&lt;br /&gt;                    foreach (TreeNode tr in node.Nodes)&lt;br /&gt;                    {&lt;br /&gt;                        if (tokens[0].Equals(tr.Text))&lt;br /&gt;                        {&lt;br /&gt;                            for (int i = 0; i &lt; newtoks.Length; i++)&lt;br /&gt;                            {&lt;br /&gt;                                newtoks[i] = tokens[i + 1];&lt;br /&gt;                            }&lt;br /&gt;                            matchFound++;&lt;br /&gt;                            AddNode(newtoks, tr);&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;                    if (matchFound == 0)&lt;br /&gt;                    {&lt;br /&gt;                        AddChild(tokens, node);&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                else if (newtoks != null)&lt;br /&gt;                {&lt;br /&gt;                    AddChild(tokens, node);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            catch (Exception ex)&lt;br /&gt;            {&lt;br /&gt;                throw ex;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/// This method will actually create the node and link properties of the  &lt;br /&gt;///last level of each node.&lt;br /&gt;&lt;br /&gt;private void AddChild(string[] tokens, TreeNode node)&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                node.Nodes.Add(new TreeNode(tokens[0]));&lt;br /&gt;&lt;br /&gt;                if (tokens.Length - 1 &gt; 0)&lt;br /&gt;                {&lt;br /&gt;                    string[] newtoks = new string[tokens.Length - 1];&lt;br /&gt;&lt;br /&gt;                    for (int i = 0; i &lt; newtoks.Length; i++)&lt;br /&gt;                    {&lt;br /&gt;&lt;br /&gt;                        newtoks[i] = tokens[i + 1];&lt;br /&gt;&lt;br /&gt;                    }&lt;br /&gt;                    node.Nodes[node.Nodes.Count - 1].ExpandAll();&lt;br /&gt;                    AddChild(newtoks, node.Nodes[node.Nodes.Count - 1]);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            catch (Exception ex)&lt;br /&gt;            {&lt;br /&gt;                throw ex;&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/3521747541502985402-6989050396154638382?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/6989050396154638382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/06/c-how-to-generate-tree-view-accoring-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6989050396154638382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6989050396154638382'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/06/c-how-to-generate-tree-view-accoring-to.html' title='C# - How to generate a Tree View accoring to iterative structure'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7173216819975717703</id><published>2009-06-06T08:41:00.002+05:30</published><updated>2009-06-06T08:54:17.289+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C# - How to connect to Active Directory</title><content type='html'>Following is a sample method in C#.NET that I have created to make a connection to Active Directory. Here parameters are defined as constants in different class.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; /// Method used to create an entry to the AD.&lt;br /&gt; /// Replace the path, user name, and password with the relevant Active directory.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public DirectoryEntry GetDirectoryEntry()&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                DirectoryEntry de   = new DirectoryEntry();&lt;br /&gt;                de.Path             = Config.ConfigSet[Constant.ConfigurationSection, Constant.ACTIVE_DIRECTORY_DEFAULT_PATH];&lt;br /&gt;                de.Username         = Config.ConfigSet[Constant.ConfigurationSection, Constant.AD_USER_NAME];&lt;br /&gt;                de.Password         = Config.ConfigSet[Constant.ConfigurationSection, Constant.AD_PASSWORD];  &lt;br /&gt;                return de;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            catch (Exception ex)&lt;br /&gt;            {&lt;br /&gt;                throw ex;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Following class contains the constants included in above method. It is actually not essential to define the constants but that makes your program code more easier to change or modify when parameter values changed without searching for each and every methods to modify them. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;internal class Constant&lt;br /&gt;    {&lt;br /&gt; internal const string ConfigurationSection          = "ActiveDirectory";&lt;br /&gt; internal const string ACTIVE_DIRECTORY_DEFAULT_PATH = "Defaultconnectionstring";&lt;br /&gt; internal const string AD_USER_NAME                  = "UserName";&lt;br /&gt; internal const string AD_PASSWORD                   = "Password";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Following method can be used to search for users in the active directory when you need to validate the users.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        /// Method to validate if a user exists in the AD.&lt;br /&gt;        &lt;br /&gt;        public bool UserExists(string UserName)&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                DirectoryEntry de           = GetDirectoryEntry();&lt;br /&gt;                DirectorySearcher deSearch  = new DirectorySearcher();&lt;br /&gt;                deSearch.SearchRoot         = de;&lt;br /&gt;&lt;br /&gt;                //search for the user name in the Active Directory&lt;br /&gt;    deSearch.Filter    = "(&amp;(objectClass=user)(samaccountname=" + UserName + "))";&lt;br /&gt;               &lt;br /&gt; SearchResult result   = deSearch.FindOne();&lt;br /&gt;&lt;br /&gt;                if (result != null)&lt;br /&gt;                    return true;&lt;br /&gt;                else&lt;br /&gt;                    return false;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            catch (Exception ex)&lt;br /&gt;            {&lt;br /&gt;                throw ex;&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/3521747541502985402-7173216819975717703?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7173216819975717703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/06/c-how-to-connect-to-active-directory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7173216819975717703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7173216819975717703'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/06/c-how-to-connect-to-active-directory.html' title='C# - How to connect to Active Directory'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-1509086858193515121</id><published>2009-04-29T08:33:00.000+05:30</published><updated>2009-04-29T08:35:55.181+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Service Bus'/><title type='text'>Sun GlassFish ESB in Action</title><content type='html'>Exciting features of GlassFish ESB&lt;br /&gt;&lt;br /&gt;    * Web services based upon EJB modules and web applications&lt;br /&gt;    * XML schema creation and WSDL development&lt;br /&gt;    * BPEL orchestration of web services using the BPEL service engine&lt;br /&gt;    * Web user interface design&lt;br /&gt;    * Storing data in a database table via the JDBC binding component&lt;br /&gt;    * Interfacing with a JMS queue using JMS binding component&lt;br /&gt;    * Assembly, deployment and testing of a composite application&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-1509086858193515121?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/1509086858193515121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/04/sun-glassfish-esb-in-action.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/1509086858193515121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/1509086858193515121'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/04/sun-glassfish-esb-in-action.html' title='Sun GlassFish ESB in Action'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-8916938113193142117</id><published>2009-04-06T11:39:00.002+05:30</published><updated>2009-05-13T10:13:13.352+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Mobile VPN Client Applications</title><content type='html'>In my literature survey I could not find details about open source mobile VPN Clients because there were information about only proprietary based mobile VPN client software available in the Internet. Among them Nokia is introducing Mobile VPN Client for S60 3rd Edition Feature Pack 1 extends the local network to mobile devices, and then employees can connect to the network virtually anytime from anywhere. This tool’s central management of security policies and updates over the air help provide uninterrupted service to mobile workers. This VPN client has key fetures of helping to secure mobile connections for business use and operator services, Supporting multiple authentications such as Public Key Infrastructure (PKI) based, Subscriber Identity Module (SIM) and Universal Subscriber Identity Module (USIM), its simplified set up requires no specialized management solutions and Client supports over-the-air provisioning of VPN configuration and updates, adding a layer of security to mobile devices (requires a compatible management solution). Nokia Mobile VPN Client is an IPsec VPN client that helps to secure the connection to compatible intranet and mobile operator services for access from mobile devices. It extends VPN use into Nokia mobile devices running S60 3rd Edition Feature Pack 1, such as Nokia E90 Communicator and Nokia E51 and management is based on the Open Mobile Alliance Device Management (OMA DM), and Nokia Intellisync Device Management can be used to manage the client. For existing customers with Nokia Security Service Manager, the VPN client also supports over-the-air provisioning and management. &lt;br /&gt;&lt;br /&gt;Global Technology Associates, Inc. (GTA) has introduced a Mobile VPN Client which provides the vital ability for remote users to initiate VPN communications with corporate resources. Using VPNs, "road warriors" or telecommuters can safely access corporate networks from unsecured public networks or un-trusted local networks. A VPN Connection can also be used to connect end users that need a secure "end user to host" connection to transmit sensitive information over an intranet. GTA Mobile VPN Client used in conjunction with firewall-to-firewall gateway VPN Connection provides a total IPSec VPN solution. GTA Mobile VPN Client meets IPSec standards. This tool has key features of Configuration Wizard for easy VPN setup, Support for NAT-T, USB Drive Mode - requiring a USB key drive to be inserted for the VPN policy to operate, Hidden Mode - to protect the VPN configuration on the workstation from being altered accidentally by users and it provides remote VPN capability to desktop and notebook computers running Microsoft Windows Vista or XP.&lt;br /&gt;&lt;br /&gt;Blue Ridge Networks has released its latest secure communications platform for securely connecting with remote offices and wireless mobile workers. The BorderGuard 6000 Secure Communications Platform comprises a "sixth-generation high security VPN appliance," client software for a range of devices including Pocket PCs, and a new management console, according to the company. Blue Ridge says the BorderGuard 6000 platform enables administrators to use their existing public key infrastructures such as DoD PKI and X.509 digital certificates, use the system's built-in certificates, or combine the two. The built-in digital certificate feature adds flexibility to an organization's security posture -- especially in scenarios where it's desirable to extend secure corporate LAN access to temporary employees or contractors without using the corporate X.509 certificate authority, according to the company. The platform integrates Online Certificate Status Protocol (OCSP) with CRL checking, along with Blue Ridge Networks's "Red List" function. The company says this combination gives administrators real-time revocation and local certificate authorization capabilities, even when the certificate authority is under centralized control.&lt;br /&gt;&lt;br /&gt;Blue Ridge claims that BorderGuard is unique in providing mobile device users with a "persistent roaming capability," enabling them to use the best available network access connection without having to reauthenticate. This is said to eliminate the possibility of man-in-the-middle attacks and session hijacking. Additionally, the BorderGuard 6000 Series is interoperable with any PKCS11 smart card or USB token making it fully compliant with HSPD-12 for strong two-factor authentication. Bluefire is a member of the Cisco Technology Developer Program, which sets criteria for interoperability testing with Cisco networking technology. Information about products that meet the criteria is made available to Cisco's enterprise and service provider customers. And they have released VPN client software for Cisco networking users who have Windows Mobile handheld devices. The company says its Mobile Security Suite 3.5 and Mobile Security VPN 2.0 applications have been certified interoperable with Cisco's VPN 3000 Concentrator. Mobile Security Suite 3.5 offers "full-featured" security including authentication, encryption, integrity monitoring, firewall, logging, and central management with full OTA (Over-the-Air) capability for security policy management, according to Bluefire. It operates seamlessly across LAN, WLAN, and GPRS/EDGE with no user intervention required.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-8916938113193142117?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/8916938113193142117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/04/mobile-vpn-client-applications.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8916938113193142117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8916938113193142117'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/04/mobile-vpn-client-applications.html' title='Mobile VPN Client Applications'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-5238458909969939380</id><published>2009-04-06T11:31:00.002+05:30</published><updated>2009-04-06T11:39:26.485+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Mobile Telnet Client Applications</title><content type='html'>There are many proprietary as well as open source mobile applications have been developed in the world for various purposes such as network protocol diagnosis, server diagnosis, configurations, etc. In addition there are various VPN client and SSH client applications also available to enable network security. Among them most mobile SSH client software can be downloaded free of charge but mobile VPN clients are totally vendor proprietary products. All of those products are targeted on diagnosing network servers. Although there is no exact Mobile tool purposely developed for doing diagnosis and configurations of network gateways such as routers, switches, etc.&lt;br /&gt;&lt;br /&gt;Among those tools in 2008 Strinum Software has introduced a telnet client tool called MobiTerm which runs on Windows 2000 and 2005 mobile operating systems on .NET compact framework. It is a Telnet Client for Windows Mobile/Smartphone with full VT ANSI support. It is optimized for use on Windows Mobile PDA's Smart phones and works great on landscape phones like the Motorola Q. Its custom-developed font allows for full screen (80 cols X 25 rows) to be viewed without scrolling on 320x240 pixel displays. MuTelnet 2.0.1 is another telnet client for J2ME/MIDP mobile devices. It has features of direct TCP connection to remote sites, an ANSI-compatible terminal with off-screen scrolling, an interface adapted to limited input capabilities, bookmark management, command history and control characters support. In order to run this application java compatible mobile platform is needed.&lt;br /&gt;&lt;br /&gt;Aleq Berka, a consultant in the Czech Republic has introduced a mobile version of PuTTY, an open source Telnet and SSH client which is fully open source tool for pocket pc. PocketPuTTY is distributed under the BSD license, and supports SSH1, SSH2, Telnet, private key authentication and color terminal emulation. It currently runs on Windows Mobile 2003 and Windows Mobile 5.0, requiring 1 MB of storage, 1 MB of memory, and a network connection. A back port to Windows Mobile Pocket PC 2002 is in the works. Berka has ambitious plans for further work with PocketPuTTY, including Smartphone compatibility, support for VGA and landscape screens, horizontal scrolling, font sizing, and more. &lt;br /&gt;&lt;br /&gt;Karl von Randow have developed another Mobile tool called MidpSSH as a SSH and Telnet client for MIDP 1.0 / 2.0 (J2ME) devices such as Java(tm)-capable cell phones and other mobile devices. MidpSSH is based upon Floyd SSH and Telnet Floyd by Radek Polak, who ported the Java (tm) Telnet/SSH Applet to the MIDP platform. MidpSSH adds a GUI and a number of other features to Floyd SSH. This also a free and open source software and it has features of SSH1, SSH2 and Telnet support, Saving session profiles, Macros for entering frequently typed commands, Interactive input mode including typing special keys and control key combinations, Cursor movement using keypad or game control, VT320 terminal emulation and Traffic usage reporting. The latest release of MidpSSH attempts to address the problems Blackberry users have been having downloading and installing MidpSSH. It fixes a protocol error that caused disconnects connecting to some SSH servers and addresses a security bug in the SSH implementation that could be exploited by remote servers.&lt;br /&gt;&lt;br /&gt;There is another tool called ZaTelnet Professional which is a Telnet/SSH/SSH1/SSH2/ Serial client for devices supporting Microsoft Compact Framework 1.0 or 2.0. It also emulates terminal VT100 (basically enough for working with Midnight Commander and others console programs). ZaTelnet Professional supports SSH2 authorization by "plain password", "private key file" and "keyboard interactive". The latter mode can be useful in using RSA SecurID tokens. There are four variants of this software available for Pocket PC with MS CF 1.0, Pocket PC with MS CF 2.0, MS Smartphone with CF 1.0 and MS Smartphone 2005 with CF2 for newest devices like MototolaQ, T-Mobile DASH, Samsung BlackJack and so one. ZaTelnet Professional offers extended opportunities for interface customization, such as full screen mode, different display sizes, 240x240, 240x480, 480x480 and 480x640 screen r resolutions, portrait and landscape orientation modes, virtual scrolling screen with adjustable size and different font sizes. Also, ZaTelnet features special floating keyboard for CF1 and CF2. Working with ZaTelnet, user can choose transparent or opaque mode, change keyboard size. Additional convenience comes from transparent floating keyboard, designed specially for Pocket PC version. Additionally, ZaTelnet enables you to change font size for console, virtual screen size and orientation without shutdown session. The client also enables easy saving, editing and restoring of sessions. &lt;br /&gt;&lt;br /&gt;In addition ZaTelnet Professional boasts a handful of improvements that make remote administration of Unix and other servers via Telnet/SSH1/SSH2/Serial (cable or BlueTooth) protocol using mobile devices simpler and more efficient. New professional version of zaTelnet features scrolled screen (standard 80x25 and 132x25 plus wide range of custom sizes), fingerprint server test, new crypto library. Also new to this release is key press preview indicator, connection progress indicator, ping utility, various codepages, line input mode, HTTP-proxy with basic web authentication and more other functional improvements.&lt;br /&gt;&lt;br /&gt;Joel Ivory Johnson, software developer of RDA providing solutions to clients using Microsoft technologies for web and Windows applications has developed another simple telnet client in .NET compact framework targeting the function of diagnosing server problems by easily connecting to the local network for testing as well as using its only Internet connection to connect to a server from a point outside the local network. This tool is targeted on Windows Mobile 5 Professional devices and the developer has tested the program on both the HTC Wizard (branded Cingular 8125) and an iPaq 4705. And the developer says that it was unable run this software on Motorola Q as a thread related exception that occurred. This tool’s UI was designed to be capable of being displayed on a device with 240x240 resolution but should really be run on a device with at least 320x240 resolution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-5238458909969939380?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/5238458909969939380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/04/existing-mobile-network-configuration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5238458909969939380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5238458909969939380'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/04/existing-mobile-network-configuration.html' title='Mobile Telnet Client Applications'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-134568597922131487</id><published>2009-03-24T14:31:00.001+05:30</published><updated>2009-04-06T11:37:09.015+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Need of a Mobile Tool to configure key network devices</title><content type='html'>As there is a higher explosion of mobile users and the proliferation of heterogeneous wireless networks, various communities carrying researches which are actively looking to securely and seamlessly integrate applications and services with mobile clients. This requires innovations in mobile clients, mobile user experience, service delivery network, platforms, enterprise applications, wireless communications, and unified management. In addition to that, other comprehensive research areas in wireless and mobile technology are Near Field Communications, Personal Area Wireless, Local Area Wireless, Regional Area Wireless, Broadband Wireless and Cellular Wireless.&lt;br /&gt;&lt;br /&gt;In this research domain there are various ongoing projects as well as successful projects which regard to provide mobile user experience to interconnect with private networks through mobile phone through service provider’s network and Internet. Among those projects there are different products in the market which enable functionalities to provide secure connections to compatible intranet and mobile operator services for access from mobile devices like mobile Virtual Private Network (VPN) Clients, Telnet Clients and SSH Clients, etc. There are open source products available in the market like Telnet Clients and SSH Clients for mobiles such as PUTTY, Midpssh, etc but VPN Clients available in the market are very expensive and vendor proprieties such as Nokia’s Mobile VPN Client, Bluefire Security Technologies’ VPN client software for Cisco networking users who have Windows Mobile handheld devices  and Global Technology Associates, Inc’s Mobile VPN Client, etc.&lt;br /&gt;&lt;br /&gt;Above mentioned various researches regards to wireless networking carried out by various organizations or communities like Cisco, Nokia, etc. And nowadays world’s Information Technological tasks have been come and coming to the control of human finger tips through mobile phones. Mobile user experience is more than just providing mere access to content or services in mobile format. Based on today's diverse content and service sources, constant mobility of users across heterogeneous wireless networks, privacy and security factors, the key areas of research that most communities interested in are, how can a mobile user maintain single identity, move profile, and context irrespective of client devices being used or wireless networks being traversed, how can a mobile user seamlessly operate across these diverse networks and continue to access content or service without any interruption, how can a mobile client with multiple air interfaces, automatically sense the communication environment and adapt to the mobile user preferences in terms of selecting wireless links, application specific bandwidth and Quality of Service (QoS) requirements, and service models, how can a mobile user gracefully recover from a service interruption or how can a mobile user can securely interconnect with his/her network through mobile and configure or trouble shoot network devices when he/ she is out of reach with the network, etc. &lt;br /&gt;&lt;br /&gt;Among the above mentioned problems that communities looking forward to researches, I have identified that the problems that the network administrators face when there is an emergency network device configuration or trouble shoot needed when he/she is out of reach of the network. As network administrators have day and night responsibility on keeping network reliability even when they not at reach with the network touch they have to run to office or to a place where a computer exists when a small problem occurred in a network device or small configuration needed. &lt;br /&gt;&lt;br /&gt;If there is a mobile application which facilitates above mentioned functionalities through it and enable administrators to access their network devices through high secure communication channel with user friendly command prompt console that will be a great help for them. Currently there is no exact product or solution which facilitates a Smart Mobile phone or PDA users to configure, access or trouble shoot network interconnecting devices such as routers, switches, etc using a console loaded to the mobile device. Therefore, if such configuration tool has been developed in the future that will definitely help network administrators a lot by enabling network trouble shooting, change configuration of network devices from any ware in the world they which reduces network administrative burden very much. Therefore my final year project is based on developing such a Mobile sytem and currently I am working on that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-134568597922131487?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/134568597922131487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/03/need-of-mobile-tool-to-configure-key.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/134568597922131487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/134568597922131487'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/03/need-of-mobile-tool-to-configure-key.html' title='Need of a Mobile Tool to configure key network devices'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-4763760950850464335</id><published>2009-01-28T16:18:00.003+05:30</published><updated>2009-01-28T16:31:38.409+05:30</updated><title type='text'>How to increase traffic to your site</title><content type='html'>Do you still thinking about how to increase traffic to your site?&lt;br /&gt;&lt;br /&gt;I also were as you 2 weeks before but now I found a very best solution and I like to share it with you.&lt;br /&gt;&lt;br /&gt;It is very simple and one of the best methods to increase traffic to your site.&lt;br /&gt;That is to put an &lt;a href="http://www.entrecard.com"&gt;Entrecard&lt;/a&gt; to your Site.&lt;br /&gt;What you have to do is just vist &lt;a href="www.entrecard.com"&gt;www.entrecard.com&lt;/a&gt; and create a free account there.&lt;br /&gt;Then you get a widget code to add as a Advertisement component to your site.&lt;br /&gt;Then through &lt;a href="www.entrecard.com"&gt;Entrecard&lt;/a&gt; you can go to others' blogs/sites and click drop on their widgets. As long as they see your drop they will come to your site and drop on your widget too. &lt;br /&gt;&lt;br /&gt;By doing this process of dropping you can increase traffic to your site as well as you will receive some credits for each drop and you can buy Ads from others' sites to advertise your blog or site their sites too. keep on doing this process you will soon understand how much of traffic increases into your Site/Blog. Do as much as drops to others sites who registered with &lt;a href="www.entrecard.com"&gt;Entrecard&lt;/a&gt; and buy Ads from other using credits you earn.&lt;br /&gt;&lt;br /&gt; &lt;a href="www.entrecard.com"&gt;Entrecard&lt;/a&gt; facility is totally free. You don't want spend any money. Don't be delay to try it out if you need to publish your site to users all over the world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-4763760950850464335?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/4763760950850464335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/01/how-to-increase-traffic-to-your-site.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4763760950850464335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/4763760950850464335'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/01/how-to-increase-traffic-to-your-site.html' title='How to increase traffic to your site'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7668155784680169459</id><published>2009-01-28T15:49:00.003+05:30</published><updated>2009-01-28T16:18:41.868+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adsense'/><title type='text'>How to earn money through Google Adsense</title><content type='html'>Do you have a site of your own or a blog of your own?&lt;br /&gt;There is an opportunity for you to earn money through Google &lt;a href="http://"&gt;Adsense&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;What you have to do... Just Few Steps&lt;br /&gt;&lt;br /&gt;Have a Google account of your own and just Register your details with Google &lt;a href="https://www.google.com/adsense"&gt;Adsense&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;After log in to Google &lt;a href="https://www.google.com/adsense"&gt;Adsense&lt;/a&gt; After registering your Site or Blog with Google &lt;a href="https://www.google.com/adsense"&gt;Adsense&lt;/a&gt; you will soon receive an e mail from Google by confirming your registration within one or two days. Then you can log into Google &lt;a href="https://www.google.com/adsense"&gt;Adsense&lt;/a&gt; and create the types of link Ads or banner Ads you need to add to your Site or Blog and copy the code of the Ad to the right place of your Site or Blog. If you are blogging with &lt;a href="http://www.blogspot.com"&gt;Blogger&lt;/a&gt; like me it is very easy to add &lt;a href="https://www.google.com/adsense"&gt;Adsense&lt;/a&gt; units to your blog. Just Go to Layout and Click on Add new Component and Choose Google &lt;a href="https://www.google.com/adsense"&gt;Adsense&lt;/a&gt; and Add the necessary &lt;a href="https://www.google.com/adsense"&gt;Adsense&lt;/a&gt; unit. That's all. very Simple steps.&lt;br /&gt;&lt;br /&gt;Now you have already added &lt;a href="https://www.google.com/adsense"&gt;Adsense&lt;/a&gt; to your Site or Blog. Then How you can earn money?&lt;br /&gt;Let me explain. Each and every time visitor of your site will click on a Google Ad of your Site Google will Add money ($$) to your &lt;a href="https://www.google.com/adsense"&gt;Adsense&lt;/a&gt; account. Whenever you reach for 100$ you can redeem money. Google Will pay you money through PayPal or Send you a Check through ordinary mail service. That's all. Please remember not to click on your Ads by your own. That's strictly prohibited and Google will block your &lt;a href="https://www.google.com/adsense"&gt;Adsense&lt;/a&gt; account if such kind of unethical behavior reported or sensed by their monitoring system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-7668155784680169459?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7668155784680169459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/01/how-to-earn-money-through-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7668155784680169459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7668155784680169459'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/01/how-to-earn-money-through-google.html' title='How to earn money through Google Adsense'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-8693765087968687584</id><published>2009-01-16T12:03:00.002+05:30</published><updated>2009-01-16T12:14:55.839+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>IEEE 802.1X</title><content type='html'>The 802.1X standard is designed to enhance the security of wireless local area networks (WLANs) that follow the IEEE 802.11 standard. 802.1X provides an authentication framework for wireless LANs, allowing a user to be authenticated by a central authority. The actual algorithm that is used to determine whether a user is authentic is left open and multiple algorithms are possible. 802.1X uses an existing protocol, the Extensible Authentication Protocol (EAP-Extensible Authentication Protocol) that works on Ethernet, Token Ring, or wireless LANs, for message exchange during the authentication process [1].&lt;br /&gt;&lt;br /&gt;In a wireless LAN with 802.1X, a user (known as the supplicant) requests access to an access point (known as the authenticator). The access point forces the user (the user's client software) into an unauthorized state that allows the client to send only an EAP start message. The access point returns an EAP message requesting the user's identity. The client returns the identity, which is then forwarded by the access point to the authentication server, which uses an algorithm to authenticate the user and then returns an Accept or reject message back to the access point. Assuming an Accept was received, the access point changes the client's state to authorized and normal traffic can now take place. The authentication server may use the Remote Authentication Dial-In User Service (RADIUS), although 802.1X does not specify it. [1] The old Wired Equivalent Privacy (WEP) protocol has been discredited so thoroughly that its authentication and encryption capabilities are not considered sufficient for use in enterprise networks. In response to the WEP fiasco, many wireless LAN vendors have latched onto IEEE 802.1x standard to help authenticate and secure both wireless and wired LANs. The wildcard with 802.1x protocol is interoperability [2].&lt;br /&gt;&lt;br /&gt;References&lt;br /&gt;[1]Definiton for 802.1X, &lt;a href="http://searchmobilecomputing.techtarget.com/sDefinition/0,,sid40_gci787174,00.html"&gt;http://searchmobilecomputing.techtarget.com/sDefinition/0,,sid40_gci787174,00.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[2]IEEE 802.1X, &lt;a href="http://en.wikipedia.org/wiki/802.1x "&gt;http://en.wikipedia.org/wiki/802.1x&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-8693765087968687584?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/8693765087968687584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/01/ieee-8021x.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8693765087968687584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/8693765087968687584'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/01/ieee-8021x.html' title='IEEE 802.1X'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-1811354058966458091</id><published>2009-01-16T11:59:00.001+05:30</published><updated>2009-01-16T12:14:55.840+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>PPP (Point to Point Protocol)</title><content type='html'>Point-to-Point Protocol (PPP) is a data link protocol commonly used to establish a direct connection between two networking nodes [8]. That means it provides a standard method for transporting multi-protocol datagrams over point-to-point links.&lt;br /&gt;PPP is comprised of three main components:&lt;br /&gt;&lt;br /&gt;      1. A method for encapsulating multi-protocol datagrams.&lt;br /&gt;      2. A Link Control Protocol (LCP) for establishing, configuring, and testing the data-link connection.&lt;br /&gt;      3. A family of Network Control Protocols (NCPs) for establishing and configuring different network-layer protocols.&lt;br /&gt;&lt;br /&gt;The PPP encapsulation provides for multiplexing of different network-layer protocols simultaneously over the same link.  The PPP encapsulation has been carefully designed to retain compatibility with most commonly used supporting hardware. In order to be sufficiently versatile to be portable to a wide variety of environments, PPP provides a Link Control Protocol (LCP).  The LCP is used to automatically agree upon the encapsulation format options, handle varying limits on sizes of packets, detect a looped-back link and other common misconfiguration errors, and terminate the link.  Other optional facilities provided are authentication of the identity of its peer      on the link, and determination when a link is functioning properly and when it is failing. Point-to-Point links tend to exacerbate many problems with the current family of network protocols.  For instance, assignment and management of IP addresses, which is a problem even in LAN environments, is especially difficult over circuit-switched point-to-point links (such as dial-up modem servers).  These problems are handled by a family of Network Control Protocols (NCPs), which each manage the specific needs required by their respective network-layer protocols [2].&lt;br /&gt;&lt;br /&gt;PPP is used over various types of physical networks including serial cable, phone line, trunk line, cellular telephone, specialized radio links, or fiber optic links such as SONET. Most Internet service providers (ISPs) use PPP for customer dial-up access to the Internet. Two encapsulated forms of PPP, Point-to-Point Protocol over Ethernet (PPPoE) and Point-to-Point Protocol over ATM (PPPoA), are used by ISPs to connect Digital Subscriber Line (DSL) Internet service. PPP is commonly used to act as a data link layer protocol for connection over synchronous and asynchronous circuits, where it has largely outdated the older, non-standard Serial Line Internet Protocol (SLIP), and telephone company mandated standards (such as Link Access Protocol, Balanced (LAPB) in the X.25 protocol suite). PPP was designed to work with several network layer protocols, including Internet Protocol (IP), Novell's Internetwork Packet Exchange (IPX), NBF and AppleTalk. PPP is specified in RFC 1661 [2, 2].&lt;br /&gt;&lt;br /&gt;References&lt;br /&gt;[1]Point to Point Protoocl, &lt;a href="http://en.wikipedia.org/wiki/Point-to-Point_Protocol"&gt;http://en.wikipedia.org/wiki/Point-to-Point_Protocol&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[2]W. Simpson, Editor, rfc 1661 - The Point to Point Protocol (July 1994), Network Working Group&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-1811354058966458091?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/1811354058966458091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/01/ppp-point-to-point-protocol.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/1811354058966458091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/1811354058966458091'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/01/ppp-point-to-point-protocol.html' title='PPP (Point to Point Protocol)'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-7889409609965728528</id><published>2009-01-02T10:25:00.004+05:30</published><updated>2009-01-16T12:14:55.840+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Importance of packet switch network, in Broadband context</title><content type='html'>In network communication there are three main methods that the payloads are traveling through the network form source to destination. Those are Packet Switching, Cell Switching and Circuit Switching. Here I am going to explain about the importance of Packet Switched network with reference to broadband technologies. In a packet switched network data packets (text, sound, video, etc.) are fragmented in to small packets and labeled with source, destination addresses and fragment ID in the header and release to the network to go to the destination [1]. The very important feature of packet switching networks is that there is no exact route for each packet to go through towards the destination. Packets are allowed to reach the destination by traveling through the multiple routes by selecting the proper route according to the network convergence, bandwidth, etc.&lt;br /&gt;&lt;br /&gt;Broadband technology is the one of the very popular networking technologies these days and there are both fixed line technologies and wireless technologies has been fascinated with high functionality through broadband concept. Fixed broadband technologies rely on direct physical connection to the subscriber’s residence or business. Some examples for those fixed broadband technologies are Hybrid Fiber Coax: Cable TV &amp; Cable modems, Digital Subscriber Line (xDSL), Broadband Power Line (BPL) and Fiber to the Home/Curb. And the wireless broadband technologies in practice are Microwave Links, MMDS (Multichanel Multipoint Distribution Service), LMDS (Local Multipoint Distribution Service), FSO (Free Space optics), Wi-Fi (Wireless Fidelity), WiMax (Worldwide interoperability for Microwave Access), Satellite and 3G (third Generation Mobile Network) [2].&lt;br /&gt;&lt;br /&gt;The concept of broadband technology is providing wider bandwidth and high speed network access through the existing network technologies. Therefore in order to achieve this goal the features of packet switched networks is very critical and helpful. As there is no exact predefined route for the all packets in packet switched network high bandwidth can be achieved by allowing packets to travel through the best paths where high bandwidth can be achieved with less convergence traffic. And also reliability can be achieved as there is not exact pre defined route for packets, they are able to go through a reliable path when a particular path is down. Therefore application of the packet switching concepts into broadband technologies is very effective and important.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[1]&lt;a href="http://en.wikipedia.org/wiki/Packet-switched"&gt;Packet Switching, http://en.wikipedia.org/wiki/Packet-switched, Downloaded on 20th December 2008&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[2] WP 6321, Broadband Technology Overview White Paper (June 2005) ISO 9000 registered&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-7889409609965728528?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/7889409609965728528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2009/01/importance-of-packet-switch-network-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7889409609965728528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/7889409609965728528'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2009/01/importance-of-packet-switch-network-in.html' title='Importance of packet switch network, in Broadband context'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-6925807998225345791</id><published>2008-11-08T16:01:00.004+05:30</published><updated>2008-11-08T16:07:50.679+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Service Bus'/><title type='text'>Apache Axis2/C</title><content type='html'>Apache Axis2/C is a Framework implemented in the C programming language. Apache Axis2/C can be used to provide and deploy Enterprise Service Buses easily. This support SOAP 1.1, SOAP 1.2 and REST type web services. WS-Addressing WS-Policy and WS-Security Policy are building in to Axis2C. &lt;br /&gt;&lt;br /&gt;During the time people start Apache Axis2C there was a soap engine called Axis C++ and most of people asked why implement Axis2 architecture using C rather than using C++. The main idea behind selecting C to implement Axis2 architecture was when it is going to integrate the soap engine in different platforms we can’t expect whole set of C++ libraries. So it would be hard to integrate the engine in to pure C based platforms (most of the UNIX based platforms). Due to select of C as the programming language to implement Axis2 architecture there were some problems due to C being a procedural programming language. When Axis2 architecture was design it was designed with Object Oriented way since its first implementation was done in Java. To achieve the Object Oriented Architecture in Axis2 people used Pseudo Object Oriented Architecture using macros.&lt;br /&gt;&lt;br /&gt;It is based on the extensible and flexible Axis2 architecture. It has been implemented with portability and ability to embed. Apache Axis2/C  Support for one-way messaging (In-Only) and request response messaging (In-Out) through the Enterprise Service Bus and also can create client applications such as service client API , more advanced operation client API and etc Easily. Apache Axis2/C has Inbuilt HTTP server called simple axis server and ability to enable SSL support, Basic HTTP Authentication. Module architecture, mechanism helps to extend the SOAP processing model of our ESB. Axis2/C can be configured at runtime. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Key features of Axis2C&lt;/span&gt;&lt;br /&gt;Major task of this soap engine is sending soap messages and when request soap message comes to the engine it invoke the correct operation in the correct service and send back the response soap message. So this type of a model is called xml in/out model and to achieve this in/out processing model it needs to have light weight xml object model. So Apache Axis2 architecture (Figure 3.2) uses an object model called AXIOM to achieve this feature as a separate sub project. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SRVrRaFysPI/AAAAAAAAAFk/NXjH90UetGo/s1600-h/2.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 158px;" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SRVrRaFysPI/AAAAAAAAAFk/NXjH90UetGo/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5266233286085226738" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 1: Axis2/C Architecture&lt;br /&gt;&lt;br /&gt;Axis2C provide a way to consume a web service by providing client API and it allows user to write their own web service using the service API. Axis2C support multiple web services specification in web services stack. WS-Addressing, is build in to Axis2C and to achieve WS-Security by using Axis2C security module called Rampart/C and WS-Reliable messaging can be achieve by using Sandesha2/C which is the RM module of Axis2C. Axis2C support REST type web services too like Axis2/Java and it contains C code generation tool which was build on top of java code generation tool in Axis2. Now Axis2C is capable of supporting dynamic invocation model which uses the WSDL and XML schema and invoke to web service on the fly. This allows invoking a service without having solid idea about the service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-6925807998225345791?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/6925807998225345791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2008/11/apache-axis2c-apache-axis2c-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6925807998225345791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6925807998225345791'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2008/11/apache-axis2c-apache-axis2c-is.html' title='Apache Axis2/C'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Egl3Jnl8JzA/SRVrRaFysPI/AAAAAAAAAFk/NXjH90UetGo/s72-c/2.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-5315599456770532823</id><published>2008-11-08T15:05:00.001+05:30</published><updated>2008-11-08T15:06:27.168+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Service Bus'/><title type='text'>Enterprise Service Bus on Axis2/C</title><content type='html'>&lt;span style="font-weight:bold;"&gt;1. Introduction&lt;/span&gt;&lt;br /&gt;There is a great trend of developing middle wares such as Enterprise services Bus in the IT industry in order to improve the quality of the integration between services, Systems, etc with a common standard and in cost effective manner. An ESB will reduce the cost of coding interfaces for each systems or services as it provides common integration bus architecture. From our solution of ESB we have addressed the need of an ESB which can perform very fast to inter communicate and to provide other services. This chapter provides a detailed description about the users, inputs, outputs, process and technology that implements our solution.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. Our Approach&lt;/span&gt;&lt;br /&gt;The Enterprise Service Bus (ESB) is the piece of middleware that lies between the business applications and enables communication among them. Ideally, the ESB should be able to replace all direct contact with the applications on the bus, so that all communication takes place via the bus. In order to achieve this objective, the bus must encapsulate the functionality offered by its component applications in a meaningful way. This is typically accomplished through the use of an enterprise message model. The message model defines a standard set of messages that the ESB will both transmit and receive. When it receives a message, it routes it to the appropriate application. Often, because the application was not built with the message model in mind, the ESB will have to transform the message into a legacy format that is understandable by the application.&lt;br /&gt;&lt;br /&gt;The connection between the enterprise message model and the functionality offered by the applications is crucial. If the message model does not completely encapsulate the applications' functionality, then other applications that desire that functionality will be forced to bypass the bus and invoke the applications directly. Doing so violates all of the principles outlined above, and negates many of the advantages of using an ESB. ESB should be able to integrate the communication between applications which were used PERL, RUBY, PITHON, PHP, JAVA, etc. with high performance (Speed). The main draw back of the existing ESBs is the performance issue. For the applications such as stock market systems, etc needs very high performance for their functionalities and nowadays it is a need of an ESB which provides a speedy bus service.&lt;br /&gt;&lt;br /&gt;Our approach is to implement an ESB to address those above mentioned issues and provide very comprehensive functionalities. Our ESB is implemented in C language. PERL, RUBY, PITHON, PHP and all other scripting languages have extensions which are implemented in C. As the ESB is implemented in C it is compatible for the systems implemented using those languages. It can resolve the performance issue as using an ESB implemented in C can communicate with those systems without language problems. Our implementation of ESB will provide the facility to extend the system and it does not loose the compatibility with the systems. &lt;br /&gt;&lt;br /&gt;We have developed an ESB with most common ESB functionalities and it is capable of communicating between two web services or through Service and client and without allowing the services or client to interact directly ESB provides the facilitation. The advantage of this is that we can use various types of modules to the ESB to provide various functionalities at a same place. For an example when we add security modules to the ESB it can provide all the necessary security functionalities between services and clients through the message processing. As the ESB provides the integration between them, there is no need to bother about the applications’ programmed language or the flat form. All applications are integrated through XML messaging and they should have to obey for same particular protocol or policy standards.The message exchange is almost always done in a platform-independent manner and this allows the ESB to integrate applications that run on a variety of mainframe and client-server operating systems.&lt;br /&gt;&lt;br /&gt;In addition to those features and benefits, our ESB is capable of concurrent improvement by adding more and more modules according to the needs of the organization as well as systems. It can perform fast than ever the other existing ESBs provided and we have added the IP based routing, logging, service container, feature of operating system and programming language agnostic and a standardized security model to authorize, authenticate and audit through the ESB. The organizations which use multiple technologies for their systems, services on multiple flat forms which needed high performance integration will be benefited of using this ESB. And also incremental changes can be applied with zero down-time, it reduces the integration coding but need more configurations, provide predefined ready-for-use service types and it increase flexibility and easier to change as requirements change. In addition to that as the ESB is implemented using open source technologies users can get the advantage of using it free of cost without license problems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-5315599456770532823?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/5315599456770532823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2008/11/enterprise-service-bus-on-axis2c.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5315599456770532823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/5315599456770532823'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2008/11/enterprise-service-bus-on-axis2c.html' title='Enterprise Service Bus on Axis2/C'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-2234369580935569622</id><published>2008-11-08T14:57:00.002+05:30</published><updated>2008-11-08T15:03:05.997+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Service Bus'/><title type='text'>Existing Enterprise Service Buses and Issues</title><content type='html'>&lt;span style="font-weight:bold;"&gt;1. Introduction&lt;/span&gt;&lt;br /&gt;There was requirement for a middleware that brings together both integration technologies and runtime services to make business services widely available. The main purpose was to reuse the available systems in the organizations and expand those using new technologies. This need satisfied by the Enterprise Service Bus (ESB).The ESB is the piece of software that lies between the business applications and enables communication among them. Ideally, the ESB should be able to replace all direct contact with the applications on the bus, so that all communication takes place via the bus. In order to achieve this objective, the bus must encapsulate the functionality offered by its component applications in a meaningful way. This is typically accomplished through the use of an enterprise message model. The message model defines a standard set of messages that the ESB will both transmit and receive. When it receives a message, it routes it to the appropriate application. Often, because the application was not built with the message model in mind, the ESB will have to transform the message into a legacy format that is understandable by the application. The software responsible for effecting these transformations is referred to as an adapter (analogous to a physical adapter). It is not widely agreed whether these adapters should be considered part of the ESB or not.&lt;br /&gt;&lt;br /&gt;In recent years, this concept of ESB has gained huge popularity among software companies. Today we concern ESB as the best solution for meeting today's enterprise application integration challenges by providing a software infrastructure that enables SOA also. The leading IT research firm, Gartner Group, predicts a majority of large enterprises will employ ESB middle wares in near future. In fact Roy Schulte of Gartner Group coined the phrase ESB.&lt;br /&gt;&lt;br /&gt;Today Software Companies who providing middle ware solutions use ESB solutions and some other solutions which are not consider as ESB solutions available in market. Below 2 and 3 we discuss about those solutions. Al though we discuss here some of them are now out of the market.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. ESB Solutions&lt;/span&gt;&lt;br /&gt;ESB is an open standards-based distributed synchronous or asynchronous messaging middleware that provides secure interoperability between enterprise applications via XML, Web services interfaces and standardized rules-based routing of documents. In practice, this means that data files are passed to and from their destinations based on pre-established guidelines that are common to all parties sharing the information to ensure that the data maintains its integrity as it is routed.&lt;br /&gt;&lt;br /&gt;The multi-language and multi-platform design of an ESB allows enterprises to process data between applications from various sources. Two common distributed computing architectures used by ESB are J2EE and .NET. &lt;br /&gt;ESB is an extension of EAI, an earlier form of middleware, but ESB adds several key functions as follows. &lt;br /&gt;&lt;br /&gt;•Transformation – the ability to transform XML documents from one data format into another so that the receiving party can interface with the data in an application format that is different from the one in which it is sent. &lt;br /&gt;•Portability – the ability to share the data between different computer systems and operating environments. &lt;br /&gt;•Load balancing/clustering – the ability to distribute processing among several devices so that no one device becomes overloaded &lt;br /&gt;•Failover – the ability to transfer messaging functions to another server if one should fail during the data exchange. &lt;br /&gt;&lt;br /&gt;Clients often want to build only an ESB because that involves a technology challenge without the need for messy business requirements. Building just an ESB becomes an IT field of dreams, where IT builds an ESB and then hopes some SOA will come along and use it. Such an ESB-oriented architecture loses the benefits of SOA. It does not create business value. In fact, it incurs cost without reaping immediate benefit.&lt;br /&gt;Sonic ESB, WSO2 Open source ESB, Cape Clear Server and Polar Lake Integrator are examples of commercial ESB products.&lt;br /&gt;&lt;br /&gt;However, among number of different vendors those provide ESB solutions, some of which focus purely on SOAP/HTTP and others who provide multi-protocol capabilities. Because these vendors span the horizon from big enterprise generalists (app servers), to mid-tier enterprise integration providers, all the way to smaller, ESB/integration specific-providers; there doesn't seem to be an established consensus regarding the key requirements for an ESB.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2.1 Sonic Middle ware&lt;/span&gt;&lt;br /&gt;Sonic middle ware introduced the first ESB product in 2002 as an alternative architecture for application centric integration products to meet the scalability challenge.[1] In contrast to hub spoke architecture, ESB architecture does not rely on a central server to perform most of the processing. ESB architecture contains a bus that transports the message from one ESB endpoint to another. An endpoint is an application. Typically, an ESB bus utilizes JMS as the messaging service. &lt;br /&gt;&lt;br /&gt;An end point of an application is connected to the bus via a bus connector. An application can post data to the ESB bus and receive data from the ESB bus. The bus connector is like a small message broker. It contains the routing, transformation and business rules that are relevant for the application it is connected to. It receives a message from the bus that is initiated by another end point. It can also send a message to another endpoint through the bus connector and the bus. The exchanged message contains its message itinerary. Based on the message itinerary, a bus connector knows what to do with the message after it has been processed. This architecture is also termed peer to peer. The message translation, transformation, and routing rules are designed centrally but can be deployed selectively to each bus connector. This keeps the bus connector lightweight. Because this architecture functionally acts like many small message brokers, the processing is distributed to the systems the bus connectors reside on. Figure 2.1 shows the concept of ESB architecture used by the Sonic.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SRVbwBPv_rI/AAAAAAAAAE4/UgHNSWfPJlk/s1600-h/untitled.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 161px;" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SRVbwBPv_rI/AAAAAAAAAE4/UgHNSWfPJlk/s320/untitled.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5266216219806006962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Figure 1: Simplified ESB Architecture used by Sonic&lt;br /&gt;&lt;br /&gt;Sonic Software firm was the first company to offer an ESB product. Sonic Software can be used to expand and integrate legacy systems use in large organizations. These organizations don’t like to remove their old software systems. Because those are very familiar to their employees and they trust these systems 100%. Even they believe they know the all the bugs and probabilities of occurring a bug in their systems. But the problem arises when they need to expand their systems or when they want to add new features to their existing systems. If they decide to do this new part by a new technology they have to plug it to old system. Sonic mainly address this problem. And they mainly focus on language called progress. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2.2 Open source ESB build by WSO2 Company&lt;/span&gt;&lt;br /&gt;The WSO2 ESB can be used in a number of different scenarios [9] as follows.&lt;br /&gt;•Add order and consistency to an existing SOA seeded “bottom-up” within a company&lt;br /&gt;•Expose existing services over different Schema, QoS or transports, or to expose Legacy systems as Web services&lt;br /&gt;•Provide scale-up and performance management for SOAP and HTTP systems via load balancing, throttling and caching&lt;br /&gt;•Expose services securely to partners which require access control, security and audit ability&lt;br /&gt;&lt;br /&gt;Wso2 Company developed ESB is a totally open source product. They developed it using Java. Due to Java it has some short comings. Java doesn’t have extensions of Languages like Perl, Ruby, PITHON, PHP and other scripting languages. Therefore integrating the systems developed in above mentioned languages is a problem today.&lt;br /&gt;&lt;br /&gt;Another famous ESB architecture called Fiorano ESB architecture includes a central ESB enterprise server that allows for centralized administration of the ESB environment. The central server also serves as component repository and state engine. The other components of Fiorano ESB architecture are the peer servers. The peer servers are the bus connectors. JMS is used to serve as the messaging service for transporting messages along the bus. &lt;br /&gt;&lt;br /&gt;There are lot of issues and limitations of the wso2 ESB. Some of them are listed below.&lt;br /&gt;•Unwanted Java Script alert displayed when updating the Cache Mediator.&lt;br /&gt;•Problem when creating an endpoint from a WSDL and the address of the WSDL is a https address. &lt;br /&gt;•Once a Proxy Service is removed the relevant statistics of that particular Proxy service should be removed as well. &lt;br /&gt;•ESB fails to start when WSDL URI is not found.&lt;br /&gt;•VFS Transport Listener Error closing stream. &lt;br /&gt;•Cursor not available in some of the popup windows. &lt;br /&gt;•When the wso2-esb.log is about 2MB. The browser hangs. &lt;br /&gt;•Problems with web console in Fire fox 3.0 RC1. &lt;br /&gt;&lt;br /&gt;As the WSO2 ESB 1.7 is the newest version of the wso2 Enterprise Service Bus and it depends on the Apache Synapse ESB v1.2, it inherits the list of known issues of the Apache Synapse ESB 1.2 release listed below.&lt;br /&gt;•Does not support throttling by concurrency within a cluster. &lt;br /&gt;•Does not support HTTP some of the REST operations (such as put/delete etc). &lt;br /&gt;•Does not yet support JTA transactions. &lt;br /&gt;•Does not yet support load balancing with session affinity using SOAP sessions. &lt;br /&gt;•The XSLT mediator will not report errors encountered in a provided style sheet.&lt;br /&gt; &lt;br /&gt;Dependencies are currently allowed to be removed from the admin console, while live reference remains. The ESB UI currently does not perform a check on references before the elements are allowed to be removed. Thus there is a possibility of defining references to non-existent endpoints, sequences etc. as well as removing them while live references still exist.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2.3 Other Solutions&lt;/span&gt;&lt;br /&gt;Before the ESB gain its popularity there are few solutions address the problem which solved by the ESB. Those are messaging services; hub spoke products and message brokers etc and there is most commonly using middle ware called CORBA in the industry. The Common Object Request Broker Architecture (CORBA) is an emerging open distributed object computing infrastructure being standardized by the Object Management Group. CORBA is using as a software for normalizing the method-call semantics between application objects that reside either in the same address space (application) or remote address space (same host, or remote host on a network).&lt;br /&gt;&lt;br /&gt;Many application domains (such as avionics, telecommunications, and multimedia) require real-time guarantees from the underlying networks, operating systems, and middleware components to achieve their quality of service (QOS) requirements. In addition to providing end-to-end QOS guarantees, applications in these domains must be flexible and reusable. Requirements for flexibility and reusability motivate the use of object-oriented middleware like the Common Object Request Broker Architecture However, the performance levels, and QOS enforcement features of current CORBA implementations are not yet suited for hard real-time systems and constrained latency systems (e.g., teleconferencing).&lt;br /&gt;&lt;br /&gt;Among those technologies of alternatives of ESB architecture there were standards used like JMS for messaging service, Extensible style sheet language transformation (XSLT) for message transformation, and JCA and Simple Object Access protocol (SOAP) (for web service connectivity) for application connectivity. These are also the technologies of all hub spoke products currently available. Although most message brokers started with proprietary connection protocols, they have evolved to include the standards such as JMS, JCA, and SOAP. Because the message brokers have a longer history, they also support not so widely accepted standards, such as Microsoft technology adapters and transformation capabilities for non XML documents.&lt;br /&gt; &lt;br /&gt;The main difference between ESB and a message broker is their architectures. ESB relies on many light weight servers to accomplish message processing. The only thing centralized is the message bus, which is usually the JMS messaging service. At this point, a message broker is clearly the more mature technology. It is inherently harder to manage transactions and ordering of messages while control is diffused across the network. When there is a central server, such as the hub in the hub spoke architecture, ordering of messages from multiple origins to a single destination can be managed centrally. A message broker is currently easier to administer than ESB architecture. Instead of having to deploy designs to several ESB agents, hub spoke architecture requires deployment only to the central hub server. The amount of system administration work increases with the number of agents plugged into the ESB bus. Despite these shortcomings, which are related to ESB architecture’s relative young age, there is growing consensus that application centric integration products with ESB architecture will gain prominence in the future. Many Software research laboratories working on this issue to produce ESB products which offer functionalities that address the current shortcomings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-2234369580935569622?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/2234369580935569622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2008/11/existing-enterprise-service-buses-and.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/2234369580935569622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/2234369580935569622'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2008/11/existing-enterprise-service-buses-and.html' title='Existing Enterprise Service Buses and Issues'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Egl3Jnl8JzA/SRVbwBPv_rI/AAAAAAAAAE4/UgHNSWfPJlk/s72-c/untitled.bmp' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-3528125677373996770</id><published>2008-11-08T14:46:00.001+05:30</published><updated>2008-11-08T14:51:33.564+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Service Bus'/><title type='text'>Enterprise Service Bus - New trend of integration middleware</title><content type='html'>Open source software has become very popular and very important in the world today. These days software tools are selling in large quantity of money. Therefore in the countries like Sri Lanka, India and other third world countries this Free and open source software is a good solution for low cost use. When we consider about Open Source communities, software developers are the basic element and they make lot of contribution to keep this community in a high standard. Although many economical activities are based on project's results, Open Source Projects themselves do not seem to follow economical principles for various reasons. There are many open source communities developing large variety of software products based on problems in many fields.&lt;br /&gt;&lt;br /&gt;Among all those open source software solutions still there is no appropriate software solution for communication between software systems in different architectures and technologies. As a solution for this matter Enterprise Service Bus (ESB) concept is developed to build the middleware. The existing systems have many issues on performance, connecting and extending.&lt;br /&gt;&lt;br /&gt;Nowadays companies used to have lot of applications for their different usages in companies, but it is very hard to bring all of those software solutions in to same platform or the architecture. According to different needs the system’s technology should be changed. As a result application Integration is a biggest challenge today for many enterprises and building an enterprise service bus is probably the most cost effective way to address this issue. &lt;br /&gt;&lt;br /&gt;The word "bus" is referenced to the physical bus and here it means for carrying bits between devices in a computer. The enterprise service bus is enterprise architecture to support for communication via the bus, which acts as a message broker between applications. In this complex architecture, the ESB is the piece of software that lies between the business applications and enables communication among them. Ideally, the ESB should be able to replace all direct contact with the applications on the bus, so that all communication takes place via the bus. &lt;br /&gt;&lt;br /&gt;ESB is in an Application which connects resources, applications and services in a distributed environment. This software enable the connection between applications which are running in parallel  in different platforms, written in different  languages, using different models and containing different architecture. But there are several Enterprise Service Bus Applications available already. But the language on which they have been written doesn’t have extensions of Languages like Perl, Ruby, PITHON, PHP and other scripting languages. So, integrating the systems developed in above mentioned languages is a problem today. All extensions of them are available in C. So if we implement the ESB in C, it will benefit the people who are developing Applications in above mentioned languages. This may widen the structure of a distributed System and make fast the process of a system when comparing with other systems. Because the C functions can be called directly into the applications developed in the languages mentioned already.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-3528125677373996770?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/3528125677373996770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2008/11/enterprise-service-bus-new-trend-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3528125677373996770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/3528125677373996770'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2008/11/enterprise-service-bus-new-trend-of.html' title='Enterprise Service Bus - New trend of integration middleware'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-6546830605514682263</id><published>2008-10-21T11:41:00.006+05:30</published><updated>2008-11-06T17:34:01.361+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='MS SQL Reporting Services'/><title type='text'>Configuring Report Server</title><content type='html'>I have taken this tutorial from http://msdn.microsoft.com and I hope this will help you to start using MS Reporting Services to develop and manage your reports.&lt;br /&gt;&lt;br /&gt;This tutorial introduces the tools used to configure a report server, manage report server content and operations, and create and publish reports and report models. The purpose of this tutorial is to help new users understand how to find and open each tool.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Reporting Services Configuration Tool &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Use the Reporting Services Configuration Tool tool to specify service accounts, create or upgrade the report server database, modify the connection properties, set virtual directories, manage encryption keys, and configure the report server for unattended report processing and e-mail report delivery.&lt;br /&gt;&lt;br /&gt;To start the Reporting Services Configuration tool &lt;br /&gt;&lt;br /&gt;1.Click Start, point to Programs, point to Microsoft SQL Server 2005, point to Configuration Tools, and click Reporting Services Configuration.&lt;br /&gt;The Report Server Installation Instance Selection dialog box appears so that you can select the report server instance you want to configure.&lt;br /&gt;&lt;br /&gt;2.In Machine Name, specify the name of the computer on which the report server instance is installed. The name of the local computer is specified by default, but you can also type the name of a remote SQL Server instance. &lt;br /&gt;If you specify a remote computer, click Find to establish a connection. The report server must be configured for remote administration in advance. For more information, see Configuring a Report Server for Remote Administration.&lt;br /&gt;&lt;br /&gt;3.In Instance Name, choose the SQL Server 2005 Reporting Services instance that you want to configure. Only SQL Server 2005 report server instances appear in the list. You cannot configure earlier versions of Reporting Services.&lt;br /&gt;&lt;br /&gt;4.Click Connect.&lt;br /&gt;&lt;br /&gt;5.To verify that you launched the tool, compare your results to the following image&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SRLYxEgWibI/AAAAAAAAAEw/1Uv3Jw469n0/s1600-h/1.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 241px;" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SRLYxEgWibI/AAAAAAAAAEw/1Uv3Jw469n0/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5265509251884157362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Report Manager &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Use Report Manager if you want to use a Web-based tool to set permissions, manage subscriptions and schedules, and work with reports and models. You can also use Report Manager to view reports.&lt;br /&gt;&lt;br /&gt;Before you can open Report Manager, you must have sufficient permissions (initially, only members of the local Administrators group have permissions that provide access to Report Manager Features). Report Manager provides different pages and options depending on the role assignments of the current user. Users who have no permissions will get an empty page. Users with permissions to view reports will get links that they can click to open the reports. To learn more about permissions, see Tutorial: Setting Permissions in Reporting Services.&lt;br /&gt;&lt;br /&gt;To start Report Manager&lt;br /&gt; &lt;br /&gt;1.Open Microsoft Internet Explorer 6.0 or later.&lt;br /&gt;&lt;br /&gt;2.In the address bar of the Web browser, type the Report Manager URL. By default, the URL is http://&lt;serverName&gt;/reports. You can use the Reporting Services Configuration tool to confirm the server name and virtual directory name. For more information about URLs used in Reporting Services, see Configuring Report Server Virtual Directories.&lt;br /&gt;&lt;br /&gt;3.Report Manager opens in the browser window. The startup page is the Home folder. Depending on permissions, you might see additional folders, hyperlinks to reports, and resource files within the startup page. You might also see additional buttons and commands on the toolbar.&lt;br /&gt;&lt;br /&gt;4.To verify that you launched the tool, compare your results to the following image:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SRLYxNChcGI/AAAAAAAAAEo/Ir-VvRCi8_U/s1600-h/2.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 198px;" src="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SRLYxNChcGI/AAAAAAAAAEo/Ir-VvRCi8_U/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5265509254174961762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Management Studio &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Report server administrators can use Management Studio to manage a report server alongside other SQL Server component servers. Management Studio provides almost identical functionality as Report Manager, but with additional support for managing other server types in the same management workspace. For more information, see Introducing SQL Server Management Studio.&lt;br /&gt;&lt;br /&gt;To start SQL Server Management Studio &lt;br /&gt;&lt;br /&gt;1.Point to Start, point to All Programs, point to Microsoft SQL Server 2005, and then click SQL Server Management Studio.&lt;br /&gt;The Connect to Server dialog box appears. It should look similar to the following diagram:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SRLYw_Ih-vI/AAAAAAAAAEg/GM_YGoL_N-0/s1600-h/3.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 208px; height: 154px;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SRLYw_Ih-vI/AAAAAAAAAEg/GM_YGoL_N-0/s320/3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5265509250442066674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2.If the Connect to Server dialog box does not appear, in Object Explorer, click Connect and then select Reporting Services.&lt;br /&gt;&lt;br /&gt;3.In the Server type list, select Reporting Services. If Reporting Services is not on the list, it is not installed.&lt;br /&gt;&lt;br /&gt;4.In the Server name list, select a report server instance. Local instances appear in the list. You can also type the name of a remote SQL Server instance.&lt;br /&gt;&lt;br /&gt;5.Click Connect. You can expand the root node to view predefined folders for reports, shared schedules, and security. If reports or other items are already on the report server, they will appear in the folder hierarchy.&lt;br /&gt;&lt;br /&gt;6.To verify that you launched the tool, compare your results to the following image&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SP2BPsU5t5I/AAAAAAAAAD4/ES-61TP9CxU/s1600-h/8.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_Egl3Jnl8JzA/SP2BPsU5t5I/AAAAAAAAAD4/ES-61TP9CxU/s320/8.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5259502046435456914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Business Intelligence Development Studio with Report Designer and Model Designer &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Report Designer and Model Designer are two design tools that are available within Business Intelligence Development Studio. The design surfaces in the tools include tabbed windows, wizards, and menus used to access report and model authoring features. The design tools become available when you choose a Report Server Project, a Report Server Wizard, or a Report Model Project template. To learn more, see Introducing Business Intelligence Development Studio.&lt;br /&gt;&lt;br /&gt;To start Report Designer &lt;br /&gt;&lt;br /&gt;1.Click Start, point to All Programs, point to Microsoft SQL Server 2005, and then click Business Intelligence Development Studio. &lt;br /&gt;&lt;br /&gt;2.On the File menu, point to New, and then click Project. &lt;br /&gt;&lt;br /&gt;3.In the Project Types list, click Business Intelligence Projects.&lt;br /&gt;&lt;br /&gt;4.In the Templates list, click Report Server Project. The following diagram shows how the project templates appear in the dialog box:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SP2BPna6AtI/AAAAAAAAAEA/78DGGbI462A/s1600-h/7.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SP2BPna6AtI/AAAAAAAAAEA/78DGGbI462A/s320/7.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5259502045118464722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5.Type a name and location for the project, or click Browse and select a location.&lt;br /&gt;&lt;br /&gt;6.Click OK. Business Intelligence Development Studio opens with the Visual Studio start page. Solution Explorer provides categories for creating reports and data sources. You can use these categories to create new reports and data sources. Tabbed windows appear when you create a report definition. The tabbed windows are Data, Layout, and Preview. To get started on your first report, see Tutorial: Creating a Basic Report. To learn more about query designers you can use within Report Designer, see Query Design Tools in Reporting Services.&lt;br /&gt;&lt;br /&gt;7.To verify that you launched the tool, compare your results to the following image:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SP2BPhGwBOI/AAAAAAAAAEI/7f0fjuRkhYU/s1600-h/6.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SP2BPhGwBOI/AAAAAAAAAEI/7f0fjuRkhYU/s320/6.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5259502043423311074" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To start Model Designer &lt;br /&gt;&lt;br /&gt;1.Click Start, point to All Programs, point to Microsoft SQL Server 2005, and then click Business Intelligence Development Studio. &lt;br /&gt;&lt;br /&gt;2.On the File menu, point to New, and then click Project. &lt;br /&gt;&lt;br /&gt;3.In the Project Types list, click Business Intelligence Projects.&lt;br /&gt;&lt;br /&gt;4.In the Templates list, click Report Model Project.&lt;br /&gt;5.Type a name and location for the project, or click Browse and select a location.&lt;br /&gt;&lt;br /&gt;6.Click OK. Business Intelligence Development Studio opens with the Visual Studio start page. Solution Explorer provides categories for creating models, data sources, and data views. The design surface changes when you define a data source connection. To get started on your first model, see Tutorial: Creating a Report Model.&lt;br /&gt;&lt;br /&gt;7.To verify that you launched the tool, compare your results to the following image. The image shows Model Designer with an open model:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SP2BP-2rufI/AAAAAAAAAEQ/ZPw4lcl36Zk/s1600-h/5.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_Egl3Jnl8JzA/SP2BP-2rufI/AAAAAAAAAEQ/ZPw4lcl36Zk/s320/5.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5259502051408984562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Report Builder &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Use Report Builder to create ad hoc reports that use published models as a data source. You can save reports from Report Builder to a report server. To practice these skills, see Report Builder Tutorials.&lt;br /&gt;&lt;br /&gt;To start Report Builder &lt;br /&gt;&lt;br /&gt;1.In your Web browser, type the Report Manager URL in the address bar. By default, the URL is http://&lt;servername&gt;/reports. &lt;br /&gt;&lt;br /&gt;2.Click Report Builder. The Report Builder button is located alongside other buttons on the toolbar:&lt;br /&gt; &lt;br /&gt;If you do not see the Report Builder button, you might not have permissions. To find out what permissions you need, see Configuring a Report Server for Report Builder Access. Users who upgraded Reporting Services from an earlier version must also modify permissions. For more information, see Updating Role-Based Security for Report Builder Access.&lt;br /&gt;&lt;br /&gt;You can also launch Report Builder directly from a URL. For more information, see How to: Start Report Builder.&lt;br /&gt;&lt;br /&gt;3.To verify that you launched the tool, compare your results to the following image:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SP2BP5Vh5AI/AAAAAAAAAEY/W2CN6MA4FNU/s1600-h/4.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SP2BP5Vh5AI/AAAAAAAAAEY/W2CN6MA4FNU/s320/4.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5259502049927750658" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521747541502985402-6546830605514682263?l=pubudini.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pubudini.blogspot.com/feeds/6546830605514682263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pubudini.blogspot.com/2008/10/i-have-taken-this-tutorial-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6546830605514682263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521747541502985402/posts/default/6546830605514682263'/><link rel='alternate' type='text/html' href='http://pubudini.blogspot.com/2008/10/i-have-taken-this-tutorial-from.html' title='Configuring Report Server'/><author><name>Pubudini Prasanna</name><uri>http://www.blogger.com/profile/08383054920945221448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_Egl3Jnl8JzA/TGjacXZaUmI/AAAAAAAAAN4/rS2HHLUHbpk/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Egl3Jnl8JzA/SRLYxEgWibI/AAAAAAAAAEw/1Uv3Jw469n0/s72-c/1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521747541502985402.post-8420757060415773876</id><published>2008-08-26T14:59:00.003+05:30</published><updated>2008-11-06T17:34:01.362+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='MS SQL Reporting Services'/><title type='text'>Installing Reporting Services 2005 to a already installed 2005 SQL Server </title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 11"&gt;&lt;meta name="Originator" content="Microsoft Word 11"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cstu23%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:1305624413; 	mso-list-type:hybrid; 	mso-list-template-ids:180492498 67698699 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l0:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Wingdings;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Installing Reporting Services 2005 to a SQL Server 2005&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;To install SQL Reporting Services 2005 component to a SQL database server following steps have to be followed.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;Step 01&lt;/b&gt; – In Control Panel go to ‘Add or Remove Programs’ and select the SQL Server 2005 which have already installed and click ‘Change’ button.&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SLPNqUc1kGI/AAAAAAAAACQ/YtMc4SpQXxE/s1600-h/1.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Egl3Jnl8JzA/SLPNqUc1kGI/AAAAAAAAACQ/YtMc4SpQXxE/s320/1.bmp" alt="" id="BLOGGER_PHOTO_ID_5238756918489878626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 11"&gt;&lt;meta name="Originator" content="Microsoft Word 11"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cstu23%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Step 02&lt;/b&gt; – When following window appears click the link ‘&lt;u&gt;To install new component, click here&lt;/u&gt;’ &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SLPNqn-h69I/AAAAAAAAACY/L_Bd5Sp_2zQ/s1600-h/2.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_Egl3Jnl8JzA/SLPNqn-h69I/AAAAAAAAACY/L_Bd5Sp_2zQ/s320/2.bmp" alt="" id="BLOGGER_PHOTO_ID_5238756923731471314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 11"&gt;&lt;meta name="Originator" content="Microsoft Word 11"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cstu23%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;
