<?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-37791959</id><updated>2011-12-26T03:27:19.267+05:30</updated><category term='Coding'/><category term='Synchrounous web service call error'/><category term='silverlight 2'/><category term='Asynchronous call problem'/><title type='text'>Sriwantha</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>60</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-37791959.post-1541588613351421005</id><published>2011-12-02T16:47:00.001+05:30</published><updated>2011-12-02T16:47:58.809+05:30</updated><title type='text'>Saving a WPF Content to a Bitmap</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h5&gt;WPF has some really handy classes in it.&amp;nbsp; Have you seen RenderTargetBitmap?&amp;nbsp; Basically, it's a simple way to capture a bitmap of any WPF Visual.&amp;nbsp; It works with 3D too:&lt;/h5&gt; &lt;p&gt;RenderTargetBitmap bmp = new RenderTargetBitmap(&lt;br&gt;width, height, 96, 96, PixelFormats.Pbgra32); &lt;p&gt;bmp.Render(myViewport3D); &lt;p&gt;Wanna copy that image to the clipboard so you can paste it into some other application? &lt;p&gt;Clipboard.SetImage(bmp); &lt;p&gt;Wanna save that image to a PNG file? &lt;p&gt;PngBitmapEncoder png = new PngBitmapEncoder(); &lt;p&gt;png.Frames.Add(BitmapFrame.Create(bmp)); &lt;p&gt;using (Stream stm = File.Create(filepath)) &lt;p&gt;{ &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; png.Save(stm); &lt;p&gt;} &lt;p&gt;Nifty.&amp;nbsp; The pictures in this series of blog entries were rendered in just this fashion.&amp;nbsp; But there are a couple of details worth mentioning. &lt;p&gt;When using RenderTargetBitmap, you should probably erase it before you draw anything into it: &lt;p&gt;Rectangle vRect = new Rectangle(); &lt;p&gt;vRect.Width = width; &lt;p&gt;vRect.Height = height; &lt;p&gt;vRect.Fill = Brushes.White; &lt;p&gt;vRect.Arrange(new Rect(0, 0, vRect.Width, vRect.Height)); &lt;p&gt;bmp.Render(visual); &lt;p&gt;If your Viewport3D was created offscreen, it's not ready to draw.&amp;nbsp; You need to give it a size (the same as the bitmap you're rendering into) and call Measure() and Arrange() to get it ready: &lt;p&gt;myViewport3D.Width = width; &lt;p&gt;myViewport3D.Height = height; &lt;p&gt;myViewport3D.Measure(new Size(width, height)); &lt;p&gt;myViewport3D.Arrange(new Rect(0, 0, width, height)); &lt;p&gt;Note that none of the above is specific to the 3D features of WPF.&amp;nbsp; RenderTargetBitmap just works with a Viewport3D like any other visual.&amp;nbsp; This is one of the best things about WPF:&amp;nbsp; The 3D features are not special or weird.&amp;nbsp; They're seamlessly integrated into the framework. &lt;p&gt;If you have experience programming with some other 3D API such as OpenGL or Direct3D (upon which WPF is built, by the way), you are probably accustomed to thinking of 3D stuff as very distinct from other stuff.&amp;nbsp; Simple things like getting a 3D graphic to appear in the same window next to a listbox can require all kinds of gymnastics.&amp;nbsp; WPF doesn't have those sorts of boundaries.&amp;nbsp; If you want to put an animated 3D scene as the graphic for a toolbar button, you can. &lt;p&gt;That level of integration is deeply neato.&amp;nbsp; &lt;p&gt;Just one more detail about RenderTargetBitmap, and this one &lt;i&gt;is&lt;/i&gt; sort-of 3D-specific: &lt;p&gt;If your Viewport3D was created offscreen and you're using our friend ScreenSpaceLines3D, you'll need to make sure your lines get scaled at least once.&amp;nbsp; Since I hacked my copy of ScreenSpaceLines3D.cs to remove the use of CompositionTarget.Rendering, I simply call my Rescale() method on every instance just after I call Measure() and Arrange() on the offscreen Viewport3D.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-1541588613351421005?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/1541588613351421005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=1541588613351421005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/1541588613351421005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/1541588613351421005'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2011/12/saving-wpf-content-to-bitmap.html' title='Saving a WPF Content to a Bitmap'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-2030923387144307252</id><published>2011-07-17T20:33:00.001+05:30</published><updated>2011-07-17T20:36:24.124+05:30</updated><title type='text'>.NET Volatile</title><content type='html'>&lt;p&gt;Applying &lt;code&gt;volatile&lt;/code&gt; doesn’t prevent a write followed by a read from being swapped, and this can create brainteasers. Joe Duffy illustrates the problem well with the following example: if &lt;code&gt;Test1&lt;/code&gt; and &lt;code&gt;Test2&lt;/code&gt; run simultaneously on different threads, it’s possible for &lt;code&gt;a&lt;/code&gt; and &lt;code&gt;b&lt;/code&gt; to both end up with a value of 0 (despite the use of &lt;code&gt;volatile&lt;/code&gt; on both &lt;code&gt;x&lt;/code&gt;and &lt;code&gt;y&lt;/code&gt;): &lt;p&gt;class MyVolatileTest{&lt;br&gt;&amp;nbsp; volatile int x, y;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp; void Test1()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Executed on one thread&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Volatile write (release-fence)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int a = y;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Volatile read (acquire-fence)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp; void Test2()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Executed on another thread&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; y = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Volatile write (release-fence)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int b = x;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Volatile read (acquire-fence)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br&gt;&amp;nbsp; }&lt;br&gt;} &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;table border="1" cellspacing="0" cellpadding="2" width="490"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="488"&gt;&lt;strong&gt;The MSDN documentation states that use of the &lt;code&gt;volatile&lt;/code&gt; keyword ensures that the most up-to-date value is present in the field at all times. This is incorrect, since as we’ve seen, a write followed by a read &lt;em&gt;can&lt;/em&gt; be reordered&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-2030923387144307252?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/2030923387144307252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=2030923387144307252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2030923387144307252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2030923387144307252'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2011/07/net-volatile.html' title='.NET Volatile'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-1600861678559070047</id><published>2011-07-14T04:36:00.001+05:30</published><updated>2011-07-14T04:36:54.981+05:30</updated><title type='text'>Quickly create a large binary tree</title><content type='html'>&lt;p&gt;Whenever we try to do a small problem related to binary trees it takes ages to write the basic code to populate a large enough binary tree. Here is a small code to quickly construct a binary search tree initialized with random values.  &lt;p&gt;static void Main(string[] args)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int numberOfNodes = 10;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Random rand = new Random();&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int[] randomValues = Enumerable.Repeat(0, numberOfNodes).Select(i =&amp;gt; rand.Next(0, 100)).ToArray();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //sort the array&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int[] binaryTreeValues = (from x in randomValues orderby x select x).ToArray();&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BNode root = null;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Construct(ref root, ref binaryTreeValues, 0, binaryTreeValues.Length - 1);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;}&lt;br&gt;&lt;/p&gt; &lt;p&gt;&lt;br&gt;public static void Construct(ref BNode root, ref int[] array, int start, int end)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (start &amp;gt; end)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; root = null;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (start == end)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; root = new BNode(array[start]);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int split = (start + end) / 2;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; root = new BNode(array[split]);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Construct(ref root.Left, ref array, start, split - 1);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Construct(ref root.Right, ref array, split + 1, end);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;/p&gt; &lt;p&gt;public class BNode&lt;br&gt;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int ID;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public BNode Left;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public BNode Right;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public BNode(int ID)&lt;br&gt;&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; this.ID = ID;&lt;br&gt;&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; public override string ToString()&lt;br&gt;&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; return this.ID.ToString();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-1600861678559070047?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/1600861678559070047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=1600861678559070047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/1600861678559070047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/1600861678559070047'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2011/07/quickly-create-large-binary-tree.html' title='Quickly create a large binary tree'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-3127038238957220566</id><published>2011-07-14T04:15:00.001+05:30</published><updated>2011-07-14T04:15:42.324+05:30</updated><title type='text'>Knapsack Problem in C#</title><content type='html'>&lt;p&gt;Let’s say, you have some items to be packed in a space limited duffel bag. As you can’t pack everything, you prefer to take only the valuable items. At least this is what we do when we are heading for a holiday in a tropical island. This is a classic knapsack problem where we can use dynamic programming approach to prevent exponential running time. There are plenty of materials in web that explain how this algorithm works. A good video tutorial is available on youtube (&lt;a href="http://www.youtube.com/watch?v=EH6h7WA7sDw"&gt;http://www.youtube.com/watch?v=EH6h7WA7sDw&lt;/a&gt; ) &lt;p&gt;However, as I didn’t find any C# implementation of Knapsack problem I thought of writing a small code that demonstrate how to tackle this problem.  &lt;p&gt;Here is the code for that.  &lt;p&gt;static void Main(string[] args)&lt;br&gt;{&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item a = new Item(1, 3, 5);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item b = new Item(2, 2, 3);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Item c = new Item(3, 1, 4);&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;Item&amp;gt; items = new List&amp;lt;Item&amp;gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; items.Add(a);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; items.Add(b);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; items.Add(c);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int BagCapacity = 5;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KnapSackProblem problem=new KnapSackProblem();&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int totalValueOfItems = 0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;Item&amp;gt; itemsToBePacked = problem.FindItemsToPack(items, BagCapacity, out totalValueOfItems);&lt;br&gt;}&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;class KnapSackProblem&lt;br&gt;{&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public List&amp;lt;Item&amp;gt; FindItemsToPack(List&amp;lt;Item&amp;gt; items, int capacity,out int totalValue)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int[,] price = new int[items.Count + 1, capacity + 1];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool[,] keep = new bool[items.Count + 1, capacity + 1];&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 1; i &amp;lt;= items.Count; i++)&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;&amp;nbsp;&amp;nbsp; Item currentItem = items[i - 1];&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; for (int space = 1; space &amp;lt;= capacity; space++)&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; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (space &amp;gt;= currentItem.Weight)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int remainingSpace = space - currentItem.Weight;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int remainingSpaceValue = 0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (remainingSpace &amp;gt; 0)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; remainingSpaceValue = price[i - 1, remainingSpace];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int currentItemTotalValue = currentItem.Price + remainingSpaceValue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentItemTotalValue &amp;gt; price[i - 1, space])&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keep[i, space] = true;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; price[i, space] = currentItemTotalValue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keep[i, space] = false;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; price[i, space] = price[i - 1, space];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&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; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;Item&amp;gt; itemsToBePacked = new List&amp;lt;Item&amp;gt;();&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int remainSpace = capacity;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int item = items.Count;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (item &amp;gt; 0)&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;&amp;nbsp;&amp;nbsp; bool toBePacked = keep[item, remainSpace];&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; if (toBePacked)&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; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itemsToBePacked.Add(items[item - 1]);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; remainSpace = remainSpace - items[item - 1].Weight;&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; }&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; item--;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; totalValue = price[items.Count,capacity];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return itemsToBePacked;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;public class Item&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int ID;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int Weight;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int Price;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Item(int id, int weight, int value)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ID = id;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Weight = weight;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Price = value;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override string ToString()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "ID="+ID+",W=" + Weight + ",V=" + Price;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Hopefully this will save some of your programming time!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-3127038238957220566?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/3127038238957220566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=3127038238957220566' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/3127038238957220566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/3127038238957220566'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2011/07/knapsack-problem-in-c.html' title='Knapsack Problem in C#'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-6227935025189229623</id><published>2011-06-17T12:53:00.001+05:30</published><updated>2011-06-17T12:53:43.591+05:30</updated><title type='text'>.NET application domain</title><content type='html'>&lt;p&gt;An application domain is the CLR equivalent of an operation system’s&lt;br&gt;process. An application domain is used to isolate applications from one&lt;br&gt;another. This is the same way an operating system process works. The&lt;br&gt;separation is required so that applications do not affect one another.&lt;br&gt;This separation is achieved by making sure than any given unique&lt;br&gt;virtual address space runs exactly one application and scopes the&lt;br&gt;resources for the process or application domain using that addess space. &lt;p&gt;However, a CLR application domain is seperate from a process. It is&lt;br&gt;contained within an operating system process. A single CLR operating&lt;br&gt;system process can contain multiple application domains. There are some&lt;br&gt;major pluses to having application domains within a single process. &lt;ul&gt; &lt;li&gt;Lower system cost – many application domains can be contained within a single sytem process.  &lt;li&gt;The application in an application domain can be stopped&lt;br&gt;without affecting the state of another application domain running in&lt;br&gt;the same process.  &lt;li&gt;A fault or exception in on application domain will not&lt;br&gt;affect other application domains or crash the entire process that hosts&lt;br&gt;the application domains.  &lt;li&gt;Configuration information is part of an application domains scope, not the scope of the process.  &lt;li&gt;Each application domain can have different security access levels assigned to them, all within a single process.  &lt;li&gt;Code in one application domain cannot directly access code in another application domain. (* see below)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;So you see, the CLR is like a mini-operating system. It runs a&lt;br&gt;single process that contains a bunch of sub-process, or application&lt;br&gt;domains. &lt;p&gt;* Direct communication cannot be acheived across application domains.&lt;br&gt;Application domains can still talk to eachother by passing objects via&lt;br&gt;marshalling by value (unbound objects), marshalling by reference&lt;br&gt;through a proxy (AppDomain-bound objects). There is a third type of&lt;br&gt;object called a context-bound object which can be marshalled by&lt;br&gt;reference across domains and also within the context of its own&lt;br&gt;application domain. Because of the verifiable type-safety of managed&lt;br&gt;code, the CLR can provide fault isolation between domains at a much&lt;br&gt;lower cost than an operating system process can. The static type&lt;br&gt;verification used for isolation does not require the same process&lt;br&gt;switches or hardware ring transitions that an operating system process&lt;br&gt;requires.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-6227935025189229623?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/6227935025189229623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=6227935025189229623' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/6227935025189229623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/6227935025189229623'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2011/06/net-application-domain.html' title='.NET application domain'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-2981990592030336363</id><published>2011-06-13T20:34:00.001+05:30</published><updated>2011-06-13T20:34:39.288+05:30</updated><title type='text'>English Articles</title><content type='html'>&lt;p&gt;In English, knowing when to use &lt;strong&gt;'a'&lt;/strong&gt; or &lt;strong&gt;'the'&lt;/strong&gt; can be difficult. Fortunately, there are rules to help you, but you need to know what type of noun you are using. &lt;h5&gt;Grammar rule 1&lt;/h5&gt; &lt;p&gt;When you have a single, countable English noun, you must always have an article before it. We cannot say "please pass me pen", we must say "please pass me &lt;strong&gt;the&lt;/strong&gt; pen" or "please pass me &lt;strong&gt;a&lt;/strong&gt; pen" or "please pass me &lt;strong&gt;your&lt;/strong&gt; pen". &lt;p&gt;Nouns in English can also be uncountable. Uncountable nouns can be concepts, such as 'life', 'happiness' and so on, or materials and substances, such as 'coffee', or 'wood'. &lt;h5&gt;Grammar rule 2&lt;/h5&gt; &lt;p&gt;Uncountable nouns don't use &lt;strong&gt;'a'&lt;/strong&gt; or &lt;strong&gt;'an'&lt;/strong&gt;. This is because you can't count them. For example, advice is an uncountable noun. You can't say "he gave me an advice", but you can say "he gave me &lt;strong&gt;some&lt;/strong&gt; advice", or "he gave me &lt;strong&gt;a piece of&lt;/strong&gt; advice". &lt;p&gt;Some nouns can be both countable and uncountable. For example, we say "coffee" meaning the product, but we say "&lt;strong&gt;a&lt;/strong&gt; coffee" when asking for one cup of coffee. &lt;h5&gt;Grammar rule 3&lt;/h5&gt; &lt;p&gt;You can use &lt;strong&gt;'the'&lt;/strong&gt; to make general things specific. You can use &lt;strong&gt;'the'&lt;/strong&gt; with any type of noun – plural or singular, countable or uncountable. &lt;p&gt;"Please pass me &lt;strong&gt;a &lt;/strong&gt;pen" – any pen.&lt;br&gt;"Please pass me &lt;strong&gt;the&lt;/strong&gt; pen" – the one that we can both see. &lt;p&gt;"Children grow up quickly" – children in general.&lt;br&gt;"&lt;strong&gt;The&lt;/strong&gt; children I know grow up quickly" – not all children, just the ones I know. &lt;p&gt;"Poetry can be beautiful"- poetry in general.&lt;br&gt;"&lt;strong&gt;The&lt;/strong&gt; poetry of Hopkins is beautiful" – I'm only talking about the poetry Hopkins wrote. &lt;h5&gt;More uses of articles in English&lt;/h5&gt; &lt;p&gt;&lt;strong&gt;Rivers, mountain ranges, seas, oceans and geographic areas &lt;/strong&gt;all use '&lt;strong&gt;the&lt;/strong&gt;'.&lt;br&gt;For example, "&lt;strong&gt;The&lt;/strong&gt; Thames", "&lt;strong&gt;The&lt;/strong&gt; Alps", "&lt;strong&gt;The&lt;/strong&gt; Atlantic Ocean", "&lt;strong&gt;The&lt;/strong&gt; Middle East". &lt;p&gt;&lt;strong&gt;Unique things&lt;/strong&gt; have &lt;strong&gt;'the'&lt;/strong&gt;.&lt;br&gt;For example, "&lt;strong&gt;the&lt;/strong&gt; sun", "&lt;strong&gt;the&lt;/strong&gt; moon". &lt;p&gt;&lt;strong&gt;Some institutional buildings&lt;/strong&gt;&lt;i&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/i&gt;don't have an article if you visit them for the reason these buildings exist. But if you go to the building for another reason, you must use &lt;strong&gt;'the'&lt;/strong&gt;. &lt;p&gt;"Her husband is in prison." (He's a prisoner.)&lt;br&gt;"She goes to &lt;strong&gt;the&lt;/strong&gt; prison to see him once a month." &lt;p&gt;"My son is in school." (He's a student.)&lt;br&gt;"I'm going to &lt;strong&gt;the &lt;/strong&gt;school to see the head master." &lt;p&gt;"She's in hospital at the moment." (She's ill.)&lt;br&gt;"Her husband goes to &lt;strong&gt;the&lt;/strong&gt; hospital to see her every afternoon." &lt;p&gt;&lt;strong&gt;Musical instruments&lt;/strong&gt; use '&lt;strong&gt;the&lt;/strong&gt;'.&lt;br&gt;"She plays &lt;strong&gt;the&lt;/strong&gt; piano." &lt;p&gt;&lt;strong&gt;Sports&lt;/strong&gt; don't have an article.&lt;br&gt;"He plays football." &lt;p&gt;&lt;strong&gt;Illnesses&lt;/strong&gt; don't have an article.&lt;br&gt;"He's got appendicitis."&lt;br&gt;But we say "&lt;strong&gt;a&lt;/strong&gt; cold" and "&lt;strong&gt;a &lt;/strong&gt;headache". &lt;p&gt;&lt;strong&gt;Jobs&lt;/strong&gt; use &lt;strong&gt;'a'&lt;/strong&gt;.&lt;br&gt;"I'm &lt;strong&gt;a&lt;/strong&gt; teacher." &lt;p&gt;&lt;strong&gt;Countries&lt;/strong&gt;&lt;br&gt;We don't use &lt;strong&gt;'a'&lt;/strong&gt; if the country is singular. "He lives in England." But if the country's name has a "plural" meaning, we use &lt;strong&gt;'the'&lt;/strong&gt;. "&lt;strong&gt;The&lt;/strong&gt; People's Republic of China", "&lt;strong&gt;The&lt;/strong&gt; Netherlands", "&lt;strong&gt;The&lt;/strong&gt; United States of America". &lt;p&gt;&lt;strong&gt;Continents, towns and streets&lt;/strong&gt; don't have an article.&lt;br&gt;"Africa", "New York", "Church Street". &lt;p&gt;&lt;strong&gt;Theatres, cinemas and hotels&lt;/strong&gt; have &lt;strong&gt;'the'&lt;/strong&gt;.&lt;br&gt;"&lt;strong&gt;The&lt;/strong&gt; Odeon", "&lt;strong&gt;The&lt;/strong&gt; Almeira", "&lt;strong&gt;The &lt;/strong&gt;Hilton". &lt;p&gt;&lt;strong&gt;Abbreviations&lt;/strong&gt; use &lt;strong&gt;'the'&lt;/strong&gt;.&lt;br&gt;"&lt;strong&gt;the&lt;/strong&gt; UN", "&lt;strong&gt;the&lt;/strong&gt; USA", "&lt;strong&gt;the&lt;/strong&gt; IMF". &lt;p&gt;We use &lt;strong&gt;'the'&lt;/strong&gt; before &lt;strong&gt;classes of people.&lt;/strong&gt;&lt;br&gt;"&lt;strong&gt;the&lt;/strong&gt; rich", "&lt;strong&gt;the&lt;/strong&gt; poor", "&lt;strong&gt;the &lt;/strong&gt;British".&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-2981990592030336363?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/2981990592030336363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=2981990592030336363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2981990592030336363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2981990592030336363'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2011/06/english-articles.html' title='English Articles'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-3438684002563853892</id><published>2011-05-05T15:46:00.001+05:30</published><updated>2011-05-05T15:46:32.326+05:30</updated><title type='text'>Generating natural number series in SQL</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Sometime you need to create a series of integer values in SQL. Here is a small code snippet that does exactly that. (Tags: SQL Integer number generation )&lt;/p&gt; &lt;p&gt;SELECT &lt;br&gt;t1.n + (t2.n*10) + (t3.n*100) + (t4.n*1000) + (t5.n*10000) AS&lt;br&gt;SerialNumber&lt;br&gt;FROM (SELECT 0 as n&lt;br&gt;UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3&lt;br&gt;UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6&lt;br&gt;UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) t1&lt;br&gt;CROSS JOIN (SELECT 0 as n&lt;br&gt;UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3&lt;br&gt;UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6&lt;br&gt;UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) t2&lt;br&gt;CROSS JOIN (SELECT 0 as n&lt;br&gt;UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3&lt;br&gt;UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6&lt;br&gt;UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) t3&lt;br&gt;CROSS JOIN (SELECT 0 as n&lt;br&gt;UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3&lt;br&gt;UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6&lt;br&gt;UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) t4&lt;br&gt;CROSS JOIN (SELECT 0 as n&lt;br&gt;UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3&lt;br&gt;UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6&lt;br&gt;UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) t5&lt;br&gt;Order by serialNumber&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-3438684002563853892?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/3438684002563853892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=3438684002563853892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/3438684002563853892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/3438684002563853892'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2011/05/generating-natural-number-series-in-sql.html' title='Generating natural number series in SQL'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-2915518838450090764</id><published>2011-04-11T19:49:00.001+05:30</published><updated>2011-04-11T19:49:13.587+05:30</updated><title type='text'>Lame Explanations : Burp :)</title><content type='html'>&lt;p&gt;You cover your mouth with your hand, but it's too late. The people at the next table in the lunchroom already heard. As you turn back to your soda, you think: Where did that burp come from?&lt;/p&gt; &lt;p&gt;A burp — sometimes called a belch — is nothing but gas. When you eat or drink, you don't just swallow food or liquid. You also swallow air at the same time. The air we breathe contains gases, like nitrogen&amp;nbsp; and oxygen.&lt;/p&gt; &lt;p&gt;Sometimes when you swallow these gases, they need to get out. That's where burping comes in! Extra gas is forced out of the stomach, up through the esophagus, the tube for food that connects the back of the throat to the stomach, and out of the mouth as a burp.&lt;/p&gt; &lt;p&gt;Some kids find that drinking soda or other carbonated beverages makes them burp more. Can you guess why? If you're thinking that it's because these drinks contain extra gas, you're right! The gas that makes the drinks fizzy is carbon dioxide another gas that can bring on big burps. Sometimes eating or drinking too fast can make a person burp because this can send extra air into the stomach. The same thing happens when you drink through a straw: extra air in = more burps out.&lt;/p&gt; &lt;p&gt;Burping is almost never anything to worry about. Everybody does it at least once in a while, and it's very unusual for burping to mean something is wrong in a kid's body.&lt;/p&gt; &lt;p&gt;It seems like the only people who can get away with really loud burps are little babies — their parents cheer when they burp because it means that the babies won't feel the extra gas in their stomachs and cry. But unless you're tiny and bald, it's probably a good idea to be polite when it's time to burp.&lt;/p&gt; &lt;p&gt;So what can you do if you're around people and you feel a burp coming on? Try to burp quietly and cover your mouth. Of course, whether your burp is loud or quiet, saying "excuse me" can't hurt either.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-2915518838450090764?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/2915518838450090764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=2915518838450090764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2915518838450090764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2915518838450090764'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2011/04/lame-explanations-burp.html' title='Lame Explanations : Burp :)'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-8619118468952681739</id><published>2011-04-10T06:35:00.001+05:30</published><updated>2011-04-10T06:35:23.018+05:30</updated><title type='text'>SQL server maximum indexes</title><content type='html'>&lt;span style="line-height: normal; widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; border-collapse: separate; white-space: normal; orphans: 2; word-spacing: 0px" class="Apple-style-span"&gt;&lt;span style="text-align: left" class="Apple-style-span"&gt; &lt;p style="padding-bottom: 0px; line-height: 12.375pt; margin: 0px 0px 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px"&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;Following is a breakdown of the maximum number of indexes by different versions of SQL Server. I am yet to come across a scenario when a table needed to have huge number of indexes like mentioned in the listing below.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;table style="width: 426px; height: 106px; word-spacing: normal" border="1" cellspacing="0" cellpadding="0" width="426"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="109"&gt;&lt;font color="#cccccc" size="2"&gt;&lt;/font&gt;&lt;/td&gt; &lt;td valign="top" width="530" colspan="4"&gt; &lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;Maximum Sizes&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="109"&gt; &lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;Object&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="108"&gt; &lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;SQL Server 7.0&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="108"&gt; &lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;SQL Server 2000&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="157"&gt; &lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;SQL Server 2005&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="157"&gt; &lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;SQL Server 2008&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="109"&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;Clustered Index&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="108"&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;1&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="108"&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;1&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="157"&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;1&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="157"&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;1&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="109"&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;Non-clustered Index&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="108"&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;249&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="108"&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;249&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="157"&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;249&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="157"&gt;&lt;font face="Verdana"&gt;&lt;font face="Verdana"&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#cccccc" size="2"&gt;999&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p style="padding-bottom: 0px; line-height: 12.375pt; margin: 0px 0px 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;&lt;font style="font-size: " color="#2a2a2a"&gt;&lt;font style="font-size: 8.3pt"&gt;References:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-8619118468952681739?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/8619118468952681739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=8619118468952681739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/8619118468952681739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/8619118468952681739'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2011/04/sql-server-maximum-indexes.html' title='SQL server maximum indexes'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-4104367607427320192</id><published>2011-04-09T06:05:00.001+05:30</published><updated>2011-04-09T06:05:37.361+05:30</updated><title type='text'>SQL Server: Index Rebuild vs. Reorganize</title><content type='html'>&lt;p&gt;&lt;strong&gt;Index Rebuild : &lt;/strong&gt;This process drops the existing Index and Recreates the index.&lt;br&gt;&lt;code&gt;USE AdventureWorks;&lt;br&gt;GO&lt;br&gt;ALTER INDEX ALL ON Production.Product REBUILD&lt;br&gt;GO&lt;br&gt;&lt;/code&gt;&lt;br&gt;&lt;strong&gt;Index Reorganize : &lt;/strong&gt;This process physically reorganizes the leaf nodes of the index.&lt;br&gt;&lt;code&gt;USE AdventureWorks;&lt;br&gt;GO&lt;br&gt;ALTER INDEX ALL ON Production.Product REORGANIZE&lt;br&gt;GO&lt;br&gt;&lt;/code&gt;&lt;br&gt;&lt;strong&gt;Recommendation:&lt;/strong&gt; Index should be rebuild when index fragmentation is great than 40%. Index should be reorganized when index fragmentation is between 10% to 40%. Index rebuilding process uses more CPU and it locks the database resources. SQL Server development version and Enterprise version has option ONLINE, which can be turned on when Index is rebuilt. ONLINE option will keep index available during the rebuilding.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-4104367607427320192?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/4104367607427320192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=4104367607427320192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4104367607427320192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4104367607427320192'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2011/04/sql-server-index-rebuild-vs-reorganize.html' title='SQL Server: Index Rebuild vs. Reorganize'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-1163124511810125329</id><published>2011-04-01T01:39:00.001+05:30</published><updated>2011-04-01T01:39:15.063+05:30</updated><title type='text'>Sri Lanka Cricket finals</title><content type='html'>&lt;p&gt;Yes its confirmed now, India has defeated Pakistan is the most deadliest clash ever in the world cup semi finals 2011. India has won the match by 29 runs. &lt;p&gt;India will take on Sri Lanka in the grand finals if ICC cricket world cup on April 2nd 2011 at Mumbai stadium. Sri Lanka is already through to the finals.  &lt;p&gt;With the help of Sachin Tendulkar 85 runs and Raina fireworks at end of the India’s innings, India gave a average target of 261 runs. Thanks to the good work of Indian bowlers who made India victorious at the end. &lt;p&gt;Sri Lanka has already defeated Team New Zealand in the first semifinals and are through for the grand finale game against Team india which has won its biggest game in cricket world cup 2011. &lt;p&gt;Thus India legacy continues of winning in world cup against Pakistan. India has defeated Pakistan by a margin of 29 runs. But in the end, it was again Misbah Ul Haq who was seeming a hindrance in India’s victory. &lt;p&gt;From Pakistan, Misbah was the highest scorer who score 56 runs and got caught at the second last ball of match and thus India made their way to grand finals. SO catch the action of India vs Sri lanka finals 2011 on April 2nd. &lt;p&gt;Sri Lanka vs India 2011 Cricket world cup&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-1163124511810125329?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/1163124511810125329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=1163124511810125329' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/1163124511810125329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/1163124511810125329'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2011/04/sri-lanka-cricket-finals.html' title='Sri Lanka Cricket finals'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-962711897684396419</id><published>2011-03-16T02:14:00.001+05:30</published><updated>2011-03-16T02:14:04.982+05:30</updated><title type='text'>Microsoft Internet Explorer 9 review</title><content type='html'>&lt;p&gt;Next to Internet Explorer 8, Microsoft Internet Explorer 9 is faster, with a streamlined interface. But some areas still need refinement in Microsoft's brand new web browser. IE9 is in beta and available to download from Microsoft. &lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;font style="background-color: #ffff00" size="3"&gt;&lt;/font&gt;&lt;font style="" color="#9bbb59" size="3"&gt;&lt;strong&gt;Internet Explorer 9's New Look&lt;br&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font style="background-color: #ffff00" size="3"&gt;&lt;/font&gt;The first thing you'll notice about Internet Explorer 9 is its new, simplified look. In use, we found the new interface had both its pros and its cons. Microsoft built IE 9 around the idea of putting the web page at the forefront of the interface by reducing the number of visible buttons and controls. And in many ways, it works: When you first open up IE 9, all you see is one toolbar, with only a minimum number of controls. The controls and toolbars are semitransparent, in the same way as window frames in Vista or Windows 7 are transparent, and are designed so as not to distract from the web page that stands at the center of attention.&lt;/p&gt; &lt;p&gt;But there is such a thing as too little interface, as we quickly discovered. By default, IE 9 only briefly gives an indication of whether a page is loading: it will show a spinner on the tab for a second or two when you first click a link or enter a URL, and then nothing. This can be frustrating on slower connections - we weren't sure if IE was still loading the page or if it gave up. And we're not a fan of Microsoft's decision to bunch tabs and the address bar on the same line; it can get awfully crowded in a hurry up there, especially if you open lots of tabs or have a small screen.&lt;/p&gt; &lt;p&gt;Longtime IE users may be stymied by Internet Explorer 9's new interface as well: we had some trouble finding our favourite features in this new version. The company's goal was to show only the features that most users will actually put to use (for example, you'll notice the favourites bar is hidden by default), but also says that it didn't remove any features from IE. Meanwhile, some elements remain fundamentally unchanged; for example, the Internet Options pane is still a cluttered mismash of buttons, checkboxes, tabs, and settings toggles that may be confusing to the uninitiated.&lt;/p&gt; &lt;p&gt;All that said, IE 9 marks a clear improvement that's less intrusive with alerts and dialog boxes than previous versions. For example, when you download a file in Internet Explorer 9, you'll get an unobtrusive bar at the bottom of the screen asking if you want to run or save the file, as opposed to the alert box that you'd get in IE 8 and earlier.&lt;/p&gt; &lt;p&gt;If you're running Windows 7, you can pin shortcuts to links or sites to the taskbar and Start menu. To pin a site to the taskbar, drag the favicon - the small icon located next to the page's URL - or the browser tab to the taskbar. If you open the page by clicking the taskbar shortcut, the resulting IE window will take the colour of the favicon, and display it in the browser's toolbar as a visual aid.&lt;/p&gt; &lt;p&gt;When you right-click a pinned site icon, you'll get a jumplist that by default includes a menu option to enable InPrivate browsing (a browsing mode that doesn't leave cookies, cache files, or browsing history behind). But Microsoft says that site designers will be able to add some code for putting custom menu items on the jumplist.&lt;/p&gt; &lt;p&gt;We found the taskbar pin feature useful, especially for sites we visit on a frequent basis. Its presence makes web pages feel more like apps than ever before. But you can't combine pages together into one taskbar tile, which would be even more useful and would reduce clutter (your taskbar can get filled up in a hurry with pinned sites).&lt;/p&gt; &lt;p&gt;IE 9 takes a page from Google Chrome's playbook with a single box for both searching and entering URLs. Microsoft calls this combined address bar/search bar the Onebox. The Onebox works pretty much as advertised: Start typing a URL, and it'll show auto-complete suggestions as you type, just as in IE 8 and earlier. Type a search query and press return, and the browser will take you by default to a Bing search for that query. Like IE 8, Internet Explorer 9 doesn't limit you to Bing searching: Click the Add button in the Onebox drop-down menu, and you can add support for other search engines.&lt;/p&gt; &lt;p&gt;Despite all this new interface goodness, we feel Microsoft didn't go far enough in simplifying and streamlining its browser. The Internet Options pane, for example, looks dated and is in serious need of a makeover. Hopefully, in version 10 Microsoft will delve a little deeper and clean up some of IE's remaining rough edges.&lt;/p&gt; &lt;p&gt;Internet Explorer 9: Download Manager and Security Enhancements&lt;br&gt;A long-overdue addition to IE 9 is a download manager that, as you'd expect, lets you see all your active downloads, just as you can with other Windows web browsers. The download manager window tells you the basic vitals on your download's progress, and lets you pause or cancel it. This is pretty standard on other browsers, but it's a welcome addition nonetheless.&lt;/p&gt; &lt;p&gt;Microsoft has also added in some new protections against malicious downloads. The SmartScreen download reputation feature can identify safe, popular downloads, and will let those files download without a warning message (you'll still get the message for less popular downloads, ones that IE isn't sure about). The idea is to cut down on the number of times you'll see the "This file may harm your computer" nag, and to show it to you only when it's absolutely necessary. It will still ask you whether you want to run or save a file before you download it, but for popular downloads (iTunes, Flash Player, etc...), that's all you'll see. This worked reasonably well.&lt;/p&gt; &lt;p&gt;&lt;font color="#9bbb59" size="3"&gt;&lt;strong&gt;Internet Explorer 9: Performance&lt;br&gt;&lt;/strong&gt;&lt;/font&gt;With IE 9, Microsoft is making a big push for supporting the latest web technologies, and improving browsing performance. We didn't have a chance to test it on normal, everyday sites, but we did run it through the SunSpider JavaScript benchmark.&lt;/p&gt; &lt;p&gt;The result? A dramatic improvement over IE 8's JavaScript performance, which, in past testing, had lagged far behind its competition. In informal testing, IE 9 completed the test in 484.0 milliseconds. By comparison, on our test system - a 2.13GHz Intel Core 2 Duo desktop running Windows Vista - Chrome completed the benchmark in 397 milliseconds, Opera in 354, Safari in 445, and Firefox 3.6.9 in 1067 milliseconds.&lt;/p&gt; &lt;p&gt;Keep in mind that actual performance results may vary depending on your PC's configuration, and on other factors such as the sorts of sites you visit, your connection speed, and so forth. Remember, also, that we haven't tested it on actual sites as yet. But the fact that IE 9 put up drastically improved numbers in this one test is a very good sign.&lt;/p&gt; &lt;p&gt;Page-loading performance aside, IE 9 will also check to see if any add-ons you've installed are slowing down your browser's startup time. If any are, it will notify you once it opens. Thanks to this feature, we realized that we had some add-ons installed that we didn't even know were there. This check by IE 9 is a fairly small addition, but it's a welcome one.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-962711897684396419?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/962711897684396419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=962711897684396419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/962711897684396419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/962711897684396419'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2011/03/microsoft-internet-explorer-9-review.html' title='Microsoft Internet Explorer 9 review'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-3735975301599729404</id><published>2011-02-27T23:07:00.001+05:30</published><updated>2011-02-27T23:07:41.759+05:30</updated><title type='text'>Do I get enough vitamin D ?</title><content type='html'>&lt;p&gt;Coming from a tropical country to UK, I have being covering myself with thick warm clothes for a long time during winter months. Even during sunny days I was reluctant to expose my skin to sun because of the cold weather. One sunny day I was having a sun bath (being inside my warm kitchen as I considered it was too cold for me to go outside with bare body &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh3.ggpht.com/_q1WCZwXDeec/TWqL4DNEW5I/AAAAAAAAAa0/GTRN46erVH8/wlEmoticon-smile%5B2%5D.png?imgmax=800"&gt;) and started to thinking “do I get enough vitamin D?”. After doing some investigation I found that you can get a supplement of vitamin D from your meal and does not necessarily need to expose your skin to allow your body to absorb vitamin D. Here is an interesting article that I came across.  &lt;p&gt;&lt;b&gt;What is vitamin D?&lt;/b&gt; &lt;p&gt;Vitamin D is a fat-soluble vitamin that helps your body absorb and use calcium. Calcium is a mineral that gives strength to your bones and teeth, and helps your nerves and muscles function properly. Vitamin D also helps your immune system function effectively, and reduces inflammation. &lt;p&gt;&lt;b&gt;Why is vitamin D important?&lt;/b&gt; &lt;p&gt;The teenage years are the most important for bone growth and development. Without enough vitamin D, your body may not be able to use the calcium it needs, and rickets, osteomalacia, or osteoperosis can develop. This is why it is important to get plenty of vitamin D if you are a preteen or teenager. &lt;p&gt;Rickets, which means “soft bones”, is a condition that can affect young children who do not get enough vitamin D. Osteomalacia is the softening of the bones in teens and adults who do not get enough vitamin D. Vitamin D deficiency can also cause osteopenia (low bone mass), and lead to osteoperosis later in life. Osteoporosis is the development of weak bones that, over time, can break easily. Although osteoporosis generally affects older people, young women whose periods have stopped (for reasons such as eating disorders and low body weight), or use of steroids for certain chronic diseases, can also lead to osteoporosis. &lt;p&gt;&lt;b&gt;How much vitamin D do I need?&lt;/b&gt; &lt;p&gt;It is recommended that children and adolescents get at least 600 IU (international units), of vitamin D each day. &lt;p&gt;&lt;b&gt;Where can I get vitamin D?&lt;/b&gt; &lt;p&gt;Believe it or not, you can get vitamin D from sunshine! The sun’s rays cause a chemical change to happen in your skin. This helps change the form of vitamin D in your skin to a type of vitamin D that your body can use. When you are outside in the sun for about 10-15 minutes, you are able to get enough vitamin D. But be sure to remember to put on sunscreen after those few minutes, so that you don’t get a sunburn (which can increase your skin cancer risk). &lt;p&gt;Depending on where you live, the sun may not be strong enough to help your body make vitamin D during the winter months, so you must get it from food or supplements. The best food sources of vitamin D are fortified dairy products. Fish rich in natural oils such as salmon, tuna, and mackerel are also high in vitamin D. Although it’s great to get vitamins and minerals from food, taking a multivitamin is another way to get the right amount. If you do choose to take a supplement, check the bottle and make sure one tablet provides at least or 600 IU (international units). &lt;p&gt;&lt;b&gt;Can I get too much vitamin D?&lt;/b&gt; &lt;p&gt;You can’t get too much vitamin D from the sun or from eating foods that are high in vitamin D. However, taking too much of a vitamin D supplement can be harmful. Research has shown that the maximum amount of vitamin D a teen should get is 4000 IU, and the minimum is or 600 IU. &lt;p&gt;&lt;b&gt;Below is a table of some healthy foods that contain vitamin D:&lt;/b&gt; &lt;table border="0" cellspacing="6" cellpadding="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="41%"&gt; &lt;p&gt;&lt;b&gt;Food&lt;/b&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="22%"&gt; &lt;p&gt;&lt;b&gt;Serving&lt;/b&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="12%"&gt; &lt;p&gt;&lt;b&gt;IUs Vitamin D&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top"&gt; &lt;p&gt;Fortified Milk&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;1 cup&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;127&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top"&gt; &lt;p&gt;Fortified Soy Milk&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;1 cup&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;114&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top"&gt; &lt;p&gt;Fortified Orange Juice&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;1 cup&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;142&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top"&gt; &lt;p&gt;Salmon (cooked)&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;3.5 ounces&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;360&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top"&gt; &lt;p&gt;Tuna (canned)&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;3 ounces&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;200&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top"&gt; &lt;p&gt;Shrimp (canned)&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;3 ounces&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;152&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top"&gt; &lt;p&gt;Egg (whole)&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;1 large egg&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;44&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top"&gt; &lt;p&gt;Kellogs low-fat granola with raisins&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;2/3 cup&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;40&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top"&gt; &lt;p&gt;Raisin Bran Cereal&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;3/4 cup&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;68&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top"&gt; &lt;p&gt;Total Cereal&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;1 cup&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;34&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top"&gt; &lt;p&gt;Kix Cereal&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;1 cup&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;32&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top"&gt; &lt;p&gt;Quaker instant oatmeal for women&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;1 packet&lt;/p&gt;&lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt;154&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;b&gt;Is vitamin D deficiency a concern for adolescents?&lt;/b&gt; &lt;p&gt;Yes! A recent study done at Children’s Hospital Boston has shown that 1 in 5 teenage boys and 1 in 4 teenage girls don’t get enough vitamin D. &lt;p&gt;&lt;b&gt;Am I at risk for Vitamin D deficiency?&lt;/b&gt; &lt;p&gt;&lt;i&gt;If you are African American or Hispanic&lt;/i&gt; you could be at a higher risk for low vitamin D than if you are white. This is because skin that has a dark pigment can prevent most of the sun’s ultraviolet radiation from reaching the deeper layers of your skin where vitamin D is made. &lt;p&gt;&lt;i&gt;If you live in a place that gets very little sunshine&lt;/i&gt;, especially during the winter months, it’s harder to get enough vitamin D. To figure out if you live in one of these places, look at a map of the United States and imagine a line running between San Francisco and Philadelphia. If you live North of this imaginary line, it is necessary for you (during the winter) to get your daily intake of vitamin D through food or supplements.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-3735975301599729404?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/3735975301599729404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=3735975301599729404' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/3735975301599729404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/3735975301599729404'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2011/02/do-i-get-enough-vitamin-d.html' title='Do I get enough vitamin D ?'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_q1WCZwXDeec/TWqL4DNEW5I/AAAAAAAAAa0/GTRN46erVH8/s72-c/wlEmoticon-smile%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-4380204935048576336</id><published>2011-01-03T17:03:00.001+05:30</published><updated>2011-01-03T17:04:37.241+05:30</updated><title type='text'>Dative , Accusative &amp; Inflexion</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="justify"&gt;The dative case (abbreviated dat, or sometimes d when it is a core argument) is a grammatical case generally used to indicate the noun to whom something is given. For example, in "John gave &lt;strong&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Mary&lt;/font&gt;&lt;/strong&gt;&lt;strong&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;/strong&gt; a book".&lt;br&gt;The thing being given may be a tangible object, such as "a book" or "a pen", or it may be an intangible abstraction, such as "an answer" or "help". The dative generally marks the indirect object of a verb, although in some instances the dative is used for the direct object of a verb pertaining directly to an act of giving something.&lt;/p&gt; &lt;p align="justify"&gt;The accusative case (abbreviated acc) of a noun is the grammatical case used to mark the direct object of a transitive verb. The same case is used in many languages for the objects of (some or all) prepositions.&lt;/p&gt; &lt;p align="justify"&gt;In grammar, inflection or inflexion is the modification of a word to express different grammatical categories such as tense, grammatical mood, grammatical voice, aspect, person, number, gender and case.&lt;/p&gt; &lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_q1WCZwXDeec/TSGz-FBSfTI/AAAAAAAAAaQ/VJ7ufUiNPh0/s1600-h/Flexi%C3%B3nGato%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Flexi&amp;oacute;nGato" border="0" alt="Flexi&amp;oacute;nGato" src="http://lh3.ggpht.com/_q1WCZwXDeec/TSGz_UJ4ZcI/AAAAAAAAAaU/jLn1ltSLBkk/Flexi%C3%B3nGato_thumb%5B1%5D.png?imgmax=800" width="126" height="323"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="justify"&gt;Inflection of the Portuguese or Spanish lexeme for "cat".Blue represents the masculine gender, pink represents the feminine gender, grey represents the form used for mixed-gender, and green represents the plural number; the singular is unmarked. (Wikipedia)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-4380204935048576336?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/4380204935048576336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=4380204935048576336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4380204935048576336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4380204935048576336'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2011/01/dative-accusative-inflexion.html' title='Dative , Accusative &amp;amp; Inflexion'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_q1WCZwXDeec/TSGz_UJ4ZcI/AAAAAAAAAaU/jLn1ltSLBkk/s72-c/Flexi%C3%B3nGato_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-7747257767493162040</id><published>2010-12-26T01:52:00.001+05:30</published><updated>2010-12-26T01:52:24.802+05:30</updated><title type='text'>All about Canon Lenses</title><content type='html'>&lt;p&gt;&amp;nbsp; &lt;p&gt;&lt;b&gt;&lt;a name="includedlens"&gt;&lt;/a&gt;Why doesn’t my camera just come with a lens? Isn’t that kind of cheap?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;No. It’s actually a good thing. First of all, the whole point of a camera with interchangeable lenses is you can attach whatever lens you need. Unlike a simple point and shoot, with its non-removable lens, you aren’t limited to whatever the manufacturer builds into the camera. Second, everyone has different needs and budgets. So it’s usually desirable not to include a lens so you can choose the lens or lenses which are right for you, not some generic lens. Third, what if you were to buy another camera? Then you would have two of the same lenses. &lt;p&gt;Having said that, Canon do sell many EOS cameras bundled with included lenses. Such lenses are called &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#kitlenses"&gt;kit lenses&lt;/a&gt;, but frankly some kit lenses are of a higher quality than others. You’re often best off buying the camera body which suits your needs and finding a good lens to match it.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="widenormaltele"&gt;&lt;/a&gt;What are wide-angle, normal and telephoto lenses?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;We’ve all had the experience before. You’re trying to take a photograph of some friends, but you just can’t fit everybody into the picture. You step backwards further, but there’s a wall or cliff or something, and it just isn’t going to work, so you tell your friends to squeeze in closer. Or you see a bird flying by in the distance, you grab your camera, and you end up with a big photograph of sky with a disappointingly tiny little dot in the middle of the frame. &lt;p&gt;In each case the field of view provided by the lens isn’t appropriate for your subject matter. In the first instance your lens is not “wide” enough to take in the whole scene, and in the second your lens isn’t “long” enough. There are three rough categories of lenses when it comes to how much of a scene they can take in, and the field of view of each type is defined by an optical property known as the &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#focallength"&gt;focal length&lt;/a&gt; of the lens (a property explained later in this document).&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;A so-called &lt;b&gt;normal lens&lt;/b&gt; roughly approximates the perspective, though not the area of, a scene seen by one human eye. By convention a normal lens on a 35mm film camera (and thus a full-frame EOS digital SLR) has a focal length of 50mm or so. A lens with a focal length of 35mm is considered “normal” for a cropped-frame EF-S camera. Think of normal lenses as being good for taking pictures in close, but not intimate, proximity to a subject, like a waist-up picture of a person in an ordinary room. &lt;li&gt;A &lt;b&gt;wide-angle lens&lt;/b&gt; can take in a large area of a scene. This has two common applications - first, it means you can take in sweeping panoramic landscape scenes, and second, you can take in large areas of an ordinary room. If you want to take a photo of a group of friends at a dinner party you’ll need a wide angle lens unless you can back up far enough to get everyone in. On a 35mm film camera a wide angle lens would have a focal length of, say, 35mm or less. &lt;li&gt;Looking through a &lt;b&gt;telephoto lens&lt;/b&gt; is like using a telescope - it narrows down what can be seen in a scene or makes the subject seem much closer than it really is. A telephoto lens might have a focal length of 70mm or more on a 35mm camera.&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;Note one area of potential confusion - there are different measurements expressed here in millimetres, but which refer to two different physical properties. In the case of 35mm film cameras, we’re talking about the width of the film material. But in the case of, say, an 80mm lens, we’re talking about its focal length. You can thus put a 28mm lens on a 35mm camera - the measurements are about different things. &lt;p&gt;These are just broad categories, of course, and there are big variations in each one. You can get an inexpensive 28mm lens, for example, which is only modestly wide. Or you can get a crazy expensive 14mm lens which can take in a huge area of a scene - perfect for shots of ultra-dramatic skies. Similarly you could put an 85mm lens on your camera for portrait photography, or you could sell your car and buy a huge 600mm lens that requires a large suitcase for transportation but which lets you take a closeup of a bird’s face from a huge distance away.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="zoomprime"&gt;&lt;/a&gt;What’s the difference between a zoom lens and a fixed focal length (prime) lens?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;A prime lens is a lens in which the field of view (focal length) cannot be adjusted. The only way to take in more or less of the scene is to walk closer to or further from the subject. (sometimes jokingly called “zoom with your feet,” though this is technically inaccurate since changing camera position is not the same thing as adjusting the focal length) Or you have to carry a selection of lenses of different focal lengths with you and swap them out as required. &lt;p&gt;A zoom lens is a lens in which the field of view can be adjusted. If you can’t fit in all your friends in the picture, for example, you could just rotate the zoom ring on the lens until they’re all in there. Or if that bird is too far away you could rotate it the other way to zoom in closer. &lt;p&gt;Up until the late 1980s prime lenses were the most common lens sold, because from an optical design standpoint it’s much easier to design a high quality prime lens that can take nice sharp photographs than a decent quality zoom lens. But a prime is also obviously a lot less convenient, since you have to move around more to fit stuff in. So by the late 80s zoom lenses became more and more popular. Today hardly any low-cost lenses are prime lenses, because everybody wants zooms. &lt;p&gt;So why buy a prime lens at all? Well, for the same reason as ever - prime lenses are easier to build and offer fewer compromises in design. If you want a really sharp crisp lens, then a good prime will offer sharper pictures than most zooms. Or if you want a lens that can let in lots of light and thus can be used for low-light photography then you’ll probably want a prime, since it’s much harder to build a “fast” (lets in lots of light) zoom lens. And some crusty old photographers also argue that using prime lenses is very important for novice photographers since it forces them to learn about the importance of focal lengths and perspective. &lt;p&gt;Lens construction is thus always about tradeoffs. You may want a lens that’s small, lightweight, has zoom capabilities, lets in lots of light, is really sharp, has high contrast, doesn’t distort the image and is cheap. But in real life you can only get some of those properties - it’s impossible to get all of them, sadly. &lt;p&gt;Most amateurs on a budget choose the flexibility of low-cost zoom lenses over picture quality as their compromise. Many advanced amateurs choose the higher picture quality of affordable primes and deal with the inconvenience as theirs. And many professionals buy high quality zooms that weigh a ton and cost piles of money as theirs. &lt;p&gt;Note one common misconception - a lot of people think zoom lenses are used for taking photos of things far away. That’s actually a better description of a telephoto lens, as described above.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="whichlens"&gt;&lt;/a&gt;Which lens should I buy for my camera?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;As with buying a camera there are a lot of things to consider, so this question really can’t be asked without asking many more questions first. Here are some of them: &lt;p&gt;&lt;b&gt;What exactly are you going to be photographing?&lt;/b&gt;&lt;br&gt;Your photographic goals and objectives essentially inform all of the other decisions. Will you being shooting landscapes? Portraits? Your kids or pets? Flowers? Wild birds? Sports? Architecture? Will you be doing travel photography? Will you be hiking with your gear? These sorts of questions are critical to ask yourself first. &lt;p&gt;&lt;b&gt;How much money do you want to spend?&lt;/b&gt;&lt;br&gt;You can spend huge amounts of money on lenses, so determining your budget, as with cameras, is pretty important. &lt;p&gt;&lt;b&gt;Do you want to buy a used or a new lens?&lt;/b&gt;&lt;br&gt;The same questions apply as when purchasing a new or used camera. &lt;p&gt;&lt;b&gt;Do you want a prime (fixed focal length) or a zoom (variable focal length) lens?&lt;/b&gt;&lt;br&gt;&lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#zoomprime"&gt;Prime lenses&lt;/a&gt; generally afford higher optical quality than &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#zoomprime"&gt;zooms&lt;/a&gt;, except in the case of really expensive pro zoom lenses. However prime lenses mean you have to walk around more - you can’t simply adjust the zoom setting to get the framing you need. &lt;p&gt;&lt;b&gt;What focal length or focal length range do you want to cover?&lt;/b&gt;&lt;br&gt;I’d sit down with your photos and think about what &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#focallength"&gt;focal lengths&lt;/a&gt; you tend to use most and where there are gaps. Maybe you want an extreme wide angle, for example. If so there’s no point getting another telephoto. &lt;p&gt;&lt;b&gt;Do you need a fast lens?&lt;br&gt;&lt;/b&gt;Do you want to do low-light photography without a tripod or flash? Do you want to do portrait photos while blurring the background? These applications call for a &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#slowfast"&gt;faster lens&lt;/a&gt; which can let in more light. &lt;p&gt;&lt;b&gt;Do you want to buy Canon-built or third party lenses?&lt;br&gt;&lt;/b&gt;Third party makers build many great lenses, but many are also really poor - you have to do some research. And others have &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#compatibility"&gt;compatibility&lt;/a&gt; problems with existing cameras or may have future compatibility problems. Are the price savings worth it for the specific lens you’re interested in? &lt;p&gt;&lt;b&gt;Do you care about the user interface and build quality?&lt;br&gt;&lt;/b&gt;A lens may be slow to focus or inconvenient to use but offers higher optical quality than another lens with a faster motor and a better designed UI. &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#lensmotor"&gt;Ring USM&lt;/a&gt; motors are fast, silent and offer full-time manual override, but lenses containing such motors tend to cost more than slower, noisier non-&lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#ftm"&gt;FTM&lt;/a&gt; arc-form (&lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#lensmotor"&gt;AFD&lt;/a&gt;) motors. &lt;p&gt;&lt;b&gt;What aspect of optical quality is important to you?&lt;/b&gt;&lt;br&gt;Obviously sharpness and contrast are pretty important to most people, but what about distortion? Many consumer zooms have a lot of distortion, making them unsuitable for architectural photography. They also tend to be more vulnerable to flare (lowering contrast or resulting in bright spots on the picture if a bright light like the sun is in or near the frame) and tend to have very slow maximum &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#aperture"&gt;apertures&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="efs"&gt;&lt;/a&gt;What is an EF-S lens?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;From the introduction of the EOS camera system in 1987 through to 2003, Canon standardized on a single lens mount system for all of their SLR cameras - the EF (electrofocus) lens mount. So throughout this time there was no possible source of confusion, since all EF lenses made by Canon and other lensmakers will physically fit all Canon EOS cameras. &lt;p&gt;However, in 2003 Canon introduced a new digital camera, the consumer-oriented EOS 300D/Digital Rebel/Kiss Digital camera, which sported a new lens mount design dubbed EF-S. All consumer to midrange digital EOS cameras released since have been both EF and EF-S compatible. For reasons explained in a moment, no film camera has ever been EF-S compatible. &lt;p&gt;So it’s important to remember that digital camera bodies with EF-S lens mounts are totally compatible with all regular EF lenses. However an EF-S lens can fit only EF-S compatible cameras and no others. (unless the lens is altered - see the section on hacking below). &lt;p&gt;EF-S bodies have small mirror boxes - roughly 2/3 the size of a regular EOS camera (also known as a 1.6x cropping factor) - because they use image sensors which are smaller in area than a frame of 35mm film. They are thus often called subframe cameras. Cameras which use 35mm film, or which contain digital sensors the same size as a frame of 35mm film, are commonly called full frame cameras these days. &lt;p&gt;EF-S cameras thus support lenses with a shorter back focus distance than EF lenses, because the mirror swings further back. This is where the “S” comes from - EF-S lenses have &lt;i&gt;shorter&lt;/i&gt; back focus distances. (ie: the back part of the lens can get physically closer to the image sensor since the mirror is smaller) Having a shorter back focus distance allows Canon to produce cheaper wide-angle lenses that work with the smaller image format of a subframe digital SLR, since it’s optically very challenging to create a wide angle lens with a long back focus distance. &lt;p&gt;Canon have a range of EF-S lenses available, ranging from inexpensive kit lenses to very good high-quality lenses with image stabilization. There’s even a very interesting 60mm macro lens with an EF-S mount. The super wide angle EF-S 10-22mm 3.5-4.5 USM (roughly 16-35mm coverage if it were full frame) is particularly well regarded, as is the EF-S 17-55 2.8 IS USM, which is an L lens in all but build quality and name. &lt;p&gt;The main issue to be concerned about with EF-S is the future value of the lenses. Right now full-frame image sensors are extremely expensive to make, which is why nearly all digital SLRs out there have image sensors smaller than that of a frame of 35mm film. But in the future it’s likely that prices on such sensors will drop, at which time full-frame digital SLRs will become more affordable and thus EF-S lenses will no longer be of use except on pre-existing cameras. The two questions are - how long will this take and will you be able to get good use of your investment in EF-S lenses before this occurs? The first nobody knows the answer to, and the second can only be answered by you. For the time being it seems likely that it’ll be some years before affordable full-frame sensors are ubiquitous, so EF-S lenses aren’t necessarily a bad idea, assuming you aren’t planning on upgrading to full-frame as soon as you can. &lt;p&gt;&lt;b&gt;Can my camera take EF-S lenses?&lt;/b&gt; &lt;p&gt;Any Canon EOS camera with a red dot on the lens mount can take EF lenses. Any Canon EOS camera with both a red dot and a white square on the lens mount can take both EF lenses and EF-S lenses. &lt;p&gt;&lt;b&gt;What you see is what you get&lt;/b&gt; &lt;p&gt;This whole discussion about focal lengths and EF versus EF-S can be very confusing if you’re a beginner. The key thing to remember if you’re just starting out is &lt;i&gt;what you see is what you get.&lt;/i&gt; When you look through the viewfinder or at the preview screen you’re going to see exactly what will be in the photograph. So there’s no need to worry about mathematical calculations and whatnot to figure out what will be in your picture and what won’t. &lt;p&gt;The only time the whole cropping factor is really an issue is when you’re comparing how much of a scene (coverage angle) is taken in by an EF lens on a full-frame camera, compared to an EF lens on a cropped body, or compared to an EF-S lens on an EF-S compatible camera. For guidance on this, take a look at my &lt;a href="http://photonotes.org/lookup/"&gt;Complete EOS Lookup Page&lt;/a&gt;. It allows you to compare multiple lenses to see how much of a scene each lens can take in when used on cropped or full frame bodies. &lt;p&gt;&lt;b&gt;Distinguishing EF from EF-S&lt;/b&gt; &lt;p&gt;Regular EF bodies and lenses use raised red dots for aligning lens and body. EF-S bodies have a white square as well, which must be lined up to the white square on EF-S lenses. Interestingly enough, EF-S lenses also have rubber rings around the end which press up against the interior of the camera body. This is not as sophisticated as the weather seals used in L series lenses, but presumably helps reduce dust levels inside the camera slightly. Also, according to Canon, this ring minimises damage if you were to try and mount an EF-S lens on a EF-only camera. &lt;p&gt;&lt;b&gt;Full frame equivalent&lt;/b&gt; &lt;p&gt;You’ll sometimes see phrases such as “full frame equivalent” or “35mm equivalent” in conjunction with lenses designed for subframe sensors, such as EF-S lenses. Properly speaking these are not&lt;i&gt;equivalent&lt;/i&gt; values for a variety of technical reasons, but they are nonetheless useful points of reference. For instance, a 60mm EF-S lens has the same field of view as a 96mm lens on a 35mm film camera. So sometimes 60mm EF-S lenses are said to have a full-frame equivalent field of view of 96mm. &lt;p&gt;&lt;b&gt;EF-S lenses and film cameras&lt;/b&gt; &lt;p&gt;No EOS 35mm film camera has or is ever going to use an imaging area smaller than 36x24mm, so no EOS 35mm film camera will ever be able to support EF-S lenses. Even if you were to attach one somehow the mirror would collide with the back of the lens when it flipped up, and the lens would vignette severely because EF-S lenses can’t image an image circle as large as 35mm film. In theory Canon might have built an APS film camera with support for EF-S lenses, since APS film uses a surface area smaller than that of 35mm film, but since APS is dead that’ll never to happen. So the only cameras you’ll ever see with EF-S lens mounts are 100% digital. &lt;p&gt;&lt;b&gt;Hacking EF-S lenses&lt;/b&gt; &lt;p&gt;While EF-S lenses are not designed to fit EF-only cameras, it &lt;i&gt;is&lt;/i&gt; possible to saw off or, in some cases, unscrew the back of an EF-S lens and attach the lens to any EOS camera. The problem is that if you put a modified EF-S lens on an EOS camera with a standard sized mirror box then the mirror will flip up and smash into the lens when you try to take a photo. So modified EF-S lenses will only work with older EOS digital cameras with cropping factors of 1.6x that predate the EF-S system: namely the EOS D30, D60 and 10D. &lt;p&gt;Even then there are risks. For example, at its widest position the EF-S 10-22mm lens collides with the mirror in non-EF-S compatible cameras, even those with small mirror boxes. (for this reason it’s unwise to use a modified EF-S lens on a 1.3x digital camera such as the 1D) Messing around in this fashion is fun - I’ve done it myself and it works well - but obviously invalidates your Canon warranty and runs the risk of breaking something.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="whichdigitallens"&gt;&lt;/a&gt;Which lens should I buy for my EOS digital camera?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;There are two things that are important to keep in mind when shopping for lenses for an EOS digital camera. &lt;p&gt;First, EOS digitals are not the cheapest things in the world, so don’t just try to find the cheapest lens you can. If you’re going to be shelling out a sizeable amount of money for a camera body, then buying a cheap lens is not merely false economy, it’s downright foolish. &lt;p&gt;It’s like spending massive amounts of money on a high-end CD player and amplifier and then plugging them into a pair of toy loudspeakers. Just as the final sound of your music will be hobbled by the toy loudspeakers the final quality of your pictures will be hobbled by a cheap lens. So avoid lenses in the “&lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#categories"&gt;cheapie&lt;/a&gt;” category (see below). &lt;p&gt;Second, with the exception of the cropping factor for EF-S cameras mentioned above, the selection criteria for buying a lens for a digital camera really don’t differ much from the criteria for buying a lens for a film camera. What type of photography do you want to do? Do you need a wide angle for landscapes? A fast-focussing telephoto for sports? A sharp and short telephoto for portraits? How much weight do you want to carry around? These questions are the same regardless of whether you want to shoot film or digital - check the list above. &lt;p&gt;But as noted, there is one major difference to keep in mind with most digital EOS cameras - the &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#multiplier"&gt;cropping factor&lt;/a&gt;, also known as the focal length multiplier. With the exception of expensive professional and semi-pro cameras, most EOS digital cameras use image sensors smaller than a 35mm film frame. If your camera has a cropping factor of 1.6x it means that, say, a lens with a 50mm focal length will suddenly behave rather like a lens with an 80mm focal length. The focal length of the lens does not change, but its apparent effect does. (since the image sensor is smaller, think of it as simply snipping off all four sides with a pair of scissors, resulting in a smaller picture, and then enlarging the picture on a photocopier) &lt;p&gt;This issue has two nice advantages. First, you can buy a cheap 50mm lens and use it as a very nice &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#portrait"&gt;portrait&lt;/a&gt; lens. Second, you can attach a telephoto to your camera and it’ll behave like a much longer telephoto - you’ll have much more reach. The drawback, of course, is that wide angle pictures are harder to achieve as you need much wider lenses for such photos. This can be a significant problem for many people. &lt;p&gt;So with such digital cameras you will probably want to get a lens that’s a bit wider than you would if you were buying for a 35mm film camera. If you use a 28-105mm lens on your 35mm camera, for example, you might get a 24-85mm lens instead. &lt;p&gt;The one question related to this is whether the EF-S 18-55 lens (see &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#efs"&gt;next section&lt;/a&gt;) included with many kits is worth it. The consensus is that it’s definitely worth the small increase in price over the body only. The EF-S 18-55 is no &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#L"&gt;L series&lt;/a&gt; lens by a long shot, but it offers surprisingly decent optical quality for the incredibly low price, and it’s an affordable way to get down to moderately wide angles (roughly the same as a 30mm lens on a 35mm film camera) on a consumer camera. &lt;p&gt;One final issue with digital is that some newer lenses have coatings which work a bit better with digital image sensors than those used on older lenses. Generally speaking this is a fairly subtle issue, advertising notwithstanding.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="numbers"&gt;&lt;/a&gt;What are all these numbers printed on my lens?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Lenses have bits of text printed on the barrel or around the front element which convey a lot of important information about their properties. Be really careful when shopping for lenses. Two lenses may have very similar-looking names, but may actually be completely different one from the other. &lt;p&gt;Here are two examples. Note that all the technical terms used here are described later on in this FAQ. &lt;p&gt;&lt;strong&gt;CANON LENS EF 28-80mm 1:3.5-5.6. Ø58mm.&lt;/strong&gt; &lt;p&gt;EF means that the lens is of the Canon &lt;a href="http://photonotes.org/articles/beginner-faq/general.html#ef"&gt;EF&lt;/a&gt; type. EF lenses fit Canon EOS cameras and virtually no others. &lt;p&gt;28-80mm refers to the &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#focallength"&gt;focal length&lt;/a&gt; of the lens. In this case there are two values since the lens is a zoom lens which can go from 28mm at its widest to 80mm at its longest. These numeric values in millimetres essentially indicate the coverage area of the lens. &lt;p&gt;1:3.5-5.6 refers to the widest &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#aperture"&gt;aperture&lt;/a&gt; of which the lens is capable. The 1: is there since f/stops are, technically speaking, ratios. Since the lens is a zoom there are two aperture values - f/3.5 and f/5.6. This particular lens is an inexpensive amateur lens which can be opened up to f/3.5 at the widest end (28mm) but only f/5.6 at the longest end (80mm). This means it’s a fairly slow lens - it can’t let in much light, even when its aperture diaphragm is fully open. &lt;p&gt;Note that the &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#lensmotor"&gt;autofocus motor type&lt;/a&gt; is not indicated, which means that the lens uses either an AFD (arc-form drive) or micromotor drive. Both types are slow and noisy compared to ultrasonic (USM) motors. &lt;p&gt;Ø58mm refers to the &lt;a href="http://photonotes.org/articles/beginner-faq/misc.html#filtersizes"&gt;filter ring diameter&lt;/a&gt;. In other words, screw-on filters 58mm in diameter will fit this lens. &lt;p&gt;&lt;strong&gt;CANON LENS EF 200mm 1:2.8L II USM. Ø72mm.&lt;/strong&gt; &lt;p&gt;EF means that the lens is a Canon EF lens for EOS cameras. &lt;p&gt;200mm refers to the focal length. Since only one value is indicated, this lens is a prime lens (ie: a lens with a fixed focal length). &lt;p&gt;1:2.8 refers to the widest aperture of which the lens is capable. f/2.8 is reasonably wide, especially for a 200mm telephoto lens, and so this is considered a fast lens. &lt;p&gt;L indicates that the lens is an &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#L"&gt;L&lt;/a&gt; or “luxury” series Canon lens. Such lenses are generally the best that Canon manufacture. They are marked with a characteristic red stripe around the end of the lens barrel. &lt;p&gt;II indicates that this is the second version of this lens with these particular numerical specifications that Canon have made. &lt;p&gt;USM refers to the autofocus motor type used by the lens. In this case it uses an ultrasonic motor - see below. Non-L USM lenses are marked with a characteristic gold stripe around the end of the lens barrel. L lenses usually have USM motors, but have a red stripe instead (ie: the red stripe takes priority and you don’t see lenses with two stripes). &lt;p&gt;Ø72mm refers to the filter ring diameter. In other words, screw-on filters 72mm in diameter will fit this lens, making it a fairly large lens.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="L"&gt;&lt;/a&gt;What is a Canon L-series lens and why is it a big deal?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Canon sell a number of lenses in a special series they refer to as L for “luxury.” These are their most expensive and highest-quality lenses, and are readily identifiable by the red stripe painted around the end of the barrel. &lt;p&gt;L series lenses offer higher optical quality than their non-L equivalents, and have an important technical aspect in common. At least one element in every L lens is either made of fluorite crystal rather than glass, is a ground aspheric lens element (not a moulded/replicated aspheric lens as used in less expensive lenses) or is made from ultra-low dispersion glass. Most L series lenses are also sturdily built - many are encased in metal barrels and most are weatherproofed - and most are very fast lenses for their focal lengths. Nearly all telephoto L series lenses are also &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#whitelens"&gt;off-white&lt;/a&gt; rather than black. &lt;p&gt;These lenses are, therefore, marketed as professional camera lenses and are usually priced out of the range of most consumers. They can be used to take great photographs, but the cost, weight and size of these lenses are the tradeoffs. &lt;p&gt;Of course, a lens doesn’t have to be an L series lens to take good pictures. Many EOS lenses offer excellent optical quality - they just don’t need and thus don’t have exotic fluorite lens elements and so on. Many of Canon’s prime lenses in the 35mm to 135mm range fit in this category - see below. And some recent EF-S lenses offer near-L image quality but lack the red ring and the tough build quality of contemporary L series lenses. &lt;p&gt;Note also that the presence of a red ring around the end of a lens barrel only indicates an L series lens if it’s actually made by Canon. Some other makers happily paint red stripes around the end of their lenses too, but this in no way guarantees that the lens meets the quality standard of a Canon L lens.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="categories"&gt;&lt;/a&gt;What other general categories of Canon EOS-compatible lenses are there?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;In addition to the aforementioned L series lenses most other Canon EF lenses fall into a number of broad categories. Note, however, that these are not official Canon-named categories. As far as Canon is concerned, EF lenses come in two categories - L and all the rest. Nonetheless these informal categories are useful to keep in mind when lens shopping. &lt;p&gt;&lt;b&gt;Category 1 - consumer lenses.&lt;/b&gt; &lt;p&gt;At the bottom of the consumer line are the cheapies - ultra-low cost, low-quality, slow lenses with plastic mounts and no &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#distancescale"&gt;distance scales&lt;/a&gt;. Most of the kit lenses - 28-80 and 28-90 lenses with typical aperture ranges of 4.0 to 5.6 - fit into this category. These lenses are built to be sold as inexpensively as possible and don’t have very good optical quality. The only exception to this basic rule is the 50mm 1.8 II - plastic lens mount - which has excellent optical quality despite its cheap build quality, because it isn’t a zoom lens like all the others. The cheapies are easily recognizable by their all-plastic construction and straight, parallel-sided lens barrels. Most of the late-model cheapies are identified by the silver (chrome) ring around the end. &lt;p&gt;Am I being a huge snob by calling them “cheapies”? Maybe, but the point is actually that Canon optimize these lenses for cheapness. They want products to sell in massive numbers in shopping mall/high street camera shops and department stores. This market does not place much value on image quality - cheap prices for impulse buys are everything. That’s great for Canon’s balance sheet, but frankly, if I’m going to be dealing with the hassle of carrying around an SLR camera I want at least half-decent optical quality for the attached lens. Otherwise I think it’s a lot easier just to carry around a cheap lightweight point and shoot camera. &lt;p&gt;&lt;b&gt;Category 2 - midrange zooms.&lt;/b&gt; &lt;p&gt;In the midrange are better lenses with improved optics, sturdier build quality, metal mounts and distance scales. These often have ring USM motors. The 24-85 3.5-4.5 USM, 28-105 3.5-4.5 USM and 100-300 4.5-5.6 USM are typical examples. They’re decent consumer lenses but don’t have the optical clarity of the pro lenses, especially when shooting wide open. However, they generally cost a fraction of the price of the top of the line stuff. These lenses are generally fairly elegantly designed, with slightly rounded and tapered lens barrels, and usually have easy to grip ribbed rubber zoom rings rather than bare plastic. &lt;p&gt;There are also older low-end zooms with decent optical quality, such as the 28-70 3.5-4.5 II, which don’t use modern USM drives and are inconvenient to use but which nonetheless offer good value for money on the used market. &lt;p&gt;&lt;b&gt;Category 3 - inexpensive primes.&lt;/b&gt; &lt;p&gt;Canon also sell and have sold a number of prime (ie: non zoom) lenses with acceptable optics and average build quality (usually with noisy motor drives, metal mounts and distance scales), such as the 28mm 2.8 and 50mm 1.8 (metal lens mount). Despite their low cost and pretty unremarkable construction they can provide quite good photographic results. &lt;p&gt;All lenses in this category are mostly normal or near normal lenses - no super wide angles and no long telephotos. The designs generally date back to the early days of the EOS lineup, so they tend to look a bit old-fashioned, style-wise. Canon just haven’t seen the need to update any of them. &lt;p&gt;&lt;b&gt;Category 4 - good primes.&lt;/b&gt; &lt;p&gt;This is a group of prime lenses which offer excellent optics and decent build quality, but which don’t really need and thus don’t use ultra low-dispersion glass or calcium fluorite crystals or other hallmarks of L-class lenses. Remarkably good lenses like the 85mm 1.8 and the 100mm 2.8 macro fit into this category. Most have ring ultrasonic motors. They generally resemble the category 2 lenses - slightly rounded and tapered lens barrels. Optically they are professional lenses in all but the name, though they’re usually not quite as heavy-duty as the fancier L lenses. &lt;p&gt;&lt;b&gt;Category 5 - specialized lenses.&lt;/b&gt; &lt;p&gt;Canon also make a handful of expensive specialized lenses for unusual applications. These include their tilt-shift TS-E lenses, the MP-E 65mm super-macro lens and the DO (diffractive optics) lenses.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="whichcategory"&gt;&lt;/a&gt;Which lens falls in which category?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Here’s a list of many Canon EOS-compatible lenses - both current and discontinued - sorted according to the categories above. Lenses are EF lenses (all EOS cameras) except those marked EF-S, which fit only EF-S-compatible digital EOS cameras. &lt;p&gt;The numeric value marked with the Ø symbol is the &lt;a href="http://photonotes.org/articles/beginner-faq/misc.html#filtersizes"&gt;filter mount diameter&lt;/a&gt;. In other words, round screwmount filters of the size indicated can be attached to this lens. A few lenses - the extreme wide-angle lenses and the really long telephotos - use drop-in or gelatine filters inserted into the lens barrel. &lt;p&gt;Many lenses have the word “Macro” marked on them but only those identified here as &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#macro"&gt;macro&lt;/a&gt; are true macro lenses. True macro lenses are defined as those lenses capable of 1:1 focussing or better. The only Canon macro lens which doesn’t quite fit this definition is the 50mm 2.5 Compact Macro, which requires the add-on Life-Size adapter to reach 1:1. &lt;p&gt;Check out Canon’s &lt;a href="http://www.canon.com/camera-museum/camera/lens/ef/f_ef.html"&gt;Camera Museum&lt;/a&gt; site for technical details on all the EF lenses that Canon has ever produced. My &lt;a href="http://photonotes.org/lookup/"&gt;Complete EOS Lookup Page&lt;/a&gt; also provides a lot of information about Canon lenses. &lt;p&gt;&lt;b&gt;Category 1 - cheapies.&lt;/b&gt; &lt;p&gt;These inexpensive lenses feature all-plastic barrel construction with &lt;a href="http://photonotes.org/articles/beginner-faq/cameras.html#lensmount"&gt;plastic lens mounts&lt;/a&gt; (the 75-300 series and the 28-200 lenses being exceptions - they have metal mounts) and no &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#distancescale"&gt;distance scales&lt;/a&gt;. Those lenses in this category which have ultrasonic motors (USM) use cheaper micromotor USM, not ring USM. USM lenses are marked with a striped gold line around the end. Some of these lenses also have silver (chrome) rings around the end for good looks. Most lenses in this category support optional manual focussing, but their manual focus rings are usually awkward and cumbersome to use. &lt;blockquote&gt; &lt;p&gt;EF-S 18-55 3.5-5.6, Ø58&lt;br&gt;Inexpensive EF-S kit lens; reasonable optical quality &lt;p&gt;EF-S 18-55 3.5-5.6 USM, Ø58&lt;br&gt;Apparently only sold in Japan &lt;p&gt;EF-S 18-55 3.5-5.6 II, Ø58&lt;br&gt;Cosmetic update to the above &lt;p&gt;22-55mm 4.0-5.6 USM, Ø58 &lt;p&gt;28-105mm 4.0-5.6, Ø58 &lt;p&gt;28-105mm 4.0-5.6 USM, Ø58 &lt;p&gt;28-80mm 3.5-5.6, Ø58 &lt;p&gt;28-200mm 3.5-5.6, Ø72 &lt;p&gt;28-200mm 3.5-5.6 USM, Ø72 &lt;p&gt;28-80mm 3.5-5.6, Ø58 &lt;p&gt;28-80mm 3.5-5.6 II, Ø58 &lt;p&gt;28-80mm 3.5-5.6 II USM, Ø58 &lt;p&gt;28-80mm 3.5-5.6 III, Ø58 &lt;p&gt;28-80mm 3.5-5.6 III USM, Ø58 &lt;p&gt;28-80mm 3.5-5.6 IV USM, Ø58 &lt;p&gt;28-80mm 3.5-5.6 V USM, Ø58 &lt;p&gt;28-90mm 4-5.6, Ø58 &lt;p&gt;28-90mm 4-5.6 USM, Ø58 &lt;p&gt;28-90mm 4-5.6 II, Ø58 &lt;p&gt;28-90mm 4-5.6 USM II, Ø58&lt;br&gt;Silver-coloured &lt;p&gt;35-70mm 3.5-4.5 A, Ø52&lt;br&gt;Autofocus only - no manual focus ring &lt;p&gt;35-80mm 4-5.6, Ø52 &lt;p&gt;35-80mm 4-5.6 PZ, Ø52&lt;br&gt;Powered (motorized) zoom &lt;p&gt;35-80mm 4-5.6 II, Ø52 &lt;p&gt;35-80mm 4-5.6 III, Ø52 &lt;p&gt;35-80mm 4-5.6 USM, Ø52 &lt;p&gt;35-105mm 4.5-5.6 USM, Ø58 &lt;p&gt;38-76mm 4.5-5.6, Ø52 &lt;p&gt;55-200mm 4.5-5.6 USM, Ø52 &lt;p&gt;55-200mm 4.5-5.6 II USM, Ø52 &lt;p&gt;75-300mm 4-5.6, Ø58 &lt;p&gt;75-300mm 4-5.6, Ø58 &lt;p&gt;75-300mm 4-5.6 II, Ø58 &lt;p&gt;75-300mm 4-5.6 II USM, Ø58 &lt;p&gt;75-300mm 4-5.6 III, Ø58 &lt;p&gt;75-300mm 4-5.6 III USM, Ø58 &lt;p&gt;75-300mm 4-5.6 USM, Ø58 &lt;p&gt;80-200mm 4.5-5.6, Ø52 &lt;p&gt;80-200mm 4.5-5.6 II, Ø52 &lt;p&gt;80-200mm 4.5-5.6 USM, Ø52 &lt;p&gt;90-300mm 4.5-5.6, Ø58 &lt;p&gt;90-300mm 4.5-5.6 USM, Ø58 &lt;p&gt;100-200mm 4.5 A, Ø58&lt;br&gt;Autofocus only - no manual focus ring&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;Category 2 - midrange zooms.&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;All lenses in this category have metal lens mounts, and come in two basic flavours - old-style lens barrel and new style. The old style feature hard textured plastic barrels with narrow focus rings and their AF/MF switches are low and sometimes difficult to adjust. The new style feature slightly more resilient shiny plastic with wider focus and zoom rings, often with lots of easy-grip ribbed rubber. The new style lenses also boast ring USM focus drives and easier to operate AF/MF switches. &lt;p&gt;EF-S 10-22mm 3.5-4.5 USM, Ø77&lt;br&gt;Unusually for a lens not marketed as L series, this lens contains a Super UD element and has very good image quality. &lt;p&gt;EF-S 17-85mm 4-5.6 IS USM, Ø67 &lt;p&gt;EF-S 17-55 2.8 IS USM, Ø77&lt;br&gt;This is an interesting lens since it actually has L-series image quality thanks in part to the use of UD glass. However, build quality is on par with better consumer lenses and not L series lenses. &lt;p&gt;20-35mm 3.5-4.5 USM, Ø77 &lt;p&gt;24-85mm 3.5-4.5 USM, Ø67&lt;br&gt;Available in silver or black &lt;p&gt;28-70mm 3.5-4.5, Ø52 &lt;p&gt;28-70mm 3.5-4.5 II, Ø52 &lt;p&gt;28-80mm 3.5-5.6 USM, Ø58&lt;br&gt;(unlike later all-plastic II and higher models, these lenses have a metal mount) &lt;p&gt;28-105mm 3.5-4.5 “Macro” USM, Ø58 &lt;p&gt;28-105mm 3.5-4.5 II “Macro” USM, Ø58 &lt;p&gt;28-135mm 3.5-5.6 IS “Macro” USM, Ø72 &lt;p&gt;35-70mm 3.5-4.5, Ø52&lt;br&gt;Old-style barrel &lt;p&gt;35-105mm 3.5-4.5 “Macro”, Ø58&lt;br&gt;Old-style barrel, push-pull zoom &lt;p&gt;35-135mm 4-5.6 USM, Ø58 &lt;p&gt;50-200mm 3.5-4.5, Ø58&lt;br&gt;Old-style barrel &lt;p&gt;70-210mm 3.5-4.5 USM, Ø58 &lt;p&gt;70-210mm 4 “Macro”, Ø58&lt;br&gt;Old-style barrel, push-pull zoom &lt;p&gt;70-300mm 4-5.6 IS USM, Ø58&lt;br&gt;The replacement to the 75-300 4-5.6 IS USM &lt;p&gt;75-300mm 4-5.6 IS USM, Ø58&lt;br&gt;Optically a cheapie, but image stabilization moves it up a category &lt;p&gt;100-300mm 4.5-5.6 USM, Ø58 &lt;p&gt;100-300mm 5.6 “Macro”, Ø58&lt;br&gt;Old-style barrel, push-pull zoom&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;Category 3 - inexpensive primes.&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;With the exception of the all-plastic (including plastic lens mount) 50mm 1.8 mark II, the inexpensive primes all have old-style lens barrels - hard textured plastic, a narrow focussing ring and distance scale. &lt;p&gt;28mm 2.8, Ø52 &lt;p&gt;35mm 2, Ø52 &lt;p&gt;50mm 1.8, Ø52 &lt;p&gt;50mm 1.8 II, Ø52&lt;br&gt;Plastic lens mount, no distance scale but same good optics as the 50mm 1.8&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;Category 4 - good primes.&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;As with the midrange zoom lenses, the good primes are available in either old-style lens barrel designs or new-style. &lt;p&gt;15mm 2.8 fisheye&lt;br&gt;Old-style barrel &lt;p&gt;20mm 2.8 USM, Ø72&lt;br&gt;New-style barrel &lt;p&gt;24mm 2.8, Ø58&lt;br&gt;Old-style barrel &lt;p&gt;28mm 1.8 USM, Ø58&lt;br&gt;New-style barrel &lt;p&gt;50mm 1.4 USM, Ø58&lt;br&gt;New-style barrel &lt;p&gt;50mm 2.5 Compact macro, Ø52&lt;br&gt;True (1:2; 1:1 with adapter) macro, old-style barrel &lt;p&gt;EF-S 60mm 2.8 USM macro, Ø52&lt;br&gt;EF-S only true 1:1 macro lens &lt;p&gt;85mm 1.8 USM, Ø58&lt;br&gt;New-style barrel &lt;p&gt;100mm 2 USM, Ø58&lt;br&gt;New-style barrel - do not confuse with the 100mm 2.8, which is a macro lens &lt;p&gt;100mm 2.8 Macro, Ø52&lt;br&gt;True 1:1 macro, old-style barrel &lt;p&gt;100mm 2.8 Macro USM, Ø58&lt;br&gt;True 1:1 macro, new-style barrel &lt;p&gt;135mm 2.8 SF, Ø52&lt;br&gt;Old-style barrel, adjustable soft focus control&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;Category 5 - specialized lenses.&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Unusual, expensive and specialized lenses. &lt;p&gt;MP-E 65mm 2.8 1-5x Macro&lt;br&gt;Powerful macro lens, for closeups only &lt;p&gt;TS-E 24mm 3.5 L, Ø72&lt;br&gt;Tilt-shift, manual focus only &lt;p&gt;TS-E 45mm 2.8, Ø72&lt;br&gt;Tilt-shift, manual focus only &lt;p&gt;TS-E 90mm 2.8, 58&lt;br&gt;Tilt-shift, manual focus only &lt;p&gt;EF 70-300 4.5-5.6 DO IS USM&lt;br&gt;&lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#do"&gt;Diffractive optics&lt;/a&gt;. Marked with a green ring &lt;p&gt;EF 400mm 4 DO IS USM&lt;br&gt;&lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#do"&gt;Diffractive optics&lt;/a&gt;. Marked with a green ring&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;L series lenses&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;All &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#L"&gt;L&lt;/a&gt; series lenses are easily identifiable by the red ring around the end of the barrel and the letter L at the end of their technical designations. &lt;p&gt;Most L series lenses are heavy shiny black plastic or white-painted metal. Most newer lenses (since 1999 or so) are &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#weather"&gt;weather-sealed&lt;/a&gt; though some (the earliest L series) are textured black plastic. The handful of early L series lenses with old-style barrels are not built to the same tough build quality of modern L lenses, though optically they’re fine. &lt;p&gt;Most L series lenses are large and fast lenses and thus quite expensive. However in the past few years Canon have also released a few more affordable L series zooms. These lenses are optically slower &lt;i&gt;f&lt;/i&gt;/4 lenses which are smaller, lighter and cheaper than their &lt;i&gt;f&lt;/i&gt;/2.8 counterparts. No L series lens has ever been made with an EF-S lens mount: they are always EF lens mounts only. &lt;p&gt;14mm 2.8 L USM &lt;p&gt;24mm 1.4L USM &lt;p&gt;16-35mm 2.8 L USM, Ø77 &lt;p&gt;16-35mm 2.8 L II USM, Ø82 &lt;p&gt;17-35mm 2.8 L USM, Ø77 &lt;p&gt;17-40mm 4 L USM, Ø77 &lt;p&gt;20-35mm 2.8 L, Ø72 &lt;p&gt;24-70mm 2.8 L USM, Ø77 &lt;p&gt;24-105mm 4 L IS USM, Ø77 &lt;p&gt;28-70mm 2.8 L USM “Macro”, Ø77 &lt;p&gt;28-80mm 2.8-4 L USM, Ø72 &lt;p&gt;28-300mm 3.5-5.6L IS USM, Ø77 &lt;p&gt;35mm 1.4 L USM, Ø72 &lt;p&gt;35-350mm 3.5-5.6 L USM, Ø72 &lt;p&gt;50mm 1 L USM, Ø72 &lt;p&gt;50mm 1.2 L USM, Ø72 &lt;p&gt;50-200mm 3.5-4.5 L, Ø58&lt;br&gt;Old-style barrel, push-pull zoom &lt;p&gt;70-200mm 2.8 L USM, Ø77 &lt;p&gt;70-200mm 2.8 L IS USM, Ø77 &lt;p&gt;70-200mm 4 L USM, Ø67 &lt;p&gt;70-200mm 4 L IS USM, Ø67 &lt;p&gt;80-200mm 2.8L&lt;br&gt;Old-style barrel; not compatible with teleconverters &lt;p&gt;85mm 1.2 L USM, Ø72 &lt;p&gt;85mm 1.2 L USM II, Ø72 &lt;p&gt;100-300mm 5.6 L, Ø58&lt;br&gt;Old-style barrel, push-pull zoom &lt;p&gt;100-400mm 4.5-5.6 L IS USM, Ø77&lt;br&gt;Push-pull zoom &lt;p&gt;135mm 2 L USM, Ø72 &lt;p&gt;180mm 3.5 Macro L USM, Ø72&lt;br&gt;True 1:1 macro &lt;p&gt;200mm 1.8 L USM &lt;p&gt;200mm 2.8 L USM, Ø72 &lt;p&gt;200mm 2.8 L II USM, Ø72 &lt;p&gt;300mm 2.8 L USM &lt;p&gt;300mm 2.8 L IS USM &lt;p&gt;300mm 4 L USM, Ø77 &lt;p&gt;300mm 4 L IS USM, Ø77 &lt;p&gt;400mm 2.8 L USM &lt;p&gt;400mm 2.8 L II USM &lt;p&gt;400mm 2.8L L IS USM &lt;p&gt;400mm 5.6L USM &lt;p&gt;500mm 4 L IS USM &lt;p&gt;500mm 4.5 L USM &lt;p&gt;600mm 4 L USM &lt;p&gt;600mm 4 L USM II &lt;p&gt;1200mm 5.6L USM&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="kitlenses"&gt;&lt;/a&gt;What’s wrong with the “kit” lens included with my camera? Why do you call it a cheapie?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Don’t take it personally. Canon sell most of their inexpensive consumer cameras either as camera bodies alone with no lenses or as complete kits with a cheap lens, camera strap and perhaps other accessories included. Such kits are usually aggressively priced, and most consumers go for them since they’re convenient and the supplied lenses are so cheap. The included lenses are usually referred to as “kit lenses,” though they can also be purchased separately if you like. &lt;p&gt;Unfortunately, kit lenses for low-end cameras are optimized for cheapness, as noted above. They aren’t engineered to offer the best optical quality you can find. This means they’re usually not terribly sharp and they also tend to produce somewhat low-contrast photos. Kit lenses are also considerably less rugged than more expensive lenses. Finally they’re always very slow lenses and so are not much good in low-light situations. These drawbacks are also the case, to varying degrees, for kit lenses made by every manufacturer, incidentally, not just Canon. &lt;p&gt;Of course, a cheap kit lens will take better photos than a lens you can’t afford and thus don’t have. Particularly if you avoid shooting wide open and use an &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#f8"&gt;aperture &lt;/a&gt;&lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#f8"&gt;setting like &lt;i&gt;f&lt;/i&gt;/8&lt;/a&gt; to maximize sharpness. Nonetheless, you don’t have to settle for poor quality if you check out the used market or if you’re willing to pay a little extra - see the section after next for details.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="expensive"&gt;&lt;/a&gt;Why are quality lenses so expensive?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Lenses are very complex and costly products to design and manufacture. Each component has to be built to incredibly tight tolerances and carefully assembled by hand. The extremely pure optical-grade glass used in making lenses is very expensive to produce. Expensive lenses don’t have the volume sales of cheap lenses, making them more expensive still to produce profitably. So, unfortunately, when it comes to lenses you generally get what you pay for. &lt;p&gt;Lenses going for 200-300 US$ or € may seem very expensive to a novice, but they are in fact considered dirt cheap lenses by professionals. This isn’t snobby elitism necessarily - it’s just how it is. Lenses with high optical quality usually cost a lot of money. Photography is, unfortunately, a fairly expensive endeavour.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="beginner"&gt;&lt;/a&gt;What’s a good beginner lens?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;This really depends on your photographic goals. Here are some possibilities to consider. &lt;p&gt;But before you rush out and buy a lens based on these suggestions I strongly recommend trying out the lenses you’re interested in before you buy. Most decent stores won’t mind if you go in with your camera and roll of film or an empty memory card and take a few shots of the shop using a couple of lenses. (be sure to use a tripod or rest the camera on a sturdy surface and use identical settings for each lens) They might grumble a bit, but how else can you decide whether a given lens is good for you? Certainly you don’t want to be trusting the advice of random people on the Internet! &lt;p&gt;&lt;b&gt;Cheap prime lens.&lt;/b&gt;&lt;br&gt;If your primary objective is to learn more about basic photography skills and take photos of reasonable quality then your first lens should probably be a Canon 50mm 1.8 lens. This is a very fast fixed focal length lens. But since it’s technically easy to build a 50mm lens, it’s also astoundingly cheap. New Canon 50mm 1.8 mark II lenses can be bought for as little as $75 US. &lt;p&gt;Such a lens, while cheap, takes sharp clear photos and can be used in extremely dim environments without the harsh light of a flash because it’s so fast. So the photos you take with it will look better than those from a typical point and shoot both because they’re sharp and because you’re not bathing your photos in ugly glaring light from a camera’s built-in flash. Natural light photographs almost always look better than on-camera flash. &lt;p&gt;Of course, since it’s a prime lens you will have to walk around more to get a lot of shots framed right. And some wide-angle or telephoto-type shots you won’t be able to get at all, so those are the obvious disadvantages. &lt;p&gt;Note that Canon have made two versions of the 50mm 1.8 lens. The older lens has no Roman numeral designation and has a metal mount, a distance scale and an optional clip-on hood. The mark II version has a plastic mount, no distance scale and a clumsy screw-on optional hood. If you can find an original lens it’s probably worth going for - it costs as much used as the mark II does new, but is of slightly tougher build quality. Optically the two lenses are basically identical. Canon also sell the 50mm 1.4 USM, which is optically a bit faster and uses a USM drive with FTM, but it costs considerably more than the 50mm 1.8. &lt;p&gt;However, if you use a digital camera with a cropped sensor (basically any EOS digital camera except for a few top models) then the 50mm might be a less useful choice, since it essentially behaves like a longer telephoto on such models, and won’t let you get in much of a scene. In such cases a 28mm 2.8 might be a better option. &lt;p&gt;&lt;b&gt;Cheap zoom lens.&lt;/b&gt;&lt;br&gt;If you value convenience and image quality is not a priority then an inexpensive zoom lens, such as the kit lenses sold with consumer-level cameras, is fine. However I don’t recommend most of these lenses (the “cheapies” in category 1 above) to anyone who’s at all interested in photographic image quality. The one exception is probably the EF-S 18-55 II kit lens included with affordable digital cameras. This lens, while incredibly cheap, is actually not too bad if you factor in the low cost. Especially if you stop down to f/8 or so when using it. &lt;p&gt;So what if you’re on a budget but really want the convenience of a zoom? Well, you could pick up a used zoom lens of an older generation, many of which have quite decent optics for the price. For example, you could buy a used metal lens mount 28-70 3.5-4.5 II for nearly the same price as a new 28-80 all-plastic cheapie. If you want a lens with silent-focussing USM you could consider the metal lens mount 28-80 3.5-5.6 USM (&lt;i&gt;not&lt;/i&gt; one of the later plastic lens mount models with Roman numerals), which has similar build quality to the 28-105 3.5-4.5 USM. Two other reasonable but discontinued lenses available inexpensively on the used market include the 35-135 4.0-5.6 USM and the older 35-105 3.5-4.5. The main drawback is that these lenses aren’t really wide enough to be useful on cropped digital SLRs. &lt;p&gt;In short, you don’t have to put up with shopping mall quality just because you’re on a tight budget so long as you’re willing to consider used lenses. &lt;p&gt;Then, as you use your camera over time, start reviewing your photos to see what focal lengths you find yourself using a lot. And what focal ranges you find yourself wanting to use. Are you always shooting portrait length photos? Are you always wishing you could go wider? Then you’ll know where to invest your money next. &lt;p&gt;&lt;b&gt;Mid-priced zoom lens.&lt;/b&gt;&lt;br&gt;If you have a slightly larger budget, a mid-priced zoom (category 2) is worth considering. For example, two popular Canon zoom lenses are the 28-105 3.5-4.5 USM and the 24-85 3.5-4.5 USM. Both are reasonably sturdy lenses with decent though not outstanding optical quality. They feature fast and silent ring USM autofocus motors. They’re more expensive and heavier than cheap zooms, but most people find the tradeoff worth it. &lt;p&gt;Of the two lenses the former has a bit more reach and so is good for isolating objects or for doing simple portrait work. The latter has less reach but is considerably wider (there’s a surprisingly big difference in coverage area between a 24mm lens and a 28mm lens) and so is popular for travel photos. The 24-85 is also a good match for cropped digital sensors. &lt;p&gt;If you’re interested in the 28-105 3.5-4.5 USM see the &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#28105"&gt;important note below&lt;/a&gt; about its similarly-named low-cost cousin.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="popular"&gt;&lt;/a&gt;What are some popular Canon EF and EF-S lenses?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Here are a number of popular Canon EF and EF-S lenses you might come across. &lt;p&gt;&lt;b&gt;EF 16-35 2.8L USM &lt;/b&gt;and&lt;b&gt; EF 17-35 2.8L USM.&lt;/b&gt;&lt;br&gt;Professional-quality new and old fast wide-angle zoom lenses, used by many photojournalists. Expensive.&lt;b&gt;&lt;/b&gt; &lt;p&gt;&lt;b&gt;EF 17-40 4L USM.&lt;/b&gt;&lt;br&gt;Affordable and optically slower version of the above, popular with advanced amateurs.&lt;b&gt;&lt;/b&gt; &lt;p&gt;&lt;b&gt;EF-S 18-55 3.5-5.6.&lt;/b&gt;&lt;br&gt;Pretty well every owner of a consumer digital EOS camera has one of these, since they’re bundled with most affordable models sold. Image quality is OK considering the rock-bottom price. &lt;p&gt;&lt;b&gt;EF-S 17-85mm 4-5.6 IS USM.&lt;/b&gt;&lt;br&gt;Very popular with users of Canon’s subframe D-SLRs, this lens combines decent image quality with a useful focal length range and has image stabilizing to boot.&lt;b&gt;&lt;/b&gt; &lt;p&gt;&lt;b&gt;EF 28mm 2.8.&lt;br&gt;&lt;/b&gt;Inexpensive lightweight wide-angle lens, suitable for landscapes and so on. &lt;p&gt;&lt;b&gt;EF 50mm 1.8 &lt;/b&gt;and &lt;b&gt;EF 50mm 1.8 II.&lt;br&gt;&lt;/b&gt;Super-cheap lightweight fast lenses, ideal for beginners and advanced amateurs. Take surprisingly sharp pictures for the price. &lt;p&gt;&lt;b&gt;EF 50mm 1.4 USM.&lt;/b&gt;&lt;br&gt;Versatile standard lenses, useful in low light. These lenses contain micromotor USM mechanisms that unusually support full-time manual focussing. &lt;p&gt;&lt;b&gt;EF 24-70 2.8L USM &lt;/b&gt;and&lt;b&gt; EF 28-70 2.8L USM.&lt;/b&gt;&lt;br&gt;Large, heavy black L series lenses, noted for their high quality. Expensive and popular with wedding photographers. &lt;p&gt;&lt;b&gt;EF 24-105 4L IS USM.&lt;/b&gt;&lt;br&gt;Very popular and quite expensive L-series image-stabilized walkaround lens. &lt;p&gt;&lt;b&gt;EF 28-70 3.5-4.5 II.&lt;/b&gt;&lt;br&gt;Cheap older lenses with a reputation for decent optical quality despite the really low price. Rotating recessed end makes filter use awkward, however. &lt;p&gt;&lt;b&gt;EF 28-80 3.5-5.6 II-V, 28-90 4-5.6.&lt;/b&gt;&lt;br&gt;Extremely cheap Canon lenses, supplied with many low-end camera bodies as kit lenses. Lousy optics. &lt;p&gt;&lt;b&gt;EF 24-85 3.5-4.5 USM, 28-105 3.5-4.5 USM &lt;/b&gt;and&lt;b&gt; EF 28-105 3.5-4.5 USM II.&lt;br&gt;&lt;/b&gt;Medium-sized, medium-priced and medium-speed lenses popular with many amateur photographers. The 24-85 is particularly popular with APS and subframe digital EOS users owing to its wider short end. Do not confuse the 28-105 3.5-4.5 lenses with their &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#28105"&gt;cheaper and slower&lt;/a&gt; 4-5.6 cousins. &lt;p&gt;&lt;b&gt;EF 28-135 3.5-5.6 IS USM.&lt;/b&gt;&lt;br&gt;Popular and versatile midrange lenses equipped with image stabilization for low-light shooting. &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;EF 85mm 1.8 USM.&lt;/b&gt;&lt;br&gt;Sharp and relatively inexpensive prime lenses, ideally suited for portraiture.&lt;b&gt;&lt;/b&gt; &lt;p&gt;&lt;b&gt;EF 100mm 2.8 Macro &lt;/b&gt;and&lt;b&gt; EF 100mm 2.8 Macro USM.&lt;/b&gt;&lt;br&gt;True macro lenses capable of 1:1 closeup photography, yet equally useful as portrait lenses. &lt;p&gt;&lt;b&gt;EF 70-200 2.8L USM &lt;/b&gt;and&lt;b&gt; EF 70-200 2.8L IS USM.&lt;/b&gt;&lt;br&gt;Heavy white L series lenses, favoured by a lot of photojournalists. Expensive. &lt;p&gt;&lt;b&gt;EF 70-200 4L USM.&lt;/b&gt;&lt;br&gt;Optically slower and less heavy siblings to the 2.8L. Considered a bargain for the price by many photographers, and popular with advanced amateurs. &lt;p&gt;&lt;b&gt;EF 70-200 4L IS USM.&lt;/b&gt;&lt;br&gt;The image stabilized version of the 4L. Much more expensive, however. &lt;p&gt;&lt;b&gt;EF 70-300mm 4-5.6 IS USM.&lt;/b&gt;&lt;br&gt;A popular lens for its compromise between size, convenience and image quality. Much sharper than its 75-300 predecessors, and image stabilization is a big plus. Not to be confused with the DO (diffractive optics) lens, which is extremely expensive. &lt;p&gt;&lt;b&gt;EF 75-300 4-5.6.&lt;/b&gt;&lt;br&gt;Commonly available cheapie-series telephoto lenses (see &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#telephotos"&gt;below&lt;/a&gt;). Ubiquitous owing to the low price, but optically poor. &lt;p&gt;&lt;b&gt;EF 1200mm 5.6L USM.&lt;/b&gt;&lt;br&gt;Okay, so these gigantic and insanely expensive telephoto lenses aren’t popular as such, but always feature prominently in Canon’s lens advertising. Canon will gladly custom-build one for you, given a prepaid order. I think they run for roughly the cost of a luxury automobile.&lt;br&gt;Frankly if you need this sort of focal length you’re better off with the 600mm 4L IS USM and a 2x teleconverter, though admittedly you’ll need an EOS 1V, 1D, 1Ds or 3 to autofocus with it.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="buythirdparty"&gt;&lt;/a&gt;Should I buy a non-Canon (third party) lens?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Despite Canon’s vigorous advertising campaign against third-party lenses a lot of people happily use lenses made by Tamron, Tokina and Sigma (and lenses with other brandnames but probably built by one of those three). And there’s one really good reason for this - the third party lenses are almost always much much cheaper than equivalent offerings from Canon. &lt;p&gt;So. Should you buy a third party lens? It’s not a simple yes/no issue, so here are some points to consider.&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;Price savings of third party products can be considerable, particularly if you’re looking to get a faster, higher-quality zoom lens. &lt;li&gt;Remember that the cheapest lenses are optimized for price, not for optical quality. And the profit margins for cheap products tend to be very thin. The price differential between Canon and third party isn’t huge when it comes to super-cheap lenses, so I don’t know if third party lenses are such a great idea in this case. &lt;li&gt;Third party makers produce lenses in a variety of market categories. Conventional wisdom is that if you’re considering third party at all you should consider the higher end of their product line, not the lower end for the reason above. &lt;li&gt;On the whole, Canon lenses seem to hold up their used value more than third party. If you intend to resell the lens anytime soon this can be a consideration. &lt;li&gt;Camera salespeople seem very eager to push third party lenses, so it’s likely that they receive bigger kickbacks from the manufacturers in return. Don’t let yourself be swayed by an eager salesperson - he or she probably isn’t trying to convince you to buy something for your benefit. &lt;li&gt;Buying Canon is pretty well a guarantee that your lens will work with any Canon EOS camera. However Tamron also have an excellent compatibility record with EOS cameras. Always test with your camera first, but be aware that the lens may not necessarily work with future EOS cameras. &lt;li&gt;Some older Sigma lenses do not work correctly with the latest EOS cameras. They fit the camera but don’t have compatible electronics, so the camera tends to lock up when you try to shoot. If you have such a lens you’ll need to contact the manufacturer to see if they can provide a free repair to the problem. The lenses don’t damage the camera - they just cause a temporary lockup that’s quickly cured by turning off the camera and turning it back on again. &lt;li&gt;Build quality of older Sigma products is notoriously inconsistent. A quick search of the Web reveals countless complaints from unhappy Sigma lens owners. Newer Sigma lenses seem to be a bit sturdier, judging by anecdotal evidence. &lt;li&gt;Tamron has a good reputation for compatible lenses. &lt;li&gt;Many of Tokina’s lenses have heavy metal lens barrels, which take a lot of abuse but are a drag when hiking. &lt;li&gt;Canon offer many lenses with USM and full-time manual. Most third party lenses don’t have these features. &lt;li&gt;There are some operational differences. For instance, some third party lenses have focus or zoom rings which rotate in the opposite direction from the usual Canon direction. &lt;li&gt;It’s difficult finding useful comparative data. You can look up the MTF scores on sites such as Photodo, which is a useful guideline, but the only way to compare lenses properly is to test them yourself to see if they meet your needs. Asking, “Is the Tokina XYZ 2.8 lens better than the Canon XYZ 2.8 lens?” rarely yields helpful answers, because most people don’t buy both lenses and try them out. &lt;li&gt;Some specific third party lenses are better known than others. For example, Tamron’s 90mm macro lens has a reputation for excellent image quality at a price considerably less than Canon’s 100mm macro. Sigma sell an 8mm fisheye which Canon do not make. &lt;li&gt;But the biggest deciding factor is, as always, money. Only you can decide what’s your priority - low initial purchase price, mechanical reliability, compatibility, user interface or optical quality.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;b&gt;Types of lenses.&lt;/b&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="powerzoom"&gt;&lt;/a&gt;Why doesn’t my camera have a motorized zoom lens with wide/tele buttons?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Because it’s not a point and shoot. Such motorized lenses are fine for simple tiny consumer-oriented cameras, but SLRs with interchangeable lenses are meant for a different market. &lt;p&gt;All Canon EF zoom lenses but one are &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#zoomtypes"&gt;manual zooms&lt;/a&gt;. That is to say you adjust the focal length either by turning a ring (two touch) or sliding the lens in and out (push-pull). And most people find that adjusting the zoom setting on such lenses is much faster and more precise than a slow and cumbersome motorized point and shoot zoom lens. &lt;p&gt;Note that Canon did briefly sell a motorized zoom lens for EOS cameras a while back, presumably as a sort of experiment. That lens, the Canon EF 35-80 4-5.6 PZ (Power Zoom), was an all-plastic cheapie with fairly low optical quality. The lens barrel had two pushbuttons that let you adjust the zoom position.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="28105"&gt;&lt;/a&gt;What’s the difference between all the Canon 28-105mm lenses?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Canon sell and have sold a number of different lenses which use the 28-105mm focal range. &lt;p&gt;&lt;b&gt;28-105mm 3.5-4.5 USM, flower icon.&lt;/b&gt;&lt;br&gt;This is the first version of this popular lens, released in the early 1990s. It’s a midrange consumer zoom with decent optics and a fast and silent ring USM motor with FTM. The mark I version with a flower icon on its lens barrel apparently had a 5-blade aperture diaphragm. Marked with a striped gold line since it’s a USM lens, and has a metal lens mount. Discontinued. &lt;p&gt;&lt;b&gt;28-105mm 3.5-4.5 USM, “MACRO” icon.&lt;/b&gt;&lt;br&gt;This is the second version of the lens, though it was never officially identified as such - it’s still considered to be a mark I. It’s identical to the first version but it has the word MACRO printed on the lens barrel in lieu of the flower (closeup) icon. Internally, however, it has a 7-blade aperture diaphragm, which in theory offers slightly better bokeh, or out-of-focus blurring. Marked with a striped gold line since it’s a USM lens, and has a metal lens mount. Discontinued. &lt;p&gt;&lt;b&gt;28-105mm 3.5-4.5 USM II.&lt;/b&gt;&lt;br&gt;This is the official second version of the lens, as indicated by the II symbol. According to Canon the original 28-105 and the mark II versions have identical optics, but the mark II version has slightly different external styling, including an allegedly slightly tougher design. According to &lt;a href="http://www.camera.canon.com.my/photography/nut/2000iss/nuts56/index.htm"&gt;Canon Malaysia&lt;/a&gt; an internal component used in the zoom mechanism has been updated to metal from plastic. Marked with a striped gold line since it’s a USM lens, and has a metal lens mount. Discontinued. &lt;p&gt;&lt;b&gt;28-105mm 4-5.6 USM.&lt;/b&gt;&lt;br&gt;This lens is a cheapie lens, released in 2002. It is a completely different and very much inferior lens from all the ones listed above. It’s almost entirely made of plastic (including the lens mount) and has vastly worse optics than the faster lenses. It can easily be identified by the silver (chrome) ring around the end of the barrel. Interestingly, while it uses a micromotor USM autofocus system it nonetheless supports full-time manual, according to Canon’s literature. It’s a lens intended for consumers and does not fit the same position in the lineup as the 28-105 3.5-4.5 USM II. &lt;p&gt;In short, be &lt;i&gt;very&lt;/i&gt; careful when shopping for a 28-105 lens. You don’t want to buy a lens thinking it’s the popular midrange lens only to end up with the bottom of the line cheapie instead. Always double-check the listed aperture range before buying.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="28200"&gt;&lt;/a&gt;Should I buy the Canon 28-200 or the Tamron 28-200 or the Sigma 28-300 (or some other lens with a big focal range)?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;A popular question back in the late 90s, when such lenses were heavily marketed as the ultimate in consumer convenience since they cover such a huge focal length range. Sadly, the lenses tend to be fairly big and heavy, as consumer lenses go. And most importantly, the optical quality of these lenses leaves a lot to be desired. It’s very difficult to build optically sharp zoom lenses, particularly those with a really wide zoom range like these ones. The lenses are pretty slow, with small maximum apertures. They also tend to have a lot of distortion, which makes squares and rectangles in photos appear like they’re bulging in or out slightly - bad for photos of buildings. &lt;p&gt;If you only take 4"x6" snapshots then these drawbacks are probably fine, but if you ever want to make enlargements beyond that you may find that your photos look disappointingly soft - not very sharply focussed. Since they’re optically so slow you’ll probably also find that any telephoto photos you take will be badly blurred unless you use a tripod or flash. Finally, using long telephoto lenses requires a certain degree of technique and experience since the focal lengths are so long. You can’t easily handhold a slow 300mm lens, for example. Doing so, particularly without high-powered flash, is a surefire recipe for disappointingly blurry photos. And Sigma has regrettably a long history of older lenses turning out to be incompatible with later EOS cameras. &lt;p&gt;As a beginner you’re probably best off getting one or two lenses of a more modest focal length range, no matter what nonsense the salesperson in your camera shop may say about you never needing to buy another lens again. In short, consumer-level 28-200 or 28-300 lenses always suffer from tremendous optical compromises; compromises which render them of limited value, especially at the long (200-300mm) end. &lt;p&gt;There are really only two lenses with a huge focal length range that are generally accepted as possessing decent optical quality - Canon’s 35-350 3.5-5.6L and Canon’s 28-300 3.5-5.6L IS. However both are gigantic and expensive lenses not intended for beginners.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="telephotos"&gt;&lt;/a&gt;What affordable Canon long telephotos are there?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Canon make telephoto zooms which fall mostly into two basic categories - very cheap slow lenses with mediocre optical quality and very expensive fast lenses with fabulous optical quality. There are few intermediate choices, though the 70-300 4.5-5.6 IS USM is one to consider. Canon have also never built any affordable long EF telephoto prime lenses - all EF telephoto primes longer than 135mm are L series lenses. &lt;p&gt;There are a number of Canon zoom lenses in the 75mm to 300mm range, however. Here’s a bit of basic information about some of them. &lt;p&gt;&lt;b&gt;75-300 4-5.6&lt;br&gt;75-300 4-5.6 USM&lt;br&gt;75-300 4-5.6 II&lt;br&gt;75-300 4-5.6 II USM&lt;br&gt;75-300 4-5.6 III&lt;br&gt;75-300 4-5.6 III USM&lt;/b&gt;&lt;br&gt;Canon sell and have sold quite a few different lenses with focal lengths from 75mm to 300mm. All apparently use the same optics - they just have different cosmetic styling of the lens barrel (the mark III version, for example, has a silver ring on the end to impress novice camera buyers) and different autofocus motors. They’re very inexpensive lenses as telephoto zooms go, but offer fairly mediocre optical quality. At the short (75mm) end they’re not too bad but at 200-300mm they tend to get very soft (slightly blurry). You really need to stop them down to f/8 or f/11 or so for okay optical quality, which of course requires longer shutter speeds.&lt;br&gt;The 75-300 USM models all have micromotor USM autofocus mechanism which do not support full-time manual (FTM). All other versions of this lens use slow and noisy micromotor or DC motor drives. These lenses, while in the “cheapie” category of Canon lenses, have metal lens mounts. They do not, however, have distance scales. All versions of this lens have rotating ends when focussing, which makes using a polarizing filter rather inconvenient. &lt;p&gt;&lt;b&gt;75-300 4-5.6 IS USM&lt;/b&gt;&lt;br&gt;One notable lens in the 75-300 series is the IS model, which offers image stabilization for improved shooting at lower shutter speeds. It was the first IS lens offered by Canon, but the lens sadly has the same unremarkable optics as the other 75-300 lenses. &lt;p&gt;&lt;b&gt;70-300 4.5-5.6 IS USM&lt;/b&gt;&lt;br&gt;Do not confuse this lens with the cheaper 75-300 crowd or the more expensive DO lens with almost the same name. This lens combines decent optics with image stabilizing and is an excellent compromise for the advanced amateur. It’s not quite as sharp as the 100-300 5.6L, but IS makes it a lot more convenient since you end up with a much higher percentage of keepers when used off-tripod. &lt;p&gt;&lt;b&gt;70-300 4.5-5.6 DO IS USM&lt;/b&gt;&lt;br&gt;This lens is particularly unusual in that it’s the first zoom lens to use diffractive (&lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#do"&gt;DO&lt;/a&gt;) lens elements. This Canon technology allows for smaller and lighter lenses. The 70-300 DO is considerably shorter than its 75-300 siblings, and has image stabilization (IS) technology to boot. It isn’t cheap, however. Do not confuse it with its non-DO sibling. &lt;p&gt;&lt;b&gt;90-300 4-5.6 USM&lt;/b&gt;&lt;br&gt;I really don’t see the point of this lens. It appears to be pretty well the same as all the cheap 75-300 lenses, only its short end starts at 90mm. It’s USM but only micromotor USM and thus has no FTM. &lt;p&gt;&lt;b&gt;100-300 4.5-5.6 USM&lt;/b&gt;&lt;br&gt;This lens is, in terms of build quality and physical appearance, the telephoto zoom counterpart of the 28-105 3.5-4.5 USM and the 24-85 3.5-4.5 USM. It has reasonably solid construction, a fast and silent ring USM autofocus drive which supports full-time manual (FTM), does not having a rotating end and has a distance scale. Optically the 100-300 USM I had was very slightly sharper than the 75-300 at the long end, but many people report that there’s really no difference between their samples of the lenses. Essentially the 100-300 USM gives you improved focussing speed and a more convenient user interface compared to the 75-300s, but not improved optics. You also lose 25mm and half a stop off the short end, for what it’s worth. &lt;p&gt;&lt;b&gt;70-210/3.5-4.5 USM&lt;/b&gt;&lt;br&gt;The predecessor to the 100-300 4.5-5.6 USM. Very similar in size and construction, only with a focal range that’s shorter at each end. Offers similar optical quality. &lt;p&gt;&lt;b&gt;100-300 5.6L&lt;/b&gt;&lt;br&gt;An older and now discontinued lens, the 100-300 5.6L is an interesting lens in that, while it’s technically an L series lens with fluorite and UD lens elements, it doesn’t have the tough build quality of a typical L series lens sold today. It uses a slow and noisy AFD autofocus motor and has an awkward (low-profile) and fiddly (hard to slide) MF/AF switch. The manual focus ring is also rather gritty to turn. However, it does offer considerably improved optical quality over the 75-300 series and the 100-300 USM. It's also sharper than the 70-300 IS USM. So if you can deal with the slow optical speed (maximum aperture of only 5.6) and the horribly sluggish autofocus motor it’s well worth looking into if you’re on a tight budget. &lt;p&gt;&lt;b&gt;50-200/3.5-4.5 L&lt;/b&gt;&lt;br&gt;Similar to the 100-300 5.6L, in that it’s a first generation EF-mount L series lens. It has the optics of a modern L series lens - but not the build quality - and has a push-pull zoom design. The 50-200 isn’t a bad lens, but for some reason holds its used market value rather well. Personally I think the 70-200 4L USM is a better deal. It’s typically not much more money but gives you better build quality and silent focussing USM. &lt;p&gt;&lt;b&gt;70-200 4L USM&lt;/b&gt;&lt;br&gt;This lens, the smaller and cheaper sibling of the impressive 70-200 2.8L USM professional lens, is considered a bargain by many EOS users. It costs three times as much as the cheapie lenses but it’s sturdy, focusses quickly with a ring USM system with FTM and, most importantly, it has great optical quality. It’s bigger and heavier than the consumer lenses, but if you want something good but can’t afford the 2.8L, consider this lens. It doesn’t use a huge 77mm filter like the 2.8L - it uses a 67mm filter like the 24-85 3.5-4.5 USM. This is a little unfortunate, has hardly any other Canon lenses have 67mm filters. &lt;p&gt;&lt;b&gt;70-200 4L IS USM&lt;/b&gt;&lt;br&gt;The image stabilized sibling to the 4L. Visually almost identical, down to the 67mm filter, but much much more expensive than its non-L counterpart. According to some reviewers, one of the sharpest Canon lenses in its whole zoom lens range. &lt;p&gt;&lt;b&gt;80-200 4.5-5.6&lt;br&gt;80-200 4.5-5.6 USM&lt;br&gt;80-200 4.5-5.6 II&lt;/b&gt;&lt;br&gt;Plastic cheapies, basically analogous to the 28-80 plastic cheapies. They are very lightweight and portable, though. If you want something really inexpensive and never enlarge your photos past postcard size then they’re fine. &lt;p&gt;&lt;b&gt;100-300 5.6&lt;/b&gt;&lt;br&gt;With pretty well identical build quality to the 100-300 5.6L, this older lens has all the disadvantages of the 5.6L without the sharp optical quality of the L lens.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="birdphotos"&gt;&lt;/a&gt;I want to take photos of wild birds. What lens do I need?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;You probably won’t want to hear this answer, but nature photography of small and fast-moving wild animals is a difficult field and basically requires really expensive lenses. 500mm and 600mm lenses are commonly used by bird photographers - your typical 100-300mm zoom lens is just not long enough for great photos. And lenses longer than 300mm are both incredibly expensive and really heavy. &lt;p&gt;So the harsh reality is while you may be able to get nice snapshots of fairly tame birds with a 100-300mm lens you won’t be able to get those amazing wildlife book or calendar shots - small birds filling the entire frame - with one. You can always use your lens at 300mm and then crop off the edges of the picture, but then picture quality will suffer. &lt;p&gt;If you really want to do this type of photography on a tight budget you might want to consider buying used manual focus gear. You can find really quite decent used high-end manual focus telephotos quite inexpensively compared to their autofocus counterparts.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="sports"&gt;&lt;/a&gt;I want to do sports photography. What lens do I need?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Unfortunately, this answer is going to be somewhat like the previous one. The challenges of sports and other action photography are twofold. First, by its very nature, sports photography tends to involve rapid motion - fast-moving players or cars or whatever. Second, usually there’s some distance between the action and the camera. &lt;p&gt;Solving the first problem requires lenses which can let in plenty of light, the use of flash or faster film or high ISO settings on a digital camera. Each of these solutions has drawbacks, however. Fast lenses are large, heavy and expensive. Fast film or high ISO settings result in higher grain or noise and thus lower picture quality. And flash may be inadequate to illuminate the subject effectively, particularly if the subject is some distance away. &lt;p&gt;Solving the second problem basically requires the use of long telephoto lenses. However, most affordable autofocus telephoto lenses are very slow - they don’t let in much light. So this amplifies the first problem. &lt;p&gt;Now obviously there are some cases where these two issues aren’t a massive problem. For example, perhaps you’re shooting a basketball game and you’re in the front row. Basketball courts are of a modest size and so you could probably do okay with flash (assuming you’re allowed to use flash - some places won’t let you as it can temporarily blind or distract the players) and you won’t need an incredibly long lens accordingly. Such a situation is a little less challenging than shooting hockey on a big, poorly lit, rink. &lt;p&gt;Nonetheless, pro photographers rely on fast lenses, and this is the primary stumbling block for amateur photographers on a budget. Fast telephoto lenses, especially fast telephoto zooms, are really expensive. And there’s not much you can do to work around that fact without a lot of compromises. To cover these points further: &lt;p&gt;&lt;b&gt;Fast lens.&lt;/b&gt; Get the fastest (largest aperture) lens you can afford. A 70-200 2.8 lens is great for basketball, for example. A 75-300 4-5.6 is probably not, since even shooting wide open means you’ll have slow shutter speeds, which will result in unwanted motion blur.&lt;br&gt;&lt;b&gt;Telephoto lens.&lt;/b&gt; You’ll need a long telephoto zoom unless you’re planning on shooting very close to your subjects. For example, you won’t need a long lens to shoot skateboarders in an urban setting, but you will if you’re covering a football game.&lt;br&gt;&lt;b&gt;Cropping.&lt;/b&gt; You can always make up for a long lens to a certain extent by cropping the picture - trimming off the edges. The problem with this is that enlarging the picture also enlarges the grain in the case of film and lowers the apparent resolution in the case of digital.&lt;br&gt;&lt;b&gt;Image stabilization&lt;/b&gt;. Useful for reducing blurring caused by camera motion, but of no value whatsoever in freezing subject motion.&lt;br&gt;&lt;b&gt;Flash.&lt;/b&gt; Useful both for illuminating the subject and freezing subject motion. Not every venue permits flash usage, however.&lt;br&gt;&lt;b&gt;Film/ISO speed.&lt;/b&gt; Fast film or high ISO settings are needed to keep shutter speeds to a minimum. Once again this involves tradeoffs with picture quality.&lt;br&gt;&lt;b&gt;Camera with fast focus.&lt;/b&gt; A fast pro camera (such as the EOS 1 series) can lock focus surely and accurately and has minimum lag time when the shutter release is pressed. A consumer camera is not going to be as surefooted and decisive, and will make it harder to nail the perfect shot.&lt;br&gt;&lt;b&gt;Fast lens motor.&lt;/b&gt; A Canon ring USM lens can autofocus rapidly, whereas a Canon AFD (arc form drive) lens cannot. A lens with a rapid motor frequently makes the difference between achieving a shot and getting nothing. &lt;p&gt;To summarize - if you plan on putting a 75-300 4-5.6 consumer lens onto your camera, don’t expect photos like those which grace sports magazines. This isn’t to say that you can’t get satisfactory photographs with such equipment, just that it’s challenging to do so. It takes a lot of skill, experience and luck to come up with consistently good results. And you should be operating on the expectation that you will face problems with blurring of the subject and general low sharpness and low contrast if you use an affordable consumer telephoto zoom lens.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="mirror"&gt;&lt;/a&gt;What about mirror lenses? I can get a really cheap telephoto that way!&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Some third-party lens makers sell mirror or, as they’re more accurately known, catadioptric lenses. Such lenses use a pair of mirrors to fold the light path in half, in addition to containing regular glass elements. The advantages are that mirror lenses can be made fairly cheaply and will also be shorter and lighter than all-glass (refracting) lenses of the same focal length. And mirror lenses with focal lengths of 500mm to 1000mm are not uncommon. Russian makers produce a lot of these lenses. &lt;p&gt;Unfortunately mirror lenses have a number of drawbacks. First of all, they’re manual-focus only. Second, they are optically really slow lenses - usually around f/8 or so. Third, they don’t have aperture diaphragms, so the only way to adjust the exposure is to adjust the shutter speed, the film speed/digital ISO or to put a neutral density (darkening) filter on the lens. Fourth, the smaller of the two internal mirrors blocks the light path somewhat, resulting in rings or doughnuts appearing around bright highlights in out of focus areas. This effect, a form of &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#bokeh"&gt;bokeh&lt;/a&gt;, can be visually very distracting. And fifth, they tend optically not to be of the highest quality - you’re not going to get National Geographic-quality bird photos using them. &lt;p&gt;So, while such lenses are attractive if you’re on a budget, they do have many limitations associated with them. You’re probably better off buying a used manual-focus refracting (non-mirror) lens and adapting it to your camera, or buying a manual-focus body. As noted above, photography can be a really expensive endeavour.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="macro"&gt;&lt;/a&gt;What is a macro lens? My lens has MACRO written on it.&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Macro photography is the somewhat confusing name for closeup photography. Just as the human eye can only focus up to a certain distance (a distance which moves alarmingly further away with age), not all lenses can focus as closely as others. Most lenses are designed to focus up to a metre or two with long telephoto lenses having much longer minimum focussing distances than that. &lt;p&gt;Now this obviously isn’t going to help you if you want to take a super closeup of a small flower - you need a much shorter minimum focussing distance. Basically you want to be able to fill the frame with your small subject. And another concept comes in - the magnification factor. Traditionally, true macro photography refers to 1:1 photography and smaller. In other words, a lens with 1:1 magnification is able to image an area as small as the exact size of the image format in question. In the case of 35mm film this means an area of 24x36mm in size. Sometimes magnification is written as a decimal factor, such as 0.25x or 1.0x. &lt;p&gt;Unfortunately, lens manufacturers tend to throw around the word “macro” with cheerful abandon as a marketing gimmick. The fact a lens has MACRO printed on it basically means nothing, and you have to look closely at the lens specs. If a lens can do 1:1 or 1:2 photography then it’s a real macro lens, optimized for closeup photography. It may also be designed with a flat field so it can be used to take photographs of flat objects like stamps without focus problems. Lenses that can only reach 1:4 or whatever can’t take really close-up pictures. &lt;p&gt;True macro lenses are generally of much higher optical quality than ordinary lenses and usually cost more. They are also usually optimized to take photographs of small flat objects with even focus across the surface - flat field. They’re still a good buy if you don’t do a lot of macro photography, however. You can always use them for regular photography as well - they just have the bonus that they can focus much closer than ordinary lenses can.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="portrait"&gt;&lt;/a&gt;What is a portrait lens?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Obviously any lens can be used to take a portrait of someone. However, the results can be very different depending on its focal length. &lt;p&gt;The distance required between you and your subject, when you take a head and shoulders portrait, depends on the focal length of the lens. If you have a wide angle lens then you need to stand very close to them in order to have their head and shoulders fill the frame. But if you have a telephoto lens then you need to stand a fair distance away from them for the same effect. &lt;p&gt;This distance results in a change in perspective. Try this experiment with someone in real life without using a camera. If you stand really close to the person and look at their face you’ll notice that this position tends to emphasize their nose and make their forehead look like it’s sort of sloping away. But if you’re further away from them then their face tends to look flatter. And generally speaking people find that a slightly flatter perspective on a face is usually a bit more flattering in general. Portraits taken with wide-angle lenses can, in fact, have a rather comical or grotesque effect. &lt;p&gt;So generally photographers like to use lenses of about 85mm to 135mm in length when taking head and shoulders portraits, depending on the look they’re trying to achieve. Some fashion photographers even use 200mm and 300mm telephotos for a particularly flat effect. You &lt;em&gt;can&lt;/em&gt; take photos of people with 50mm and shorter lenses, but these lenses tend to distort the face somewhat. Such shorter focal lengths are, however, perfectly fine for waist-up or full body shots. &lt;p&gt;Canon make a number of of popular lenses used for portrait photography. Two of the more affordable ones include the compact and sharp 85mm 1.8 and the 135mm 2.8 SF which has a “soft focus” feature which allows you to introduce image-softening at will. &lt;p&gt;Finally, note that the lens focal lengths I list here are for 35mm film or full-frame EOS SLR. If you’re using a camera with a smaller image area - digital or APS - then the ideal focal lengths for portraits are going to be shorter. For example, a 50mm lens is generally considered a bit short for most portraiture with 35mm film, but when mounted on an EOS 10D digital camera it takes photos much like those taken with an 80mm lens on a 35mm film camera.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="fisheye"&gt;&lt;/a&gt;What is a fisheye lens?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Most lenses are “rectilinear,” which means they’re designed to project an image onto a flat surface (the film or the image sensor) and render straight parallel lines as straight parallel lines. This is actually a complicated optical trick, since a simple lens really wants to project an image onto a spherical surface (such as the interior of the human eyeball). It also becomes increasingly complicated to do as the field of view of the lens becomes larger, as with wide-angle lenses - one reason why really wide angle lenses are so expensive. &lt;p&gt;This type of projection onto a flat field is something that different lenses do to varying degrees of success. High quality lenses, particularly those intended for use for macro or architectural photography, do a pretty good job. But cheaper lenses will compromise on this slightly and will either barrel or pincushion somewhat. That is to say, a photograph of a square object may appear to be either bulging outwards or squashed inwards, because parallel lines are being portrayed as curved. In fact, nearly all cheap lenses tend to have barrel distortion - it’s just that people usually don’t realize it because they rarely take photos of square or rectangular objects. &lt;p&gt;A fisheye lens is a wide angle lens where no effort has been taken to render parallel lines as parallel. Instead, only lines which pass through the centre of the frame are straight. All other lines appear as curves, becoming increasingly curved as you near the edge of the frame. This line curvature has the effect of making near objects seem closer and more distant objects seem further off, as they fall away. If you’ve ever looked through the glass peephole viewers in a door then you know the effect. &lt;p&gt;Sometimes people call rectilinear lenses “corrected” and fisheye lenses “distorting,” but I don’t think that’s very useful or accurate. Rectilinear lenses aren’t necessarily correct - a wide-angle lens has extreme distortion and stretching towards the edges to make the lines straight. That being said, the fisheye effect is very pronounced and extreme, and does render scenes in a characteristic fashion. Portrait photographs of people taken with fisheyes, for example, have cartoon-like bulging noses and so on. &lt;p&gt;Fisheye lenses are useful for three basic things. First, it’s a lot easier to make a super wide angle fisheye than it is a super wide angle rectilinear lens, so a fisheye lens is going to be cheaper than its rectilinear equivalent. Second, and this is how fisheyes came about, it’s possible to build a fisheye lens which covers a full 180° field of view, which is very handy for scientific photography, particularly of the sky. And third, bulgy wide angle effects are fun for taking crazy trippy photographs. &lt;p&gt;There are two basic types of fisheye lenses. Circular or 180° fisheyes cover a full (or nearly full in most cases) 180 degree field of view across the narrower side of the image rectangle. These lenses make photos that look like bulging circular balls on a black background. The other type are sometimes called full frame or semi fisheyes and basically offer a cropped field of vision so you don’t get the black areas at the corner of the picture. As a result they only cover 180 degrees of view on the diagonal. &lt;p&gt;On 35mm cameras, full frame fisheyes usually have a focal length of 8mm, and semi-fisheyes have a focal length of 15mm or 16mm. In near-circular lenses, Japanese maker Sigma sell an 8mm autofocus fisheye for use with EOS cameras, and Belarus maker Peleng sell an 8mm manual-focus fisheye that can be adapted to EOS cameras. In full frame fisheyes, Canon sell a 15mm autofocus fisheye for EOS, and Russian maker Zenitar sell a 16mm manual-focus fisheye lens which can be adapted. There are also popular screw-on adapters that convert ordinary lenses into fake fisheye lenses. Such adapters are virtually all of extremely low quality, but are definitely fun to play with. &lt;p&gt;A lot of photographers turn up their noses and dismiss fisheyes altogether as gimmicky remnants of the 1970s. Personally I think fisheye distortion can yield &lt;a href="http://burningcam.com/2001/large-1.html"&gt;interesting effects&lt;/a&gt; if used occasionally, but it’s obviously not something you’re likely to use every day. In nature or underwater photography, where there are few straight lines, fisheyes can be a useful tool as well.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;Lens features.&lt;/b&gt; &lt;p&gt;&lt;b&gt;&lt;a name="zoomtypes"&gt;&lt;/a&gt;What is the difference between two-touch zoom and push-pull zoom?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;There are two basic ways to adjust the focal length of a zoom lens. Some zoom lenses have a zoom ring as well as a focus ring and so are called two-touch. Rotating the zoom ring adjusts the focal length. Other lenses slide in and out like a trombone or telescope; the so-called push-pull design. &lt;p&gt;The push-pull design is more vulnerable to zoom creep than two-touch. This is the problem of the zoom accidentally adjusting focal length (sliding) when tilted up or down because the friction of the push-pull system isn’t enough to counteract the weight of the lens. Push-pulls also tend to suck in a lot of air and therefore dust into the lens when adjusted. However, push-pull lenses can be operated more rapidly, if usually a bit less accurately, than two-touch zooms.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="whitelens"&gt;&lt;/a&gt;Why are some Canon lenses painted white or silver?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Nearly all large telephoto L series lenses have barrels constructed from solid metal and painted off-white, rather than black plastic or black-painted metal. Canon say they do this since white surfaces absorb less heat than black when used out in the sun, and fluorite crystal lens elements are sensitive to heat - they can expand and contract, altering their optical properties. Of course, the fact that a white-painted Canon lens stands out in the crowd is probably part of the reason as well. Look at any major sports event and you’ll see rows of hefty white lenses. Though to confuse matters Nikon have also begun to sell some lenses in optional white paint. &lt;p&gt;A few lenses intended to be sold as kit lenses with silver-painted camera bodies have also been available with silver-painted plastic barrels. These include the 35-135 4-5.6 USM (to match the silver-painted commemorative edition of the EOS 10/10s which was released to mark the sale of 60 million Canon cameras), the 24-85 3.5-4.5 USM (to match the APS IX camera) and the 28-90 4-5.6 USM II (to match the Rebel Ti/EOS 300V/Kiss 5). The silver paint on these midrange and low end lenses is purely for cosmetic reasons.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="tripodmount"&gt;&lt;/a&gt;What is a tripod mount on a lens for?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Normally you put a camera onto a tripod by attaching the camera body right to the tripod head itself. But if you have a really heavy lens this is a bad idea. Large lenses can often weigh far more than the heaviest SLR cameras. So the right way to do it is to attach the lens to the tripod head via a tripod mount. The camera then sort of hangs off the back of the lens unsupported, but this isn’t a problem - lens mounts are designed to handle that kind of weight easily. &lt;p&gt;Lens tripod mounts or collars are mounting rings with built-in clamps. These rings make it easy to rotate the camera from portrait (vertical) to landscape (horizontal) position. If the maker of your lens sell a tripod mount for the lens then it’s probably wise to get one.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="distancescale"&gt;&lt;/a&gt;What is a distance or depth of field scale?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Most Canon EF midrange and better lenses have distance scales - clear rectangular plastic windows set into the lens barrel. A series of numbers can be seen through this window indicating the distance, in both metres and feet, from the lens to the point in focus. Inexpensive consumer lenses generally do not have distance scales. &lt;p&gt;Canon EF prime lenses also have simple depth of field scales marked on the barrel below the window. These marks indicate the acceptable depth of field distances from the current focus distance, usually for a small number of apertures - &lt;i&gt;f&lt;/i&gt;/11 and &lt;i&gt;f&lt;/i&gt;/22, say, or &lt;i&gt;f&lt;/i&gt;/5.6, &lt;i&gt;f&lt;/i&gt;/11 and &lt;i&gt;f&lt;/i&gt;/16. Canon EF zoom lenses, however, do not have any depth of field scales because of the complexity of indicating depth of field over varying focal lengths. &lt;p&gt;You’ll notice that there is usually a red dot on the distance scale window as well. This is used for determining the focus distance when using infrared film with an infrared filter. Since infrared energy focusses at a different point from visible light this dot is a useful aid. However, if you’re using infrared film with an ordinary red filter or no filter at all then you may not need to adjust focus using this dot, since much of your image is going to be visible light anyway. For more information please consult my &lt;a href="http://photonotes.org/articles/ir-myths/"&gt;Infrared Myths&lt;/a&gt; document.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="rotating"&gt;&lt;/a&gt;What is the issue with a rotating end of a lens?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Some lenses have an outer end which rotates when you adjust either the focus or the zoom setting or both. Others do not. &lt;p&gt;This matters a lot if you’re using a polarizing filter or a graduated neutral density (ND) filter, since the properties of the polarizer vary depending on its angle of rotation and the graduation line runs across the filter in a straight line. It can be very annoying to set a filter to achieve the effect you want, touch up the focus, and find that the polarizing or graduated ND effect has changed because the end of the lens has rotated.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="blades"&gt;&lt;/a&gt;Why does it matter how many blades the aperture diaphragm has?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;The adjustable aperture diaphragm in most camera lenses consists of a number of flat wedge-shaped metal blades. As you adjust the lens aperture settings these blades rotate in or out, and the aperture opening changes size in an iris-like fashion. &lt;p&gt;The shape of the hole made by this adjustable diaphragm depends on the number of blades and the shape of the blades. For example, if you have a 5 blade aperture diaphragm then the aperture will be a pentagon in shape. An 8 blade aperture diaphragm will of course yield an octagon. &lt;p&gt;There are two areas in which this aperture shape affects the final image. First, the shape of lens flare on a photograph is typically governed by the shape of the aperture. You may have seen photographs with pentagonal or hexagonal lens flare, for example, or star-shaped highlight areas in a photograph taken with a small aperture setting. Second, it’s generally held that the closer the aperture is to a circle the smoother out of focus areas (bokeh) tends to be, though it isn’t the only factor contributing to bokeh. Many lenses have at least 6 or 8 aperture blades, frequently with curved edges, to approximate a circular aperture opening for this reason. Canon have in fact started billing some of their recent lenses as having “circular” apertures, indicating near-circular openings.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="weather"&gt;&lt;/a&gt;Which lenses are weather-resistant?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Most of Canon’s new professional (L series) lenses introduced since mid 1999 are equipped with gaskets and rings to keep out dust and moisture. They’re not waterproof, by any means, so don’t go diving with them. But they’re much more resistant to inclement weather than Canon’s other products. &lt;p&gt;Of course, a weather-sealed lens isn’t much good unless you have a weather-sealed camera to match it. And at present only the top of the line EOS 1V, 1D, 1Ds 1D mark II, 1Ds mark II and 1D mark IIN cameras (but not the 1, 1N or 3, which have lesser sealing systems) have the same level of weather sealing - gaskets and rings around every opening, button and switch, in fact. You can use the sealed lenses with non-sealed cameras, of course, but the gasket around the lens mount will still let in water unless mated to the gasket around a sealed camera. (this rubber ring around the lens mount is, incidentally, an easy way to tell if a lens is weather sealed or not) Note that dust on the rubber gaskets will cause cosmetic abrasion to a camera’s lens mount, but shouldn’t cause any serious damage. &lt;p&gt;You can consult my &lt;a href="http://photonotes.org/lookup/"&gt;Complete EOS Lookup Page&lt;/a&gt; for details on which lenses are weatherproofed. &lt;p&gt;The mark II and III versions of Canon’s teleconverter or Extenders also have weatherproofing. None of Canon’s more affordable lenses or cameras have weather sealing. Note also that weather-resistant zoom lenses do not have sealed glass ends - you need to put a filter on these lenses to seal out the far (non camera) end.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="closefocus"&gt;&lt;/a&gt;What is the close or minimum focus distance?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Just like a human eye, camera lenses have a near point at which they cannot focus anymore. This focus distance depends on the lens construction, but typically wide angle lenses have nearer close focus distances than telephotos. Many macro lenses, of course, are optimized for near close focus distances. &lt;p&gt;If you’re a human you can adjust this close focus distance by moving the object you’re trying to focus on further away. Similarly you can add &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#closeup"&gt;extension tubes&lt;/a&gt; to your lens to move the lens further from the camera and thus bring the close focus distance closer. You will lose the ability to focus on infinity with such a tube, though.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="infinitymark"&gt;&lt;/a&gt;Hey! I can turn the focus ring of my lens &lt;i&gt;past&lt;/i&gt; the infinity mark! Why?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Your lens can go to infinity - and beyond! Yes, many lenses can be adjusted past the infinity marking on the lens barrel. &lt;p&gt;It’s not a problem. Such lenses are intentionally designed this way to allow the lens to compensate for the changes in optical characteristics that occur when the lens is subjected to ambient temperature changes. (the focus of lenses can be affected by thermal expansion)&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="lenshood"&gt;&lt;/a&gt;What does a lens hood do?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Aside from making the lens look longer and bigger and thus more impressive to non-photographers, lens hoods (sometimes called shades) serve two basic functions. First, they help reduce the amount of stray light hitting the surface of the lens. This is a good thing, since non-image-forming light coming into the lens at an angle results in lens flare. Lens flare can result in lower-contrast images or, in extreme cases like light from the sun, can result in big glowing blobs in the final photo. Second, lens hoods serve as physical protection for the lens - the plastic or metal tube can absorb blows that might otherwise hit the glass itself. &lt;p&gt;Lens hoods come in a number of basic forms. The two types sold by Canon today are tube-shaped hoods and petal-shaped (notched) hoods, made of hard black plastic. The petal-shaped type are sometimes called “perfect” lens hoods and shield the lens more effectively than simple tubes of the same weight. This is because the notches are cut out to match the rectangular shape of the imaging area (think about it). &lt;p&gt;Some hoods clip onto the lens, some twist on bayonet-style and some screw onto the end. Some are lined with black light-absorbing flocking and some are not. You can also buy flexible adjustable rubber hoods from third party makers, but Canon do not sell any such hoods themselves. &lt;p&gt;Unfortunately, lens hoods are hugely overpriced. Camera makers somehow feel justified in charging massive sums for simple moulded plastic tubes. Ah well.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="hoodcode"&gt;&lt;/a&gt;How are lens hoods named?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Canon lens hoods are identified by a confusing and cryptical alphanumeric code. There is a system to the hood naming, though it’s only somewhat informative. Still, if you understand how the hood naming works you can usually figure out which hoods can be interchanged with other lenses.&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;The first letter in a hood name is E, indicating that the hood fits a Canon EF mount lens. &lt;li&gt;The second letter is either W, S or T. W stands for Wide, S for Standard (probably) and T for Telephoto.&lt;br&gt;The letter refers to the type of lens to which the hood fits. W is for any lens wider than 50mm, S is for a 50mm lens (with a couple of odd exceptions) and T is for any lens longer than 50mm. &lt;li&gt;The two letters are then followed by a number which indicates the size of the hood mounting ring in millimetres. Some hoods fasten to the very end of the lens barrel by means of a bayonet (rotating and locking) mount and others clip further down the barrel to a small ring by means of small spring-loaded plastic clips in the hood. Generally newer lenses use the former style and older lenses the latter. &lt;li&gt;The hood size is sometimes followed by a letter from A through D. This letter indicates the hood style, and unfortunately there’s no real way of knowing what style fits what lens without looking it up, because the hood style appears to be chronological depending on when the lens was released and whether there happened to be any lens hoods already in the lineup with otherwise identical specifications but with a different shape. There is no way to tell if the hood is a standard tube or a petal shape (“perfect”) lens hood just by looking at this letter.&lt;br&gt;For example, the original EW-78 fits the 35-350 3.5-5.6L USM, the EW-78B fits the EF 28-135 3.5-5.6 IS USM, the EW-78C fits the EF 35 1.4L USM and the EW-78D fits the EF 28-200 3.5-5.6. &lt;li&gt;Finally, the hood name sometimes ends in a Roman numeral - typically either II or III. This indicates the hood version.&lt;br&gt;Generally speaking, mark II and III hoods are flocked on the interior with black anti-reflective material, like velvet. Hoods with no Roman numeral designation are typically painted flat black, but since this depends in part on when the hood was released this is not a guarantee. Some mark II hoods also have slightly more clearance around the end of the lens so that polarizing filters fit better if their predecessors didn’t.&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;Some hood naming examples: &lt;p&gt;&lt;b&gt;ET-65 III&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;E indicates that the hood fits an EF mount lens.&lt;br&gt;T indicates that the hood fits a telephoto lens.&lt;br&gt;65 indicates that the hood mount is 65mm in diameter.&lt;br&gt;III indicates this is the third hood of the ET-65 series, and means in this case that the hood is flocked to reduce reflections. &lt;p&gt;This particular lens hood fits a number of Canon EF telephoto lenses - the 85 1.8 USM, the 100 2.0 USM, the 135 2.8 SF, the 70-210/3.5-4.5, the 75-300 4-5.6 and the 100-300 4.5-5.6 USM.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;EW-78B&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;E indicates that the hood fits an EF mount lens.&lt;br&gt;W indicates that the hood is for a wide angle lens.&lt;br&gt;78 indicates that the hood mount is 78mm in diameter.&lt;br&gt;B indicates that it’s a hood of type B. &lt;p&gt;This particular hood fits the 28-135 3.5-5.6 IS USM.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;ET-160&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;E indicates that the hood fits an EF mount lens.&lt;br&gt;T indicates that the hood fits a telephoto lens.&lt;br&gt;160 indicates that the hood mount is 160mm in diameter. &lt;p&gt;This gigantic hood fits the 600mm 4L USM IS.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Knowing this system you can figure a few things out. For example, the EW-65, ES-65 and ET-65 can all clip onto the same lenses - the only difference is the length. The EW-65 is the shallowest lens and the ET-65 the deepest, so putting an ET-65 onto a 28mm 2.8 lens is a bad idea as you’ll get vignetting unless you have a cropped image sensor on a digital camera. But you can put an EW-65 onto a 100-300 4.5-5.6 USM if you like. It won’t shield your lens as effectively as the longer hood, but it’s better than nothing. Or if you can’t find the discontinued ES-65 you can always use the EW-65 instead.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;General lens questions.&lt;/b&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="changelens"&gt;&lt;/a&gt;Is it okay to change lenses when there’s film in the camera?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Yes. A key advantage of a camera with interchangeable lenses is the ability for you to change lenses whenever you want. The camera body contains a shutter which prevents light from hitting the surface of the film regardless of whether or not the lens is attached. &lt;p&gt;Of course, you should try not to change lenses when you’re outside in the pouring rain or in the middle of a sandstorm or whatever. And don’t poke your fingers into the shutter itself as you’ll damage it.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="compatibility"&gt;&lt;/a&gt;Are there compatibility problems with any EF lenses made by Canon?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Basically, no. Any Canon EF-mount lens will work with any Canon EOS camera. &lt;p&gt;Now, there are minor compatibility issues with IS lenses on certain old EOS cameras - the lenses work, but IS control is a bit weird or the image may shake in the viewfinder. Luckily this latter does not affect image quality of the photos at all. And autofocus-only EF lenses (a handful were made) are not much use on the oddball EF-M camera, which was an EOS camera which lacked autofocus circuitry and which can only be used with manual-focus-capable lenses. But these are minor issues on the whole. &lt;p&gt;Note that this compatibility issue is slightly complicated by Canon EF-S lenses. EF-S lenses, with lens mounts marked with small white squares, can only fit EF-S bodies. Whereas EF lenses, with lens mounts marked with raised red dots, can fit both EF and EF-S cameras.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="compatibilitythirdparty"&gt;&lt;/a&gt;Are there compatibility problems with any EF lenses made by third party manufacturers?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Sometimes. Unfortunately certain third-party lenses not built by Canon, notably many older Sigma lenses, will not work correctly on some newer EOS camera bodies like the Elan 7/EOS 30/33 and the digital EOS 10D. The most common symptom is the mirror flipping up and then the camera freezing when you try to take a photo. You then have to switch the camera off to unlock it. The only solution to this problem is to see if Sigma will upgrade the lens for you. If they still have inventory of the control chip they apparently will happily do so for free. &lt;p&gt;The only third-party maker of EF-compatible lenses with no major compatibility problems so far is Tamron. Some people have suggested that this is because Tamron have licensed official lens protocol data from Canon, but Canon USA’s Chuck Westfall has stated repeatedly in public fora that Canon have never licensed their lens mount protocol to any other manufacturer. So Tamron have either been very lucky or very clever in their reverse-engineering of the Canon lens system. They seem to be a reasonably safe bet right now for compatibility, given their track record, but it’s impossible to predict future developments in this regard. In fact, in 2010 some users with cameras with all cross sensors reported minor focus problems from some Tamron lenses. &lt;p&gt;The following Sigma lenses require upgrading for compatibility with newer EOS cameras, according to Sigma: &lt;blockquote&gt; &lt;p&gt;24-70mm 3.5-5.6 aspherical UC&lt;br&gt;28-80mm 3.5-5.6 mini zoom macro aspherical&lt;br&gt;28-80mm 3.5-5.6 mini zoom macro aspherical HF&lt;br&gt;28-80mm 3.5-5.6 mini zoom macro II aspherical&lt;br&gt;28-105mm 2.8-4 aspherical&lt;br&gt;28-105mm 3.8-5.6 UC-III aspherical IF&lt;br&gt;28-135mm 3.8-5.6 aspherical IF macro&lt;br&gt;28-200mm 3.5-5.6 DL aspherical IF hyperzoom macro&lt;br&gt;28-300mm 3.5-6.3 DL aspherical IF hyperzoom&lt;br&gt;70-210mm 4-5.6 UC-II&lt;br&gt;70-300mm 4-5.6 APO macro super&lt;br&gt;70-300mm 4-5.6 DL macro super&lt;br&gt;100-300mm 4.5-6.7 DL&lt;br&gt;135-400mm 4.5-5.6 APO aspherical RF&lt;br&gt;170-500mm 5-6.3 APO aspherical RF&lt;br&gt;8mm 4 EX circular fisheye&lt;br&gt;15mm 2.8 EX diagonal fisheye&lt;br&gt;24mm 2.8&lt;br&gt;28mm 1.8 II aspherical&lt;br&gt;50mm 2.8 EX macro&lt;br&gt;105mm 2.8 EX macro&lt;br&gt;300mm 4 APO tele macro&lt;br&gt;400mm 5.6 APO tele macro&lt;br&gt;500mm 4.5 APO&lt;br&gt;500mm 7.2 APO&lt;br&gt;800mm 5.6 APO&lt;br&gt;28-70mm 2.8-4 UC&lt;br&gt;28-105mm 4-5.6 UC&lt;br&gt;28-105mm 4-5.6 UC-II&lt;br&gt;70-210mm 3.5-4.5 APO macro&lt;br&gt;28-200mm 3.8-5.6 aspherical UC&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="canonfd"&gt;&lt;/a&gt;Can you use old Canon manual-focus lenses with EOS cameras?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Not really. In the years before introducing EOS autofocus cameras, Canon sold many manual-focus lenses for their SLR cameras. The majority of these lenses are of the FD type. Sadly, FD lenses cannot be used with EOS cameras. The lens mounts are of incompatible sizes and types. This is in contrast to Nikon - most Nikon manual-focus F-series lenses can be used with most Nikon autofocus cameras. &lt;p&gt;Now it is possible to use adapter rings to attach FD lenses to EOS cameras. Unfortunately it’s usually not worth the nuisance, in my opinion. There are just too many drawbacks. I have a separate article on &lt;a href="http://photonotes.org/articles/eos-manual-lenses/"&gt;using manual-focus lenses with Canon EOS cameras&lt;/a&gt;, if you’d like to learn more.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="thirdpartylens"&gt;&lt;/a&gt;Can you use non-Canon lenses with EOS cameras?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;That depends. Many third party lensmakers - Tamron, Sigma and Tokina being the big three - manufacture lenses specifically designed to fit Canon EOS cameras. These lenses will, of course, work fine with EOS cameras. The main caveat is the compatibility with the electronics detailed above. &lt;p&gt;However, if you have a third-party lens which does not physically fit onto your EOS camera then you can obviously assume that the lens will not work with EOS cameras. Sometimes third party lenses can be adapted to fit EOS cameras by way of metal adapter rings, but it’s often not worth the bother. Autofocus will not work, and apertures will have to be set manually on the lens. So adapting lenses this way is only worth it if you have a particularly unusual lens or are operating on a particularly tight budget. For more information have a look at my &lt;a href="http://photonotes.org/articles/eos-manual-lenses/"&gt;using manual-focus lenses with Canon EOS cameras&lt;/a&gt; article.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="consumerpro"&gt;&lt;/a&gt;I have a consumer Canon camera. Can I put a professional L-series lens on it?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Of course. As noted above, any Canon EOS camera works with any Canon EF (or compatible) lens. &lt;p&gt;The major issue you really have to be concerned about is weight, since a really heavy lens can strain the lens mount. The answer is to support the heavy lens by the &lt;i&gt;lens&lt;/i&gt; itself - just let the camera hang off the back of the lens. The weight of the camera is not going to strain the lens mount. This applies to all low to midrange EOS cameras, since even those cameras with metal lens mounts have steel mounts attached to plastic body frames. All larger lenses either come with or have optional tripod mounting brackets (see below), so you can attach the lens to a tripod rather than the camera body. &lt;p&gt;Now of course an inexpensive low-end camera won’t have the manual exposure control, focussing speed (AF speed is determined by both the lens motor and the speed of the camera’s computer and AF sensors) and film-winding motordrive speed to make full use of a top of the line lens the way a professional would like it. And a small camera will feel unbalanced and cumbersome on a large lens. But it’s better to have a great lens on a so-so body than the other way around. Renting professional lenses is a great way to learn and practice when you’re on a budget. &lt;p&gt;This brings up the other issue which might arise - snide looks from camera ignoramuses who think that your little Rebel camera isn’t fancy enough for the 70-200 2.8L you’ve got fastened to it. Ignore them. They’re probably the sort of wealthy dummy who rushes out and buys an EOS 1D mark IV and then sticks a cheap consumer lens on the end.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="f8"&gt;&lt;/a&gt;What’s the big deal about &lt;i&gt;f&lt;/i&gt;/8?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Most lenses provide sharpest results when used in the middle part of their aperture range. Lenses usually have performance problems when used wide-open. Stopping down helps a great deal, but once the aperture becomes too small then an optical phenomenon known as diffraction comes into play and the quality deteriorates once again. So most lenses work best at around &lt;i&gt;f&lt;/i&gt;/8 or &lt;i&gt;f&lt;/i&gt;/11 or so. &lt;p&gt;Naturally this sharpest point (some people call it the “sweet spot”) varies from lens to lens, so some testing would be required to find what’s actually best with a given lens. And the effect is generally more pronounced with less expensive lenses. Really high-quality lenses are often almost as sharp wide open as they are stopped down.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="multiplier"&gt;&lt;/a&gt;What is a focal length multiplier (or cropping factor) for digital and APS cameras?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;35mm film has an image area of 24mm by 36mm. These are the exact dimensions of the area on the film to which an image is recorded. &lt;p&gt;Medium to low-end digital cameras sold today have sensor chips smaller than 24x36mm in size, since producing a 24x36mm image chip is still quite expensive to do. Similarly, APS film records to an area of film 16.7x30.2mm in size. &lt;p&gt;The upshot of this is that if you use such a digital or APS camera you’ll be taking photos which do not record the same image size as 35mm film. So it’s like taking a photo using 35mm film and then cropping out (snipping off) the edges. Imagine drawing a smaller rectangle within a given 35mm photo and then cutting it out - you’ve got a digital or APS photo. &lt;p&gt;This cropping factor is often confusingly referred to as a focal length multiplier. This is because the cropping makes, say, a 50mm lens on an APS camera behave rather like a 70mm lens on a 35mm camera. Not because the focal length has actually changed - it hasn’t - but because of this cropping of the image. The cropping factor is sometimes specified as a numeric value - 1.3x or 1.6x, say. &lt;p&gt;If you want to use your lens to take photos of things far away then this might actually be to your advantage. But if you want to use a wide-angle lens then this cropping factor can be a problem, since wide-angle lenses yield less dramatic results when you crop out the edges. &lt;p&gt;Some people object to the term cropping factor as well, arguing quite rightly that the issue is a matter of a change in format of the image recording area and using lenses designed for a different size format. This is true, but people are so used to equating a given 35mm film focal length with a given coverage area (or field of view) that I think the concept of a cropping factor is convenient and easily understood. &lt;p&gt;To give an example, let’s say you have a 100mm lens. When used on a 35mm film camera you get a certain coverage of the scene. But if you were to put the same lens on a digital camera with a 1.6x crop factor (ie: a smaller than full frame sensor) then you would not get the same view of the scene - you’d get less. The view you would see on your 1.6x digital camera would be the same as if you had a 160mm lens, were there such a thing, on your 35mm film camera.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="dust"&gt;&lt;/a&gt;There’s dust inside my lens!&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Unfortunately that’s pretty normal. Only certain expensive L series lenses are sealed to prevent air from entering. All others have a lot of cracks and openings where air - and dust - can easily enter. Zoom lenses which extend in length when you alter the focal length are particularly vulnerable to this problem, since air gets sucked in every time you move the lens barrel. &lt;p&gt;Luckily a little bit of dust inside a lens isn’t going to make much difference, so don’t worry about it. It may be alarming to see the dust specks when you hold the lens up to a bright light, but it’ll cost an awful lot of money to have a camera repairperson dismantle the lens and clean each internal element. And there’s no guarantee that the elements will be properly aligned when he or she gives it back to you. So unless the lens is coated with a dusty grey film of dust you shouldn’t have any problems.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="chip"&gt;&lt;/a&gt;There’s a scratch on the front glass of my lens!&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;A tiny scratch or chip on the front glass of a lens, alarming as it may look, won’t actually make much difference in image quality under most circumstances since it’s far enough from the film or image sensor plane not to be in focus. It can, however, affect lens flare, so it’s usually worth filling in the chip with black pen. Having said that, a large chip (more than a few millimetres long) is obviously undesirable. And chips on the rear glass of a lens are more of a problem.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="tc"&gt;&lt;/a&gt;I’ve seen ads for teleconverters or extenders. Can I put one of these onto my, say, 50mm lens and magically turn it into a 100mm lens?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Yes and no. The answer to this is complicated, but leans mainly towards the “no” side. &lt;p&gt;Teleconverters, called “extenders” by Canon, are optical accessories which fit between the camera body and the lens. They’re essentially tubes with a few glass lens elements inside which multiply the focal length of the lens in use - typically by 1.4x or 2x. So a 50mm lens with a 1.4x teleconverter (TC) would take the same photographs as a 70mm lens, and a 100mm lens with a 2x TC. Think of TCs as magnifying glasses - they enlarge the central portion of the image and cut off the periphery. &lt;p&gt;Unfortunately you can’t get something for nothing. And in the case of TCs there are three major tradeoffs. &lt;p&gt;First, using a TC cuts the amount of light entering the camera. A 1.4x TC costs you a stop of light and a 2x TC costs you 2 stops. This is particularly problematic if you have a slow lens. Since most Canon cameras (&lt;a href="http://photonotes.org/articles/beginner-faq/cameras.html#prolenses"&gt;pro cameras&lt;/a&gt; notwithstanding) can’t autofocus with lenses slower than f/5.6 you may lose autofocus, or at least reliable autofocus, if you use a TC. You can sometimes get around this by taping over the teleconverter’s extra pins, thereby fooling the camera into thinking there isn’t a TC on it at all, but obviously that’ll only really work if there’s enough light coming into the camera for the autofocus mechanism to function. Manual focussing will also be difficult if the view through the viewfinder is dark, as it will be with slower lenses. &lt;p&gt;Second, there’s the question of compatibility. Canon manufacture two teleconverters - Extender EF 1.4x and Extender EF 2x - but they are specifically designed to work only with the handful of expensive telephoto lenses listed below. These extenders have protruding front elements and so physically can’t attach to most EF lenses - the protruding element simply gets in the way. You could work around it by sticking an extension tube between the TC and the lens, but this would cut even more light and would also mean you lose infinity focus. &lt;p&gt;You can avoid this problem by eschewing Canon and going third-party for your TCs. Tamron and Kenko sell their own TCs which don’t have these protruding elements and so can physically mate with any EOS lens (though TCs in general don’t work very well optically with lenses which aren’t telephotos). These third party TCs come in varying levels of optical quality. The better quality (more expensive versions, such as the Kenko Teleplus Pro 300 DG) models are generally held as having decent optics, though not quite as good as the Canon products. &lt;p&gt;Third, all TCs degrade image quality somewhat. First, you’re adding a bunch more glass between you and the scene you’re photographing and second, you’re using only part of the centre of your lens. 2x TCs enlarge more of the middle of the lens than the 1.4x TCs, which makes 2x converters worse optically. Now, in the case of a fancy Canon L series lens and a Canon Extender, this optical degradation will be fairly minimal. However, if you take your typical cheap consumer zoom lens and slap a third-party TC on it you’ll find that the results will be less than stellar. In fact, in such cases you’re probably better off simply cropping and enlarging part of a photo taken without a TC and leaving it at that. The quality would be higher and you’d save money. &lt;p&gt;So. The answer to this question really depends. If you have a professional lens and a quality TC then, yes, you’ll be able to increase your focal length at the cost of some light. But if you have your typical consumer lens then there’s probably no point buying a TC - you’ll end up with fairly crummy photos. &lt;p&gt;&lt;b&gt;Canon extender compatibility list:&lt;/b&gt; &lt;p&gt;The Canon extenders are physically compatible with all prime (fixed focus) Canon EF lenses with a focal length of 135mm or longer except for the 135mm 2.8 SF. They are also compatible with a handful of recent L series zoom lenses. The full official list is: &lt;ul&gt; &lt;li&gt;70-200mm 2.8L USM  &lt;li&gt;70-200mm 2.8L IS USM  &lt;li&gt;70-200mm 2.8L II IS USM  &lt;li&gt;70-200mm 4L USM  &lt;li&gt;70-200mm 4L IS USM  &lt;li&gt;100-400mm 4.5-5.6L USM  &lt;li&gt;400mm 4 DO USM  &lt;li&gt;135mm 2L USM  &lt;li&gt;180mm 3.5L Macro  &lt;li&gt;200mm 1.8L USM  &lt;li&gt;200mm 2.0L IS USM  &lt;li&gt;200mm 2.8L USM  &lt;li&gt;300mm 2.8L IS USM  &lt;li&gt;300mm 2.8L IS II USM  &lt;li&gt;300mm 4L USM  &lt;li&gt;300mm 4L IS USM  &lt;li&gt;400mm 2.8L IS USM  &lt;li&gt;400mm 2.8L IS II USM  &lt;li&gt;400mm 5.6L USM  &lt;li&gt;500mm 4L IS USM  &lt;li&gt;500mm 4.5L IS USM  &lt;li&gt;600mm 4L USM  &lt;li&gt;600mm 4L IS II USM  &lt;li&gt;800mm 5.6L IS USM  &lt;li&gt;1200mm f/5.6L USM&lt;/li&gt;&lt;/ul&gt;Consult Canon when checking out newer L series lenses introduced since this list was written, and you’re on your own if you use third party lenses. You can also use Canon extenders with Canon TS (tilt-shift) lenses, but it should be noted that the TS lenses can’t report to the camera that the extenders are there. &lt;p&gt;Autofocus is not supported by non-pro EOS cameras when the 1.4x converter is used with 100-400mm 5.6L, 400mm 5.6L, 500mm 4.5L, 1200mm 5.6L, and with the 180mm 3.5 Macro when it’s focussed closer than 0.8 metres, or when the 2x converter is used with the 70-200mm 4L, 100-400mm 4.5-5.6L, 180mm 3.5L Macro, 300mm 4L IS, 300mm 4L, 400mm 4 DO, 400mm 5.6L, 500mm 4L, 500mm 4.5L, 600mm 4L, and the 1200mm 5.6L. &lt;p&gt;There are three generations of the Canon 1.4x and 2x Extenders. The mark II successors added improved weatherproofing and the mark IIIs brought some optical enhancements.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="closeup"&gt;&lt;/a&gt;I want to take closeup (macro) photos. What do I need?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Closeup or macro photography is a lot of work, but it can also be extremely rewarding. Detailed closeup photos of tiny objects can literally introduce you to another world. Here are some reasons why it’s a very challenging area of photography.&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;Most camera lenses are not capable of focussing close enough to take decent macro photos. Even lenses marked “MACRO” can’t necessarily be used for interesting macro photography - see the &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#macro"&gt;section&lt;/a&gt;above. &lt;li&gt;The closeup exposure mode (indicated by a flower icon) on most EOS cameras does not really help macro photography at all. All it does is set certain camera characteristics, such as metering method and motor-wind settings, to make macro photography slightly easier. The icon mode does not alter the lens characteristics in any way. &lt;li&gt;As noted above, &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#dof"&gt;depth of field&lt;/a&gt; is incredibly shallow when it comes to extreme closeup photography. This means that your focussing has to be absolutely dead-on. &lt;li&gt;The usual solution to excessively narrow depth of field problems is to stop down the lens. The problem with that in macro photography is that stopping down the lens limits the amount of light coming into the camera, which can cause problems with lighting. &lt;li&gt;In fact, since working distance (the distance between the end of the lens and the subject) is often really limited, lighting is usually a problem even if you don’t stop down a lot. Simply because the lens itself blocks a lot of light. For that reason flash units are a very common macro photography accessory, particularly ring-shaped flash units which fit around the end of the lens itself. Such macro ring light flash units often have two tubes so you can control the relative brightness of one side of the image compared to the other. If you’re on a really tight budget, however, you could try putting a translucent white milk jug around lens and shining really bright light onto it. &lt;li&gt;Unfortunately, autofocus often doesn’t work very well if at all under macro conditions, particularly if you’re using an extension tube. A camera with a manual focus assist aid in the viewfinder screen is a useful accessory, as is a magnifying attachment for a viewfinder so you can see the camera’s focus screen more clearly. &lt;li&gt;Focussing is often so tricky that experienced macro photographers don’t adjust focus using the manual focus ring on the lens. Instead they physically move the camera closer to or further away from the subject in order to focus. You can buy convenient adjustable rail systems (macro focus rails with one or two rails) that slide the camera back and forth for this type of precise macro focussing. &lt;li&gt;When you’re dealing with closeup work the tiniest motion is magnified. Let’s say you’re shooting a spider’s web on a misty morning; the dewdrops clustered on the threads like tiny glass spheres. The problem is that the gentlest breeze can set the entire web bouncing, quivering and vibrating so badly that you get motion blur. This is also why you typically need a tripod to do it right. Handholding a camera introduces too much camera blur unless you use a motion-stopping burst of light from a flash unit.&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;Here are your six basic choices if you want to take a closeup photograph. &lt;p&gt;&lt;a name="truemacro"&gt;&lt;/a&gt;&lt;b&gt;1) Buy a true macro lens capable of reaching 1:1 magnification.&lt;/b&gt; &lt;p&gt;(see the previous section for an explanation of 1:1 magnification) This is the most expensive option, since true macro lenses aren’t cheap. However, it’s usually the most high-quality option. True macro lenses come in a variety of focal lengths, from 50mm to 90 or 100mm to 180mm. The advantage of the longer lenses is that they give you more working distance from your subject. A 50mm macro lens isn’t very useful for shooting, say, dragonflies in the wild since you have to be really close to them. A 180mm macro lens, on the other hand, lets you maintain more distance so you’re less likely to frighten them off. Of course, 180mm macros are pretty expensive. A 90/100mm lens is usually the better compromise in terms of working distance and cost. &lt;p&gt;There are seven true macro lenses in the EF lineup which can do 1:1. There is the 50mm f2.5 Macro (which technically only goes to 1:2 or half-size and requires the optional Life Size Converter EF to reach true 1:1), the discontinued 100mm 2.8 Macro, the newer 100mm 2.8 Macro USM, the expensive 180mm 3.5L Macro USM, the EF-S 60mm 2.8 macro for EF-S-compatible cameras, and the image-stabilized 100mm 2.8L IS Macro USM. There is also the unusual MP-E 65mm lens; see below. Another popular macro lens worth considering, though not from Canon, is Tamron’s 90mm macro lens. &lt;p&gt;&lt;a name="dioptermacro"&gt;&lt;/a&gt;&lt;b&gt;2) Buy a diopter (macro filter).&lt;/b&gt; &lt;p&gt;These are round screw-on lenses which fit on the end of a lens in exactly the same way as a filter and which act essentially like magnifying glasses. The amount of magnification you get depends on both the strength of the diopter and the focal length of the lens to which you attach it. Diopters cost no light but can degrade the image slightly, depending on the quality of the product. Still, they’re lightweight and portable and, since they cost no light, usually permit autofocus to work. They’re usually a good approach for beginners looking to explore macro photography. &lt;p&gt;You can buy both single-element diopters which contain a single piece of glass and two-element diopters which contain two. Two-element diopters are what you want - they cost more but provide vastly better optical quality by correcting certain optical aberrations. Diopters are available in a variety of physical sizes which match popular lens filter sizes, but can be adapted with step rings just like ordinary filters if necessary. &lt;p&gt;Canon sell two two-element diopters - the 250D and the 500D. The former is intended for shorter focal length lenses, from about 30-135mm. The latter is meant for longer focal length lenses, from about 70-300mm. You can also buy a 500 diopter which, since it’s a single-element accessory, isn’t as good. You don’t have to buy Canon’s diopters, of course - Nikon also sell highly-regarded diopters (the Nikkor 3T, 4T, 5T and 6T closeup attachments) which are actually usually less expensive than Canon’s. Bob Atkins’s Web site has a &lt;a href="http://bobatkins.photo.net/info/faq30/closeup.htm"&gt;comprehensive table&lt;/a&gt; of magnifications available using different diopters on different lenses. &lt;p&gt;&lt;a name="extensiontube"&gt;&lt;/a&gt;&lt;b&gt;3) Buy an extension tube.&lt;/b&gt; &lt;p&gt;These are hollow plastic tubes which fit between the lens and the camera body, thereby increasing the distance of the lens to the camera and thus reducing the close focus distance of your lens. (ie: they let you move the lens closer to the subject while retaining focus) Attaching an extension tube means you lose infinity focus but that’s obviously not an issue if you’re using the tube to take closeup pictures. Tubes also reduce the amount of light reaching the film or image sensor (because moving the lens further from the film or sensor plane causes the light to spread out across a larger area). &lt;p&gt;Unlike diopters, however, they do not affect image quality at all as no optics are involved. The magnification you get depends on both the length of the tube or tubes used and the focal length of your lens - Bob Atkins’ &lt;a href="http://bobatkins.photo.net/info/faq30/closeup.htm"&gt;table&lt;/a&gt; lists some common combinations. Some lenses, particularly wide-angle and specialized lenses such as the 15mm 2.8 fisheye, 14mm 2.8L and MP-E 65mm 2.8, don’t work properly with tubes. If you have EF-S lenses for newer EOS digital cameras then you’ll need the mark II Canon extension tubes (the Extension Tubes EF 12 II and EF 25 II), since the earlier versions don’t mate with EF-S lenses - EF-S lenses extend deeper into the camera body than EF lenses. &lt;p&gt;Canon sell a couple of extension tubes, but they’re pretty expensive. The three-tube set from Kenko is a better deal - it’s fairly well made and contains a 12mm, a 20mm and a 36mm tube. However, current Kenko tubes are compatible only with EF lenses - they do not physically mate to EF-S lenses. &lt;p&gt;Adjustable bellows are also used for closeup photography - they’re basically adjustable tubes when you get down to it. Novoflex sell an EOS-compatible bellows or you could buy the old Canon FD bellows and adapt it using the FD to EOS macro adapter. Bellows are typically used with movable rails for precise focussing. &lt;p&gt;&lt;a name="reverse"&gt;&lt;/a&gt;&lt;b&gt;4) Reverse a lens by mounting it onto the camera backwards.&lt;/b&gt; &lt;p&gt;Doing so requires some sort of adapter with a standard EOS lens mount on one end and a filter ring on the other which attaches to the filter ring of the lens. People often make such things at home by gluing a filter ring to a drilled-out body cap. Reversing a lens like this is a very old photographic trick for doing macro photography. &lt;p&gt;This technique is a problem for EOS lenses, however, since EOS lenses require electrical connectors in order for the aperture diaphragm to operate. There are at least three possible solutions for this. First, you could set the lens aperture to whatever you want it to be, press the depth of field button on your camera to stop down the lens and then detach the lens. The lens diaphragm should stay wherever it was when you removed the lens and you can then reverse the lens and use it. This isn’t terribly convenient, of course, since you can’t adjust the aperture without remounting the lens. Second, you could use a non-EF lens. Any 35mm lens will do, really, since you’re mounting it backwards and not using the normal lens mount. Third, you could buy Novoflex’s rather expensive lens reversal adapter, which contains the necessary wires and connectors to let the electromagnetic diaphragm operate correctly. &lt;p&gt;&lt;a name="reversedexisting"&gt;&lt;/a&gt;&lt;b&gt;5) Attach a reversed lens to an existing lens.&lt;/b&gt; &lt;p&gt;Another old macro trick is to attach a 50mm (normal) lens to the end of another lens, but backwards. (ie: the filter threads of the 50mm lens are attached to the filter threads of the camera-mounted lens by means of a special lens-reversing or macro-coupling ring) You won’t be able to adjust the aperture of the reversed lens if it’s an EF-type lens, but there’s nothing stopping you from using a non-EOS lens in this way, as above. A 50mm lens reversed on a 100mm lens can give you 2x magnification, for example, albeit with a fair bit of light loss. &lt;p&gt;&lt;a name="mpe"&gt;&lt;/a&gt;&lt;b&gt;6) Buy the Canon MP-E 65mm lens.&lt;/b&gt; &lt;p&gt;This is an &lt;a href="http://www.photo.net/canon/mp-e-65"&gt;unusual and specialized lens&lt;/a&gt; that’s designed solely with macro photography in mind. It can’t be used for normal photography, unlike the other Canon macro lenses, as it &lt;i&gt;starts out&lt;/i&gt; at 1:1 magnification. It goes from there to 5:1 magnification. At this magnification an object 5mm x 7mm in size will fill the entire frame of 35mm film. &lt;p&gt;Though intriguing, it has a number of drawbacks. First, you can use it for super closeup photography and nothing else since it lacks infinity focus. Second, it suffers from the usual problems of macro photography - very narrow depth of field and the difficulty in illuminating objects adequately given the short working range. Third, ambient light metering works only with EOS 1 series cameras - all other EOS cameras can only be used with TTL flash metering. And fourth, the focussing screen of your camera may not be precise enough for accurate focussing.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="macroportrait"&gt;&lt;/a&gt;Can I use the Canon 100mm macro lens for portraits?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Absolutely. The 100mm 2.8 macro and macro USM lenses are both excellent portrait lenses in addition to being great macro lenses. The only problem is that they’re extremely sharp lenses, and some people prefer softer lenses for portraiture, particularly of women. If you’re in that camp you could always slap a soft focus filter onto the lens.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="oldmetal"&gt;&lt;/a&gt;What happened to the solid all-metal lens barrels of yesteryear? Why is everything today made of plastic?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;It’s true that a lot of lens barrels of the 60s and 70s were solid finely-crafted metal masterpieces with smooth focussing spiral-shaped helicals and precisely-machined parts. Whereas today many lens barrels are made largely of plastic. There are a number of reasons for this - the rise of autofocus, rise in labour costs, lower SLR sales, improved plastics technology, a desire to make lighter-weight gear, increased profit margins for manufacturers and so on. &lt;p&gt;Certainly the rise of autofocus is a major factor. Autofocus lenses with geartrains (ie: ring USM lenses excepted) require a bit more looseness and play in the geartrain system. They also don’t usually use long focussing helicals as that would take more battery life and time to focus. Manual focus lenses with helicals, by contrast, can be machined to very tight tolerances. &lt;p&gt;However, there are advantages to increased use of plastics in lens construction. Quality plastic is fairly resilient and doesn’t dent like metal, plastic is obviously much lighter than metal, plastic components are less expensive to produce and can in theory result in lower prices to the consumer and so on. &lt;p&gt;So, while the old manual-focus lenses may feel great to hold and use and exude that terrific sense of precise quality that plastic lenses simply do not do, it’s unlikely that less expensive autofocus lenses will ever be made with metal barrels. Note, however, that many Canon L series lenses use solid metal barrels and have reasonably tight-feeling manual focus rings. So if you’re willing to spend the money you can still get metal lenses and retain autofocus. &lt;p&gt;&lt;b&gt;Grades of plastic&lt;/b&gt; &lt;p&gt;There’s also plastic and there’s plastic. Canon have used, very roughly speaking, three different grades of plastic shell material for their EF lenses over the years. &lt;p&gt;The first generation of EF lenses used a fairly brittle hard type of plastic, which I call type 1. (though that isn’t, of course, an official Canon designation) This material was moulded with a slight rough texture and the lenses had basically parallel lines to their cylindrical barrels, with little if any tapering. Focus and zoom rings often did not have rubberized surfaces. The 50mm 1.8 mark 1 is an example of this late 80s type of design. In my experience, though this purely anecdotal, type 1 plastic is a bit more likely to crack upon impact than later plastics. &lt;p&gt;The second generation, particularly black L lenses and advanced amateur lenses, are made of a more resilient hard black plastic, which I call type 2. These lenses have relatively little texture - they’re either quite smooth or have a subtle hammered finish. These barrels tend to have subtly tapered barrels rather than simple cylinders, and have rubberized zoom and focus rings. The 28-105 3.5-4.5 USM is an example of a midrange zoom of this construction, and the heavier 135mm 2.0L USM is an example of an L lens using this construction, albeit with thicker plastic and a generally sturdier design. Lenses of this type first came out in the early 1990s, and seem to me to be slightly less likely to crack upon impact - the plastic has a tiny bit more inherent flex to it. &lt;p&gt;Finally, inexpensive cheapie lenses over the past few years have been made of lightweight smooth plastic which I characterize as type 3. These lenses often have somewhat exaggerated rubber rings for zoom grips, and later models (late 90s on) have shiny chrome rings around the end to impress less experienced consumers. The EF-S 18-55 3.5-5.6 is a typical example of this type.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;Lens-related technical terms and vocabulary.&lt;/b&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="focallength"&gt;&lt;/a&gt;What is focal length?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;The focal length is a basic optical property of any lens, and the most important one to a photographer. The easiest way to think of it is that it’s a numeric value, expressed in millimetres, which represents how much of a given scene (the coverage area) a lens can take in. &lt;p&gt;Focal lengths for Canon SLR lenses range from ultra-wide (14mm) to incredibly long telephoto (600mm and 1200mm). The typical range of an affordable lens or lenses is from 28mm to 105mm or so. &lt;p&gt;Why, then, these strange values in millimetres? Why not indicate the angle of view taken in by each lens instead? Well, partly for historical reasons and partly for practical reasons. The technical description of focal lengths is rooted in the mathematics of optics - it’s the distance between the focal plane and the rear nodal point of the lens, given infinity focus. How this bit of Martian translates to the field of view depends on the size of the imaging area being used, which can be different between 35mm film cameras, APS cameras and some digital cameras. And as for practical reasons, the focal length of a lens is an innate property of the lens, but the actual coverage area of the scene depends on the size of the image format used. &lt;p&gt;So note that crucial point - all the examples I gave above are for a &lt;i&gt;35mm film&lt;/i&gt; camera or full-frame EOS SLR only. If you were to use a 28mm lens on an APS camera or a digital camera with an image sensor smaller than that of 35mm film (ie: most digital cameras sold today) then you would have a much narrower field of vision than if you were to use the same lens on a 35mm film camera. For more details see the section on &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#multiplier"&gt;focal length multipliers/cropping factors&lt;/a&gt;. &lt;p&gt;The same focal length system is used to describe lenses for other types of cameras as well, such as medium format cameras. But the area taken in by a lens on a medium format camera will be totally different from that of a lens of the same focal length on a 35mm camera, because the area covered by medium format film is considerably larger.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="aperture"&gt;&lt;/a&gt;What is a lens aperture or &lt;i&gt;f&lt;/i&gt; stop?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;The aperture of a lens is its second most important optical property after its focal length. Consider the human eye. It has a coloured iris with a pupil which can dilate or contract in order to let in more or less light, depending on ambient light conditions. When it’s dark the pupil opens up to let in as much light as possible. And when it’s sunny the pupil contracts to prevent the bright light from overwhelming the eye. Most camera lenses have a device analogous to the iris - a metal or plastic diaphragm which can be adjusted in size to control the amount of light entering the lens. &lt;p&gt;The variable-sized hole in the diaphragm is known as the aperture, is analogous to the pupil of the eye, and is indicated numerically by an &lt;i&gt;f&lt;/i&gt;-stop or &lt;i&gt;f&lt;/i&gt;-number value. This value, the relative aperture of a lens, describes the amount of light that a lens lets in. The value is relative because it is equivalent to the focal length of the lens divided by the size of the lens aperture, not the physical dimensions or anything. &lt;p&gt;For example, if you were to take a 50mm lens with a 6.25mm diameter aperture you’d have a lens set to &lt;i&gt;f&lt;/i&gt;/8 (since 50/6.25 = 8). Generally each increase or decrease in &lt;i&gt;f&lt;/i&gt;-stop value either doubles or halves the aperture size. Since &lt;i&gt;f&lt;/i&gt;-stop values are relative to the focal length, each camera lens should let basically the same amount of light through at the same &lt;i&gt;f&lt;/i&gt;-stop value regardless of focal length. (barring complex technical factors such as light loss from large numbers of elements and so on, but we won’t get into that here) &lt;p&gt;The usual&lt;i&gt; f&lt;/i&gt;-stop range on 35mm and digital SLR camera bodies is: &lt;blockquote&gt; &lt;p&gt;1.0&amp;nbsp; 1.4&amp;nbsp; 2&amp;nbsp; 2.8&amp;nbsp; 4&amp;nbsp; 5.6&amp;nbsp; 8&amp;nbsp; 11&amp;nbsp; 16&amp;nbsp; 22&amp;nbsp; 32&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;though most camera lenses are only optically capable of a subset of that overall range. &lt;p&gt;The relationship between these values involves halving and doubling the amount of light. Going from &lt;i&gt;f&lt;/i&gt;/2.8 to &lt;i&gt;f&lt;/i&gt;/4, for example, involves a halving of the aperture size. Each number is approximately 1.4x more than its previous stop since 1.4 is the square root of 2 (to one decimal place), though since the specific numbers derive from tradition they are not always spot on. Lenses for larger camera systems such as large format cameras usually have even smaller apertures - going to &lt;i&gt;f&lt;/i&gt;/64, for example. &lt;p&gt;This series of numbers may look difficult to work with, but in fact there’s a fairly simple way to recall it. Just remember that the first two values are 1.0 and 1.4 respectively. Each following value then doubles by every other value. So 1.0 becomes 2, then 4, then 8 and then 16. 1.4 becomes 2.8, then 5.6, 11 and 22. (the only minor glitch, of course, to this handy mnemonic scheme is between 5.6 and 11) &lt;p&gt;Confusingly enough, when the number is small (eg: &lt;i&gt;f&lt;/i&gt;/2.8) then the lens diaphragm is open wider (“opened up”) and thus more light enters the lens. If the number is large (eg: &lt;i&gt;f&lt;/i&gt;/22) then the lens diaphragm is closed smaller (“stopped down” or “closed down”) and thus less light enters the lens. In addition to altering &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#slowfast"&gt;exposure times,&lt;/a&gt; the aperture setting also affects &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#dof"&gt;depth of field&lt;/a&gt;. &lt;p&gt;The letter &lt;i&gt;f &lt;/i&gt;is frequently italicized for good looks, and a slash is often placed between the letter &lt;i&gt;f&lt;/i&gt; and the numerical &lt;i&gt;f&lt;/i&gt; stop value to indicate that the &lt;i&gt;f&lt;/i&gt;-stop value is a fraction of the focal length. eg:&lt;i&gt;f&lt;/i&gt;/4 means that the aperture is a quarter of the focal length. The letter &lt;i&gt;f&lt;/i&gt; stands for “focal,” “factor” or “focal length” depending on who you talk to, and the number is also often stated as a &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#numbers"&gt;ratio&lt;/a&gt;. (eg: 1:2.8) &lt;p&gt;Note that not all lenses have adjustable diaphragms. Many types of lenses, though not usually those sold for use with EOS cameras, have fixed apertures. &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#mirror"&gt;Mirror&lt;/a&gt; lenses, for example, fall into this category since they lack (adjustable) diaphragms. Really crummy cameras - disposable cameras being one example - also have fixed apertures. These two examples aside, however, nearly all lenses sold for use with EOS cameras have adjustable apertures.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="slowfast"&gt;&lt;/a&gt;What is a slow lens or a fast lens?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;These are colloquial expressions describing the maximum aperture value or values of which the lens is capable. Slow lenses have a very small maximum aperture, which means less light enters the lens and so longer time periods are required to expose the film or image sensor. Fast lenses have a very wide maximum aperture and so shorter time periods are required to expose the film or image sensor. &lt;p&gt;The larger the maximum aperture of a lens the more light it lets in. And so faster lenses are generally more desirable than slower lenses. First, fast lenses let you take photos in lower light levels using available light rather than blasting the scene with ugly light from a flash unit. Second, you can see through the viewfinder better since fast lenses let in more light and so the view through the finder will be brighter with a fast lens. &lt;p&gt;As explained above, lens &lt;i&gt;f&lt;/i&gt; stops are ratios, and so smaller numbers indicate larger apertures. A lens with a maximum &lt;i&gt;f&lt;/i&gt; stop value of 1.4 is, therefore, fast. And a lens with a maximum &lt;i&gt;f&lt;/i&gt; stop value of 5.6 is slow by comparison. However, &lt;i&gt;f&lt;/i&gt; stop numbers are the ratio between the focal length of the lens and the aperture, which means that it’s very easy to design a fast 50mm lens (1.8 is a typical maximum aperture value) but very hard to design a long 200mm telephoto lens with a maximum aperture so large. &lt;p&gt;In fact, designing fast lenses in general is more complex and expensive than designing a lens with a small maximum aperture, so fast lenses tend to cost more than slow ones. It’s also harder to design and build a fast zoom lens than it is a fast prime (fixed focal length) lens. Faster lenses are also usually physically larger than slower lenses of equivalent focal lengths. The reasons for all this are tied into the complex mathematics of optics. &lt;p&gt;Note that autofocus lenses for EOS cameras have the focus motor built into the lens, not the camera. And some lenses focus more rapidly than others. So sometimes you hear people talking about a lens having a fast or slow focus motor speed, which is a separate matter altogether from the optical properties of the lens.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="dof"&gt;&lt;/a&gt;What is depth of field?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;When you focus on something, the subject isn’t the only thing that’s going to be sharply focussed. Certain objects closer to you and further away from that subject will also be in acceptable - though not quite as sharp - focus. The distance range within which these objects appear to be in reasonable focus in your final photograph is known as depth of field. Being able to control depth of field is an important photographic skill since it can affect the appearance of a photograph dramatically. &lt;p&gt;For example, let’s say you’re taking a portrait of someone outside. And let’s say that the reason you’re doing so outside is to get nice natural lighting, but you don’t care so much about the background as such. Maybe you’re in a park and you don’t want to show a cluttered background of trees, grass and bushes. In this case you’ll want a narrow depth of field and focus on the person’s eyes since they’re the key thing you want to have in focus. If you have a narrow depth of field then the background will be thrown nicely out of focus and you’ll just have a pleasingly blurry green background to your portrait. &lt;p&gt;But let’s say you want to take a nature photograph of a flower in a dramatic mountain landscape with an interesting sky. In this case you’ll probably want everything from the flower to the sky to be sharply in focus. This would require great depth of field. &lt;p&gt;There are three factors which control depth of field on a given camera. They are as follows: &lt;p&gt;&lt;b&gt;Aperture.&lt;/b&gt;&lt;br&gt;The aperture (&lt;i&gt;f&lt;/i&gt; stop) to which a lens is set is a very important factor governing depth of field. The larger the aperture (smaller the &lt;i&gt;f&lt;/i&gt; stop number) then the smaller the depth of field and vice versa. So if you’re shooting something in low light conditions and open your lens up to &lt;i&gt;f&lt;/i&gt;/1.8 in order to admit as much light as possible you’ll find you have a really narrow depth of field, which can be a real problem sometimes, since precise focussing is required. Conversely if you’re shooting outdoors on a bright sunny day you may find you’ll need to stop down a long way to get the shutter speed you want, but this can result in too great a depth of field for some applications. &lt;p&gt;&lt;b&gt;Focal length.&lt;/b&gt;&lt;br&gt;The focal length of your lens also makes a tremendous difference. Lenses with short focal lengths (wide angle lenses) have wider depths of field available and lenses with long focal lengths (telephoto lenses) have shallower depths of field available. This is generally a good thing. If you’re using a really wide lens for landscape shots you’ll be able to get huge areas of scene in sharp focus. But if you’re using a really long telephoto lens for bird photography then your depth of field will be really shallow and you’ll be able to isolate the bird in the landscape nicely. &lt;p&gt;&lt;b&gt;Subject distance.&lt;/b&gt;&lt;br&gt;Finally, the distance from the lens to the subject also affects depth of field. If you’re really close to your subject, such as in macro photography, then depth of field will be shallow. But if you’re taking a photo of something that’s a long way away then your depth of field will be deeper. &lt;p&gt;Naturally all three of these factors work together, so you can adjust all three factors to achieve the effect you’re looking for. &lt;p&gt;It should be noted that the size of a camera’s image area also dictates the depth of field. A camera with a large image area - say a medium-format or large-format camera - is capable of a much more shallow depth of field than a camera with a smaller image area. This is why consumer digital cameras, which have tiny image sensors, have such deep depth of field. However, you can’t change this particular factor without switching cameras. The other three factors above are adjustable on any given EOS camera. &lt;p&gt;It should also be noted that this is a very non-technical description of what depth of field is all about. To be more accurate about it you need to go into a lot of math and a definition of the circle of confusion and a consideration of the print size and so on. But the simplified stuff above is adequate to get a grasp of how to control depth of field adequately to make your photos look the way you want them to.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="bayonet"&gt;&lt;/a&gt;What is a bayonet mount?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Canon EF mount lenses are of the “bayonet” type. This means that the lenses have mounting lugs (three in the case of EOS lenses) which slot into the camera body mount. You then rotate the lens a partial turn to lock it into place with a click. &lt;p&gt;Most camera makers these days use bayonet-style mounts, though other types were popular in the past. For instance, older Pentax and Leica cameras used screwmount systems - you simply screwed the lens into the camera body’s threaded mount. The lens system used by Canon prior to the introduction of EOS was the FD system, which used a “breechlock” mount system with a rotating friction ring. &lt;p&gt;Lens hoods often fasten by means of bayonet mounts. Some filters for certain European lenses also use bayonet mounts, though Japanese makers generally use threaded filter mounts. &lt;p&gt;It’s not clear why the lens mounts are called bayonet mounts. The two theories I’ve heard both stem from bayonets, the knives which soldiers fasten to the end of their rifles. One theory, which is probably utterly apocryphal, suggests it’s a gruesome joke deriving from the instructions given to soldiers on how to use their bayonet - thrust in and twist. The more probable and prosaic theory is that the term derives from the design of bayonet mounts on rifles.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="roman"&gt;&lt;/a&gt;What does a Roman numeral on a lens refer to?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Canon, like most Japanese lens makers, use the optical specifications of a lens to distinguish one model from another. (European makers have traditionally come up with fun names resembling Star Trek planets, like “Tessar,” “Biogon” or “Super Angulon,” to describe their lens designs) But sometimes a maker will produce new models later on which happen to have the same basic specifications as previously-made ones. To distinguish these lenses one from another Canon will add a Roman numeral to the end of the lens specification, starting with II. For this reason you will never see a lens marked with a I, though people often refer to “mark I’” lenses when subsequent models are released. You will, however, see lenses marked with II, III, IV, etc. These are commonly referred to as mark II, mark III, etc, lenses in common parlance. &lt;p&gt;Sometimes these later lenses are an improvement over the original, sometimes they’re worse and sometimes they are almost identical bar some cosmetic changes. For example, the 50mm 1.8 II is markedly inferior to its predecessor in build quality but has the same great optics, the 28-80 3.5-5.6 USM II is entirely worse in every respect to the mark I edition, but the 28-105 3.5-4.5 and 28-105 3.5-4.5 II lenses are basically the same with slight cosmetic differences. There’s unfortunately no way to tell from the Roman numeral designation itself whether or not a later lens is better or worse. I try to identify these differences between versions in my PhotoNotes &lt;a href="http://photonotes.org/lookup/"&gt;lookup&lt;/a&gt; page, so that’s a good starting point. &lt;p&gt;Canon also release updated versions of lens hoods using Roman numeral designations, as &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#hoodcode"&gt;described above&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="lensmotor"&gt;&lt;/a&gt;What is the difference between the various kinds of lens motors (AFD, MM, USM)?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Unlike most camera makers Canon chose to position the autofocus motor inside the lens barrel rather than in the camera body when they designed the EOS system. This was arguably a wise move, since it means autofocus motor can be tailored to the requirements of each lens. A big telephoto lens can have a large motor and a small normal lens can have a more compact motor. By contrast, systems which rely on the autofocus motor being only in the camera body don’t have this flexibility - the motor is always the same regardless of the lens used unless you change camera bodies. &lt;p&gt;So. Canon employ a number of different motor technologies in their lenses. The first two types are never identified specifically on the exterior of the lens. You have to look up in Canon’s product literature to see which type of motor a given lens uses. &lt;p&gt;&lt;b&gt;Traditional electromagnetic motor drives.&lt;br&gt;&lt;/b&gt;Such motors contain tiny wound coils of wire and rely on electromagnetic principles to turn a shaft. Little cogwheels and gears are then used to translate this rotational motion into the movement needed to adjust lens focus. &lt;blockquote&gt; &lt;p&gt;&lt;b&gt;Arc-form drive (AFD).&lt;br&gt;&lt;/b&gt;Generally used in a number of older lower-cost lenses, AFD motors are simply little electric motors which drive a geartrain. They’re somewhat noisy - electric buzzing and grinding of gears - and not terribly fast. This isn’t a big deal on smaller lenses since the distances the motors must move the focussing elements aren’t very far. However, telephoto lenses with AFD motors can be quite sluggish. &lt;p&gt;&lt;b&gt;Micromotor (MM) drive.&lt;br&gt;&lt;/b&gt;Generally used on a few older lower-cost lenses. Similar to AFD - slow and noisy and based around an electric motor driving a geartrain. Some particularly low-cost lenses use micromotor drives with rubber belts.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;Ultrasonic motors.&lt;br&gt;&lt;/b&gt;Ultrasonic motors do not rely on magnetic coils like most electric motors. Instead they use extremely high-frequency vibrations which translate into circular motion. The result is a very fast and pretty well silent (to human ears, anyway) lens motor. There are two basic types employed by Canon. &lt;blockquote&gt; &lt;p&gt;&lt;b&gt;Ring ultrasonic (USM) drive.&lt;br&gt;&lt;/b&gt;The kind you want. These motors consist of two metal rings which vibrate at a very high frequency. (have a look &lt;a href="http://www.photoscene.com/sw/tour/inside.htm"&gt;here&lt;/a&gt; for photos of these rings) Ring ultrasonic lenses are great because they focus quickly and silently and also support full-time manual (FTM). There are actually two variants of this design - see the FTM section below. &lt;p&gt;&lt;b&gt;Micromotor ultrasonic (USM) drive.&lt;br&gt;&lt;/b&gt;This kind is less desirable. It’s a form of USM motor that Canon designed for their cheapie lenses so they can bill them as ultrasonic for marketing purposes. An MM lens replaces the standard magnetic motor with an ultrasonic motor but retains the usual geartrain setup. Such lenses are still reasonably quiet, though not as quiet as ring ultrasonic motors, but usually lack FTM - see below.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Note that, while all lenses with “USM” in the name contain an ultrasonic motor, Canon do not distinguish between ring and micromotor USM drives in the name - you have to look up the &lt;a href="http://photonotes.org/lookup/"&gt;specs&lt;/a&gt; for the individual lens to find that out. Also, most non-L lenses with USM drives have striped gold lines painted around the end of the barrel. However, all L lenses have red lines painted around the end, whether or not they use USM (ie: Canon never have two painted rings around their lens barrels, and the red L line takes priority over the gold USM line).&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="ftm"&gt;&lt;/a&gt;What is full-time manual (FTM)?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;As noted above, Canon EF lenses with AFD (arc form drives) and MM (micromotor) drives use very simple autofocus mechanisms which rely on electric motors and geartrains - rows of tiny cogwheels. Unfortunately, turning such a focus system by hand can damage the geartrain, so such lenses have a switch mechanism which disengages the cogwheels when you focus manually. There is thus no way for you to focus manually when the lens is switched over to autofocus mode. &lt;p&gt;However when Canon introduced lenses with USM (ultrasonic motor) autofocus systems they also introduced full-time manual focussing (FTM). Such lenses allow you to adjust focus manually even when the AF/MF switch is set to autofocus. This is very handy, as it lets you adjust or touch up focus without having to flip the switch. &lt;p&gt;There are a few points to keep in mind here.&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;p&gt;There are actually three different types of USM motors, although there’s no way to distinguish them apart by looking at them - the lenses are all simply marked “USM.” (use the &lt;a href="http://photonotes.org/lookup/"&gt;PhotoNotes Lookup&lt;/a&gt; page to find which lens uses which motor) &lt;li&gt; &lt;p&gt;The best USM motors are those used in most midrange and L series contemporary lenses - &lt;b&gt;ring USM&lt;/b&gt; motors. A ring USM motor consists of two metal rings which vibrate at high frequencies, resulting in rotational energy. Full-time manual on a ring USM lens is easy - there’s a simple friction clutch which means you’re simply turning the whole motor by hand when you rotate the focus ring. This means you can focus the lens manually at any time, even if the camera is turned off or the lens isn’t attached to a camera. &lt;p&gt;The second type of USM is the earliest design, and seen only on a few older lens designs and some longer telephotos. These are &lt;b&gt;electronic focus ring USM&lt;/b&gt; lenses which can only focus manually when the camera is actually turned on. This is because turning the focus ring sends electronic commands to the lens motor, ordering it to rotate. The following lenses are old-style electronic full-time manual USM lenses:&lt;/p&gt; &lt;li&gt; &lt;blockquote&gt; &lt;p&gt;EF 50mm 1.0 L USM&lt;br&gt;EF 85mm 1.2 L USM&lt;br&gt;EF 85mm 1.2 L USM II&lt;br&gt;EF 28-80mm 2.8-4 L USM&lt;br&gt;EF 200mm 1.8 L USM&lt;br&gt;EF 300mm 2.8 L USM&lt;br&gt;EF 400mm 2.8 L USM&lt;br&gt;EF 400mm 2.8 L II USM&lt;br&gt;EF 500mm 4.5 L USM&lt;br&gt;EF 600mm 4 L USM&lt;br&gt;EF 1200mm 5.6 L USM&lt;/p&gt;&lt;/blockquote&gt; &lt;li&gt;Finally, there are &lt;b&gt;micromotor USM&lt;/b&gt; lenses. These are mostly inexpensive consumer lenses which do not support full-time manual, because they still use a mechanical geartrain. Arguably these lenses are barely USM, since the only real advantage they have over regular motors is that they’re slightly quieter. &lt;p&gt;There are a couple of exceptions to confuse matters, however. The 50mm 1.4 USM and the newer &lt;a href="http://photonotes.org/articles/beginner-faq/lenses.html#28105"&gt;28-105 4-5.6 USM&lt;/a&gt; lenses contain slip clutch mechanisms which let you use FTM in a fashion similar to a ring USM lens.&lt;/p&gt; &lt;li&gt;Adjusting focus manually is a bad idea when the lens motor is in the process of turning, since you’d be fighting the motor and straining it. Wait until the lens motor has stopped operating before turning it by hand. &lt;li&gt;Finally, adjusting focus manually is also a bad idea when the camera is in AI Servo mode, since the AF motor can kick in at any time.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;b&gt;&lt;a name="usmquality"&gt;&lt;/a&gt;Do USM lenses take better photos than non USM lenses?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;No. USM (ultrasonic motors) are autofocus mechanisms. They in no way affect the optical quality of a lens. &lt;p&gt;Of course, since USM lenses focus faster and more quietly than non-USM lenses there’s the possibility that using one might help you get a photo that you might not have got with a slower or louder autofocus lens. But that again is unrelated to the optical quality itself. &lt;p&gt;This confusion may come in because Canon only put ring USM drives into their midrange and pro (L series) lenses. You can’t buy cheap Canon lenses with ring USM - only micromotor USM (see above). But again this is no guarantee of anything, since there are plenty of Canon lenses - particularly their older prime lenses - which lack USM but which have excellent optical quality.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;a name="is"&gt;&lt;/a&gt;What is image stabilization?&lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;Image stabilization or IS is a Canon technology that optically corrects for camera motion when you take a photo. Since camera motion - caused by handholding the camera, for example - can result in blurring of the image at slower shutter speeds, IS can result in sharper photographs when fast shutter speeds are not possible. &lt;p&gt;IS is a fairly complex technology involving motion sensors, microcomputer chips and small motors to move key lens elements. There is, therefore, a price premium for IS-capable lenses. But they can be very convenient - when handholding a camera you can easily gain a stop or two over using a non-IS lens. &lt;p&gt;However, remember that IS does not increase the maximum aperture of the lens or anything. An IS lens with a maximum aperture of 3.5 still has a maximum aperture of 3.5. IS simply lets you use a slower shutter speed than would otherwise be possible when you’re handholding the camera, by compensating for camera motion. So you won’t necessarily be able to get that narrow depth of field that you could with a faster lens - which could be a drawback or a benefit depending on your point of view. &lt;p&gt;IS has a few other drawbacks over faster lenses as well. Earlier IS lenses tended not to perform very well when mounted on a tripod when the IS mechanism was engaged. Consumer IS lenses also do not work very well when panning (tracking a moving object), though pro IS lenses do. IS does not help you if the subject is moving - it compensates only for camera motion. IS doesn’t help freeze subject motion and in fact will probably make things worse by letting you use a much slower shutter speed than a fast lens. Some people find the slight swimming motion in the viewfinder when using IS a bit dizzying and IS uses a little more battery power than no stabilization at all. Finally, some earlier film EOS cameras are not entirely compatible with IS lenses and have minor inconveniences, such as viewfinder shake once a photo has been taken (though this does not affect the picture quality). &lt;p&gt;Nonetheless, these drawbacks aside, most people find IS quite valuable, particularly on long telephoto lenses. &lt;p&gt;Canon were the first company to include image stabilization technology in SLR lenses, though Nikon actually pioneered the field with a stabilized-lens point and shoot (the Zoom-Touch 105 VR) in 1994. Today Nikon sell a range of VR (“vibration reduction”) SLR lenses; the main difference being Nikon sell mainly to the high end lens market where Canon sell a variety of IS lenses covering the mid to high end markets. Sigma have also released a number of image-stabilized lenses. Canon IS technology is built into the lens, like the Mega Optical Image Stabilizer (Mega OIS) system used by Panasonic. These both differ from the Minolta-developed Super SteadyShot stabilization technology used by Sony, which is built into the camera body. Building anti-vibration technology into the camera has the advantage of making the feature available to any lens attached to a supported camera, but it has the disadvantage of not being tailored to each focal length range. Canon have been steadily improving the IS feature over the years, increasing the number of stops that some lenses are said to be able to compensate for.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="distancedata"&gt;&lt;/a&gt;What is distance data and which lenses support it?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Most modern Canon EF lenses have the ability to send distance data to the camera. For example, if you’re currently focussed on an object 4 metres from the camera then the lens would send that approximate distance data to the camera body. &lt;p&gt;Canon have built and sold lenses since 1990 with this data, but it wasn’t until 2004, with the advent of E-TTL II flash metering, that Canon really put it to good use. E-TTL II has the ability to factor distance data into flash metering calculations under certain conditions. This distance data can improve the reliability of flash metering when it’s available and appropriate. &lt;p&gt;For more information on this topic please consult my EOS flash photography article, which has a section on &lt;a href="http://photonotes.org/articles/eos-flash/#ettlii"&gt;E-TTL II&lt;/a&gt; and a &lt;a href="http://photonotes.org/articles/eos-flash/#distancedata"&gt;list of Canon EF lenses&lt;/a&gt; capable of returning distance data.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="element"&gt;&lt;/a&gt;What is a lens element?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;There’s some confusion of terminology here. The word “lens” refers both to a single chunk of shaped glass (think of the single lens of a magnifying glass) and the tube-shaped device containing such lenses which you fasten to the end of your camera. &lt;p&gt;A lens &lt;i&gt;element&lt;/i&gt; is a single piece of shaped glass or crystal. Camera lenses these days contain anywhere from 4 lens elements and up. They are frequently arranged in optical groups within the barrel. For that reason you may hear of a given lens having, say, 18 elements in 15 groups. &lt;p&gt;There are complex tradeoffs made in lens designs, so the number of elements and groups isn’t always the most reliable indicator of image quality. Simpler lenses with just a few elements tend to offer good results because they are so simple. Flare in particular (light reflection between elements in this case) is vastly reduced. However, wide angle and telephoto lens designs generally require more elements to correct for various optical aberrations.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="coating"&gt;&lt;/a&gt;What is a lens coating?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;As anyone who has looked through a window knows, glass both reflects light and lets light pass through. And reflections can easily happen at oblique angles as well as when you look at a lens straight-on. Camera lenses suffer from the same basic problem of reflections as windows. And excessive reflections within the lens can result in lens flare - either a generalized loss of contrast or bright reflected blobs appearing in the picture. &lt;p&gt;The invention of lens coatings by German lensmaker Carl Zeiss in the mid 1930s revolutionized lens design. Such coatings are fine layers of transparent material which are applied to the surface of lens glass and which minimize internal reflections within the lens. All modern camera lenses, including Canon EF lenses, are multicoated to reduce reflections. Canon refer to their technology as SSC, or Super Spectral Coating. &lt;p&gt;You can easily tell a coated glass surface from an uncoated one. An uncoated piece of glass reflects a lot of light, and reflected white light is also white. A coated piece of glass, however, reflects far less light and the light that is reflected is often greenish, purplish or reddish. These apparent colours, it should be noted, are artefacts of the way coatings absorb reflections, and do not mean that photos taken through decent quality coated glass are going to be tinted one colour or another. &lt;p&gt;Lens coatings have two drawbacks. First, they must be kept scrupulously clean at all times, as oils and dirt interfere with the way they work. Fingerprints are extremely obvious on coated glass. Second, many lens coatings are fairly fragile and are easily scratched, so care is required in handling and cleaning them. Some lens and filters include hardened surfaces over the top of the coatings to protect them, but this is not universal. Some newer Canon lenses also have a fluorine coating, which affords a small level of smudge resistance.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="aspheric"&gt;&lt;/a&gt;What do “aspheric” or “aspherical” mean?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;The glass elements which make up a traditional camera lens can be thought of as cross-sections of a large sphere. That is to say that the curvature of each surface is even. The problem with spherical lens designs is that light passing through the outer edges of curved camera lenses focus at different points from light passing through the centre. This causes focus errors, or spherical aberration and other forms of optical problems. Spherical lenses work fine if the recording surface is also spherical (eg: the human eyeball), but in the case of cameras it’s not - the film surface or image chip surface is always flat. &lt;p&gt;One way to fix the problem is to add additional lens elements to correct for the aberration. A generally more efficient way to fix it is to make a lens element which is not a sphere in cross section. In other words the curvature of the lens varies from the middle to the edges. Such an aspherical lens element can help simplify lens design by minimizing the number of elements required and can result in a sharper image. Aspherical elements are particularly useful for correcting distortion in wide-angle lenses. &lt;p&gt;There are three basic ways to make an aspherical element. The expensive way is to grind a piece of glass down to the right shape. This is quite difficult owing to the extreme precision required to achieve the complex geometry, and so only some L series lenses use ground aspherical elements in Canon’s lens lineup. Another way is to mould a glass lens element. Such glass moulded aspherical lens elements are used in a number of Canon’s less expensive lenses. The cheapest way is to cement a plastic resin aspheric surface to the top of a glass spherical element. Such lenses are known as replicated aspherical elements and are particularly common among point and shoot cameras. &lt;p&gt;Note that some lensmakers, particularly Sigma, use the terms “aspherical” or “ASPH” as marketing labels. However many modern lenses made by other makers such as Canon also employ aspherical elements - they simply don’t advertise this fact on the outside of the lens. It’s important to remember that lenses with aspherical elements are not automatically and intrinsically better than lenses without. Sometimes they are, though this is usually for a variety of other factors, not merely the fact that they use aspherical elements.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="lowdispersion"&gt;&lt;/a&gt;What is low dispersion glass?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Low dispersion glass and its variants - ultra-low dispersion (UD) glass, extra-low dispersion (ED) glass - is expensive optical glass which can reduce unwanted colour fringing and other optical problems in lenses, particularly long telephoto lenses. &lt;p&gt;Dispersion is the rainbow effect seen with prisms and the like - white light being split up into a rainbow spectrum of its constituent wavelengths. Low dispersion glass does not disperse white light as much as regular glass, thereby reducing the amount of correction required to compensate for the phenomenon.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="fluorite"&gt;&lt;/a&gt;What is fluorite?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Technically, calcium fluorite isn’t glass. It’s actually a type of crystal produced synthetically by Canon and used in many of their top of the line L series lenses in place of low dispersion glass. It’s an expensive material but is extremely useful for minimizing optical lens aberrations, particularly with telephoto lenses.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="do"&gt;&lt;/a&gt;What are diffractive optics (DO)?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;DO lenses contain a new type of lens element unique to Canon’s product lineup. Such lens elements, multi-layer diffractive elements, are nearly flat lens elements with extremely fine grooves etched into them. They exploit the principles of optical diffraction rather than optical refraction. &lt;p&gt;The advantage of such DO elements is that they do a very good job of reducing chromatic aberration (colour fringing), a particularly significant problem in long telephoto lenses. They can also be made much lighter than regular low-dispersion or fluorite lens elements, thereby shortening the length and reducing the weight of a large telephoto lens considerably. &lt;p&gt;Unfortunately, lenses with DO elements are at present quite expensive, and have some issues with lens flare under some lighting conditions. Canon DO lenses, while professional products, are not sold as L lenses and are marked by a pale green stripe around the end of the lens rather than a red one.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="rearinternal"&gt;&lt;/a&gt;What is rear or internal focussing?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;Many lenses become physically longer or shorter when you adjust focus. In other words they have two nested tubes which telescope in and out as you rotate the focus ring. This design, while inexpensive to make, is generally undesirable because when a lens extends or contracts there will always be air and dust sucked inside it. And inevitably this yields a bit of dust buildup over years of use. &lt;p&gt;Many Canon lenses use rear focussing (RF) or internal focussing (IF) instead. In rear focussing the lens elements closest to the camera move back and forth when you focus but the frontmost elements do not. In internal focussing some glass elements inside the lens move within the lens barrel. In both cases the lens does not change length at all because all lens element motion is contained within the lens barrel. &lt;p&gt;Another advantage of rear and internal focussing is that the end of the lens does not rotate during focussing. Many lenses which extend when you focus also rotate, which can be a nuisance if you use &lt;a href="http://photonotes.org/articles/beginner-faq/misc.html#polarizing"&gt;polarizing filters&lt;/a&gt; or &lt;a href="http://photonotes.org/articles/beginner-faq/misc.html#gnd"&gt;graduated neutral density filters&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;a name="bokeh"&gt;&lt;/a&gt;What is bokeh?&lt;/b&gt; &lt;blockquote&gt; &lt;p&gt;A term borrowed from the Japanese, pronounced with short vowels. (ie: more like French pronunciation - bo-ké - versus long English diphthongs - bow-kay.) Essentially bokeh, which is derived from the Japanese for blurring, refers to the highly subjective quality of the out of focus areas of a picture. Good bokeh is generally held to be smooth and soft, whereas bad bokeh is generally held to be distracting in some way - perhaps clumpy or doubled-up bright spots and so on. &lt;p&gt;Bokeh can be important for portraiture - you want out of focus areas behind the subject to be smooth and as non-distracting as possible. Highly patterned or sharp-edged areas don’t look as good. Mirror lenses are notorious for bad bokeh - they have annular (ring or doughnut shaped) out of focus highlights. &lt;p&gt;Bokeh is also written without the H, but the H is usually added to remind English speakers that the word has two syllables and not one.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-7747257767493162040?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/7747257767493162040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=7747257767493162040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/7747257767493162040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/7747257767493162040'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2010/12/all-about-canon-lenses.html' title='All about Canon Lenses'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-7016635655488042509</id><published>2010-12-18T19:32:00.001+05:30</published><updated>2010-12-18T19:32:54.046+05:30</updated><title type='text'>Finally Started by Website</title><content type='html'>&lt;p&gt;You can find me (Sriwantha Sri Aravinda Attanayake)&amp;nbsp; at &lt;a href="http://www.cl.cam.ac.uk/~ssauba2/"&gt;http://www.cl.cam.ac.uk/~ssauba2/&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Well nothing much interesting, but I use this as my file share and for my project space. Thanks oswd for the theme!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-7016635655488042509?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/7016635655488042509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=7016635655488042509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/7016635655488042509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/7016635655488042509'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2010/12/finally-started-by-website.html' title='Finally Started by Website'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-2219411926204918115</id><published>2010-12-16T04:25:00.001+05:30</published><updated>2010-12-16T04:26:07.154+05:30</updated><title type='text'>Conditional Random Fields: An Introduction</title><content type='html'>&lt;p&gt;The task of assigning label sequences to a set of observation sequences arises&lt;br&gt;in many fields, including bioinformatics, computational linguistics and speech&lt;br&gt;recognition [6, 9, 12]. For example, consider the natural language processing&lt;br&gt;task of labeling the words in a sentence with their corresponding part-of-speech&lt;br&gt;(POS) tags. In this task, each word is labeled with a tag indicating its appropriate&lt;br&gt;part of speech, resulting in annotated text, such as:&lt;/p&gt; &lt;p&gt;&lt;br&gt;[PRP He] [VBZ reckons] [DT the] [JJ current] [NN account] [NN&lt;br&gt;deficit] [MD will] [VB narrow] [TO to] [RB only] [# #] [CD 1.8] [CD&lt;br&gt;billion] [IN in] [NNP September] [. .]&lt;/p&gt; &lt;p&gt;&lt;br&gt;Labeling sentences in this way is a useful preprocessing step for higher natural&lt;br&gt;language processing tasks: POS tags augment the information contained within&lt;br&gt;words alone by explicitly indicating some of the structure inherent in language.&lt;br&gt;One of the most common methods for performing such labeling and segmentation&lt;br&gt;tasks is that of employing hidden Markov models [13] (HMMs) or probabilistic&lt;br&gt;finite-state automata to identify the most likely sequence of labels for the&lt;br&gt;words in any given sentence. HMMs are a form of generative model, that defines&lt;br&gt;a joint probability distribution p(X,Y ) where X and Y are random variables&lt;br&gt;respectively ranging over observation sequences and their corresponding label&lt;br&gt;sequences. In order to define a joint distribution of this nature, generative models&lt;br&gt;must enumerate all possible observation sequences – a task which, for most&lt;br&gt;domains, is intractable unless observation elements are represented as isolated&lt;br&gt;units, independent from the other elements in an observation sequence. More&lt;br&gt;precisely, the observation element at any given instant in time may only directly&lt;br&gt;depend on the state, or label, at that time. This is an appropriate assumption&lt;br&gt;for a few simple data sets, however most real-world observation sequences are&lt;br&gt;best represented in terms of multiple interacting features and long-range dependencies&lt;br&gt;between observation elements.&lt;br&gt;&lt;/p&gt; &lt;p&gt;This representation issue is one of the most fundamental problems when&lt;br&gt;labeling sequential data. Clearly, a model that supports tractable inference is&lt;br&gt;necessary, however a model that represents the data without making unwarranted&lt;br&gt;independence assumptions is also desirable. One way of satisfying both&lt;br&gt;these criteria is to use a model that defines a conditional probability p(Y |x) over&lt;br&gt;label sequences given a particular observation sequence x, rather than a joint&lt;br&gt;distribution over both label and observation sequences. Conditional models are&lt;br&gt;used to label a novel observation sequence x? by selecting the label sequence y?&lt;br&gt;that maximizes the conditional probability p(y?|x?). The conditional nature of&lt;br&gt;such models means that no effort is wasted on modeling the observations, and&lt;br&gt;one is free from having to make unwarranted independence assumptions about&lt;br&gt;these sequences; arbitrary attributes of the observation data may be captured&lt;br&gt;by the model, without the modeler having to worry about how these attributes&lt;br&gt;are related.&lt;/p&gt; &lt;p&gt;&lt;br&gt;Conditional random fields [8] (CRFs) are a probabilistic framework for labeling&lt;br&gt;and segmenting sequential data, based on the conditional approach described&lt;br&gt;in the previous paragraph. A CRF is a form of undirected graphical model that&lt;br&gt;defines a single log-linear distribution over label sequences given a particular&lt;br&gt;observation sequence. The primary advantage of CRFs over hidden Markov&lt;br&gt;models is their conditional nature, resulting in the relaxation of the independence&lt;br&gt;assumptions required by HMMs in order to ensure tractable inference.&lt;br&gt;Additionally, CRFs avoid the label bias problem [8], a weakness exhibited by&lt;br&gt;maximum entropy Markov models [9] (MEMMs) and other conditional Markov&lt;br&gt;models based on directed graphical models. CRFs outperform both MEMMs&lt;br&gt;and HMMs on a number of real-world sequence labeling tasks [8, 11, 15].&lt;br&gt;2 Undirected Graphical Models.&lt;/p&gt; &lt;p&gt;&lt;br&gt;A conditional random field may be viewed as an undirected graphical model,&lt;br&gt;or Markov random field [3], globally conditioned on X, the random variable&lt;br&gt;representing observation sequences. Formally, we define G = (V,E) to be an&lt;br&gt;undirected graph such that there is a node v 2 V corresponding to each of the&lt;br&gt;random variables representing an element Yv of Y . If each random variable&lt;br&gt;Yv obeys the Markov property with respect to G, then (Y ,X) is a conditional&lt;br&gt;random field. In theory the structure of graph G may be arbitrary, provided&lt;br&gt;it represents the conditional independencies in the label sequences being modeled.&lt;br&gt;However, when modeling sequences, the simplest and most common graph&lt;br&gt;structure encountered is that in which the nodes corresponding to elements of&lt;br&gt;2.&lt;/p&gt; &lt;p&gt;Thanks Hanna M. Wallach for the explanation &lt;/p&gt; &lt;p&gt;&lt;br&gt;References&lt;br&gt;[1] A. L. Berger. The improved iterative scaling algorithm: A gentle introduction,1997.&lt;br&gt;[2] A. L. Berger, S. A. Della Pietra, and V. J. Della Pietra. A maximum entropy&lt;br&gt;approach to natural language processing. Computational Linguistics, 22(1):39–71, 1996.&lt;br&gt;[3] P. Clifford. Markov random fields in statistics. In Geoffrey Grimmett&lt;br&gt;and Dominic Welsh, editors, Disorder in Physical Systems: A Volume in&lt;br&gt;Honour of John M. Hammersley, pages 19–32. Oxford University Press,&lt;br&gt;1990.&lt;br&gt;[4] T. H. Cormen, C. E. Leiserson, and R. L. Rivest. Introduction to Algorithms.&lt;br&gt;MIT Press/McGraw-Hill, 1990.&lt;br&gt;[5] J. Darroch and D. Ratcliff. Generalized iterative scaling for log-linear models.&lt;br&gt;The Annals of Mathematical Statistics, 43:1470–1480, 1972.&lt;br&gt;[6] R. Durbin, S. Eddy, A. Krogh, and G. Mitchison. Biological Sequence&lt;br&gt;Analysis: Probabilistic Models of Proteins and Nucleic Acids. Cambridge&lt;br&gt;University Press, 1998.&lt;br&gt;[7] E. T. Jaynes. Information theory and statistical mechanics. The Physical&lt;br&gt;Review, 106(4):620–630, May 1957.&lt;br&gt;[8] J. Lafferty, A. McCallum, and F. Pereira. Conditional random fields: probabilistic&lt;br&gt;models for segmenting and labeling sequence data. In International Conference on Machine Learning, 2001.&lt;br&gt;[9] A. McCallum, D. Freitag, and F. Pereira. Maximum entropy Markov models&lt;br&gt;for information extraction and segmentation. In International Conference&lt;br&gt;on Machine Learning, 2000.&lt;br&gt;[10] S. Della Pietra, V. Della Pietra, and J. Lafferty. Inducing features of random&lt;br&gt;fields. Technical Report CMU-CS-95-144, Carnegie Mellon University,1995.&lt;br&gt;[11] D. Pinto, A. McCallum, X. Wei, and W. B. Croft. Table extraction using&lt;br&gt;conditional random fields. Proceedings of the ACM SIGIR, 2003.&lt;br&gt;[12] L. Rabiner and B. H. Juang. Fundamentals of Speech Recognition. Prentice&lt;br&gt;Hall Signal Processing Series. Prentice-Hall, Inc., 1993.&lt;br&gt;[13] L. R. Rabiner. A tutorial on hidden Markov models and selected applications&lt;br&gt;in speech recognition. Proceedings of the IEEE, 77(2):257–285, 1989.&lt;br&gt;[14] A. Ratnaparkhi. A simple introduction to maximum entropy models for&lt;br&gt;natural language processing. Technical Report 97-08, Institute for Research&lt;br&gt;in Cognitive Science, University of Pennsylvania, 1997.8&lt;br&gt;[15] F. Sha and F. Pereira. Shallow parsing with conditional random fields.&lt;br&gt;Proceedings of Human Language Technology, NAACL 2003, 2003.&lt;br&gt;[16] C. E. Shannon. A mathematical theory of communication. Bell System&lt;br&gt;Tech. Journal, 27:379–423 and 623–656, 1948.&lt;br&gt;[17] H. M. Wallach. Efficient training of conditional random fields. Master’s&lt;br&gt;thesis, University of Edinburgh, 2002.9&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-2219411926204918115?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/2219411926204918115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=2219411926204918115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2219411926204918115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2219411926204918115'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2010/12/conditional-random-fields-introduction.html' title='Conditional Random Fields: An Introduction'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-3593215927412324203</id><published>2010-10-10T02:12:00.001+05:30</published><updated>2010-10-10T02:12:53.248+05:30</updated><title type='text'>Speech Explained</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;We all speak. What do we actually do when we are talking. &lt;/p&gt; &lt;p&gt;Getting a glass of water is an action. Asking someone else to get you one is also an act.  &lt;p&gt;When we speak, our words do not have meaning in and of themselves. They are very much affected by the situation, the speaker and the listener. Thus words alone do not have a simple fixed meaning. &lt;ul&gt; &lt;li&gt; &lt;p&gt;&lt;i&gt;Locutionary act&lt;/i&gt;: saying something (the locution) with a certain meaning in traditional sense. This may not constitute a speech act. &lt;/p&gt; &lt;li&gt; &lt;p&gt;&lt;i&gt;Illocutionary act: &lt;/i&gt;the &lt;i&gt;performance&lt;/i&gt; of an act in saying something (vs. the general act of saying something). &lt;br&gt;The &lt;i&gt;illocutionary force &lt;/i&gt;is the speaker's intent. A true 'speech act'. &lt;br&gt;e.g. informing, ordering, warning, undertaking.&lt;/p&gt; &lt;li&gt; &lt;p&gt;&lt;i&gt;Perlocutionary acts&lt;/i&gt;: Speech acts that have an effect on the feelings, thoughts or actions of either the speaker or the listener. In other words, they seek to change minds!  &lt;p&gt;Unlike locutionary acts, perlocutionary acts are external to the performance. &lt;p&gt;e.g., inspiring, persuading or deterring.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Two types of locutionary act are &lt;i&gt;utterance acts&lt;/i&gt;, where something is said (or a sound is made) and which may not have any meaning, and &lt;i&gt;propositional acts&lt;/i&gt;, where a particular reference is made. (note: acts are sometimes also called utterances - thus a perlocutionary act is the same a perlocutionary utterance). &lt;p&gt;Searle (1969) identified five illocutionary/perlocutionary points: &lt;ol&gt; &lt;li&gt;&lt;i&gt;Assertives&lt;/i&gt;: statements may be judged true or false because they aim to describe a state of affairs in the world.  &lt;li&gt;&lt;i&gt;Directives&lt;/i&gt;: statements attempt to make the other person's actions fit the propositional content.  &lt;li&gt;&lt;i&gt;Commissives&lt;/i&gt;: statements which commit the speaker to a course of action as described by the propositional content.  &lt;li&gt;&lt;i&gt;Expressives&lt;/i&gt;: statements that express the “sincerity condition of the speech act”.  &lt;li&gt;&lt;i&gt;Declaratives&lt;/i&gt;: statements that attempt to change the world by “representing it as having been changed”. &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Thus pretty much all we do when we are talking is assert, direct, commiserate, express and declare. In fact we follow two types of rules:  &lt;ul&gt; &lt;li&gt;&lt;i&gt;Constitutive rules or Definition rules&lt;/i&gt; that create or define new forms of behavior.  &lt;li&gt;&lt;i&gt;Regulative or Behavior rules&lt;/i&gt; that govern types of behavior that already exist. &lt;/li&gt;&lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-3593215927412324203?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/3593215927412324203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=3593215927412324203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/3593215927412324203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/3593215927412324203'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2010/10/speech-explained.html' title='Speech Explained'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-3812175650751488379</id><published>2010-09-06T20:35:00.001+05:30</published><updated>2010-09-06T20:35:22.387+05:30</updated><title type='text'>What PhD Means?</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I recently found a great article what you actually do when you finish your PhD. Read the article &lt;a href="http://matt.might.net/articles/phd-school-in-pictures/"&gt;http://matt.might.net/articles/phd-school-in-pictures/&lt;/a&gt; that explains (by visual mean) how you extend the human’s body of knowledge by your research. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-3812175650751488379?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/3812175650751488379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=3812175650751488379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/3812175650751488379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/3812175650751488379'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2010/09/what-phd-means.html' title='What PhD Means?'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-4417140074672367291</id><published>2010-08-30T19:53:00.001+05:30</published><updated>2010-08-30T19:53:01.924+05:30</updated><title type='text'>Memory Map (Part 1)</title><content type='html'>&lt;p&gt;The memory a program uses is typically divided into four different areas: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The code area, where the compiled program sits in memory. &lt;/li&gt;    &lt;li&gt;The globals area, where global variables are stored. &lt;/li&gt;    &lt;li&gt;The heap, where dynamically allocated variables are allocated from. &lt;/li&gt;    &lt;li&gt;The stack, where parameters and local variables are allocated from.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There isn’t really much to say about the first two areas. The heap and the stack are where most of the interesting stuff takes place, and those are the two that will be the focus of this section. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The heap&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;The heap (also known as the “free store”) is a large pool of memory used for dynamic allocation. In C++, when you use the new operator to allocate memory, this memory is assigned from the heap.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;code&gt;int&lt;/code&gt; &lt;code&gt;*pValue = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;int&lt;/code&gt;&lt;code&gt;; &lt;/code&gt;&lt;code&gt;// pValue is assigned 4 bytes from the heap&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;code&gt;int&lt;/code&gt; &lt;code&gt;*pArray = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;int&lt;/code&gt;&lt;code&gt;[10]; &lt;/code&gt;&lt;code&gt;// pArray is assigned 40 bytes from the heap&lt;/code&gt; &lt;/p&gt;  &lt;p&gt;Because the precise location of the memory allocated is not known in advance, the memory allocated has to be accessed indirectly — which is why new returns a pointer. You do not have to worry about the mechanics behind the process of how free memory is located and allocated to the user. However, it is worth knowing that sequential memory requests may not result in sequential memory addresses being allocated! &lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;    &lt;br /&gt;&lt;code&gt;int&lt;/code&gt; &lt;code&gt;*pValue1 = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;int&lt;/code&gt;&lt;code&gt;;&lt;/code&gt; &lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;    &lt;br /&gt;&lt;code&gt;int&lt;/code&gt; &lt;code&gt;*pValue2 = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;int&lt;/code&gt;&lt;code&gt;;&lt;/code&gt; &lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;    &lt;br /&gt;&lt;code&gt;pValue1 and pValue2 may not have sequential addresses&lt;/code&gt; &lt;/p&gt;  &lt;p&gt;When a dynamically allocated variable is deleted, the memory is “returned” to the heap and can then be reassigned as future allocation requests are received. &lt;/p&gt;  &lt;p&gt;The heap has advantages and disadvantages:   &lt;br /&gt;1) Allocated memory stays allocated until it is specifically deallocated (beware memory leaks).    &lt;br /&gt;2) Dynamically allocated memory must be accessed through a pointer.    &lt;br /&gt;3) Because the heap is a big pool of memory, large arrays, structures, or classes should be allocated here. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The stack&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;The call stack (usually referred to as “the stack”) has a much more interesting role to play. Before we talk about the call stack, which refers to a particular portion of memory, let’s talk about what a stack is. &lt;/p&gt;  &lt;p&gt;Consider a stack of plates in a cafeteria. Because each plate is heavy and they are stacked, you can really only do one of three things:   &lt;br /&gt;1) Look at the surface of the top plate    &lt;br /&gt;2) Take the top plate off the stack    &lt;br /&gt;3) Put a new plate on top of the stack &lt;/p&gt;  &lt;p&gt;In computer programming, a stack is a container that holds other variables (much like an array). However, whereas an array lets you access and modify elements in any order you wish, a stack is more limited. The operations that can be performed on a stack are identical to the ones above: &lt;/p&gt;  &lt;p&gt;1) Look at the top item on the stack (usually done via a function called top())   &lt;br /&gt;2) Take the top item off of the stack (done via a function called pop())    &lt;br /&gt;3) Put a new item on top of the stack (done via a function called push()) &lt;/p&gt;  &lt;p&gt;A stack is a last-in, first-out (LIFO) structure. The last item pushed onto the stack will be the first item popped off. If you put a new plate on top of the stack, anybody who takes a plate from the stack will take the plate you just pushed on first. Last on, first off. As items are pushed onto a stack, the stack grows larger — as items are popped off, the stack grows smaller. &lt;/p&gt;  &lt;p&gt;The plate analogy is a pretty good analogy as to how the call stack works, but we can actually make an even better analogy. Consider a bunch of mailboxes, all stacked on top of each other. Each mailbox can only hold one item, and all mailboxes start out empty. Furthermore, each mailbox is nailed to the mailbox below it, so the number of mailboxes can not be changed. If we can’t change the number of mailboxes, how do we get a stack-like behavior? &lt;/p&gt;  &lt;p&gt;First, we use a marker (like a post-it note) to keep track of where the bottom-most empty mailbox is. In the beginning, this will be the lowest mailbox. When we push an item onto our mailbox stack, we put it in the mailbox that is marked (which is the first empty mailbox), and move the marker up one mailbox. When we pop an item off the stack, we move the marker down one mailbox and remove the item from that mailbox. Anything below the marker is considered “on the stack”. Anything at the marker or above the marker is not on the stack. &lt;/p&gt;  &lt;p&gt;This is almost exactly analogous to how the call stack works. The call stack is a fixed-size chunk of sequential memory addresses. The mailboxes are memory addresses, and the “items” are pieces of data (typically either variables or addreses). The “marker” is a register (a small piece of memory) in the CPU known as the stack pointer. The stack pointer keeps track of where the top of the stack currently is. &lt;/p&gt;  &lt;p&gt;The only difference between our hypothetical mailbox stack and the call stack is that when we pop an item off the call stack, we don’t have to erase the memory (the equivalent of emptying the mailbox). We can just leave it to be overwritten by the next item pushed to that piece of memory. Because the stack pointer will be below that memory location, we know that memory location is not on the stack. &lt;/p&gt;  &lt;p&gt;So what do we push onto our call stack? Parameters, local variables, and… function calls. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The stack in action&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;Because parameters and local variables essentially belong to a function, we really only need to consider what happens on the stack when we call a function. Here is the sequence of steps that takes place when a function is called: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;The address of the instruction beyond the function call is pushed onto the stack. This is how the CPU remembers where to go after the function returns. &lt;/li&gt;    &lt;li&gt;Room is made on the stack for the function’s return type. This is just a placeholder for now. &lt;/li&gt;    &lt;li&gt;The CPU jumps to the function’s code. &lt;/li&gt;    &lt;li&gt;The current top of the stack is held in a special pointer called the stack frame. Everything added to the stack after this point is considered “local” to the function. &lt;/li&gt;    &lt;li&gt;All function arguments are placed on the stack. &lt;/li&gt;    &lt;li&gt;The instructions inside of the function begin executing. &lt;/li&gt;    &lt;li&gt;Local variables are pushed onto the stack as they are defined.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;When the function terminates, the following steps happen: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;The function’s return value is copied into the placeholder that was put on the stack for this purpose. &lt;/li&gt;    &lt;li&gt;Everything after the stack frame pointer is popped off. This destroys all local variables and arguments. &lt;/li&gt;    &lt;li&gt;The return value is popped off the stack and is assigned as the value of the function. If the value of the function isn’t assigned to anything, no assignment takes place, and the value is lost. &lt;/li&gt;    &lt;li&gt;The address of the next instruction to execute is popped off the stack, and the CPU resumes execution at that instruction.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Typically, it is not important to know all the details about how the call stack works. However, understanding that functions are effectively pushed on the stack when they are called and popped off when they return gives you the fundamentals needed to understand recursion, as well as some other concepts that are useful when debugging. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Stack overflow&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;The stack has a limited size, and consequently can only hold a limited amount of information. If the program tries to put too much information on the stack, stack overflow will result. &lt;strong&gt;Stack overflow&lt;/strong&gt; happens when all the memory in the stack has been allocated — in that case, further allocations begin overflowing into other sections of memory. &lt;/p&gt;  &lt;p&gt;Stack overflow is generally the result of allocating too many variables on the stack, and/or making too many nested function calls (where function A calls function B calls function C calls function D etc…) Overflowing the stack generally causes the program to crash. &lt;/p&gt;  &lt;p&gt;Here is an example program that causes a stack overflow. You can run it on your system and watch it crash: &lt;/p&gt;  &lt;p&gt;&lt;code&gt;int&lt;/code&gt; &lt;code&gt;main()&lt;/code&gt;    &lt;br /&gt;&lt;code&gt;{&lt;/code&gt;    &lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;int&lt;/code&gt; &lt;code&gt;nStack[100000000];&lt;/code&gt;    &lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;return&lt;/code&gt; &lt;code&gt;0;&lt;/code&gt; &lt;/p&gt;  &lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;This program tries to allocate a huge array on the stack. Because the stack is not large enough to handle this array, the array allocation overflows into portions of memory the program is not allowed to use. Consequently, the program crashes. &lt;/p&gt;  &lt;p&gt;The stack has advantages and disadvantages: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Memory allocated on the stack stays in scope as long as it is on the stack. It is destroyed when it is popped off the stack. &lt;/li&gt;    &lt;li&gt;All memory allocated on the stack is known at compile time. Consequently, this memory can be accessed directly through a variable. &lt;/li&gt;    &lt;li&gt;Because the stack is relatively small, it is generally not a good idea to do anything that eats up lots of stack space. This includes allocating large arrays, structures, and classes, as well as heavy recursion.&lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-4417140074672367291?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/4417140074672367291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=4417140074672367291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4417140074672367291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4417140074672367291'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2010/08/memory-map-part-1.html' title='Memory Map (Part 1)'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-7162254874989842437</id><published>2010-08-29T17:03:00.001+05:30</published><updated>2010-08-29T17:03:14.700+05:30</updated><title type='text'>EXMO 2010</title><content type='html'>&lt;p&gt;ExMO, is envisaged to be a large scale technological exhibition, characterized by the united organizing efforts of both the student body and the academic staff of Faculty of Engineering. The exhibition will be held on four consecutive days at the university premises beginning on the 10th of June.   &lt;br /&gt;In addition, the exhibition will feature a number of sub-events. Various programs are to be carried out to capture the interest of university students, school students and the general public.    &lt;br /&gt;EXHIBITION.    &lt;br /&gt;As mentioned above the exhibition will be the highlight of ExMO. The event affords an interesting and unique opportunity for the general public to flavour the technical atmosphere of engineering and certain other disciplines. The exhibition will be open for viewing from the 10th to the 13th of June, from 9 a.m. to 8 p.m.    &lt;br /&gt;Exhibits from the following departments and faculties within the university as well from the other engineering faculties in the country will be on display.    &lt;br /&gt;• Department of Chemical and Process Engineering    &lt;br /&gt;• Department of Civil Engineering    &lt;br /&gt;• Department of Computer Science and Engineering    &lt;br /&gt;• Department of Earth Resources Engineering    &lt;br /&gt;• Department of Electrical Engineering    &lt;br /&gt;• Department of Electronic and Telecommunication Engineering    &lt;br /&gt;• Department of Mathematics    &lt;br /&gt;• Department of Material Science and Engineering    &lt;br /&gt;• Department of Mechanical Engineering    &lt;br /&gt;• Department of Transport and Logistics Management    &lt;br /&gt;• Department of Textiles and Clothing Technology/Fashion Design&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-7162254874989842437?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/7162254874989842437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=7162254874989842437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/7162254874989842437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/7162254874989842437'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2010/08/exmo-2010.html' title='EXMO 2010'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-618886598532686286</id><published>2010-08-15T13:27:00.001+05:30</published><updated>2010-08-15T13:27:44.485+05:30</updated><title type='text'>Learn Online Retail Psychology Tricks to Avoid Them</title><content type='html'>&lt;p&gt;One day after &lt;a href="http://lifehacker.com/5432867/work-around-menu-psychology-at-restaurants"&gt;explaining the psychology of restaurant menus&lt;/a&gt;, the New York Times opens our minds' eyes to online retailers' manipulation of colors, price points, and time distortion to get us buying—and how we can avoid such trickery.&lt;/p&gt;  &lt;p&gt;Online shopping may seem like the uncluttered, no-distraction way to single in on a deal and grab it, but shopping sites have long since adapted to consumer behavior, and the subconscious thinking behind it. Ludicrously over-priced Items are put up on inventory pages that the company has little to no expectation of selling, just to make the mid-range options seem more appealing than the bargain choices. And when it comes to product shots, your mind's color associations can betray you:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Looking at a couch on a furniture retailer's Web site, you probably take no conscious notice of the green-patterned wallpaper behind the couch. Yet, Deborah Mitchell, a senior lecturer in marketing at the University of Wisconsin-Madison, said one study showed that green is associated with money, and got subjects' neurons firing in a way that made them sensitive to the cost of the item.&lt;/p&gt;    &lt;p&gt;In the same study, a blue-patterned wallpaper behind the couch was associated with comfort, and got subjects' neurons firing in a way that made them sensitive to the comfort of the item.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So your mind plays tricks on you, even when there's no salesperson around to distract you. Now what? The Times breaks down the best, if somewhat basic, advice:&lt;/p&gt;  &lt;blockquote&gt;   &lt;ol&gt;     &lt;li&gt;Determine what you are going to buy online, and stick to it. &lt;/li&gt;      &lt;li&gt;Determine the amount of time you are going to shop online, and stick to it. &lt;/li&gt;      &lt;li&gt;Determine your online shopping budget, and stick to it.&lt;/li&gt;   &lt;/ol&gt; &lt;/blockquote&gt;  &lt;p&gt;These resistance maneuvers, and the psychology angle, are all detailed more vividly at the link. If you have your own experiences and war stories about online retailers' mind games, we'd love to hear about them in the comments—mostly because our shopping is finally, thankfully over.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-618886598532686286?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/618886598532686286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=618886598532686286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/618886598532686286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/618886598532686286'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2010/08/learn-online-retail-psychology-tricks.html' title='Learn Online Retail Psychology Tricks to Avoid Them'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-6369917900048196550</id><published>2010-08-08T13:17:00.001+05:30</published><updated>2010-08-08T13:17:31.882+05:30</updated><title type='text'>International Phonetic Alphabet (IPA) Origin</title><content type='html'>&lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;p&gt;The IPA was first published in 1888 by the Association Phonétique Internationale (International Phonetic Association), a group of French language teachers founded by Paul Passy. The aim of the organisation was to devise a system for transcribing the sounds of speech which was independent of any particular language and applicable to all languages.&lt;/p&gt;  &lt;p&gt;A phonetic script for English created in 1847 by Isaac Pitman and Henry Ellis was used as a model for the IPA.&lt;/p&gt;  &lt;h4&gt;Uses&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;The IPA is used in dictionaries to indicate the pronunciation of words. &lt;/li&gt;    &lt;li&gt;The IPA has often been used as a basis for creating new writing systems for previously unwritten languages. &lt;/li&gt;    &lt;li&gt;The IPA is used in some foreign language text books and phrase books to transcribe the sounds of languages which are written with non-latin alphabets. It is also used by non-native speakers of English when learning to speak English.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_q1WCZwXDeec/TF5g_oaxJQI/AAAAAAAAAYw/6eKOOB-DuyM/s1600-h/ipa_cons%5B7%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ipa_cons" border="0" alt="ipa_cons" src="http://lh4.ggpht.com/_q1WCZwXDeec/TF5hAlgX5pI/AAAAAAAAAY0/_6f8Yq2uxEw/ipa_cons_thumb%5B5%5D.gif?imgmax=800" width="404" height="241" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Where symbols appear in pairs, the one on the right represents a&amp;#160; voiced consonant, while the one on the left is unvoiced. Shaded areas denote articulations judged to be impossible.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_q1WCZwXDeec/TF5hBPTPFnI/AAAAAAAAAY4/2M4TKQvMMV4/s1600-h/ipa_cons_np%5B7%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ipa_cons_np" border="0" alt="ipa_cons_np" src="http://lh3.ggpht.com/_q1WCZwXDeec/TF5hB3FBLcI/AAAAAAAAAY8/PkhiQIkcKVs/ipa_cons_np_thumb%5B4%5D.gif?imgmax=800" width="404" height="223" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_q1WCZwXDeec/TF5hCnAjMYI/AAAAAAAAAZA/ZObtZCCZEIM/s1600-h/ipa_dia%5B4%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ipa_dia" border="0" alt="ipa_dia" src="http://lh6.ggpht.com/_q1WCZwXDeec/TF5hDI2_HZI/AAAAAAAAAZE/3r6xcfNmsBM/ipa_dia_thumb%5B2%5D.gif?imgmax=800" width="404" height="251" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_q1WCZwXDeec/TF5hDyrpz_I/AAAAAAAAAZI/5SyfMYRvoT0/s1600-h/ipa_vwl%5B5%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ipa_vwl" border="0" alt="ipa_vwl" src="http://lh4.ggpht.com/_q1WCZwXDeec/TF5hEniT3iI/AAAAAAAAAZM/TJ35Mx6rbxA/ipa_vwl_thumb%5B3%5D.gif?imgmax=800" width="404" height="385" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-6369917900048196550?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/6369917900048196550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=6369917900048196550' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/6369917900048196550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/6369917900048196550'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2010/08/international-phonetic-alphabet-ipa.html' title='International Phonetic Alphabet (IPA) Origin'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_q1WCZwXDeec/TF5hAlgX5pI/AAAAAAAAAY0/_6f8Yq2uxEw/s72-c/ipa_cons_thumb%5B5%5D.gif?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-4821619521816617040</id><published>2010-02-23T22:01:00.001+05:30</published><updated>2010-02-23T22:01:54.365+05:30</updated><title type='text'>Honda Fever</title><content type='html'>&lt;div&gt;Why you should love your EG4 &lt;/div&gt;  &lt;div&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/LGpeDNq2lA8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/LGpeDNq2lA8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;  &lt;p&gt;So many thanks to &lt;strong&gt;Huervana Mark Anthony&lt;/strong&gt; for his great article&lt;/p&gt;  &lt;p align="justify"&gt;Do you own a Honda Civic? Are you dissatisfied by your Honda Civic's D15 stock engine performance? Do you want to change your engine to B16, B18, K20 etc., but don't know how? Are you one of those speed-addict guys who want to have more power on your Civic? If your answer is yes, this may help you change your engine into much higher power and push your car to the limits. Of course, if you want to purchase a second car for parts, it's a great idea to check out&lt;strong&gt;&lt;a href="http://3d97ff7958uz2t9qoim2ka1ncy.hop.clickbank.net/?tid=GOVAUCT"&gt;gov-auction.org&lt;/a&gt;&lt;/strong&gt;; this is a great site for those who want to find cars at reasonable prices.&lt;/p&gt;  &lt;p align="justify"&gt;To some, the Honda Civic is just a family car with no further expectations. They may not realize that the Honda engine has a tremendous power stored on it, and by installing simple add-ons such as air intake upgrade and high-performance free-flow exhaust, you can feel a better response on your car. However, if you want to go further than that, there's a lot of Honda after market performance parts available in the market for grabs. Whether you have a B or D or H series engine, the engine swap procedure is all same. You have to remove your old motor and change it to bigger power and torque. &lt;/p&gt;  &lt;p align="justify"&gt;To help you decide what engine fits you. You can &lt;strong&gt;choose from this wide range of Honda engines:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;B16A1 1595cc , 4 cyl, 16 valve DOHC VTEC , 160 bhp @ 7600, 111 lb-ft @ 7000, Redline: 8200 rpm &lt;/li&gt;    &lt;li&gt;B16A2/A3 1595cc,4 cyl, 16 valve DOHC VTEC , 160 bhp @ 7600,111-ft @ 7000, Redline: 8200 rpm &lt;/li&gt;    &lt;li&gt;B16A4 1595cc, 4 cyl, 16 valve DOHC VTEC , 170 bhp @ 7800 ,16Nm @ 7300, Redline: 8200 rpm &lt;/li&gt;    &lt;li&gt;B16B Spec-R1595cc , 4 cyl, 16 valve DOHC VTEC , 185 bhp @ 8200,16.3Nm @ 7600,Redline: 9000 rpm &lt;/li&gt;    &lt;li&gt;B17 1678cc ,4 cyl, 16 valve DOHC VTEC, 160 bhp @ 7600, 117 lb-ft @ 7000 , Redline: 8000 rpm &lt;/li&gt;    &lt;li&gt;B18B 1834cc , 4 cyl, 16 valve DOHC, 130 bhp @ 6000,121 lb-ft @ 5000 , Redline: 6500 rpm &lt;/li&gt;    &lt;li&gt;B18B1 1834cc , 4 cyl, 16 valve DOHC , 140 hp @ 6300,121 lb-ft @ 5200, Redline: 6800 rpm &lt;/li&gt;    &lt;li&gt;B18C1 1797cc ,4 cyl, 16 valve DOHC VTEC , 170 bhp @ 7600, 128lbs-ft @ 6200, Redline: 8200 rpm &lt;/li&gt;    &lt;li&gt;B18C Spec-R1797cc ,4 cyl, 16 valve DOHC VTEC, 200ps @ 8000 rmp, 19.0kg/cm2, Redline: 8400 rpm &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Other Available Engines:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;K20A3- 2.0L DOHC i-VTEC- '02+ RSX/'02+ Civic Si (160hp) &lt;/li&gt;    &lt;li&gt;K20A2- 2.0L DOHC i-VTEC- '02+ RSX Type S/'02+ Civic Type R (200hp) &lt;/li&gt;    &lt;li&gt;K20A- JDM 2.0L DOHC i-VTEC- '02+ Integra Type R (220ps) &lt;/li&gt;    &lt;li&gt;F20A1- JDM 2.0L DOHC non-VTEC- 90-93 Accord Si (155hp) &lt;/li&gt;    &lt;li&gt;F20B- JDM 2.0L DOHC VTEC- 90-93 Accord Si-R (190ps) &lt;/li&gt;    &lt;li&gt;F20C1- 2.0L DOHC VTEC- '00+ S2000 (250ps/240hp) &lt;/li&gt;    &lt;li&gt;F22A1- USDM 2.2L non-VTEC- 92-96 Prelude S/90-93 (130hp-135hp) &lt;/li&gt;    &lt;li&gt;H22A1- USDM 2.2L DOHC VTEC- 92-96 Prelude VTEC (190hp) &lt;/li&gt;    &lt;li&gt;H22A4- 2.2L DOHC VTEC- 97-01 Prelude VTEC/SH (97-98: 195hp / 99-01: 200hp) &lt;/li&gt;    &lt;li&gt;H22A- JDM 2.2L DOHC VTEC- 92+ Prelude Type-S, 97+ Prelude SiR S Spec. (220ps) &lt;/li&gt;    &lt;li&gt;H23A1- USDM 2.2L DOHC non-VTEC- Prelude Si (160hp) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;To do a Honda engine swap, follow these simple procedures with the help your owner’s manual:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Disconnect the battery&lt;/strong&gt; positive and negative terminals. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Open the engine hood in a vertical position.&lt;/strong&gt;       &lt;br /&gt;&lt;strong&gt;DO NOT&lt;/strong&gt; remove the engine hood. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Raise the car to full height.&lt;/strong&gt; Remove the front wheels and engine splash shield. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Drain the engine coolant.&lt;/strong&gt; By loosen the drain plug at the bottom of the radiator tank. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Drain the transmission oil/fluid.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Drain the engine oil.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Lower the car. &lt;/strong&gt;Open the hood as far open as possible. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the strut brace.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the under-hood ABS fuse/relay box.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the air intake duct, the resonator and the air cleaner assembly.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Relieve fuel pressure&lt;/strong&gt; by slowly loosening the service bolt on the fuel filter about one turn. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the fuel feed hose and evaporative emission control canister hose&lt;/strong&gt; from the intake manifold.       &lt;p&gt;&lt;/p&gt;      &lt;p&gt;&lt;a href="http://googleads.g.doubleclick.net/aclk?sa=l&amp;amp;ai=BWlmKd_iDS-uWLY7qvAPNnqSOBKeqpaYBncPHO8CNtwGwvRAQAxgIIPLZyQQoAzgAUI-T3sv7_____wFgkQGyARV3d3cuaG93dG9kb3RoaW5ncy5jb226AQk3Mjh4OTBfanPIAQHaAUNodHRwOi8vd3d3Lmhvd3RvZG90aGluZ3MuY29tL2F1dG9tb3RpdmUvaG93LXRvLWRvLWhvbmRhLWVuZ2luZS1zd2FwqAMB6APLBugDWegDL_UDAAAAhA&amp;amp;num=8&amp;amp;sig=AGiWqtytSnX5JCH-Fy_tt91CjIaN4UXQ_w&amp;amp;client=ca-pub-7579606133989673&amp;amp;adurl=http://www.asapstarters.com"&gt;&lt;/a&gt;&lt;/p&gt;     &lt;strong&gt;Remove the throttle cable&lt;/strong&gt; by loosening the locknut then slip the cable out of the accelerator linkage.       &lt;p&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the engine wire harness connectors&lt;/strong&gt; on the left side of the engine compartment. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the fuel return hose and brake booster vacuum hose.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the engine wire harness connectors, terminal and clamps&lt;/strong&gt; on the right side of the engine compartment. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the battery cable/starter cable&lt;/strong&gt; from the under-hood fuse/relay box and ABS power cable from the battery terminal. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the engine ground cable&lt;/strong&gt; from the cylinder head. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the power steering (P/S) belt and pump.&lt;/strong&gt; (if equipped - ignore, rather remove the pump lines) &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the air conditioning (A/C) belt and compressor.&lt;/strong&gt; (if equipped)       &lt;br /&gt;&lt;strong&gt;DO NOT&lt;/strong&gt; remove the A/C hoses. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the transmission ground cable and the automatic transmission (ATF) cooler hoses.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the upper and lower radiator hoses and the heater hoses.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Raise the car to full height.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the exhaust pipe and bracket.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the A/T shift cable.&lt;/strong&gt; (if equipped) &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the clutch slave cylinder and pipe hose assembly.&lt;/strong&gt;       &lt;br /&gt;&lt;strong&gt;DO NOT&lt;/strong&gt; remove the pipe/hose assembly &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the shift rod and extension rod.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the damper fork.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the suspension lower arm ball joint&lt;/strong&gt; with special tool. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the driveshaft.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Lower the car.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Attach the engine chain lifter to the engine.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the left and right front engine mount and brackets.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the rear engine mounting bracket.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the support nuts/bolt and mount bolt&lt;/strong&gt;, then remove the driver's side engine mount. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Remove the transmission mount nuts.&lt;/strong&gt; Loosen the mount bolt and pivot the transmission side mount out of the way. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Raise the chain lifter&lt;/strong&gt; to remove all slack from the chain. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Check that the engine is completely free of vacuum hoses, fuel and coolant hoses, and electrical wiring.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Slowly raise the engine approximately 6 in.&lt;/strong&gt; Check once again that all hoses and wires have been disconnected from the engine. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Raise the engine all the way and remove it from the car.&lt;/strong&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;strong&gt;Engine Removed!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Now that the Engine is removed, you will need to remove the engine mount. Use a plasma or an acetylene cutter to cut the engine mount. Clean the engine bay first before welding a new engine mount. Then place mounts on motor and position the engine in the bay. Align the engine well and weld the new motor mount securely.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Note:&lt;/strong&gt; Ask for professional help on engine mount installation and alignment.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;List of needed parts:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;ECU with harness &lt;/li&gt;    &lt;li&gt;Engine mounts &lt;/li&gt;    &lt;li&gt;Axles &lt;/li&gt;    &lt;li&gt;Clutch line &lt;/li&gt;    &lt;li&gt;Brake lines &lt;/li&gt;    &lt;li&gt;Fuel line &lt;/li&gt;    &lt;li&gt;New after market high performance air intake &lt;/li&gt;    &lt;li&gt;Heater hoses &lt;/li&gt;    &lt;li&gt;Radiator hoses &lt;/li&gt;    &lt;li&gt;New clutch w/resurfaced flywheel &lt;/li&gt;    &lt;li&gt;Cable ties &lt;/li&gt;    &lt;li&gt;Primary air fuel ratio sensor &lt;/li&gt;    &lt;li&gt;Shift cables, shift box &lt;/li&gt;    &lt;li&gt;Black tape &lt;/li&gt;    &lt;li&gt;Extra wires &lt;/li&gt;    &lt;li&gt;Engine coolant temp sensor &lt;/li&gt;    &lt;li&gt;Vacuum hoses &lt;/li&gt;    &lt;li&gt;Brake booster hose &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Thin cooling fan &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;Hi-flow exhaust &lt;/li&gt;    &lt;li&gt;Header &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;B18C4 Engine&lt;/p&gt;  &lt;div&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/iQ-g11nXFt4&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/iQ-g11nXFt4&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Body modification&lt;/p&gt;  &lt;div&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-4821619521816617040?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/4821619521816617040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=4821619521816617040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4821619521816617040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4821619521816617040'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2010/02/honda-fever.html' title='Honda Fever'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-953071944181645776</id><published>2010-02-02T22:57:00.001+05:30</published><updated>2010-02-02T22:57:51.487+05:30</updated><title type='text'>Liquidity vs Solvency</title><content type='html'>&lt;p&gt;As more and more people become bullish on this market and the economy, I think it is a great time for a sanity check. Will the economic environment be a lot better or worse 12 months from now? Bulls will tell you that we put in a market bottom in November and that all the indicators of fear were near or at all-time highs, a good sign of a bottom. They will also argue that, with all the stimulus being poured in around the world by governments and central banks, the world economy will stabilize in the coming year and the stock market is rising in advance of that. Bears, on the other hand, argue that the economic situation is bad and only getting worse. Employment, consumption, and industrial production are falling off a cliff. They claim that corporate earnings in 2009 will be worse than 2008 and there will be no V-shaped recovery in 2010 if there is any at all. So, who’s right?&lt;/p&gt;  &lt;p&gt;First, I think it’s important for all to understand two key terms: liquidity and solvency.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Liquidity&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;1: flowing freely like water&lt;/p&gt;  &lt;p&gt;2: having the properties of a liquid : being neither solid nor gaseous&lt;/p&gt;  &lt;p&gt;3 a: shining and clear &amp;lt;large liquid eyes&amp;gt; b: being musical and free of harshness in sound c: smooth and unconstrained in movement d: articulated without friction and capable of being prolonged like a vowel &amp;lt;a liquid consonant&amp;gt;&lt;/p&gt;  &lt;p&gt;4 a: consisting of or capable of ready conversion into cash &amp;lt;liquid assets&amp;gt; b: capable of covering current liabilities quickly with current assets&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Solvency&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;1 : able to pay all legal debts &amp;lt;a solvent company&amp;gt;&lt;/p&gt;  &lt;p&gt;2 : that dissolves or can dissolve &amp;lt;solvent action of water&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now, let’s examine a liquidity problem and a solvency problem separately.&lt;/p&gt;  &lt;p&gt;Company A lists as assets a warehouse worth $50,000, inventory worth $20,000 and $10,000 in cash in their bank account. Furthermore, Company A lists as liabilities only a $35,000 loan maturing next month. Clearly, we can see that Company A has more than enough assets to cover its liabilities. In fact, Company A has a positive net worth of $45,000 (80,000 – 35,000). However, they are going to run into a problem raising the money they need to pay off the loan because their warehouse and inventory are not liquid assets i.e. easily convertible to cash. You’ll also notice that there are degrees of liquidity for assets – inventory being more liquid than real estate. This is a classic liquidity problem. Sometimes, a solution can’t be found and a company may be forced to liquidate assets. Usually, a workaround (such as a temporary loan using the warehouse as collateral) will allow the company to remain in business. If this sounds a lot like what the Fed is doing.. well, it is. They are accepting all sorts of new collateral from banks for cash. The cash allows banks to continue on with their business. Actually, the Fed and central banks around the world have essentially drowned the world in a sea of liquidity. Cheap money is available for all at low rates. Our problems are solved, right? Not so fast.&lt;/p&gt;  &lt;p&gt;Let’s look at Company B. For simplicity, Company B has the exact same balance sheet as Company A. Let’s say that Company B had bad risk managers and didn’t buy insurance and last week a flood washed away their warehouse and most of the inventory. Well, now Company B has $10,000 in cash left and a $35,000 loan to pay. This is a solvency problem and it’s bad. Generally, companies that are insolvent are forced into bankruptcy.&lt;/p&gt;  &lt;p&gt;If you didn’t understand why Lehman went under despite having access to the Fed’s funding sources, well now you know. They didn’t have a liquidity problem; they had a solvency problem. All the assets on their balance sheets were essentially washed away in a flood and they could no longer cover their debts. Every writedown you hear about in the news is the revaluation of assets on balance sheets at a lower level. It brings companies closer and closer to an insolvency position. The scary thing is that no one can really believe what anyone says about the value of their assets because they are all marking their books to fantasy valuations. Take for example Lehman Brothers and their magical loss of billions in value from the day before bankruptcy to the day after.&lt;/p&gt;  &lt;p&gt;The TARP is attempting to address solvency problems by directly injecting capital into the banks to increase their capital ratios. The Fed, however, has only been providing liquidity through all their programs – TAF, PDCF, etc.&lt;/p&gt;  &lt;p&gt;After thinking about it, it seems clear to me that no amount of liquidity solves the solvency problems in our economy. Banks are insolvent. Consumers are insolvent. Corporations are insolvent. This is what happens when there is too much leverage in the system and your equity cushion gets wiped out. Mainly for this reason, I think we have a lot more pain to endure on the downside in the stock market and I think the economy will end up being much worse than people would like to believe. The only solution as far as I can tell is allowing bankruptcies to occur and not bailing everyone out and pushing judgment day into the future. Government can provide stimulus to attempt to stabilize the economy but they shouldn’t allow the zombie corporations to live on. It will be painful but when the dust settles, we will be a lot stronger for it.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-953071944181645776?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/953071944181645776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=953071944181645776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/953071944181645776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/953071944181645776'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2010/02/liquidity-vs-solvency.html' title='Liquidity vs Solvency'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-4711352105493132581</id><published>2010-02-02T22:51:00.001+05:30</published><updated>2010-02-02T22:51:14.442+05:30</updated><title type='text'>Claims Based Authentication</title><content type='html'>&lt;p&gt;There is a lot of hype about claims based authentication, and unfortunately a lot of confusing jargon.&amp;#160;&amp;#160; My goal in this post is to explain what claims based authentication means in plain English. This includes what it enables, and what it doesn’t enable. I am going to try my hardest not to use any technical terminology beyond the bare minimum.&lt;/p&gt;  &lt;h5&gt;What is authentication?&lt;/h5&gt;  &lt;p&gt;Authentication is the process of determining if someone is who they claim to be. It answers the question “&lt;em&gt;Who is this guy really?”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;In the Microsoft world, authentication is usually performed by Active Directory.&amp;#160; I claim to be Tristan, and i prove this to Active Directory by providing my password. Other systems don’t trust &lt;em&gt;me, &lt;/em&gt;they trust Active Directory&lt;em&gt;.&lt;/em&gt;Active Directory gives systems a bit of data that says “&lt;em&gt;yeah, I personally vouch for this guy. It really is Tristan&lt;/em&gt;.”&lt;/p&gt;  &lt;p&gt;Now, if everyone used the same Active Directory installation in the same environment, then that’s all we would need. Claims based authentication is not needed in a simple environment like that.&lt;/p&gt;  &lt;p&gt;But in the real world, things are different. We face three big challenges:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Privacy regulations and other pieces of legislation are impacting what kind of information we are allowed to capture and store about users, so in some cases we can’t just demand that people give us all of their personal details. &lt;/li&gt;    &lt;li&gt;Businesses want to interoperate with other businesses, and government organizations want to provide more integrated services to citizens. However, different systems use different authentication systems (not everyone uses Active Directory, and even when they do, they have different instances.), and businesses want to integrate in a secure, legally compliant manner.&lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;What does claims based authentication do?&lt;/h5&gt;  &lt;p&gt;Claims based authentication is designed to address the two challenges mentioned above.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Claims based authentication addresses privacy and other compliance concerns &lt;/strong&gt;by requesting less specific, less personal information about people, and by trusting other parties or systems to do the “proof of identity” check.&lt;/p&gt;  &lt;p&gt;Imagine you have a “sell alcohol to public” ecommerce website, and you are in a country where there are only two laws, called Fantasyland. One of these laws says “alcohol may not be sold to people under 18”, and the other law says “people have a right to privacy and web sites aren’t allowed to track individual people”. (If the law was this simple in real life we wouldn’t need lawyers!)&lt;/p&gt;  &lt;p&gt;We’ve got two competing concerns here. Firstly we need to ensure that a user is of legal age, while at the same time we’re not allowed to know who that user is! (Again, I blame the lawyers of Fantasyland).&lt;/p&gt;  &lt;p&gt;It turns out that in Fantasyland, the Government has set up a web service that users log on to, which authenticates them based on their citizenId and citizenPassword. It then is able to tell other systems that a user is above 18 or not, without revealing who that user is.&lt;/p&gt;  &lt;p&gt;So we implement our “sell alcohol to public” website by building a claims-aware system. Instead of building the standard “username and password” login mechanisms, we simply ask the Government’s web service to tell us if the user browsing our site is over 18. The claim that our system uses is a “userIsOver18” claim, and the claim value is either yes or no. We simply don’t build any authentication system at all beyond a simple “if (userIsOver18) then..“ statement.&lt;/p&gt;  &lt;p&gt;By doing this, we address privacy concerns – we don’t know or keep personally identifiable information – while at the same time ensuring that we don’t sell alcohol to someone under 18.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Claims based authentication addresses integration of different systems &lt;/strong&gt;by allowing communications using open standards, and by providing a platform for developing more specialized ‘identity connectors’ between systems.&lt;/p&gt;  &lt;h5&gt;What won’t it do for me?&lt;/h5&gt;  &lt;p&gt;Claims based authentication won’t address the lifecycle management of identity information. You’ll need a broader solution to that, but your solution may integrate with claims based authentication systems. How do you deal with new staff? How do you handle staff who are on long service leave? How do you handle fake accounts? Microsoft would like you to use their Identity Lifecycle Management application for this kind of thing.&lt;/p&gt;  &lt;p&gt;I’m going to be a little controversial here, and point out what I believe the biggest limitation of claims based authentication. I believe that what enterprise customers really need is claims based &lt;em&gt;authorization&lt;/em&gt;.&amp;#160; Claims based authentication may let our system know that a user is a contractor from a partner company, but it alone won’t let me specify a rule that says &lt;em&gt;“all of my company’s financial spreadsheets must not be seen by contractors&lt;/em&gt;”. Not only does claims based authentication not provide this capability, but neither do the role-based access controls provided by SharePoint. In fact SharePoint’s role-based access control model itself is too limited to address this. It still needs substantial improvements.&lt;/p&gt;  &lt;p&gt;The way industry is addressing this is by producing “entitlement management” systems, for specifying access control rules. Microsoft’s current solution, in my opinion, is strongly deficient in this regard. Yes, you can specify per item permissions for each individual financial spreadsheet. But this imposes such a high maintenance overhead that it is unworkable in practice. In my opinion companies like Oracle are well ahead of Microsoft in this field, but by no means does anyone have a complete turn-key solution.&lt;/p&gt;  &lt;h5&gt;How is it implemented?&lt;/h5&gt;  &lt;p&gt;The claims-based authentication implementation has a number of components. In simplified terms here’s how the pieces of technology fit together.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;From a developer’s point of view, the platform that Microsoft is providing is called the Windows Identity Foundation. This used to be called the Geneva framework. It provides a programming library suitable for building claims-aware applications. This library is also used by SharePoint 2010. &lt;/li&gt;    &lt;li&gt;Active Directory Federation Services implements services to create, accept, and transform tokens that contain claims. &lt;/li&gt;    &lt;li&gt;Card space provides a user interface for users to select which “identity card” they wish to use for a particular system&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;SharePoint Example: &lt;/p&gt; &lt;img src="http://i.technet.microsoft.com/Ee661734.6d811201-907e-43b8-ade2-28f846aee0e6(en-us,office.14).gif" width="380" height="422" /&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Sriwantha Sri Aravinda&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-4711352105493132581?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/4711352105493132581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=4711352105493132581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4711352105493132581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4711352105493132581'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2010/02/claims-based-authentication.html' title='Claims Based Authentication'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-7566798020807097202</id><published>2009-09-24T14:22:00.008+05:30</published><updated>2009-09-24T14:40:34.227+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='silverlight 2'/><category scheme='http://www.blogger.com/atom/ns#' term='Synchrounous web service call error'/><category scheme='http://www.blogger.com/atom/ns#' term='Asynchronous call problem'/><title type='text'>Converting asynchronous web service calls in Silverlight 2.0 to Synchronous calls</title><content type='html'>Until recently, with Silverlight 1.1, synchronous web service calls were indeed supported. Visual Studio generated the synchronous methods in the channel proxies and interfaces. There was one catch however: any web service call could only take place on the UI thread; otherwise an InvalidOperationException would ensue. With Silverlight 2 RTW, we see that the generated proxies no longer contain the methods for consuming services synchronously. Though now we are able to call a web service from any thread. &lt;br /&gt;&lt;br /&gt;So what is happening here? Well, Silverlight 2 web services still have thread affinity with the UI thread, it's just now there is some behind the scenes processing taking place. When a web service call is made, &lt;strong&gt;it is placed in a queue to be actioned by the UI thread&lt;/strong&gt;. (So if you block the UI thread all the other queued threads won't execute)&lt;br /&gt;&lt;br /&gt;Let's look at how web service calls are generally done in Silverlight 2. Firstly, we generate a proxy by creating a service reference. We then subscribe to the [MethodName]Completed event as shown in the following excerpt. &lt;br /&gt;&lt;strong&gt;&lt;br /&gt;WorkflowServiceSoapClient client = new WorkflowServiceSoapClient();&lt;br /&gt;client.GetAllMyActionCompleted += new EventHandler&lt;GetAllMyActionCompletedEventArgs&gt;(client_GetAllMyActionCompleted);&lt;br /&gt;            &lt;br /&gt;client.GetAllMyActionAsync();&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;When the client.GetAllMyActionAsync(); call is made, it is queued for the UI thread. Even if the call is made from the UI thread, it is still queued (Not yet activated). Once the call completes the &lt;strong&gt;GetAllMyActionCompleted&lt;/strong&gt; handler is invoked on the same thread that the &lt;strong&gt;GetAllMyActionAsync &lt;/strong&gt;call was made.&lt;br /&gt;&lt;br /&gt;If you use Set() method of AutoResetEvent in the callback function, and block the UI thread using AutoResetEvent WaitOne(), you will notice that the call back function is never called!. This is because the UI thread is blocked and there is nobody to activate the queued threads in Async call. !&lt;br /&gt;&lt;br /&gt;Sriwantha Sri Aravinda Attanayake&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-7566798020807097202?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/7566798020807097202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=7566798020807097202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/7566798020807097202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/7566798020807097202'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2009/09/converting-asynchronous-web-service.html' title='Converting asynchronous web service calls in Silverlight 2.0 to Synchronous calls'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-5656157781007040096</id><published>2009-09-18T21:43:00.001+05:30</published><updated>2009-09-18T21:44:09.188+05:30</updated><title type='text'>Compressed Air Engines (Greener world!)</title><content type='html'>&lt;div style="padding-bottom: 0px; padding-left: 0px; width: 411px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:9cef3ef7-ef2c-4349-bbf3-e212f43d1c4a" class="wlWriterEditableSmartContent"&gt;&lt;div id="02de94af-4ebe-45ab-9187-842ed87d8fb4" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=Dq8aZVLpf-c" target="_new"&gt;&lt;img src="http://lh4.ggpht.com/_q1WCZwXDeec/SrOxfIjAonI/AAAAAAAAAXI/HaBS1C8LBSM/video532c5dc1669f%5B6%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('02de94af-4ebe-45ab-9187-842ed87d8fb4'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;411\&amp;quot; height=\&amp;quot;344\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/Dq8aZVLpf-c&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/Dq8aZVLpf-c&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;411\&amp;quot; height=\&amp;quot;344\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;When you are fed up with pumping fuel into your vehicle you do search topics like this. I like the “genius” rotary type design this guy has given. (Low friction indeed!). Here is a high level design diagram of a compressed air engine. The beauty of the theory is when there is no any heat producing elements, the total weight of the engine can be drastically reduce by using materials like aluminum. They’re going to be no more radiators or complex mechanical parts. I wonder the weight of the “air tank” when it is fully filled. (Let’s say for 200km)&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://lh3.ggpht.com/_q1WCZwXDeec/SrOxhAXH1LI/AAAAAAAAAXA/E92CeQSUQjI/s1600-h/forbes-compressed-air-engine_136%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="forbes-compressed-air-engine_136" border="0" alt="forbes-compressed-air-engine_136" src="http://lh5.ggpht.com/_q1WCZwXDeec/SrOxixoyjkI/AAAAAAAAAXE/-kUNm421jQs/forbes-compressed-air-engine_136_thumb%5B1%5D.jpg?imgmax=800" width="251" height="267" /&gt;&lt;/a&gt;&amp;#160;&amp;#160; How it works&lt;/p&gt;  &lt;p&gt;Sriwantha Sri Aravinda&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-5656157781007040096?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/5656157781007040096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=5656157781007040096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/5656157781007040096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/5656157781007040096'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2009/09/compressed-air-engines-greener-world.html' title='Compressed Air Engines (Greener world!)'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_q1WCZwXDeec/SrOxfIjAonI/AAAAAAAAAXI/HaBS1C8LBSM/s72-c/video532c5dc1669f%5B6%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-4569522703840959563</id><published>2009-09-18T21:27:00.001+05:30</published><updated>2009-09-18T21:27:51.966+05:30</updated><title type='text'>Fit PC2</title><content type='html'>&lt;h4&gt;&lt;a href="http://lh5.ggpht.com/_q1WCZwXDeec/SrOt80rykGI/AAAAAAAAAW0/VddCB--zxtI/s1600-h/fit-pc2-300x224%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="fit-pc2-300x224" border="0" alt="fit-pc2-300x224" src="http://lh3.ggpht.com/_q1WCZwXDeec/SrOt_QiqYII/AAAAAAAAAW4/96kKMbKj7aE/fit-pc2-300x224_thumb.jpg?imgmax=800" width="244" height="183" /&gt;&lt;/a&gt; &lt;/h4&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;p&gt;The Fit-PC2 is the world’s smallest fully functional desktop PC. It’s about 1/4 the volume of a Mac Mini, and it still has all the necessary connections and features to be used as a home or office computer. It’s also the most energy efficient PC I know of, using only six watt when idle and eight when playing full resolution HD video (1080p). Yes, it does that. But more about that later.    &lt;br /&gt;&lt;a href="http://www.roytanck.com/2009/07/29/fit-pc2-review-the-worlds-smallest-desktop-pc/#more-2060"&gt;More &lt;em&gt;Fit-PC2 review: The world’s smallest desktop PC&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-4569522703840959563?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/4569522703840959563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=4569522703840959563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4569522703840959563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4569522703840959563'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2009/09/fit-pc2.html' title='Fit PC2'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_q1WCZwXDeec/SrOt_QiqYII/AAAAAAAAAW4/96kKMbKj7aE/s72-c/fit-pc2-300x224_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-6390777870007177299</id><published>2009-09-17T21:54:00.001+05:30</published><updated>2009-09-17T21:54:51.637+05:30</updated><title type='text'>ThE cAt is oUt: SharePoint 2010 (Twenty Ten”</title><content type='html'>&lt;p&gt;The few bits I’ve managed to glean about Office 2010 so far have made it seem that &lt;a href="http://blogs.zdnet.com/microsoft/?p=1756"&gt;SharePoint 2010 is the family member most likely to be tweaked the most&lt;/a&gt;. (The rest of the Office 2010 (”Office 14″) suite sounds like it will be getting relatively minor updates.)&lt;/p&gt;  &lt;p&gt;Exactly what will be changing in SharePoint — Microsoft’s integrated suite of six back-end servers that handle search, content management, collaboration, etc. — with the next release is still somewhat murky. But at this week’s Microsoft TechEd 2009 conference in Los Angeles, a few more details have begun to trickle out, via tweets, blog posts and other channels.&lt;/p&gt;  &lt;p&gt;Here’s what I’ve seen/heard so far:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Groove (the offline/online synchronization tool Microsoft bought when it acquired Groove Networks) is being renamed and repositioned with the upcoming release as &lt;a href="http://twitter.com/dutchie027/status/1774927458"&gt;“SharePoint Workspace Manager.” &lt;/a&gt;&lt;a href="http://twitter.com/dutchie027/status/1774927458"&gt; &lt;/a&gt;Microsoft has confirmed officially the renaming and is saying that SharePoint Workspace Manager and OneNote will be part of &lt;a href="http://blogs.technet.com/office2010/"&gt;the Office 2010 ProPlus SKU&lt;/a&gt;. (Microsoft is declining to provide any other information, at this point, on its planned Office 2010 line-up.)&lt;a href="http://twitter.com/dutchie027/status/1774927458"&gt;       &lt;br /&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/sharepoint/archive/2009/05/07/announcing-sharepoint-server-2010-preliminary-system-requirements.aspx"&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/sharepoint/archive/2009/05/07/announcing-sharepoint-server-2010-preliminary-system-requirements.aspx"&gt;SharePoint Server 2010 will be 64-bit only&lt;/a&gt; and require 64-bit Windows Server 2008 or 64-bit Windows Server 2008 R2 to run. It also will require 64-bit SQL Server 2008 or 64-bit SQL Server 2005. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/sharepoint/archive/2009/05/07/announcing-sharepoint-server-2010-preliminary-system-requirements.aspx"&gt;SharePoint Server 2010 won’t support Internet Explorer 6&lt;/a&gt;. From the SharePoint Team blog: SharePoint 2010 will be “targeting standards based browsers (XHTML 1.0 compliant) including Internet Explorer 7, Internet Explorer 8 and Firefox 3.x. running on Windows Operating Systems. In addition we’re planning on &lt;a href="http://blogs.msdn.com/sharepoint/archive/2009/05/07/announcing-sharepoint-server-2010-preliminary-system-requirements.aspx"&gt;an increased level of compatibility with Firefox 3.x and Safari 3.x&lt;/a&gt; on non-Windows Operating Systems,” according to the SharePoint Team Blog. &lt;/li&gt;    &lt;li&gt;SharePoint 2010 will feature &lt;a href="http://blog.sharepointproducts.com/archive/2009/05/12/microsoft-sharepoint-2010-news-from-teched-us-2009.aspx"&gt;a “Web-enabled Ribbon control”&lt;/a&gt; and support greater use of Silverlight controls &lt;/li&gt;    &lt;li&gt;CMIS support will allow &lt;a href="http://blog.sharepointproducts.com/archive/2009/05/12/microsoft-sharepoint-2010-news-from-teched-us-2009.aspx"&gt;interoperability between SharePoint 2010 and other content management systems&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;The architecture supposedly won’t change as it did between SharePoint Server 2003 to Microsoft Office SharePoint Server 2007, thus insuring less compatibility issues and &lt;a href="http://blog.sharepointproducts.com/archive/2009/05/12/microsoft-sharepoint-2010-news-from-teched-us-2009.aspx"&gt;a smoother upgrade path (at least in theory)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;There’s a new feature, known as &lt;a href="http://blog.sharepointproducts.com/archive/2009/05.aspx"&gt;“faceted search” coming in the 2010 SharePoint release&lt;/a&gt;. No details available yet. &lt;/li&gt;    &lt;li&gt;A new version of FAST Search for SharePoint will be made available at a lower cost. Meanwhile, according to contractor and SharePoint blogger&lt;a href="http://blog.sharepointproducts.com/archive/2009/05.aspx"&gt;Lars Fastrup (whose blog entry is the source of a lot of this post&lt;/a&gt;), “the SharePoint team have scrapped their efforts to make the SharePoint search engine scale beyond 50 million documents in a single index. The argument will be to move to the FAST search engine instead.”&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Microsoft is taking sign ups for &lt;a href="http://blogs.zdnet.com/microsoft/?p=2736"&gt;the invitation-only Office 2010 Community Technology Preview (CTP) test program&lt;/a&gt;, which kicks off in July, on &lt;a href="http://www.office2010themovie.com/"&gt;the “Office the Movie” teaser site&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Anyone else have any SharePoint 2010 features they know or are hoping make it into the final product?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-6390777870007177299?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/6390777870007177299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=6390777870007177299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/6390777870007177299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/6390777870007177299'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2009/09/cat-is-out-sharepoint-2010-twenty-ten.html' title='ThE cAt is oUt: SharePoint 2010 (Twenty Ten”'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-4527808223290329230</id><published>2009-09-17T21:50:00.001+05:30</published><updated>2009-09-17T21:50:12.052+05:30</updated><title type='text'>What’s new in SharePoint 2010</title><content type='html'>&lt;p&gt;For IT managers who lived through the Microsoft Office SharePoint Server 2003 to 2007 overhaul, the thought of migrating to the software's next iteration might be daunting. But one expert says they shouldn't worry so much.&lt;/p&gt;  &lt;p&gt;SharePoint Server 2010 undoubtedly will involve some technical changes -- Microsoft has said that it will be 64-bit only and require 64-bit Windows Server and SQL Server versions, for example – but it won't come with the architectural upheaval that 2007 did, said Susan Hanley, an independent consultant and author of Essential SharePoint 2007.&lt;/p&gt;  &lt;p&gt;&amp;quot;That's great news for users who have invested a lot of time into 2007 because moving to 2010 will be focused on how to get value out of new features rather than on the IT needed to make the conversion,&amp;quot; she said.&lt;/p&gt;  &lt;p&gt;As far as new features go, Microsoft hasn't revealed much beyond the fact that SharePoint 2010 will be compatible with Firefox 3.x browsers running on Windows systems as well as its own Internet Explorer 7 and IE8 (but not IE6), and will work more closely with Firefox and Safari browsers running on Macs. This isn't to be downplayed, Hanley said.&lt;/p&gt;  &lt;p&gt;&amp;quot;The fact that end users will be able to choose their own browser and still get all the SharePoint functionality is pretty cool … and it gets rid of the immediate barrier to SharePoint use that came with having to tell users, 'Oh, by the way, you have to do something funky with your browser in order to use [the portal],'&amp;quot; Hanley said. &amp;quot;To be able to engage users in collaboration from their comfort zone provides a huge value for organizations.&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;SharePoint faceted search&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Beyond browsers, Microsoft also has acknowledged that SharePoint 2010 will include enterprise search technology gained in last year's acquisition of Fast Search &amp;amp; Transfer. To Hanley, this means support for faceted search, a new feature&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-4527808223290329230?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/4527808223290329230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=4527808223290329230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4527808223290329230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4527808223290329230'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2009/09/whats-new-in-sharepoint-2010.html' title='What’s new in SharePoint 2010'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-1705434947932062714</id><published>2009-07-09T22:21:00.001+05:30</published><updated>2009-07-09T22:23:25.161+05:30</updated><title type='text'>AIEPmora Research : Indexing</title><content type='html'>&lt;p&gt;Our &lt;strong&gt;&lt;font size="5"&gt;A&lt;/font&gt;&lt;/strong&gt;rtificial &lt;font size="5"&gt;&lt;strong&gt;I&lt;/strong&gt;&lt;/font&gt;ntelligence &lt;font size="5"&gt;&lt;strong&gt;E&lt;/strong&gt;&lt;/font&gt;xecution &lt;font size="5"&gt;&lt;strong&gt;P&lt;/strong&gt;&lt;/font&gt;latform&amp;#160; University of &lt;font size="5"&gt;&lt;strong&gt;Mora&lt;/strong&gt;&lt;/font&gt;tuwa&lt;/p&gt;  &lt;p&gt;After some hesitation I finally had some time to write about my final year project’s indexing part. Hope this post will be helpful hint to those who think of creating their own indexer. When time permits I will explain other components (Answer Generator, Answer Extractor, Knowledge Base Building, NLP Algorithms, KB Context Switching, Query Parsers etc) as well. Please note that this is my way of organizing the structure and laying the architecture. You may find some better way of doing this. Would like to see your comments on this. I was inspired by apache lucene Indexer! (&lt;a title="http://en.wikipedia.org/wiki/Lucene" href="http://en.wikipedia.org/wiki/Lucene"&gt;http://en.wikipedia.org/wiki/Lucene&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Indexing&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Information which is not searchable or retrievable has no apparent usage. Indexing is the process of maintaining some meta-data, of a large bulk of information, so that when it is necessary to search for some particular information it is possible to quickly navigate and locate the information needed. &lt;/p&gt;  &lt;p align="center"&gt;&lt;strong&gt;High level architecture of AIEPmora indexer&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_q1WCZwXDeec/SlYfipvNdjI/AAAAAAAAAVM/1ZqzzXxYEs0/s1600-h/image%5B12%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="427" alt="image" src="http://lh6.ggpht.com/_q1WCZwXDeec/SlYfklQ5UUI/AAAAAAAAAVQ/q5tNRoyjOtU/image_thumb%5B8%5D.png?imgmax=800" width="415" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="70"&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;font size="4"&gt;Index Building Process&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Document is the unit of storage inside the index. &lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://lh3.ggpht.com/_q1WCZwXDeec/SlYflqey6DI/AAAAAAAAAVU/MqJZRCVvAVI/s1600-h/image%5B17%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="401" alt="image" src="http://lh6.ggpht.com/_q1WCZwXDeec/SlYfnd3-LEI/AAAAAAAAAVY/UuG3eLXgKDk/image_thumb%5B11%5D.png?imgmax=800" width="279" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;i&gt;The structure of documents inside the Index&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt; Each index will have several documents stored. Each document will have several fields within it. The fields are name and value pairs. The name identifies the type of field. For example fields names can have identifiers like “keywords”, “body”, ”File_Path”, “Modified_Date”. The value is the content for that field. A name allows a search to be qualified. For instance you can search “keywords: Bill Clinton” so that documents with Bill Clinton in the keywords field will be returned.   &lt;p&gt;Fields allow capturing the context of the document in the way suitable for that document. For instance document of an email message will have fields like from, to, received date etc. &lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="79"&gt;         &lt;p&gt;&lt;b&gt;Action&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="559"&gt;         &lt;p&gt;&lt;b&gt;Descripton&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="79"&gt;         &lt;p&gt;&lt;b&gt;Tokenize&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="559"&gt;         &lt;p&gt;Content of the field is tokenized. For example a string like “Sri Lanka is beautify” will be tokenized into “Sri”+”Lanka”+”is”+”beautiful”. This is useful when you are storing bulk text like html body. Fields which are not tokenized are stored as they are. This is useful to store content like file paths, created dates or titles. &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="79"&gt;         &lt;p&gt;&lt;b&gt;Indexed&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="559"&gt;         &lt;p&gt;If a field is &lt;b&gt;indexed&lt;/b&gt; then its content is stored in the index file for &lt;b&gt;searching&lt;/b&gt;. Sometimes you want to have fields which do not require to be stored for &lt;b&gt;searching&lt;/b&gt;. Information like file paths or created dates are not used as search queries. So you don’t need to index them for &lt;b&gt;searching&lt;/b&gt;. Yet they may be in the document for later extraction. &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="79"&gt;         &lt;p&gt;&lt;b&gt;Stored&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="559"&gt;         &lt;p&gt;If a field is stored then its content is stored in the index. These are the fields that are returned with the search result. If you don’t want to open a file (return as a search result) and read part of it (to be returned with the search result) you should store that content as a stored field. Stored fields are stored in the index so that they can be returned with search results. For instance you can use this to store first 200 characters of a text file. Stored fields should not contain large text as this can increase index size.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Indexer can virtually index any file type (including images) as long as you have file type handlers written for different types of files. Each file type handler is responsible to convert file content into some meaning full text. For instance image file handler will analyze images and will identify the shapes in them like square, circle etc and create a document with content like square (width=10 height 20), circle radius=10 . It may even parse information like how much average red color component of the image (R=204). Another file handler (let’s say “html file handler”) will filter out html content and extract important information like title’s body and will create a document. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Wikipedia articles once filtered, is turned into AIEPmora specific xml file format which has the following organization. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&amp;lt;KBElement&amp;gt;&lt;/b&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;&amp;lt;meta&amp;gt;&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;keywords&amp;gt;&lt;/b&gt;aa,bb,cc&lt;b&gt;&amp;lt;/keywords&amp;gt;&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;title&amp;gt;&lt;/b&gt;xx,yy&lt;b&gt;&amp;lt;/title&amp;gt;&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;&amp;lt;/meta&amp;gt;&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;&amp;lt;body&amp;gt;&lt;/b&gt;pppp, qqq,rrrr&lt;b&gt;&amp;lt;/body&amp;gt;&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;b&gt;&amp;lt;/KBElement&amp;gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;    &lt;table cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="115"&gt;           &lt;p&gt;&lt;b&gt;KBElement&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="523"&gt;           &lt;p&gt;Document root, contains a Knowledge base element&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="115"&gt;           &lt;p&gt;&lt;b&gt;Meta&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="523"&gt;           &lt;p&gt;Contains meta information to be stored for later indexing purposes&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="115"&gt;           &lt;p&gt;&lt;b&gt;Keywords&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="523"&gt;           &lt;p&gt;Set of tags that reflect the content of the document. For instance an article about Bill Gates will have keywords like Microsoft Chairman, Bill Gates, Entrepreneur etc.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="115"&gt;           &lt;p&gt;&lt;b&gt;Body&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="523"&gt;           &lt;p&gt;Bulk text of the article. &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;&lt;i&gt;Table 3.2– Organization of a Knowledgebase element&lt;/i&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;&lt;i&gt;Figure 3.14– The format of a document in the knowledgebase&lt;/i&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; AIEPmora Indexer will create a document with a set of fields like keywords, body, title, file_path, created_date and form a document with a format as follows.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_q1WCZwXDeec/SlYfoTJak8I/AAAAAAAAAVc/k8J8Ucw9sY0/s1600-h/image%5B24%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="246" alt="image" src="http://lh3.ggpht.com/_q1WCZwXDeec/SlYfqT3DCII/AAAAAAAAAVg/QzZb3mK4kAU/image_thumb%5B16%5D.png?imgmax=800" width="405" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;&lt;i&gt;&lt;strong&gt;The format of a document in the knowledgebase&lt;/strong&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Once a uniform document is created it will go through a pipe line filtering process. A tokenizer will tokenize words in a document. At later stages several filters will be applied on those tokens. The most important filter is Stop word filter which prevents commonly occurring words being output from the pipeline. &lt;/p&gt;  &lt;p&gt;The following English words are considered to be stop words. These words do very little in helping to distinguish one document from the other. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;“a&amp;quot;&lt;/b&gt;&lt;b&gt;, &amp;quot;an&amp;quot;, &amp;quot;and&amp;quot;, &amp;quot;are&amp;quot;, &amp;quot;as&amp;quot;, &amp;quot;at&amp;quot;, &amp;quot;be&amp;quot;, &amp;quot;but&amp;quot;, &amp;quot;by&amp;quot;, &amp;quot;for&amp;quot;, &amp;quot;if&amp;quot;, &amp;quot;in&amp;quot;, &amp;quot;into&amp;quot;, &amp;quot;is&amp;quot;, &amp;quot;it&amp;quot;, &amp;quot;no&amp;quot;, &amp;quot;not&amp;quot;, &amp;quot;of&amp;quot;, &amp;quot;on&amp;quot;, &amp;quot;or&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;such&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;that&amp;quot;, &amp;quot;the&amp;quot;, &amp;quot;their&amp;quot;, &amp;quot;then&amp;quot;, &amp;quot;there&amp;quot;, &amp;quot;these&amp;quot;, &amp;quot;they&amp;quot;, &amp;quot;this&amp;quot;, &amp;quot;to&amp;quot;, &amp;quot;was&amp;quot;, &amp;quot;will&amp;quot;, &amp;quot;with&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Lower case filter will turn the case of all the words to lower case. If porter stemmer is applied verb stems will be taken instead of the exact words. For convergence porter stemmer is not applied during indexing.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Index Search Process&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Each document is represented as a vector in an &lt;b&gt;n&lt;/b&gt; dimensional vector space[27]. When a search query comes another search vector is created and is positioned on the vector space. Documents closer to the search query vector get a high score during ranking and are returned as the search results. For the purpose of visualization let us consider a situation where there are only 3 documents in the index. (In reality there can be N document in the index which we can’t easily visualize when N&amp;gt;3)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://lh6.ggpht.com/_q1WCZwXDeec/SlYfrTO2s2I/AAAAAAAAAVk/nG5ZvCHw4ZM/s1600-h/image%5B31%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="230" alt="image" src="http://lh3.ggpht.com/_q1WCZwXDeec/SlYfslN60NI/AAAAAAAAAVo/bTE917UGiQ4/image_thumb%5B21%5D.png?imgmax=800" width="336" border="0" /&gt;&lt;/a&gt;&lt;strong&gt; &lt;i&gt;Vector Representation of Queries&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The graph shows two search queries. One in green color while the other in red color&lt;/p&gt;  &lt;p&gt;All the vector representations of the documents are normalized, so that documents with high textual content won’t always get high scores. Similarly search query vectors are normalized so that search queries with a higher number of words are comparable with those with less. &lt;/p&gt;  &lt;p&gt;Once the vectors are created the Cosine between the search query vector and document vector is calculated. The one with the lowest Cosine gets the highest score.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_q1WCZwXDeec/SlYft3MecGI/AAAAAAAAAVs/4b8M8l90EaE/s1600-h/image%5B38%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="191" alt="image" src="http://lh5.ggpht.com/_q1WCZwXDeec/SlYfu8YP1lI/AAAAAAAAAVw/BVYqeqKacro/image_thumb%5B26%5D.png?imgmax=800" width="354" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;i&gt;&lt;strong&gt;Search Vector&lt;/strong&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://lh5.ggpht.com/_q1WCZwXDeec/SlYfwXQBKOI/AAAAAAAAAV0/welEBLU28X4/s1600-h/image%5B41%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="68" alt="image" src="http://lh5.ggpht.com/_q1WCZwXDeec/SlYfxIdWkUI/AAAAAAAAAV4/akJXm-AVU6E/image_thumb%5B27%5D.png?imgmax=800" width="184" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;For calculation of or &lt;b&gt;Euclidean distance &lt;/b&gt;is used.&lt;/p&gt;  &lt;p&gt;Clearly in the example, &lt;/p&gt;  &lt;p&gt;There for the corresponding search vector score Doc 1 being more relevant to the search than Doc 2. &lt;/p&gt;  &lt;p&gt;Although the theory works as above, in real implementation the scoring mechanism is developed to prevent noise, and to add search time and index time term boosting. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_q1WCZwXDeec/SlYfx87yNMI/AAAAAAAAAV8/xpnpFlX50jY/s1600-h/image%5B52%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="103" alt="image" src="http://lh4.ggpht.com/_q1WCZwXDeec/SlYfzMAJ19I/AAAAAAAAAWA/UgZ2JkZ5ZMM/image_thumb%5B34%5D.png?imgmax=800" width="409" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="415"&gt;         &lt;p&gt;&lt;b&gt;Function &lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="223"&gt;         &lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="415"&gt;         &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_q1WCZwXDeec/SlYfz51QfHI/AAAAAAAAAWE/WdELCkPy8XI/s1600-h/image%5B55%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="56" alt="image" src="http://lh4.ggpht.com/_q1WCZwXDeec/SlYf1LS5y8I/AAAAAAAAAWI/5DJdFK9ecqw/image_thumb%5B35%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="223"&gt;         &lt;p&gt;The value depends on how many search query terms are found in the document. If the document contains a large number of query terms the function returns a high value. On the other hand if the document contains a few query terms the function returns a low value. &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="415"&gt;         &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_q1WCZwXDeec/SlYf1rfJqhI/AAAAAAAAAWM/3DjoOnQJVbw/s1600-h/image%5B58%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="62" alt="image" src="http://lh3.ggpht.com/_q1WCZwXDeec/SlYf21NBy_I/AAAAAAAAAWQ/u97BS8VtKS4/image_thumb%5B36%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="223"&gt;         &lt;p&gt;Normalize the search query allowing all search queries to be comparable. SSW is Sum of Squared Weights. &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="415"&gt;         &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_q1WCZwXDeec/SlYf3rjTicI/AAAAAAAAAWU/98jPOml_QvQ/s1600-h/image%5B61%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="69" alt="image" src="http://lh4.ggpht.com/_q1WCZwXDeec/SlYf4Xx4iaI/AAAAAAAAAWY/QfyLl0ib6gw/image_thumb%5B37%5D.png?imgmax=800" width="146" border="0" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="223"&gt;         &lt;p&gt;Returns a real number associated with term/field/ document x. Each term/field/document is associated with a factor which can be used as a multiplication factor. This allows certain terms to be artificially boosted and give more weights during scoring.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="415"&gt;         &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_q1WCZwXDeec/SlYf5DNHsyI/AAAAAAAAAWc/-M3EqVNgujI/s1600-h/image%5B64%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="64" alt="image" src="http://lh3.ggpht.com/_q1WCZwXDeec/SlYf5_tx9OI/AAAAAAAAAWg/mbh7vThItrE/image_thumb%5B38%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="223"&gt;         &lt;p&gt;Inverse Document Frequency.&lt;/p&gt;          &lt;p&gt;This helps in giving high marks to rare terms. If only a few documents contain a rare term t, then term t gets a high value. If lots of documents contain the term t, term t gets a low value. &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="415"&gt;         &lt;br /&gt;          &lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_q1WCZwXDeec/SlYf6j1-FVI/AAAAAAAAAWk/9a3qf1PKUgg/s1600-h/image%5B67%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="54" alt="image" src="http://lh3.ggpht.com/_q1WCZwXDeec/SlYf7bqTF6I/AAAAAAAAAWo/br8M8P2NHeY/image_thumb%5B39%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="223"&gt;         &lt;p&gt;This allows document d with a high number of term t to have a high score. &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="415"&gt;         &lt;br /&gt;          &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_q1WCZwXDeec/SlYf8LBju1I/AAAAAAAAAWs/J_t259JgvYA/s1600-h/image%5B70%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="68" alt="image" src="http://lh3.ggpht.com/_q1WCZwXDeec/SlYf9D2gTMI/AAAAAAAAAWw/krGs2E5IfJ4/image_thumb%5B40%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="223"&gt;         &lt;p&gt;Index time Term Boosting. This allows different terms, fields or documents to be boosted during indexing time. &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt; &lt;b&gt;&lt;/b&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p align="center"&gt;&lt;i&gt;&lt;strong&gt;Description of Mathematical formulas used in the indexer&lt;/strong&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;Search Syntax&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The indexer support common search techniques implemented using query syntax. The query syntax can handle Boolean operations, Boosting, Proximity Search, and * Wildcard search. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Boolean search (AND, NOT, OR)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;For instance searching for &lt;/p&gt;  &lt;p&gt;Bill AND Microsoft (Will return documents containing both words Bill and Microsoft)&lt;/p&gt;  &lt;p&gt;Bill OR Microsoft (Will return documents with Bill or Microsoft)&lt;/p&gt;  &lt;p&gt;Bill NOT Microsoft( Will return documents containing Bill but not Microsoft)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Boosting&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This allows certain terms to be boosted during search. For instance if you want to boost the term Colombo by 10 times in the search “Colombo Sri Lanka” you can search with a query&lt;/p&gt;  &lt;p&gt;Colombo^10 Sri Lanka&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Proximity Search&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Allow to check whether certain words appear in some proximity to the other. &lt;/p&gt;  &lt;p&gt;“Network sustaining”~5 (Will search for documents where sustaining occurs within 5 words (eliminating stop words) after Network)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Wildcard search&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You can use the wild card * to refer any matching string.&lt;/p&gt;  &lt;p&gt;Net* (Will match documents containing the letters Net (in order) followed by any number of characters)&lt;/p&gt;  &lt;p&gt;In my later post I will try to elaborate more on mathematics behind the searching and how to implement vectors in computers. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Sriwantha Sri Aravinda&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-1705434947932062714?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/1705434947932062714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=1705434947932062714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/1705434947932062714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/1705434947932062714'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2009/07/aiepmora-research-indexing.html' title='AIEPmora Research : Indexing'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_q1WCZwXDeec/SlYfklQ5UUI/AAAAAAAAAVQ/q5tNRoyjOtU/s72-c/image_thumb%5B8%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-2956905004348983999</id><published>2009-07-09T21:35:00.001+05:30</published><updated>2009-07-09T21:35:52.935+05:30</updated><title type='text'>LINQ in Action : future today</title><content type='html'>&lt;p&gt;Okie guys it seems like most of the stuff we have learn at the uni in our theory of computing and programming language paradigms&amp;#160; now turn out to be some thing realistic. Remember the days we talked about 3rd generation languages (or 4th or 5th what ever!) where all you have to do is sit in front of a computer and just murmur keeping your arms tightly coupled! Well those geeks at Microsoft programming language research seem to have done pretty good improvement to the toolset of poor software engineers. (&lt;a href="http://research.microsoft.com/en-us/groups/sdi/"&gt;http://research.microsoft.com/en-us/groups/sdi/&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Fair recently I have read a book called LINQ in action (thanks to my buddy KelumGeeee ;-) )&amp;#160; and you can find all the theories in full action. I recommend this book 200% to all those detail seekers!&amp;#160; So at least now stop cheating in your lethargic, boring programming language class!&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://lh4.ggpht.com/_q1WCZwXDeec/SlYVW0hmluI/AAAAAAAAAVE/zIzRt2oT4D4/s1600-h/linq-action%5B3%5D.jpg"&gt;&lt;img title="linq-action" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="242" alt="linq-action" src="http://lh5.ggpht.com/_q1WCZwXDeec/SlYVX-7jO4I/AAAAAAAAAVI/U3nWZy_aGMs/linq-action_thumb%5B1%5D.jpg?imgmax=800" width="195" border="0" /&gt;&lt;/a&gt; LINQ in Action &lt;/p&gt;  &lt;p align="center"&gt;Fabrice Marguerie; Steve Eichert; Jim Wooley&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-2956905004348983999?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/2956905004348983999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=2956905004348983999' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2956905004348983999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2956905004348983999'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2009/07/linq-in-action-future-today.html' title='LINQ in Action : future today'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_q1WCZwXDeec/SlYVX-7jO4I/AAAAAAAAAVI/U3nWZy_aGMs/s72-c/linq-action_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-907150267241077380</id><published>2009-07-09T21:16:00.001+05:30</published><updated>2009-07-09T21:16:46.788+05:30</updated><title type='text'>Continuously Variable Transmission</title><content type='html'>&lt;p&gt;A &lt;b&gt;continuously variable transmission&lt;/b&gt; (&lt;b&gt;CVT&lt;/b&gt;) is a transmission which can change steplessly through an infinite number of effective gear ratios between maximum and minimum values. This contrasts with other mechanical transmissions that only allow a few different distinct gear ratios to be selected. The flexibility of a CVT allows the driving shaft to maintain a constant angular velocity over a range of output velocities. This can provide better fuel economy than other transmissions by enabling the engine to run at its most efficient revolutions per minute (RPM) for a range of vehicle speeds. I wonder whether its possible to upgrade an auto gear car with a special gear box like this! &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_q1WCZwXDeec/SlYQ4D3pXcI/AAAAAAAAAU8/jsGdlTCwCuA/s1600-h/Pivgetriebe%5B6%5D.png"&gt;&lt;img title="Pivgetriebe" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="238" alt="Pivgetriebe" src="http://lh6.ggpht.com/_q1WCZwXDeec/SlYQ5RyeQmI/AAAAAAAAAVA/TMIHsTlgBj8/Pivgetriebe_thumb%5B4%5D.png?imgmax=800" width="142" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;A belt driven CVT&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-907150267241077380?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/907150267241077380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=907150267241077380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/907150267241077380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/907150267241077380'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2009/07/continuously-variable-transmission.html' title='Continuously Variable Transmission'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_q1WCZwXDeec/SlYQ5RyeQmI/AAAAAAAAAVA/TMIHsTlgBj8/s72-c/Pivgetriebe_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-5930254948753460793</id><published>2009-04-20T13:47:00.000+05:30</published><updated>2010-02-20T13:49:33.398+05:30</updated><title type='text'>Unified Communications</title><content type='html'>&lt;p align="justify"&gt;Technology adoption occurs in stages, as many in the IT industry are aware. A particular technology becomes pervasive when the majority of the people started to use and adopt it, this usually occurs when the technology has manifested in a way that allow people to use it as part of their day to day life. In the next few years the convergence in communication will proliferate because the accessibility to the way we use these technologies is becoming more integrated with the way we do our business. Today, all government departments in developing and developed nations are equipped with a telephone and a significant majority are using email. However, we still see a divide in our phone system and email system. We also see a divide in our instant messaging system. Why couldn’t we access our emails and calendars through the telephone, why can’t we access voice mails through our email system and why can’t we be reached on the same telephone number even while we are travelling. Well actually, you can do all of these today, we call it unified communication.&lt;/p&gt;  &lt;p align="justify"&gt;Unified communications bring many benefits; one of the most interesting benefit is having the ability to detect presence or the status (busy, away, offline etc) of your fellow colleague or friend. This information can help determine the method of communication that you can use to interact. If the person is busy you may decide to send an email instead of calling or using instant message. A more interesting capability that can be delivered using this information is a tighter integration into an organization workflow. As an example, imagine in your department you have one person in charge of approving a certain type of document. Current automated workflow usually has a static list of approvers, without regard or knowledge on the availability of that individual. Imagine if your workflow can now automatically detect the user presence status (away, on annual leave etc) and then automatically re-route the document to an alternative person. This status information is constantly updated using current knowledge of the user schedule on their calendar and it can also be set based on their current work status (they may be busy processing a document). We have integrated these disparate technologies into a coherent, consistent and smart experience for the end user. This is a true example where a platform can be leveraged by the whole organization and allowing various departmental applications to leverage the capability once deployed.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blogs.msdn.com/photos/dchandra/images/6662169/original.aspx" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Another more obvious benefit of unified communications is cost savings and convenience that can be derived by organizations. If we look at the diagram, (point 1) organizations generally need to deploy a computer and a handset to each of their employees. There are costs associated in doing this, there is the telephone handset cost and there is also the maintenance cost for the back end system, costs with moving the numbers around and costs with having to employ individuals with the telecoms skills. If at the user end (point 2) this is converged on a single device (the computer), the company can combine the costs of maintenance into managing the computers and leverage greater economies of scale and can also reduce the skill set needed to maintain the equipments. Organizations that have multiple offices, especially those that are located in different countries or states will be able to realise greater cost savings on communication bill by communicating over the Internet (point 3).&lt;/p&gt;  &lt;p align="justify"&gt;If your employees travel or move around a number of times a year, the benefit of unified communication is amplified greatly. They can literally be reached anywhere they are connected to the Internet on the same telephone number while saving the company on long distance charges (point 4). Another important aspect is the ability to be reached by customers on a single number. How often have the people in your organization become unreachable because they are travelling and to make matters worse they did not receive important voice mails or were even aware they were called by the customer?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-5930254948753460793?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/5930254948753460793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=5930254948753460793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/5930254948753460793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/5930254948753460793'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2010/02/unified-communications.html' title='Unified Communications'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-2586184957760693613</id><published>2008-12-08T12:06:00.001+05:30</published><updated>2008-12-08T12:06:22.617+05:30</updated><title type='text'>How to get SPUser object from People and Group field List</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Let's say you have a SPList called testList with a column of type People and Groups. Suppose colLoginName is the column of type People and Groups&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:#2b91af'&gt;SPSite&lt;/span&gt; spSite = &lt;span style='color:blue'&gt;new&lt;/span&gt;&lt;br /&gt;					&lt;span style='color:#2b91af'&gt;SPSite&lt;/span&gt;(&lt;span style='color:#a31515'&gt;"http://testsite:56000"&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:#2b91af'&gt;SPWeb&lt;/span&gt; spWeb = spSite.OpenWeb();&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:#2b91af'&gt;SPList&lt;/span&gt; peopleListNames = spWeb.Lists[&lt;span style='color:#a31515'&gt;"testList"&lt;/span&gt;];&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;               &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:#2b91af'&gt;SPItem&lt;/span&gt; item= peopleListNames.Items[0];&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;               &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:#2b91af'&gt;SPFieldUser&lt;/span&gt; objFieldUser=item.Fields[&lt;span style='color:#a31515'&gt;"colLoginName"&lt;/span&gt;] &lt;span style='color:blue'&gt;as&lt;/span&gt;&lt;br /&gt;					&lt;span style='color:#2b91af'&gt;SPFieldUser&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:#2b91af'&gt;SPFieldUserValue&lt;/span&gt; objFieldUserValue = (&lt;span style='color:#2b91af'&gt;SPFieldUserValue&lt;/span&gt;)objFieldUser.GetFieldValue(item[&lt;span style='color:#a31515'&gt;"colLoginName"&lt;/span&gt;].ToString());&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:#2b91af'&gt;SPUser&lt;/span&gt; userInSPUserType = objFieldUserValue.User;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;Here you get user in SPUser type&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-2586184957760693613?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/2586184957760693613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=2586184957760693613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2586184957760693613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2586184957760693613'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/12/how-to-get-spuser-object-from-people.html' title='How to get SPUser object from People and Group field List'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-6072658259372559185</id><published>2008-11-28T18:15:00.001+05:30</published><updated>2008-11-28T18:15:31.572+05:30</updated><title type='text'>SSIS package fails when runs as an SQL agent job, Error bubble up problem</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Here is my problem,&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Please note that this is targeted only for advance SSIS developers&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;I have 13 SQL servers whose login information is maintained at a SQL server database. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;When the SSIS package starts I iterate through those information from a FOR EACH LOOP container and dynamically create an OLEDB connection (By binding variables to expression , connection strings etc). The name of the connection in the connection manager is &lt;strong&gt;OLEDBDynamicSource&lt;/strong&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style='text-align: center'&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;There is a Data Flow task called&lt;strong&gt; Row Count &lt;/strong&gt;inside the FOR EACH LOOP, and its task is to create that dynamic connection and count the number of rows return from a select statement and save it in a table as&lt;br /&gt;&lt;/p&gt;&lt;p&gt;[ServerName],[RowCount]&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The actual problem is more complex than this, but for the sake of explaining, this example server the purpose. &lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: center'&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;To make sure that the For each loop continues even after a server login failure on OLE DB Source (which in terms cause data flow task to fail) so that SSIS package will try to connect to next server from the next iteration I have correctly set &lt;strong&gt;PROPOGATE, MAX ERROR COUNT, ForceExecutionResult&lt;/strong&gt; at appropriate locations. (As explained in many articles on the net).&lt;br /&gt;&lt;/p&gt;&lt;p&gt; Everything works perfect when runs under VS 2008. (I mean For each loop continues even when there is a login failure to those dynamic connection)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Look at the image below, &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: center'&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Ever thing works perfect when the package is executed directly from SQL server Package folder. (I mean For each loop continues even when there is a login failure to those dynamic connection)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;For example&lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: center'&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Everything works perfect when Agent Job runs. (Note that I have correctly set all the credentials and service accounts. Job Step's "Run as" is correctly set with right credentials) &lt;br /&gt;&lt;/p&gt;&lt;p style='text-align: center'&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;But…….&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Suppose at least one login fails for those 13 SQL servers during For each loop iteration the entire Agent Job fails. The intended behavior is failing only the Data Flow task inside for each loop and continues from the next server. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='text-align: center'&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;If the logins succeed for those 13 SQL servers even the Agent Jobs runs perfectly.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Plat form:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;SQL server 2008&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt; 2008 BIDS&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;.net 3.5&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Error that appear in the job history is &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Started:  1:55:45 PM  Error: 2008-11-28 13:56:03.99     Code: 0xC0202009     Source: TranMaster Connection manager "OLEDBDynamicSource"     Description: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E4D.  An OLE DB record is available.  Source: "Microsoft OLE DB Provider for SQL Server"  Hresult: 0x80040E4D  Description: "Login failed for user 'testuser123'.".  End Error  Error: 2008-11-28 13:56:04.08     Code: 0xC020801C     Source: Data Flow Task OLE DB Dynamic Source [1]     Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  The AcquireConnection method call to the connection manager "OLEDBDynamicSource" failed with error code 0xC0202009.  There may be error messages posted before this with more information on why the AcquireConnection method call failed.  End Error  Error: 2008-11-28 13:56:04.15     Code: 0xC0047017     Source: Data Flow Task SSIS.Pipeline     Description: component "OLE DB Dynamic Source" (1) failed validation&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Please help as this is a kind of urgent project&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Sriwantha Sri Aravinda&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-6072658259372559185?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/6072658259372559185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=6072658259372559185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/6072658259372559185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/6072658259372559185'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/11/ssis-package-fails-when-runs-as-sql.html' title='SSIS package fails when runs as an SQL agent job, Error bubble up problem'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-2665453082454521087</id><published>2008-10-23T17:30:00.001+05:30</published><updated>2008-10-23T17:30:45.664+05:30</updated><title type='text'>SharePoint site template won’t display problem</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;If SharePoint site templates do not appear in create site page (due to some internal bugs) still you can create a site with the default templates. Following is a small code example how I did that. Here we are using SharePoint Object model to get the job done. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;				&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;span style='color:#2b91af'&gt;SPSite&lt;/span&gt; spSite = &lt;span style='color:blue'&gt;new&lt;/span&gt;&lt;br /&gt;					&lt;span style='color:#2b91af'&gt;SPSite&lt;/span&gt;(&lt;span style='color:#a31515'&gt;"http://bal-dt-spdev:58000/sites/myBlog"&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            spSite.AllowUnsafeUpdates = &lt;span style='color:blue'&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:blue'&gt;using&lt;/span&gt; (&lt;span style='color:#2b91af'&gt;SPWeb&lt;/span&gt; spWeb = spSite.OpenWeb())&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            {&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:#2b91af'&gt;SPWebTemplateCollection&lt;/span&gt; siteTemplates=  spSite.GetWebTemplates(&lt;span style='color:#2b91af'&gt;Convert&lt;/span&gt;.ToUInt32(&lt;span style='color:#a31515'&gt;"1033"&lt;/span&gt;));&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:#2b91af'&gt;SPWebTemplate&lt;/span&gt; blogTemplate = siteTemplates[&lt;span style='color:#a31515'&gt;"BLOG#0"&lt;/span&gt;];&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:#2b91af'&gt;SPWeb&lt;/span&gt; newWeb=spWeb.Webs.Add(&lt;span style='color:#a31515'&gt;"sriblog"&lt;/span&gt;, &lt;span style='color:#a31515'&gt;"My first Blog"&lt;/span&gt;, &lt;span style='color:#a31515'&gt;""&lt;/span&gt;, &lt;span style='color:#2b91af'&gt;Convert&lt;/span&gt;.ToUInt32(&lt;span style='color:#a31515'&gt;"1033"&lt;/span&gt;), blogTemplate, &lt;span style='color:blue'&gt;false&lt;/span&gt;, &lt;span style='color:blue'&gt;false&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;              newWeb.Close();&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;                spWeb.Update();&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            }&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            spSite.Close();&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You can then find the newly created site at &lt;span style='color:#a31515; font-family:Courier New; font-size:10pt'&gt;http://bal-dt-spdev:58000/sites/myBlog/sriblog&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Verdana; font-size:8pt'&gt;&lt;span style='color:#4c4c4c'&gt;All available site templates are as follows. I got them from &lt;a href='http://blumenthalit.net/blog/Lists/Posts/Post.aspx?List=35b60df2%2D0af2%2D4e52%2D8c6f%2Dd3a64a542f45&amp;amp;ID=45'/&gt;&lt;/span&gt;http://blumenthalit.net/blog/Lists/Posts/Post.aspx?List=35b60df2%2D0af2%2D4e52%2D8c6f%2Dd3a64a542f45&amp;amp;ID=45&lt;span style='color:#4c4c4c'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 0&lt;br/&gt;  Desc: This template is used for initializing a new site.&lt;br/&gt;  Title: Global template&lt;br/&gt;  Name: GLOBAL#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 1&lt;br/&gt;  Desc: A site for teams to quickly organize, author, and share information. It provides a document library, and lists for managing announcements, calendar items, tasks, and discussions.&lt;br/&gt;  Title: Team Site&lt;br/&gt;  Name: STS#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 1&lt;br/&gt;  Desc: A blank site for you to customize based on your requirements.&lt;br/&gt;  Title: Blank Site&lt;br/&gt;  Name: STS#1&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 1&lt;br/&gt;  Desc: A site for colleagues to work together on a document. It provides a document library for storing the primary document and supporting files, a tasks list for assigning to-do items, and a links list for resources related to the document.&lt;br/&gt;  Title: Document Workspace&lt;br/&gt;  Name: STS#2&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 2&lt;br/&gt;  Desc: A site to plan, organize, and capture the results of a meeting. It provides lists for managing the agenda, meeting attendees, and documents.&lt;br/&gt;  Title: Basic Meeting Workspace&lt;br/&gt;  Name: MPS#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 2&lt;br/&gt;  Desc: A blank meeting site for you to customize based on your requirements.&lt;br/&gt;  Title: Blank Meeting Workspace&lt;br/&gt;  Name: MPS#1&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 2&lt;br/&gt;  Desc: A site for meetings that track status or make decisions. It provides lists for creating tasks, storing documents, and recording decisions.&lt;br/&gt;  Title: Decision Meeting Workspace&lt;br/&gt;  Name: MPS#2&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 2&lt;br/&gt;  Desc: A site to plan social occasions. It provides lists for tracking attendees, providing directions, and storing pictures of the event.&lt;br/&gt;  Title: Social Meeting Workspace&lt;br/&gt;  Name: MPS#3&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 2&lt;br/&gt;  Desc: A site to plan, organize, and capture the results of a meeting. It provides lists for managing the agenda and meeting attendees in addition to two blank pages for you to customize based on your requirements.&lt;br/&gt;  Title: Multipage Meeting Workspace&lt;br/&gt;  Name: MPS#4&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 3&lt;br/&gt;  Desc: A site for central administration. It provides Web pages and links for application and operations management.&lt;br/&gt;  Title: Central Admin Site&lt;br/&gt;  Name: CENTRALADMIN#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 4&lt;br/&gt;  Desc: A site for a community to brainstorm and share ideas. It provides Web pages that can be quickly edited to record information and then linked together through keywords&lt;br/&gt;  Title: Wiki Site&lt;br/&gt;  Name: WIKI#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 9&lt;br/&gt;  Desc: A site for a person or team to post ideas, observations, and expertise that site visitors can comment on.&lt;br/&gt;  Title: Blog&lt;br/&gt;  Name: BLOG#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 7&lt;br/&gt;  Desc: A site to centrally manage documents in your enterprise.&lt;br/&gt;  Title: Document Center&lt;br/&gt;  Name: BDR#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 14483&lt;br/&gt;  Desc: This template creates a site designed for records management. Records managers can configure the routing table to direct incoming files to specific locations. The site prevents records from being modified after they are added to the repository.&lt;br/&gt;  Title: Records Center&lt;br/&gt;  Name: OFFILE#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 14483&lt;br/&gt;  Desc: This template creates a site designed for records management. Records managers can configure the routing table to direct incoming files to specific locations. The site prevents records from being modified after they are added to the repository.&lt;br/&gt;  Title: Records Center&lt;br/&gt;  Name: OFFILE#1&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 40&lt;br/&gt;  Desc: This template creates a site for administering shared services&lt;br/&gt;  Title: Shared Services Administration Site&lt;br/&gt;  Name: OSRV#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 20&lt;br/&gt;  Desc: This template is obsolete.&lt;br/&gt;  Title: SharePoint Portal Server Site&lt;br/&gt;  Name: SPS#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 21&lt;br/&gt;  Desc: This web template defines a Personal Space for an individual participating on a SharePoint Portal.&lt;br/&gt;  Title: SharePoint Portal Server Personal Space&lt;br/&gt;  Name: SPSPERS#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 22&lt;br/&gt;  Desc: A site for delivering personalized views, data, and navigation from this site collection into My Site. It includes personalization specific Web Parts and navigation that is optimized for My Site sites.&lt;br/&gt;  Title: Personalization Site&lt;br/&gt;  Name: SPSMSITE#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 30&lt;br/&gt;  Desc: This template is obsolete.&lt;br/&gt;  Title: Contents area Template&lt;br/&gt;  Name: SPSTOC#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 31&lt;br/&gt;  Desc: This template is obsolete.&lt;br/&gt;  Title: Topic area template&lt;br/&gt;  Name: SPSTOPIC#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 32&lt;br/&gt;  Desc: This template is obsolete.&lt;br/&gt;  Title: News Site&lt;br/&gt;  Name: SPSNEWS#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 39&lt;br/&gt;  Desc: A blank site for expanding your Web site and quickly publishing Web pages. Contributors can work on draft versions of pages and publish them to make them visible to readers. The site includes  document and image libraries for storing Web publishing assets.&lt;br/&gt;  Title: Publishing Site&lt;br/&gt;  Name: CMSPUBLISHING#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 53&lt;br/&gt;  Desc: This template creates a site for publishing Web pages on a schedule, with workflow features enabled.  By default, only Publishing subsites can be created under this site. A Document and Picture Library are included for storing Web publishing assets.&lt;br/&gt;  Title: Publishing Site&lt;br/&gt;  Name: BLANKINTERNET#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 53&lt;br/&gt;  Desc: This template creates the Press Releases subsite for an Internet-facing corporate presence website.&lt;br/&gt;  Title: Press Releases Site&lt;br/&gt;  Name: BLANKINTERNET#1&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 53&lt;br/&gt;  Desc: A site for publishing Web pages on a schedule by using approval workflows. It includes document and image libraries for storing Web publishing assets. By default, only sites with this template can be created under this site.&lt;br/&gt;  Title: Publishing Site with Workflow&lt;br/&gt;  Name: BLANKINTERNET#2&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 33&lt;br/&gt;  Desc: A site for publishing news articles and links to news articles. It includes a sample news page and an archive for storing older news items.&lt;br/&gt;  Title: News Site&lt;br/&gt;  Name: SPSNHOME#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 34&lt;br/&gt;  Desc: A site for listing and categorizing important sites in your organization. It includes different views for categorized sites, top sites, and a site map.&lt;br/&gt;  Title: Site Directory&lt;br/&gt;  Name: SPSSITES#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 36&lt;br/&gt;  Desc: This template is obsolete.&lt;br/&gt;  Title: Community area template&lt;br/&gt;  Name: SPSCOMMU#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 38&lt;br/&gt;  Desc: A site for creating, managing, and delivering Web pages, dashboards, and key performance indicators that communicate metrics, goals, and business intelligence information.&lt;br/&gt;  Title: Report Center&lt;br/&gt;  Name: SPSREPORTCENTER#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 47&lt;br/&gt;  Desc: A starter site hierarchy for an intranet divisional portal. It includes a home page, a News site, a Site Directory, a Document Center, and a Search Center with Tabs. Typically, this site has nearly as many contributors as  readers and is used to host team sites.&lt;br/&gt;  Title: Collaboration Portal&lt;br/&gt;  Name: SPSPORTAL#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 50&lt;br/&gt;  Desc: A site for delivering the search experience. The welcome page includes a search box with two tabs: one for general searches, and another for searches for information about people. You can add and customize tabs to focus on other search scopes or result types.&lt;br/&gt;  Title: Search Center with Tabs&lt;br/&gt;  Name: SRCHCEN#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 51&lt;br/&gt;  Desc: This template creates a profile site that includes page layout with zones&lt;br/&gt;  Title: Profiles&lt;br/&gt;  Name: PROFILES#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 52&lt;br/&gt;  Desc: A starter site hierarchy for an Internet-facing site or a large intranet portal. This site can be customized easily with distinctive branding. It includes a home page, a sample press releases subsite, a Search Center, and a login page. Typically, this site has many more readers than contributors, and it is used to publish Web pages with approval workflows.&lt;br/&gt;  Title: Publishing Portal&lt;br/&gt;  Name: BLANKINTERNETCONTAINER#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 54&lt;br/&gt;  Desc: A site used for hosting personal sites (My Sites) and the public People Profile page. This template needs to be provisioned only once per Shared Service Provider, please consult the documentation for details.&lt;br/&gt;  Title: My Site Host&lt;br/&gt;  Name: SPSMSITEHOST#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 90&lt;br/&gt;  Desc: A site for delivering the search experience. The site includes pages for search results and advanced searches.&lt;br/&gt;  Title: Search Center&lt;br/&gt;  Name: SRCHCENTERLITE#0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#4c4c4c; font-family:Verdana; font-size:8pt'&gt;Template ID = 90&lt;br/&gt;  Desc: The Search Center template creates pages dedicated to search. The main welcome page features a simple search box in the center of the page. The template includes a search results and an advanced search page. This Search Center will not appear in navigation.&lt;br/&gt;  Title: Search Center&lt;br/&gt;  Name: SRCHCENTERLITE#1&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-2665453082454521087?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/2665453082454521087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=2665453082454521087' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2665453082454521087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2665453082454521087'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/10/sharepoint-site-template-wont-display.html' title='SharePoint site template won’t display problem'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-5594908702652427588</id><published>2008-10-21T15:43:00.001+05:30</published><updated>2008-10-21T15:43:21.875+05:30</updated><title type='text'>How to access  Active Directory Information from Sharepoint</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;We all seems to have forgotten that there are more dlls in the folder C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Other than Microsoft.SharePoint. One such dll is Microsoft.Office.Server.dll. This is the one you use to access profile information when you get mind bothering security issues with AD access through SharePoint. If we are in a security critical system we can't allow non domain account to access AD. One work around to access AD attributes like Company name, Title, Phone etc is through profile manager. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Example &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;span style='color:blue'&gt;using&lt;/span&gt; Microsoft.SharePoint;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;span style='color:blue'&gt;using&lt;/span&gt; Microsoft.Office.Server.UserProfiles;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;span style='color:blue'&gt;using&lt;/span&gt; Microsoft.Office.Server;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:teal'&gt;SPSecurity&lt;/span&gt;.RunWithElevatedPrivileges(&lt;span style='color:blue'&gt;delegate&lt;/span&gt;() {       &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:teal'&gt;SPSite&lt;/span&gt; site = &lt;span style='color:blue'&gt;new&lt;/span&gt;&lt;br /&gt;					&lt;span style='color:teal'&gt;SPSite&lt;/span&gt;(&lt;span style='color:maroon'&gt;"http://bal-dt-spdev:56000"&lt;/span&gt;);    &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:teal'&gt;SPWeb&lt;/span&gt; web = site.OpenWeb();     &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:teal'&gt;UserProfileManager&lt;/span&gt; profileManager = &lt;span style='color:blue'&gt;new&lt;/span&gt;&lt;br /&gt;					&lt;span style='color:teal'&gt;UserProfileManager&lt;/span&gt;(&lt;span style='color:teal'&gt;ServerContext&lt;/span&gt;.GetContext(site));     &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:teal'&gt;UserProfile&lt;/span&gt; currentUserProfile = profileManager.GetUserProfile(&lt;span style='color:maroon'&gt;"MyDomain\\user1"&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:blue'&gt;string&lt;/span&gt; Name = currentUserProfile[&lt;span style='color:maroon'&gt;"PreferredName"&lt;/span&gt;].Value.ToString();&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:blue'&gt;string&lt;/span&gt; Company = currentUserProfile[&lt;span style='color:maroon'&gt;"Office"&lt;/span&gt;].Value.ToString();&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;               });&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Example &lt;br /&gt;&lt;/p&gt;&lt;p&gt;With this you will not face IIS impersonate errors like &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;System.Runtime.InteropServices.COMException (0x80072020): An operations error occurred. &lt;br/&gt;at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Please read following article to understand IIS authorization mechanism and to find a method to let SharePoint webparts, infopath forms to communicate with Active Directory using System.DirectoryServices &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;a href='http://support.microsoft.com/kb/264921/'&gt;http://support.microsoft.com/kb/264921/&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;and &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;a href='http://support.microsoft.com/default.aspx?scid=kb;en-us;329986'&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;329986&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Have fun,&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Sriwantha Sri Aravinda&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-5594908702652427588?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/5594908702652427588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=5594908702652427588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/5594908702652427588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/5594908702652427588'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/10/how-to-access-active-directory.html' title='How to access  Active Directory Information from Sharepoint'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-6757673667968527167</id><published>2008-10-13T10:19:00.001+05:30</published><updated>2008-10-13T10:19:35.826+05:30</updated><title type='text'>SharePoint RSS WebPart Configuration</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;strong&gt;&lt;span style='color:#4f81bd; font-size:12pt'&gt;RSS Viewer web part authentication requirements&lt;/span&gt;&lt;span style='color:#1f497d; font-size:18pt'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#1f497d; font-size:12pt'&gt;In B2, configuring the RSS Viewer web part to display an RSS feed from a MOSS site nearly always worked without difficulty.  In B2TR, you may encounter a stubborn error "The RSS webpart does not support authenticated feeds" when trying to display an RSS feed from a MOSS site.  The authentication behavior has changed, to match the original design that was not implemented properly in B2.  RSS Viewer will now only work with Authenticated feeds (default for MOSS) when the MOSS server is setup with Kerberos authentication.  Technical details: In B2, the  machine account was used to access the feed; since this account is part of "All Authenticated Users" most feeds just worked.  However, use of the machine account was considered to pose a security vulnerability.  In B2TR, this was fixed to connect to feeds as anonymous, then delegation support was explicitly added by having ASP.Net negotiate the authentication mechanism.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style='color:#4f81bd; font-size:12pt'&gt;Changing to Kerberos authentication&lt;/span&gt;&lt;span style='color:#1f497d; font-size:18pt'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='color:#1f497d'&gt;&lt;span style='font-size:12pt'&gt;1.&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;       &lt;/span&gt;&lt;span style='font-size:12pt'&gt;On the Central Administration page, click Application Management.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='color:#1f497d'&gt;&lt;span style='font-size:12pt'&gt;2.&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;       &lt;/span&gt;&lt;span style='font-size:12pt'&gt;Under the Application Security section, click Authentication Providers.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='color:#1f497d'&gt;&lt;span style='font-size:12pt'&gt;3.&lt;/span&gt;&lt;span style='font-family:Times New Roman; font-size:7pt'&gt;       &lt;/span&gt;&lt;span style='font-size:12pt'&gt;Click the Default provider, and change Integrated Widows authentication to Negotiate (Kerberos)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='color:#1f497d; font-family:Times New Roman; font-size:12pt'&gt;If SharePoint and the databases it uses are hosted on the same server, this is the only change required to enable RSS Viewer functionality to RSS feeds hosted by SharePoint.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:12pt'&gt;&lt;span style='color:#1f497d'&gt;If the SharePoint databases are hosted by a different server than is hosting SharePoint, further configuration is required to enable Kerberos delegation.  This is the recommended scenario for farm deployments.  To enable Kerberos delegation for a SharePoint web application, the account used for its application pool identity must be configured as "trusted for delegation" and have an SPN registered (see below).  If using Network Services for the AppPool identity, then this applies to the machine account.  Otherwise, it applies to the domain account configured for the AppPool identity.  The machine account of the database server must also have an SPN registered, although it is not necessary for it to be trusted for delegation.  The end-user accounts require neither an SPN nor "trusted for delegation."&lt;/span&gt;&lt;span style='font-family:Times New Roman'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='color:#1f497d; font-family:Times New Roman; font-size:12pt'&gt;In an AD environment whose Domain Functional Level is set to Windows Server 2003, this level of trust can be focused using Constrained Delegation.   This ensures that the delegation trust is only permitted between the SharePoint WFE servers and the correct database server.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-6757673667968527167?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/6757673667968527167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=6757673667968527167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/6757673667968527167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/6757673667968527167'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/10/sharepoint-rss-webpart-configuration.html' title='SharePoint RSS WebPart Configuration'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-5082246942547917602</id><published>2008-09-30T11:30:00.001+05:30</published><updated>2008-09-30T11:32:28.925+05:30</updated><title type='text'>PEO TV by SLT</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;PEO TV the IPTV pay television platform by SLT was officially launched on Sep 22nd 2008 at the Cinnamon Grand.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;At present package and installation rates are not yet available and according to sources the information should be available by the end of this month. PEO TV is operated by SLT Visioncom a fully owned subsidiary of Sri Lanka Telecom.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;At present the following channels are available on PEO TV&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Rupavahini&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Channel Eye&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ITN&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Derana TV&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Max TV&lt;br /&gt;&lt;/li&gt;&lt;li&gt;NDTV Good Times&lt;br /&gt;&lt;/li&gt;&lt;li&gt;CNN International&lt;br /&gt;&lt;/li&gt;&lt;li&gt;BBC World&lt;br /&gt;&lt;/li&gt;&lt;li&gt;NDTV 24X7&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Al Jazeera&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ujala&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Eurosport&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Eurosport News&lt;br /&gt;&lt;/li&gt;&lt;li&gt;VH1&lt;br /&gt;&lt;/li&gt;&lt;li&gt;MTV&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Luxe TV&lt;br /&gt;&lt;/li&gt;&lt;li&gt;B4U Movies&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fashion TV&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Trace TV&lt;br /&gt;&lt;/li&gt;&lt;li&gt;C Music TV&lt;br /&gt;&lt;/li&gt;&lt;li&gt;STC&lt;br /&gt;&lt;/li&gt;&lt;li&gt;B4U Music&lt;br /&gt;&lt;/li&gt;&lt;li&gt;HBO&lt;br /&gt;&lt;/li&gt;&lt;li&gt;HBO Signature&lt;br /&gt;&lt;/li&gt;&lt;li&gt;HBO Hits&lt;br /&gt;&lt;/li&gt;&lt;li&gt;HBO Family&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Star Movies&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Star One&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Toon Disney&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Disney Channel&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Travel Channel&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Wedding TV&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Bollywood&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Wine TV&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Star Vijay&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ten Sports&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;More channels are slated to be on the platform in the near future.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-5082246942547917602?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/5082246942547917602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=5082246942547917602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/5082246942547917602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/5082246942547917602'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/09/peo-tv-by-slt.html' title='PEO TV by SLT'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-3329880059279422544</id><published>2008-09-23T12:45:00.001+05:30</published><updated>2008-09-23T12:47:24.447+05:30</updated><title type='text'>Create force post back on browser back button Click</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;There are some situations where you want the page to be posted back when the user clicks the browser back button. In most cases the content of the page is retrieved from the browser cache and no post back happen to the server. This can have annoying result if you are using two or multiple dropdown menus with selected index changed event on action. ( For instance when you have two DropDownList used to navigate to different sites you may find that both DropDownList menus fire their events). To over come this problem and to force IE to post back on browser back button click you can either add &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:red; font-size:10pt'&gt;&lt;strong&gt;&lt;span style='font-family:Verdana'&gt;Response.Cache.SetCacheability(HttpCacheability.NoCache)&lt;/span&gt;&lt;br /&gt;					&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;you can either add If it is a WebPart in SharePoint you can find the this.Page.Response.Cache.SetCacheablity &lt;br /&gt;&lt;/p&gt;&lt;p&gt;You can also add following meta tag&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:red; font-family:Verdana; font-size:10pt'&gt;&lt;strong&gt;&amp;lt;meta http-equiv="expires" content="-1"&amp;gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:black; font-family:Arial; font-size:10pt'&gt;All of above won't guarantee a full post back. Depends on browser caching options. &lt;/span&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;Good Luck&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Sriwantha Sri Aravinda&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-3329880059279422544?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/3329880059279422544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=3329880059279422544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/3329880059279422544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/3329880059279422544'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/09/create-force-post-back-on-browser-back.html' title='Create force post back on browser back button Click'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-6556617530230174780</id><published>2008-09-23T11:35:00.001+05:30</published><updated>2008-09-23T11:42:09.349+05:30</updated><title type='text'>Easily disable view state of SharePoint controls</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;The main problem with SharePoint field controls is that they actually rely on the ViewState during editing and so you cannot just disable it...they will stop working when you edit the page. However we can use the fact that whether ViewState is enabled or not is inherited from the controls parent. Using this fact we can selectively disable the ViewState when the page is just being displayed.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;By creating a container control we can control the ViewState of the controls it contains...&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:red'&gt;public class ViewStatePanel : Control&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:red'&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='color:red'&gt;protected override void OnInit(EventArgs e)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='color:red'&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 72pt'&gt;&lt;span style='color:red'&gt;if (SPContext.Current.FormContext.FormMode == Microsoft.SharePoint.WebControls.SPControlMode.Display)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 72pt'&gt;&lt;span style='color:red'&gt;EnableViewState = false;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 72pt'&gt;&lt;span style='color:red'&gt;base.OnInit(e);&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='color:red'&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='color:red'&gt;protected override void Render(HtmlTextWriter writer)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='color:red'&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 72pt'&gt;&lt;span style='color:red'&gt;RenderChildren(writer);&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 36pt'&gt;&lt;span style='color:red'&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:red'&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This control can then be used to 'wrap' the offending SharePoint field controls and control their ViewState...&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-6556617530230174780?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/6556617530230174780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=6556617530230174780' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/6556617530230174780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/6556617530230174780'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/09/easily-disable-view-state-of-sharepoint.html' title='Easily disable view state of SharePoint controls'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-2108967969860478655</id><published>2008-09-19T11:51:00.001+05:30</published><updated>2008-09-19T11:55:01.334+05:30</updated><title type='text'>Content Query Web Part CQW</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-size:9pt'&gt;&lt;span style='font-family:Arial'&gt;When customizing content query web part in sharepoint you may get into a situation where you want to add custom fields. If you download the webpart and open it with a text editor you will notice a property called CommonViewFields this is what you are going to change to add your custom fields. When adding more than one field spate the them with a semicolon. &lt;/span&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:8pt'&gt;&lt;span style='color:#76923c; font-family:Arial'&gt;&amp;lt;property name="CommonViewFields" type="string"&amp;gt;InternalName, DateField&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:8pt'&gt;&lt;span style='color:#76923c; font-family:Arial'&gt;&amp;lt;property name="CommonViewFields" type="string"&amp;gt;InternalName1, DateField1; InternalName2, DateField2&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:8pt'&gt;&lt;span style='font-family:Arial'&gt;Eg. &lt;/span&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#76923c; font-family:Arial; font-size:8pt'&gt;&amp;lt;property name="CommonViewFields" type="string"&amp;gt;Body, Text; Created, DateTime&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br/&gt; &lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;table border='0' style='border-collapse:collapse'&gt;&lt;colgroup&gt;&lt;col style='width:154px'/&gt;&lt;col style='width:484px'/&gt;&lt;/colgroup&gt;&lt;tbody valign='top'&gt;&lt;tr style='background: #4f81bd'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  solid #7ba0cd 1.0pt; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='color:white; font-family:Arial'&gt;Date &lt;strong&gt;Field Name&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  solid #7ba0cd 1.0pt; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='color:white; font-family:Arial'&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;&lt;a name='membersToggle'/&gt;AllDayEvent&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Specifies an all day event. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Attachments&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains attachments. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Boolean&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains Boolean values that are stored in the database as &lt;strong&gt;1&lt;/strong&gt; or &lt;strong&gt;0&lt;/strong&gt;. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Calculated&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains calculated values. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Choice&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Specifies a predetermined set of values that can be used to enter data into the field. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Computed&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Specifies an abstract field type that depends on other fields for its content and definition. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;ContentTypeId&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains a content type ID.  &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Counter&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains an integer used for internal ID fields. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;CrossProjectLink&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Specifies a link between projects in a Meetings Workspace site. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Currency&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains currency values formatted based on a specific locale. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;DateTime&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains date and time values. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Error&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains errors. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;File&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains files. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;GridChoice&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Specifies a Choice field for a data sheet. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Guid&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains GUIDs. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Integer&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains positive or negative integer values. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Invalid&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Not used. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Lookup&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains references to values in other lists. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;MaxItems&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains the maximum number of items. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;ModStat&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Specifies Content Approval status. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;MultiChoice&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains multiple values per list item. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Specifies a field that can contain multiple lines of text. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains floating point numbers. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;PageSeparator&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Inserts a page break in a survey list. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Recurrence&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Specifies a field used in calendars for recurring events and, like computed fields, an abstract field type that depends on other fields for its content and definition. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Text&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains a single line of text. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;ThreadIndex&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains the ID that indicates the relative position of a message within a conversation thread. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;Threading&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Specifies a field that is used in the creation and display of threaded Web discussions. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;URL&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Contains hyperlinks. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;User&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Specifies users of a SharePoint site. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style='background: #d3dfee'&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;WorkflowEventType&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Specifies a workflow event type. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  solid #7ba0cd 1.0pt; border-bottom:  solid #7ba0cd 1.0pt; border-right:  none' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;&lt;strong&gt;WorkflowStatus&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 1px; padding-left: 7px; padding-bottom: 1px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #7ba0cd 1.0pt; border-right:  solid #7ba0cd 1.0pt' vAlign='middle'&gt;&lt;p&gt;&lt;span style='font-family:Arial'&gt;Specifies workflow status. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-2108967969860478655?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/2108967969860478655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=2108967969860478655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2108967969860478655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/2108967969860478655'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/09/content-query-web-part-cqw.html' title='Content Query Web Part CQW'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-4318290841984055795</id><published>2008-09-18T15:13:00.001+05:30</published><updated>2008-09-18T15:13:59.893+05:30</updated><title type='text'>Office Live</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Microsoft has opened their SharePoint collaboration environment for free. (Much feature LESS version of their intranet version of SharePoint) .  You can try this at&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href='http://smallbusiness.officelive.com/'&gt;http://smallbusiness.officelive.com/&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;This is thousand times better than Google office apps and support all Microsoft office file formats. The commercial version which starts at a monthly subscription rate of around 30 $ brings your desktop to your browser. You can directly link all your office 2007 application and sync with the website. (Blogging, Wikies, InfoPath, Excel, managing images all are synchronized with desktop applications and file formats)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Note that Microsoft SharePoint has being there for about 5 years now (earlier as corporate intranet portals WSS and MOSS) and now going public with some of its features. It has highest market share as corporate collaboration apps with oracle collaboration suit coming as 2&lt;sup&gt;nd&lt;/sup&gt;.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;God save Google.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-4318290841984055795?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/4318290841984055795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=4318290841984055795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4318290841984055795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/4318290841984055795'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/09/office-live.html' title='Office Live'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-419442202124200106</id><published>2008-09-18T11:57:00.001+05:30</published><updated>2008-09-18T11:57:54.987+05:30</updated><title type='text'>Sharepoint Error Access is denied.	</title><content type='html'>&lt;span xmlns=''&gt;&lt;p style='margin-left: 18pt'&gt;&lt;span style='color:red; font-size:12pt'&gt;(Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Restart the appool&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If 1 does not work restart the IIS&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If 2 does not work restart the Visual studio&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;If 3 does not work restart the machine &lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Would do the work&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-419442202124200106?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/419442202124200106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=419442202124200106' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/419442202124200106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/419442202124200106'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/09/sharepoint-error-access-is-denied.html' title='Sharepoint Error Access is denied.&#x9;'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-313901802742641056</id><published>2008-09-16T12:40:00.001+05:30</published><updated>2008-09-16T12:40:24.096+05:30</updated><title type='text'>Error creating Custom Editor Part Zone (Sharepoint WebPart)</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;If you get a nice user friendly error message ( the default error page) when try to configure your custom WebPart using &lt;br /&gt;&lt;/p&gt;&lt;p&gt;"Modify Shared WebPart" first thing you should do is to enable full stack trace to figure out what is actually going wrong inside your IIS web server. To do that go to your IIS wss directory and navigate to the virtual director of your SharePoint website. (Usually it has a folder with the port number as the name) . In the web.config file add following entries.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;system.web&amp;gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;           ...&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;          &amp;lt;customErrors mode="On" /&amp;gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;          ...&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;/system.web&amp;gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:10pt'&gt;And &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;SharePoint&amp;gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;          ...&lt;br/&gt;         &amp;lt;SafeMode MaxControls="50" CallStack="&lt;span style='background-color:yellow'&gt;false"&lt;/span&gt; /&amp;gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;          ...&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;/SharePoint&amp;gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Once done, you will get full stack trace of the error. In my case the error was due to not having an ID for my EditorPart.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To overcome this problem I added a small ID when EditorPart is created.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;…&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;span style='color:blue'&gt;public&lt;/span&gt;&lt;br /&gt;					&lt;span style='color:blue'&gt;class&lt;/span&gt;&lt;br /&gt;					&lt;span style='color:#2b91af'&gt;CustomEditorPart&lt;/span&gt; : &lt;span style='color:#2b91af'&gt;EditorPart&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;    {&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:blue'&gt;public&lt;/span&gt; CustomEditorPart()&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;        {&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:blue'&gt;this&lt;/span&gt;.Title = &lt;span style='color:#a31515'&gt;"Text Editor Part"&lt;/span&gt; ;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;br /&gt;					&lt;span style='color:blue'&gt;this&lt;/span&gt;.ID = System.&lt;span style='color:#2b91af'&gt;Guid&lt;/span&gt;.NewGuid().ToString();&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;        }&lt;/span&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman'&gt;&lt;strong&gt;….&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:10pt'&gt;&lt;br /&gt;				&lt;/span&gt; &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-313901802742641056?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/313901802742641056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=313901802742641056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/313901802742641056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/313901802742641056'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/09/error-creating-custom-editor-part-zone.html' title='Error creating Custom Editor Part Zone (Sharepoint WebPart)'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-8974210808471772023</id><published>2008-09-12T12:13:00.001+05:30</published><updated>2008-09-12T12:14:01.604+05:30</updated><title type='text'>Installing return of smart part (Guide lines)</title><content type='html'>&lt;span xmlns=''&gt;&lt;ol&gt;&lt;li&gt;Download and install ASPNETAJAXVS2008.msi (Visual Studio 2008 template for AJAX). This will make sure you get all the dlls and other stuff installed in your developer environment to create AJAX enable web sites. (Can be found at &lt;a href='http://www.asp.net/ajax/downloads/'&gt;http://www.asp.net/ajax/downloads/&lt;/a&gt;) &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Download and install AjaxControlExtender.vsi , yet another goody required to run AJAX. (Can be found at &lt;a href='http://www.asp.net/ajax/downloads/'&gt;http://www.asp.net/ajax/downloads/&lt;/a&gt;) &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Download and install Return of SmartPart from &lt;a href='http://www.codeplex.com/smartpart/Release/ProjectReleases.aspx'&gt;http://www.codeplex.com/smartpart/Release/ProjectReleases.aspx&lt;/a&gt;&lt;br /&gt;				&lt;/li&gt;&lt;li&gt;Go and activate &lt;span style='color:black; font-size:12pt'&gt;&lt;strong&gt;Return of the SmartPart v1.3&lt;/strong&gt;&lt;/span&gt; feature from site collection feature. Once this is done you will find smart part web part appear on your web part section&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Copy the custom user control to UserControl directory (if it is not there create a one) on the virtual directory for the website ( usually inside wss-&amp;gt;portnumber-&amp;gt;UserControl)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add Return of smart part web part, modify it, and in the control selection drop down which appear on top of the page select the control you have added.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Now you have the comfort of Visual studio to develop asmx controls and host them in sharepoint.&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-8974210808471772023?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/8974210808471772023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=8974210808471772023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/8974210808471772023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/8974210808471772023'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/09/installing-return-of-smart-part-guide.html' title='Installing return of smart part (Guide lines)'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-7822400548375558813</id><published>2008-09-11T16:18:00.001+05:30</published><updated>2008-09-11T16:18:33.603+05:30</updated><title type='text'>Activating SharePoint Publishing Infrastructure</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;I recently had to activate the publishing infrastucture on MOSS. This had always worked before, but now I was getting 'Access Denied' when activating the 'Server Publishing Infrastructure'.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The reason behind this error is that the AppPool account has limited permissions.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To solve the 'Access Denied' problem you need to elevate the permissions of the AppPool of the web application on which you are trying to activate the Publishing Infrastructure feature.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;One way to achieve this is to temporarily change the AppPool of the web application…&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. Open IIS Admin.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. Location the Web Site for your WSS web application.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;3. Goto to the properties and select the 'Home Directory' tab.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;4. Change the AppPool to be the same as Central Administration.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;5. IISRESET (OR restart the Only that app pool)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;6. Activate the Publishing Infrastructure feature on your site.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;7. Change to AppPool back to the original.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;8. IISRESET (OR restart the Only that app pool)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This should allow you to enable the feature and use the publishing features within MOSS.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-7822400548375558813?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/7822400548375558813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=7822400548375558813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/7822400548375558813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/7822400548375558813'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/09/activating-sharepoint-publishing.html' title='Activating SharePoint Publishing Infrastructure'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-9173775493910657519</id><published>2008-07-20T11:54:00.001+05:30</published><updated>2008-07-20T11:54:16.513+05:30</updated><title type='text'>Meals</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Since I started working at Brandix dining experience has turn out to be a quite an amusing thing. Trying out all the type of dishes available around Colombo; once created a small oral wound which took about 1 week to cure. Thanks to an Oral Paste I found with the help of a pharmacist it's now no longer there. I guess best of all goes to a Japanese cousin called Kattarat. (Hope I spelled it correctly) The Meso soup you get with the dish is sure to spice up your spirit.  In fact I only wanted to try the soup, but ended up getting the whole meal. You can try only the soup for about 140 Rs at Crescat. After going through all the places available I was surprised why it is so hard to find natural Sri Lankan cousin without Ajinamoto. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;   &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-9173775493910657519?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/9173775493910657519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=9173775493910657519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/9173775493910657519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/9173775493910657519'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/07/meals.html' title='Meals'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-5380578247545562478</id><published>2008-07-06T17:46:00.002+05:30</published><updated>2008-07-20T11:20:31.535+05:30</updated><title type='text'>Microsoft Rules the world</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;I was bit confused or rather upset with the mails that have being exchanging in our batch mail about Google war against Microsoft.One reason why most developer communities are unaware of Microsoft technologies is that they have never being exposed to real office environments.  Nectar to a geek might turn out to be a whole bunch of crap to an accountant who just wants to get the simple calculations done.  On the other hand there is a huge lack of knowledge by general office community on open source products readily available for free.  Believe me it is going to take a light year until general public get to know the open source way of doing things.  &lt;br /&gt;&lt;/p&gt;&lt;p/&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-5380578247545562478?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/5380578247545562478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=5380578247545562478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/5380578247545562478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/5380578247545562478'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2008/07/microsoft-rules-world.html' title='Microsoft Rules the world'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-6047469595470739263</id><published>2007-10-26T18:36:00.000+05:30</published><updated>2007-10-26T18:41:09.069+05:30</updated><title type='text'>I don't like the titile</title><content type='html'>After days of ice breaking we started working on our final year project. I still don’t like the name AIEPmora (Artificial Intelligence Execution Platform) as the platform name. It’s like something related to AI. Wonder whether the judging panel will get confused about the name and put blame on us for not implementing what we have promised. OK that’s enough for now got to implement the stemmer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-6047469595470739263?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/6047469595470739263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=6047469595470739263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/6047469595470739263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/6047469595470739263'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2007/10/i-dont-like-titile.html' title='I don&apos;t like the titile'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-8919452829173934170</id><published>2007-02-06T12:27:00.000+05:30</published><updated>2010-02-06T12:30:50.232+05:30</updated><title type='text'>Beautiful Mind …… Nash Equilibrium</title><content type='html'>&lt;p&gt;&lt;i&gt;A Beautiful Mind&lt;/i&gt; is a touching, emotionally charged film detailing the life of a brilliant academic who suffers from schizophrenia. This affliction slowly takes over his mind and we watch as his life crumbles apart around him. He abandons his students, alienates his colleagues and replaces his research with a fruitless and all-consuming obsession. Eventually he is taken into hospital where he is forced, with the help of electric-shock therapy and regular medication, to accept his condition and attempt to repair the shattered fragments of his life. &lt;/p&gt;  &lt;p&gt;He succeeds. Of course he succeeds, this is Hollywood and Hollywood likes a happy ending. In this case the happy ending is that, as an old man and after years of struggle, the poor academic is awarded the Nobel Prize. One interesting point though; it's a true story and our hero is none other than John Forbes Nash Jr.&lt;/p&gt;  &lt;p&gt;As a young man, John Nash was a mathematical genius. In 1947 he went to Princeton on a Carnegie Scholarship, and after three years had produced a 27-page dissertation for his doctorate in which he greatly expanded the field of Game Theory, transporting it from a position of relative obscurity into one of almost universal relevance.&lt;/p&gt;  &lt;p&gt;In the 1920s the father of Game Theory, Hungarian mathematician John von Neumann, had shown that mathematical models could be used to explain the behaviour of players in simple games. His work was limited in scope however, and although interesting, it appeared to be of little practical use.&lt;/p&gt;  &lt;p&gt;Nash's dissertation expanded on von Neumann's work, showing how Game Theory could explain complex as well as simple competitive behaviour. It wasn't a comprehensive solution to all game situations, but it did lay the foundations for the huge body of work on Game Theory which has been produced since.&lt;/p&gt;  &lt;p&gt;Unfortunately, very little of this comes across in &lt;i&gt;A Beautiful Mind&lt;/i&gt; because the director (Ron Howard) seems more interested in making a film about a schizophrenic than a mathematician suffering from schizophrenia. At the start of the film we are shown a Hollywood template of a typically obsessive young academic, introverted, socially inept, dismissive of his colleagues' work. If the notes we see Nash scribbling on his windows were chemical formulae or rhyming couplets rather than mathematical equations, the character would have seemed equally plausible.&lt;/p&gt;  &lt;p&gt;This is not to say that Russell Crowe, who plays Nash, does a bad job. Indeed, he succeeds in giving his character a convincing plausibility rarely seen in mainstream cinema these days, and he was certainly a deserving Oscar nominee. It's just that we never see him doing any maths apart from the occasional scribbling on windows.&lt;/p&gt;  &lt;p&gt;And when his great breakthrough finally comes, Nash is not poring over his books in the library or gazing fixedly at his glass equivalent of a blackboard, he's in a bar, eyeing up a group of attractive young women. How visually convenient.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://billsmovieemporium.files.wordpress.com/2009/01/russell-crowe-a-beautiful-mind-c10102591.jpeg" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;But to be fair, this is a dramatisation based on Sylvia Nasar's best-selling book, not a documentary. Its aim is to entertain, not to enlighten, and it does this perfectly well. Russell Crowe produces probably his best performance to date and is equally convincing as both the awkward young genius and the tortured convalescent, struggling to rebuild his marriage and career. Jennifer Connolly (who won the Oscar for Best Supporting Actress) is excellent as Alicia, Nash's long-suffering wife, and there are several strong performances from the supporting cast, most notably Ed Harris as a mysterious character from the military and Paul Bettany as Nash's Princeton roommate.&lt;/p&gt;  &lt;p&gt;But Hollywood requires more from its films than a few good performances; it requires drama, action, romance, pathos, excitement. &lt;i&gt;A Beautiful Mind&lt;/i&gt; makes a fair attempt to include all of these ingredients and the results obviously satisfied producers and film-goers alike - it won Oscars for Best Film and Best Director. But for those expecting to see a film about mathematics it is unlikely to satisfy. Early in the film, John Nash describes himself as having &amp;quot;two helpings of brain and half a helping of heart&amp;quot;. &lt;i&gt;A Beautiful Mind&lt;/i&gt; seems the exact opposite.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-8919452829173934170?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/8919452829173934170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=8919452829173934170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/8919452829173934170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/8919452829173934170'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2010/02/beautiful-mind-nash-equilibrium.html' title='Beautiful Mind …… Nash Equilibrium'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-3158752117652164408</id><published>2007-01-10T22:46:00.000+05:30</published><updated>2011-01-30T22:49:56.236+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Coding'/><title type='text'>Back to basics: Quick Sort Algorithm in C#</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Here is a simple implementation of quick sort&lt;/p&gt; &lt;table border="1" cellspacing="0" cellpadding="2" width="411"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="409"&gt; &lt;p&gt;private void Sort(){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int size = 10;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int[] values = new int[size];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Random ran = new Random();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int k = 0; k &amp;lt; values.Length; k++) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; values[k] = ran.Next(1, size);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int left = 0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int right = values.Length - 1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int pivot = values[values.Length - 1];&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; QuickSort(ref values, 0, values.Length - 1);&lt;br&gt;}&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="409"&gt;private void QuickSort(ref int[] values, int left, int right) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (right &amp;gt; left) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int part = Partition(ref values, left, right);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QuickSort(ref values, left, part - 1);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QuickSort(ref values, part + 1, right);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="409"&gt; &lt;p&gt;private int Partition(ref int[] values, int left, int right) {&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; int pivotIndex = left;&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; int pivot = values[pivotIndex];&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (right &amp;gt; left)&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; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(values[left] &amp;lt;= pivot &amp;amp;&amp;amp; left&amp;lt; right )&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; left++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt; &lt;p&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (right&amp;gt;=left &amp;amp;&amp;amp; values[right] &amp;gt;= pivot) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; right--;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (right &amp;gt; left)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int swapTemp = values[left];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; values[left] = values[right];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; values[right] = swapTemp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int swapTemp = values[pivotIndex];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; values[pivotIndex] = values[right];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; values[right] = swapTemp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&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; }&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; return right;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-3158752117652164408?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/3158752117652164408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=3158752117652164408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/3158752117652164408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/3158752117652164408'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2007/01/back-to-basics-quick-sort-algorithm-in.html' title='Back to basics: Quick Sort Algorithm in C#'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-116757518959399583</id><published>2006-12-31T19:41:00.000+05:30</published><updated>2006-12-31T20:11:03.436+05:30</updated><title type='text'>Cryptography : Hashing</title><content type='html'>Hashing is a mechanism used to find whether the original content is tampered with wrong data. You first get the ‘hash value’ of your original content, with a secret key as an input. You then send your original content along with the hash value. The hash value you generate is unique for your content and is of constant size. The receiving party, once gets your content creates the hash value of your content using the same key and the algorithm. There can be two possibilities. Either the receiving party gets your original message or an altered one. If the receiving party receives the original message the hash they generate matches with the hash you send. If for some reason the original message or content is altered even by a single character the hash value they generate differs from the one you send. This makes it easy for the receiving party to know whether they received the original content or a tampered one.&lt;br /&gt;&lt;br /&gt;Here is a code sample for hashing in .NET&lt;br /&gt;&lt;br /&gt;string message="The davinchi code: apple";&lt;br /&gt;byte[] content = System.Text.Encoding.Unicode.GetBytes(message);&lt;br /&gt;&lt;br /&gt;System.Security.Cryptography.HMACSHA1 hasher = newSystem.Security.Cryptography.HMACSHA1();&lt;br /&gt;System.Security.Cryptography.RNGCryptoServiceProvider keyGen = new System.Security.Cryptography.RNGCryptoServiceProvider();&lt;br /&gt;&lt;br /&gt;keyGen.GetBytes(hasher.Key);&lt;br /&gt;&lt;br /&gt;//Save the key for future use&lt;br /&gt;byte[] key = hasher.Key;&lt;br /&gt;&lt;br /&gt;//160 bit hash value. This hash value can be used to&lt;br /&gt;//check whether the secret has been tampered.&lt;br /&gt;byte[] hashValue = hasher.ComputeHash(content);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37791959-116757518959399583?l=sriwantha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sriwantha.blogspot.com/feeds/116757518959399583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37791959&amp;postID=116757518959399583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/116757518959399583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37791959/posts/default/116757518959399583'/><link rel='alternate' type='text/html' href='http://sriwantha.blogspot.com/2006/12/cryptography-hashing.html' title='Cryptography : Hashing'/><author><name>Sriwantha</name><uri>http://www.blogger.com/profile/02369746388005649789</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_q1WCZwXDeec/SzriHILa_eI/AAAAAAAAAXs/VqJE8h_zKfI/S220/untitled.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37791959.post-116736459952723059</id><published>2006-12-29T09:22:00.000+05:30</published><updated>2006-12-29T09:26:39.536+05:30</updated><title type='text'>Unicode to ASCII Encoding</title><content type='html'>If you do so much “screen scrapping” there can be a time where you may build a web service out of screen scraped text content. The websites you may work differs so much that some times the pages may contain non UTF8 encoded text. So if the return Object of your web service method contains a non UTF8 encoded text (lets say in one of its string property) the underlying SOAP serializer
