<?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-5001037551509839133</id><updated>2012-01-15T14:33:06.598Z</updated><category term='nHibernate'/><category term='Service'/><category term='operator'/><category term='CLR'/><category term='MySQL'/><category term='Powershell'/><category term='ASP.NET TABLE'/><category term='Business Activity Monitoring'/><category term='Assembly management'/><category term='.Net'/><category term='spaceship operator'/><category term='1053'/><category term='BizTalk'/><category term='DLL'/><category term='BAM'/><category term='Source controll branching'/><category term='Rhino Mocks'/><category term='STSADM'/><category term='WSS'/><category term='ASP.NET'/><category term='Configuration'/><category term='C#'/><category term='MSExcel'/><category term='Visual Studio 2008'/><category term='sharepoint'/><category term='Exception'/><category term='Set Parameter'/><category term='SELECT'/><category term='WCF'/><category term='Infopath form'/><category term='Ruby'/><category term='GAC'/><category term='Extension Methods'/><category term='parseexcel'/><category term='Property Promotion'/><category term='Wspbuilder'/><category term='HTML Table'/><category term='Debugging'/><category term='MOSS'/><category term='Global Assembly Cache'/><category term='Configuration Error'/><category term='Discover it yourself'/><category term='Setting Expectation'/><category term='timeout'/><category term='Unit Testing'/><category term='database'/><category term='Excel'/><title type='text'>Techno</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-6625208315199564096</id><published>2010-11-30T11:29:00.003Z</published><updated>2010-11-30T12:04:41.674Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Wspbuilder'/><title type='text'>Sharepoint Solution Debug or Release build</title><content type='html'>Today I just come across very unusual sharepoint development snag. I was adding some functionality to a exsiting sharepoint site. I found that the project is releasing 'Debug' build configuration. So I changed the build to a 'Release'  build configuration. Compiled successfully but build failed with following error message:&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 12px; color: rgb(63, 63, 63); line-height: 16px; white-space: pre; "&gt;&lt;i style="font-style: normal; color: rgb(196, 112, 3); "&gt;"mySite.wsp" does not appear to be a valid upgrade for solution "&lt;span class="Apple-style-span" style="color: rgb(63, 63, 63); "&gt;&lt;i style="font-style: normal; color: rgb(196, 112, 3); "&gt;mySite&lt;/i&gt;&lt;/span&gt;.wsp".The two solutions must have the same resource types (global or Web-application scoped)&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Compared the new manifest file with old manifest file, Bang! they are hugely different. New manifest file has  DeploymentTarget: GlobalAssemblyCache and it does not have CodeAccessSecurity section at all. &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Confused! 've not changed anything in the solution. Still gone through everything, to check what could be changing the deployment target. &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So rolled back my change(Release-&gt;Debug) and rebuilt. Build and deployment successful without a noise. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm using wspbuilder to build sharepoint solution from Visual Studio(VS) project.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The default behaviour of WSPBuilder is as follows:&lt;/div&gt;&lt;div&gt;Building sharepoint solution from VS Solution with Build configuration = Debug generates Sharepoint solution with DeploymentTarget=WebApplication&lt;/div&gt;&lt;div&gt;And similarly:&lt;/div&gt;&lt;div&gt;VS Solution with Build configuration = Release generates Sharepoint solution with DeploymentTarget=GlobalAssemblyCache&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-6625208315199564096?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/6625208315199564096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2010/11/sharepoint-solution-debug-or-release.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/6625208315199564096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/6625208315199564096'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2010/11/sharepoint-solution-debug-or-release.html' title='Sharepoint Solution Debug or Release build'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-8401963939813462703</id><published>2010-02-23T13:18:00.004Z</published><updated>2010-02-23T14:15:24.240Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Infopath form'/><category scheme='http://www.blogger.com/atom/ns#' term='Property Promotion'/><title type='text'>Behind the scene: Property promotion in Infopath</title><content type='html'>Infopath form has a beautiful feature to promote form fields. When a form is published to a sharepoint document library these promoted fields are available as additional column. This is all good and simple. I'm not going to dig into that in details here.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What I'm trying to focus here is when multiple forms are published to same document library. What happens to these promoted fields. Is the sharepoint list smart enough to figure-out the common columns?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sharepoint treats all column same and independently. If all attributes are same for a set of promoted filed then they represent same column. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When fields are promoted in Infopath it generates some map behind the scene. This can be viewed in the manifest file using any text of xml editor. For every promoted field it generates a unique id (GUID). And a second map, that maps each promoted to a column. Columns are identified by another GUID.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So every time a new property promotion happens a new set of mapping gets generated. When this happens in two different form naturally all GUID will be different. Therefore even if two form have field with same display name when the are promoted they will generate two different set of mapping guid. And therefore after attaching to a list this fields will be displayed as separate column. Matter of fact it will look like duplicate column. But one of them will display value depending of the content type the current line item is generated from.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The solution is simple. Open the manifest file and make sure common fields have same filed Id and column id. Simply copy one set of mapping from one file and use it for another file. do remember to make sure local form filed reference is correct. I mean it's is referring to the correct local filed in each manifest file. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Republish the form and this time you will see list item generated from both content type are populating same column.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One thing to remember sharepoint will not automatically remove existing set of columns. I mean once you publish one content type and create any list item all columns related to this content type get permanently added to the list. They may not be visible to the current view but they are there. To remove this old column reference you have to recreate the column.&lt;/div&gt;&lt;div&gt;Simply download all item from the list. Recreate the list. republish your content type and upload old item again.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Column and list item realignment will not remove existing column. It will only populate all columns relevant and available with existing items.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Example of column mapping from a manifest file looks like this: &lt;/div&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;xsf2:listPropertiesExtension&amp;gt;&lt;br /&gt;  &amp;lt;xsf2:fieldsExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{afd78356-f9c9-4211-8167-7d7d70dc67fd}" readWrite="no" columnName="{E28D210E-FF60-401D-A63A-40AECE533A43}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{26612320-1611-4f71-9197-0382144f7b9a}" readWrite="no" columnName="{32F2028F-BEF8-4B2C-AAE4-9F0753930D7A}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{1DAB9B48-2D1A-47b3-878C-8E84F0D211BA}" readWrite="no" columnName="{5A28EC4B-B173-466F-8814-849B4F932146}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{7cfc7f24-852d-4f78-b1b2-e0e68176d9ba}" readWrite="no" columnName="{D9F232A3-DD04-4B4D-9813-9E15E6549AB7}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{c4e0f350-52cc-4ede-904c-dd71a3d11f7d}" readWrite="no" columnName="{A04C8AD0-074F-4160-8577-E298532A11BA}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{1DAB9B48-2D1A-47b3-878C-8E84F0D211BA}" readWrite="yes" columnName="{0ACC2AC8-0890-496B-B524-D6FA0498C818}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{260962da-788e-458a-82a5-e03bb7f6dc52}" readWrite="yes" columnName="{051DFADD-706C-411B-9A4E-7ABA223CAEA9}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{212ec377-84c6-4c00-ad22-2cab2550fb50}" readWrite="yes" columnName="{00BF28EE-3601-42BA-A1F1-24C74B5A9B35}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{2fdeded3-4b03-47af-8ac6-ca411d5603d4}" readWrite="yes" columnName="{91BB41AA-AD25-4C47-BFE8-E04F175F5AC2}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{bb97a85d-0ee4-46ef-b1f1-0748cfa4c137}" readWrite="yes" columnName="{B463F993-2DAF-47E7-83D0-FD3837044858}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{475a6571-ba0e-4d56-9364-d2ac728a323b}" readWrite="yes" columnName="{8B0055A4-7AE8-4C8F-882C-F0C5E01C90C4}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{fce73a96-7bfa-44e9-8d1b-25d4aaa449ca}" readWrite="yes" columnName="{9535DA33-113B-4091-89AB-4ADC104A0F13}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{2958362e-25af-4d8e-9938-50622a1c0e61}" readWrite="yes" columnName="{C8ECE69F-C5C9-47AF-8E40-17CE03D7F5C4}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{0f26d0d9-9f4f-4de6-829d-a1994b26f7d7}" readWrite="no" columnName="{62A5E596-8726-4BBA-862C-3298BAB6808F}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{19b6647c-8672-46f4-b4da-60c74da4cb04}" readWrite="no" columnName="{F086DE11-7848-40B4-95C4-B1A3CCE1374D}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{9930e1c1-3067-47c1-ab8d-3eeb98679c3f}" readWrite="no" columnName="{B78D2E7D-C8AF-40BB-BAD4-D6D17156A91D}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{b1733cd8-b3ce-42a6-990a-0b9a5955da5c}" readWrite="yes" columnName="{BABE6BC6-F248-4E36-8B86-215345352F89}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{5e295b7a-4849-464e-9d56-92bef86869eb}" readWrite="yes" columnName="{25CF762C-D3BB-4F01-BEA8-7F76C4E09914}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{7f358004-05e4-42ac-9fde-a253039e19ce}" readWrite="yes" columnName="{58E519A7-7FA5-4D37-BF5D-F3057BB2D719}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{33a7da72-2997-4ebf-ad89-9603a478fad2}" readWrite="yes" columnName="{DFB32035-E22F-4EA7-8ED7-D36EFC99586A}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{5571ace5-1274-4388-b2e6-02ea6c3c7c76}" readWrite="yes" columnName="{22D6961D-13BD-465F-8C30-FEF5B0FFC0B0}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{230448c7-3b5b-40e1-8242-dba5c11656ad}" readWrite="yes" columnName="{14CB66B0-EA81-4B26-8ABF-E30C50B61DAB}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{7205c21c-5eae-44b1-9b0e-787bb36de370}" readWrite="no" columnName="{E6B623CF-F7CD-41D5-9059-EC84FD4AD026}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="" readWrite="no" columnName="{C08C7115-ED51-4445-985A-0C747741F8BB}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{eeccc9d8-3a7d-4fb9-9e12-3d72daa3c619}" readWrite="no" columnName="{C1EB52D6-7B01-4A00-BB60-F4279372861A}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{27d7764c-ccfc-433d-828d-56beb602062a}" readWrite="no" columnName="{5FA48CEA-E192-4854-B862-70DBBDAEDBDE}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{40577009-e6a2-44aa-b034-029c61e23f1d}" readWrite="no" columnName="{72522D66-2E9E-4BAA-9C84-8D9BF5F44A37}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;   &amp;lt;xsf2:fieldExtension columnId="{dc455fba-75ab-40e2-8a54-d83ad8d70a6a}" readWrite="no" columnName="{AC0CDC6B-C9B3-4E4A-B341-AC5CC6408CBD}"&amp;gt;&amp;lt;/xsf2:fieldExtension&amp;gt;&lt;br /&gt;  &amp;lt;/xsf2:fieldsExtension&amp;gt;&lt;br /&gt; &amp;lt;/xsf2:listPropertiesExtension&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;And the fields mapping is as follows:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;xsf:listProperties&amp;gt;&lt;br /&gt;  &amp;lt;xsf:fields&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="Reference" columnName="{D9F232A3-DD04-4B4D-9813-9E15E6549AB7}" node="/my:myFields/my:referenceNumber" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="Job Title" columnName="{A04C8AD0-074F-4160-8577-E298532A11BA}" node="/my:myFields/my:jobTitle" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="Status" columnName="{0ACC2AC8-0890-496B-B524-D6FA0498C818}" node="/my:myFields/my:status" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="Business Unit" columnName="{C8ECE69F-C5C9-47AF-8E40-17CE03D7F5C4}" node="/my:myFields/my:businessUnit" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="Annual Salary" columnName="{62A5E596-8726-4BBA-862C-3298BAB6808F}" node="/my:myFields/my:annualSalary" type="xsd:double"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="Country" columnName="{F086DE11-7848-40B4-95C4-B1A3CCE1374D}" node="/my:myFields/my:country" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="Assigned To" columnName="{BABE6BC6-F248-4E36-8B86-215345352F89}" node="/my:myFields/my:assignedTo" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="FDGroup Name" columnName="{25CF762C-D3BB-4F01-BEA8-7F76C4E09914}" node="/my:myFields/my:FDGroupName" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="HRGroup Name" columnName="{58E519A7-7FA5-4D37-BF5D-F3057BB2D719}" node="/my:myFields/my:HRGroupName" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="MDGroup Name" columnName="{DFB32035-E22F-4EA7-8ED7-D36EFC99586A}" node="/my:myFields/my:MDGroupName" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="CEOGroup Name" columnName="{22D6961D-13BD-465F-8C30-FEF5B0FFC0B0}" node="/my:myFields/my:CEOGroupName" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="Submitter Login Name" columnName="{14CB66B0-EA81-4B26-8ABF-E30C50B61DAB}" node="/my:myFields/my:submitterLoginName" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="Division" columnName="{E6B623CF-F7CD-41D5-9059-EC84FD4AD026}" node="/my:myFields/my:division" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="Last Modified Login Name" columnName="{C1EB52D6-7B01-4A00-BB60-F4279372861A}" node="/my:myFields/my:LastModifiedLoginName" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="Current Salary" columnName="{5FA48CEA-E192-4854-B862-70DBBDAEDBDE}" node="/my:myFields/my:currentSalary" type="xsd:double"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="Staff Name" columnName="{72522D66-2E9E-4BAA-9C84-8D9BF5F44A37}" node="/my:myFields/my:candidateName" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;   &amp;lt;xsf:field name="Currency" columnName="{AC0CDC6B-C9B3-4E4A-B341-AC5CC6408CBD}" node="/my:myFields/my:salaryCurrency" type="xsd:string"&amp;gt;&amp;lt;/xsf:field&amp;gt;&lt;br /&gt;  &amp;lt;/xsf:fields&amp;gt;&lt;br /&gt; &amp;lt;/xsf:listProperties&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-8401963939813462703?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/8401963939813462703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2010/02/behind-scene-property-promotion-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/8401963939813462703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/8401963939813462703'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2010/02/behind-scene-property-promotion-in.html' title='Behind the scene: Property promotion in Infopath'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-8916488074525269540</id><published>2010-02-23T12:48:00.002Z</published><updated>2010-02-23T12:56:34.626Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Infopath form'/><category scheme='http://www.blogger.com/atom/ns#' term='Exception'/><title type='text'>There is an unclosed literal string. Line 1, position 411.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_8QLpjpE6kfY/S4PQYjDVrNI/AAAAAAAALRo/LMdH8eluhXI/s1600-h/InfopathMissingFieldError.PNG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 274px;" src="http://1.bp.blogspot.com/_8QLpjpE6kfY/S4PQYjDVrNI/AAAAAAAALRo/LMdH8eluhXI/s320/InfopathMissingFieldError.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5441421894938373330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;I was recently quite scared to see an exception message thrown up from my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Infopath&lt;/span&gt; form published to a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;sharepoint&lt;/span&gt; list. And most interestingly while I was trying to the same operation from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Infopath&lt;/span&gt; designer preview, form was working correctly without any exception. &lt;/div&gt;&lt;div&gt;After a bit of search here and there I could not find any solution. &lt;/div&gt;&lt;div&gt;Suddenly I realised that  the event causing this exception trying to use a filed which does not exist in the form. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So if you are seeing the same error message most probably your code is trying to access a field that does not exist or you have misspelled the name.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;------------ exception message ------------&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;There is an unclosed literal string. Line 1, position 411.&lt;br /&gt;&lt;br /&gt;System.Xml.XmlException: There is an unclosed literal string. Line 1,  position 411.&lt;br /&gt;at System.Xml.XmlTextReaderImpl.Throw(Exception e)&lt;br /&gt;at  System.Xml.XmlTextReaderImpl.Throw(String res, String &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;arg&lt;/span&gt;)&lt;br /&gt;at  System.Xml.XmlTextReaderImpl.ParseAttributeValueSlow(Int32 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;curPos&lt;/span&gt;, Char  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;quoteChar&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;NodeData&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;attr&lt;/span&gt;)&lt;br /&gt;at System.Xml.XmlTextReaderImpl.ParseAttributes()&lt;br /&gt;at System.Xml.XmlTextReaderImpl.ParseElement()&lt;br /&gt;at  System.Xml.XmlTextReaderImpl.ParseElementContent()&lt;br /&gt;at  System.Xml.XmlTextReaderImpl.Read()&lt;br /&gt;at System.Xml.XmlLoader.LoadNode(Boolean  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;skipOverWhitespace&lt;/span&gt;)&lt;br /&gt;at System.Xml.XmlLoader.LoadDocSequence(XmlDocument  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;parentDoc&lt;/span&gt;)&lt;br /&gt;at System.Xml.XmlLoader.Load(XmlDocument doc, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;XmlReader&lt;/span&gt; reader,  Boolean &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;preserveWhitespace&lt;/span&gt;)&lt;br /&gt;at System.Xml.XmlDocument.Load(XmlReader reader)&lt;br /&gt;at Microsoft.Office.InfoPath.Server.Xml.InfoPathXmlDocument.Load(XmlReader  reader)&lt;br /&gt;at  Microsoft.Office.InfoPath.Server.DocumentLifetime.DataObject.&lt;&gt;c__&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;DisplayClass&lt;/span&gt;3.&lt;.ctor&gt;b__0()&lt;br /&gt;at  Microsoft.Office.Server.Diagnostics.FirstChanceHandler.ExceptionFilter(Boolean  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;fRethrowException&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;TryBlock&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;tryBlock&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;FilterBlock&lt;/span&gt; filter, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;CatchBlock&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;catchBlock&lt;/span&gt;,  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;FinallyBlock&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;finallyBlock&lt;/span&gt;)&lt;br /&gt;at  Microsoft.Office.Server.Diagnostics.ULS.SendWatsonOnExceptionTag(ULSTagID &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;tagID&lt;/span&gt;,  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;ULSCat&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;categoryID&lt;/span&gt;, String output, Boolean &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;fRethrowException&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;TryBlock&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;tryBlock&lt;/span&gt;,  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;CatchBlock&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;catchBlock&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;FinallyBlock&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;finallyBlock&lt;/span&gt;)&lt;br /&gt;at  Microsoft.Office.InfoPath.Server.DocumentLifetime.DataObject..ctor(EnhancedBinaryReader  reader, Solution solution)&lt;br /&gt;at  Microsoft.Office.InfoPath.Server.DocumentLifetime.DataObjects.&lt;&gt;c__&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;DisplayClass&lt;/span&gt;2.&lt;.ctor&gt;b__0(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;EnhancedBinaryReader&lt;/span&gt;  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;innerReader&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;DataObject&lt;/span&gt;&amp;amp; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;newObject&lt;/span&gt;)&lt;br /&gt;at  Microsoft.Office.InfoPath.Server.Serialization.EnhancedBinaryReader.ReadObjectMap[KeyT,ValueT](Dictionary`2  map, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;ItemReaderDelegate&lt;/span&gt;`1 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;readKey&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;ItemReaderDelegate&lt;/span&gt;`1 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;readValue&lt;/span&gt;)&lt;br /&gt;at  Microsoft.Office.InfoPath.Server.Serialization.EnhancedBinaryReader.ReadObjectMap[ValueT](Dictionary`2  map, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;ItemReaderDelegate&lt;/span&gt;`1 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;readValue&lt;/span&gt;)&lt;br /&gt;at  Microsoft.Office.InfoPath.Server.DocumentLifetime.DataObjects..ctor(EnhancedBinaryReader  reader, Solution solution)&lt;br /&gt;at  Microsoft.Office.InfoPath.Server.DocumentLifetime.DocumentSessionState.DesterilizeVersion1(EnhancedBinaryReader  reader, Solution solution)&lt;br /&gt;at  Microsoft.Office.InfoPath.Server.DocumentLifetime.DocumentSessionState..ctor(EnhancedBinaryReader  reader, Solution solution)&lt;br /&gt;at  Microsoft.Office.InfoPath.Server.DocumentLifetime.DocumentSessionState.CreateFromByteArray(Byte[]  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;serializedSessionState&lt;/span&gt;, Byte[] &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;serializedVersionState&lt;/span&gt;, Solution solution)&lt;br /&gt;at  Microsoft.Office.InfoPath.Server.DocumentLifetime.DocumentSessionStateManager.GetSessionState(HttpContext  context, String &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;editingSessionID&lt;/span&gt;, Solution solution)&lt;br /&gt;at  Microsoft.Office.InfoPath.Server.DocumentLifetime.Document.LoadFromSession(HttpContext  context, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;SPSite&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;contextSite&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;EventLogStart&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;eventLogStart&lt;/span&gt;, Solution solution)&lt;br /&gt;at  Microsoft.Office.InfoPath.Server.Controls.PostbackPage.&lt;&gt;c__&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;DisplayClass&lt;/span&gt;1.&lt;processrequest&gt;b__0()&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/processrequest&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-8916488074525269540?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/8916488074525269540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2010/02/there-is-unclosed-literal-string-line-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/8916488074525269540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/8916488074525269540'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2010/02/there-is-unclosed-literal-string-line-1.html' title='There is an unclosed literal string. Line 1, position 411.'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_8QLpjpE6kfY/S4PQYjDVrNI/AAAAAAAALRo/LMdH8eluhXI/s72-c/InfopathMissingFieldError.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-8762871270536838867</id><published>2009-12-10T18:01:00.003Z</published><updated>2009-12-10T18:12:34.032Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint'/><title type='text'>How to Create new sharepoint site</title><content type='html'>&lt;div style="text-align: left;"&gt;Creating sharepoint site is very easy. Following image steps will show you how to do it.&lt;/div&gt;&lt;div&gt;&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Step 1: Open sharepoint Central Administration and click Application management as shown in the picture bellow.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_8QLpjpE6kfY/SyE4dWg3dwI/AAAAAAAALM4/4iJFYUr568s/s320/newsite01.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5413670303986841346" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 130px; " /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Step 2: Choose the ‘Create of Extend Web Application’ link from ‘Sharepoint Web Application Management’.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_8QLpjpE6kfY/SyE5VXLPd4I/AAAAAAAALNI/rnnvyscyaX4/s1600-h/newsite02.PNG"&gt;&lt;img src="http://4.bp.blogspot.com/_8QLpjpE6kfY/SyE5VXLPd4I/AAAAAAAALNI/rnnvyscyaX4/s320/newsite02.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5413671266237249410" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 130px; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Step 3: Click ‘Create a new Web application’ link&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8QLpjpE6kfY/SyE5fYW6OmI/AAAAAAAALNQ/eIOZkYhyRao/s1600-h/newsite03.PNG"&gt;&lt;img src="http://3.bp.blogspot.com/_8QLpjpE6kfY/SyE5fYW6OmI/AAAAAAAALNQ/eIOZkYhyRao/s320/newsite03.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5413671438353316450" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 129px; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Step 4: Create Web application form will pre-populate all fields. You can choose the default value in most cases. Note the port number.  You will need this to access the site. If you want to access using more readable name, create a DSN entry for your site and use that as host header in the following form. I’ve choose Network Service account for Application pool authentication. It’s a preferable option for me, and I would suggest you to use it. If want more restricted access you can specify the username and password. Form will pickup the default content database server name from sharepoint farm configuration. Click okay when you are happy with the information.&lt;/p&gt;&lt;div class="Section1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8QLpjpE6kfY/SyE5oCs7ZtI/AAAAAAAALNY/aqCcIU9TBEY/s1600-h/newsite04.PNG"&gt;&lt;img src="http://3.bp.blogspot.com/_8QLpjpE6kfY/SyE5oCs7ZtI/AAAAAAAALNY/aqCcIU9TBEY/s320/newsite04.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5413671587158910674" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 254px; height: 320px; " /&gt;&lt;/a&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Step 5: Step 4 creates a web end point to attach your website to. You actual site has not been created yet. If you try to brow the url as you just created, it will show an error message. Site is not available yet. This step will create the site. Sharepoint come with a bunch of template to create your site from. Go to Application Management and Click ‘Create Site Collection’ in sharepoint site management section.&lt;/p&gt;&lt;div class="Section1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_8QLpjpE6kfY/SyE5v5ytOCI/AAAAAAAALNg/TZNob7VgyHs/s1600-h/newsite05.PNG"&gt;&lt;img src="http://4.bp.blogspot.com/_8QLpjpE6kfY/SyE5v5ytOCI/AAAAAAAALNg/TZNob7VgyHs/s320/newsite05.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5413671722206181410" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 255px; " /&gt;&lt;/a&gt;&lt;p class="MsoNormal"&gt;This will take you to Create Site Collection page.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Step 6: In Create site collection  page, choose the web application you want to add the site. (shown in red circle in following diagram). &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_8QLpjpE6kfY/SyE56d-jd-I/AAAAAAAALNo/MZi8CLg44M0/s1600-h/newsite06.PNG"&gt;&lt;img src="http://4.bp.blogspot.com/_8QLpjpE6kfY/SyE56d-jd-I/AAAAAAAALNo/MZi8CLg44M0/s320/newsite06.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5413671903718242274" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 230px; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Choose a suitable title for your site. This title will be displayed in almost every page of your site.  Add a description. This description will be displayed in the home page. Choose the template for your site. Following example shows team site template. You can choose whatever template is suitable for your purpose. Click ok and your site is ready to use( off course you have to wait for the working icon to stop &lt;span style="font-family:Wingdings;"&gt;J&lt;/span&gt;).&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;   &lt;/div&gt; &lt;div&gt; &lt;div   style=" ;font-family:Courier New;font-size:9pt;"&gt;&lt;span class="Apple-style-span"   style="  color: rgb(192, 192, 192); font-family:Verdana;font-size:x-small;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;/span&gt; &lt;div&gt;&lt;/div&gt; &lt;div   style=" ;font-family:Courier New;font-size:9pt;"&gt;&lt;span style="font-family:Verdana;font-size:78%;color:silver;"&gt; &lt;/span&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/5001037551509839133-8762871270536838867?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/8762871270536838867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2009/12/how-to-create-new-sharepoint-site.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/8762871270536838867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/8762871270536838867'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2009/12/how-to-create-new-sharepoint-site.html' title='How to Create new sharepoint site'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_8QLpjpE6kfY/SyE4dWg3dwI/AAAAAAAALM4/4iJFYUr568s/s72-c/newsite01.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-7874852839751066711</id><published>2009-11-30T17:39:00.006Z</published><updated>2009-12-01T10:54:24.619Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Discover it yourself'/><title type='text'>Finding Program Equivalent of Share point UI Actions</title><content type='html'>Have you ever wondered all the functions you want to do is available in the sharepoint pages, through UI, but you can't find the API to do it pragmatically. I'm here to reveal the secret to find all the sharepoitn supported method calls that you are hunting for ages.&lt;br /&gt;&lt;br /&gt;You will need .NET developers Bramastra(The ultimate wepone), the Red Gate's .NET Reflector. you can download this from http://www.red-gate.com/products/reflector/&lt;br /&gt;&lt;br /&gt;Now you are ready for the discovery of your lifetime.&lt;br /&gt;&lt;br /&gt;We will run through the steps using an example. In our case lets say we want to find out how to remove a workflow association with no new instance option. If you directly look in the SPWorkflowAssociation class, there is a remove association option but it does not have a option for No New instance. We are going to find it how Sharepoint does it.&lt;br /&gt;&lt;br /&gt;Before we start, let's list out all the location where to look for web pages source and assemblies:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Web pages:&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS&lt;/li&gt;&lt;li&gt;\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\ADMIN&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Assemblies&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;\WINDOWS\assembly&lt;/li&gt;&lt;li&gt;\Inetpub\wwwroot\wss\VirtualDirectories\[yourwebsitename or port]\_app_bin&lt;/li&gt;&lt;/ol&gt;Step 1:Lets remove the association using UI.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8QLpjpE6kfY/SxTudqRtx6I/AAAAAAAALKU/VLr4HYSvB0k/s1600/howto1.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 169px;" src="http://2.bp.blogspot.com/_8QLpjpE6kfY/SxTudqRtx6I/AAAAAAAALKU/VLr4HYSvB0k/s320/howto1.JPG" alt="" id="BLOGGER_PHOTO_ID_5410211245711017890" border="0" /&gt;&lt;/a&gt;Open List setting&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8QLpjpE6kfY/SxTudyiggnI/AAAAAAAALKc/9XukVUpx2rs/s1600/howto2.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 167px;" src="http://2.bp.blogspot.com/_8QLpjpE6kfY/SxTudyiggnI/AAAAAAAALKc/9XukVUpx2rs/s320/howto2.JPG" alt="" id="BLOGGER_PHOTO_ID_5410211247928935026" border="0" /&gt;&lt;/a&gt;Open workflow setting&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_8QLpjpE6kfY/SxTueNzh77I/AAAAAAAALKk/t9QrakeN5o8/s1600/howto3.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 117px;" src="http://4.bp.blogspot.com/_8QLpjpE6kfY/SxTueNzh77I/AAAAAAAALKk/t9QrakeN5o8/s320/howto3.JPG" alt="" id="BLOGGER_PHOTO_ID_5410211255248089010" border="0" /&gt;&lt;/a&gt;Click the remove workflwo link&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_8QLpjpE6kfY/SxTuebFdKYI/AAAAAAAALKs/prN67xvkUc4/s1600/howto4.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 130px;" src="http://1.bp.blogspot.com/_8QLpjpE6kfY/SxTuebFdKYI/AAAAAAAALKs/prN67xvkUc4/s320/howto4.JPG" alt="" id="BLOGGER_PHOTO_ID_5410211258812934530" border="0" /&gt;&lt;/a&gt; This the page we have to look care fully. This page has multiple radio button for complete removal, no new instance and allow new instance. Form is simple. From address bar lets note down the aspx page name, i.e. RemWrkfl.aspx.&lt;br /&gt;We can find this file in \Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS&lt;br /&gt;&lt;br /&gt;Open this file in any text editor.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8QLpjpE6kfY/SxTurMLvZAI/AAAAAAAALK8/TW1Po0h0obs/s1600/howto5.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 97px;" src="http://2.bp.blogspot.com/_8QLpjpE6kfY/SxTurMLvZAI/AAAAAAAALK8/TW1Po0h0obs/s320/howto5.JPG" alt="" id="BLOGGER_PHOTO_ID_5410211478151062530" border="0" /&gt;&lt;/a&gt; First couple of line are of our interest. First line will tell the assembly file name this page uses for code behind. And the second line will show the class name i.e Microsoft.SharePoint.ApplicationPages.RemWrkflPage  for our example.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8QLpjpE6kfY/SxTurU7_ngI/AAAAAAAALLE/HwgRrv5Nk64/s1600/howto6.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 130px;" src="http://3.bp.blogspot.com/_8QLpjpE6kfY/SxTurU7_ngI/AAAAAAAALLE/HwgRrv5Nk64/s320/howto6.JPG" alt="" id="BLOGGER_PHOTO_ID_5410211480500936194" border="0" /&gt;&lt;/a&gt;We can also find that the Ok button in the form invokes BtnSubmit_Click method.&lt;br /&gt;&lt;br /&gt;Lets open the assembly using Reflector. We can find the assembly in \Inetpub\wwwroot\wss\VirtualDirectories\[yourwebsitename or port]\_app_bin. In our case the assembly name is Microsoft.SharePoint.ApplicationPages.dll&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_8QLpjpE6kfY/SxTurttX5BI/AAAAAAAALLM/QN8BjTaX2BU/s1600/howto7.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 317px;" src="http://4.bp.blogspot.com/_8QLpjpE6kfY/SxTurttX5BI/AAAAAAAALLM/QN8BjTaX2BU/s320/howto7.JPG" alt="" id="BLOGGER_PHOTO_ID_5410211487150498834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After you drill down to the Microsoft.SharePoint. ApplicationPages.RemWrkflPage class and BtnSubmit_Click event handler the code looks like as shown in the image on the right side.&lt;br /&gt;If we look carefully, we ca see that for No New Instance option it's simply setting &lt;a style="font-style: italic;" title="SPWorkflowAssociation association // Local Variable"&gt;association&lt;/a&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;a style="font-style: italic;" title="bool Microsoft.SharePoint.Workflow.SPWorkflowAssociation.Enabled { ... }" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Microsoft.SharePoint:12.0.0.0:71e9bce111e9429c/Microsoft.SharePoint.Workflow.SPWorkflowAssociation/property:Enabled:Boolean"&gt;Enabled&lt;/a&gt;&lt;span style="font-style: italic;"&gt; = &lt;/span&gt;&lt;span style="font-style: italic;color:#800000;" &gt;false&lt;/span&gt;&lt;span style="font-style: italic;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So that's the magical thing. We have to disable the association instead of removing it.&lt;br /&gt;We are done!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And using the same approach you can discover all functionality, as long as an example is available.&lt;br /&gt;&lt;br /&gt;A bit of caution, some MOSS functionality is not developed using managed code. You wont be able to see code for those functionality.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-7874852839751066711?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/7874852839751066711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2009/11/finding-program-equivalent-of-share.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/7874852839751066711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/7874852839751066711'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2009/11/finding-program-equivalent-of-share.html' title='Finding Program Equivalent of Share point UI Actions'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_8QLpjpE6kfY/SxTudqRtx6I/AAAAAAAALKU/VLr4HYSvB0k/s72-c/howto1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-228639821509148962</id><published>2009-09-29T11:08:00.006+01:00</published><updated>2009-09-29T11:24:05.031+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Source controll branching'/><category scheme='http://www.blogger.com/atom/ns#' term='Infopath form'/><title type='text'>How to keep infopath form in source control</title><content type='html'>Microsoft &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;infopath&lt;/span&gt; form saved with .&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;xsn&lt;/span&gt; extension. This is a binary format. If you add a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;xsn&lt;/span&gt; file to source control, you will have record of different version of the form, but you won't be getting the change details.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This can be solved easily by doing it &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;little bit&lt;/span&gt; differently. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;xsn&lt;/span&gt; files are basically cab file. And it contains lots of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;xml&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;xsd&lt;/span&gt;, image and other files. The good thing is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Infopath&lt;/span&gt; provides a option to save files in its source form, i.e. instead of one big &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;xsn&lt;/span&gt;(cab) file, you can save all internal files separately in one location. In that case most of those files are text file. And source control will be able to track all changes in the file. &lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/_8QLpjpE6kfY/SsHeCO1QVyI/AAAAAAAALI8/VOPvqVDX7ZA/s320/infopath-savesource.JPG" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 264px; height: 320px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5386830759234393890" /&gt;&lt;/div&gt;&lt;div&gt;Save As Source Files option available in the File menu as shown in the image.&lt;/div&gt;&lt;img src="http://3.bp.blogspot.com/_8QLpjpE6kfY/SsHfJ1pEgpI/AAAAAAAALJE/GBi_Iua89Fw/s320/infopathsource.JPG" style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 271px; height: 320px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5386831989422981778" /&gt;&lt;div&gt;And it looks like the image in right. &lt;/div&gt;&lt;div&gt;number of files and types depends on the content of the form. It will always have a manifest file(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;xsf&lt;/span&gt;). Right Click on the manifest file and choose design to open the form in design mode. &lt;/div&gt;&lt;div&gt;There will be &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;xsd&lt;/span&gt; files for every data connection/data types. There will be one &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;xsl&lt;/span&gt; files for each view, and all images displayed in the form etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This makes version controlling worthwhile. Doing this you can merge between branches meaningfully.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One last thing whenever this form is published it will be published as .&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;xsn&lt;/span&gt; file in its publish location.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-228639821509148962?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/228639821509148962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2009/09/how-to-keep-infopath-form-in-source.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/228639821509148962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/228639821509148962'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2009/09/how-to-keep-infopath-form-in-source.html' title='How to keep infopath form in source control'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_8QLpjpE6kfY/SsHeCO1QVyI/AAAAAAAALI8/VOPvqVDX7ZA/s72-c/infopath-savesource.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-1400535968651105757</id><published>2009-09-29T10:42:00.005+01:00</published><updated>2009-09-29T11:07:53.578+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Source controll branching'/><category scheme='http://www.blogger.com/atom/ns#' term='Infopath form'/><title type='text'>Infopath forn and Branching</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Combination of Microsoft &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Infopath&lt;/span&gt; form and source control could turn into a editing hell, specially if that involves branching and merging. &lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Infopath&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;forms&lt;/span&gt; keeps track of where it has been published before and where from it was published. Therefore if the form is moved it gives warning like the one bellow: &lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/_8QLpjpE6kfY/SsHZALTo7bI/AAAAAAAALIs/QnvpsY2F_0g/s320/filemovedWarning.JPG" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 77px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5386825226370215346" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;This is exactly the same thing happens when source is branched from trunk and is being opened from branch.&lt;/div&gt;&lt;div style="text-align: left;"&gt;Click okay and form is displayed in editable mode. So far it's all right. But when the from is being published again from branch &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;infopath&lt;/span&gt; form will ask for saving the file before it can be published even if there has not been any change in the form.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;img src="http://2.bp.blogspot.com/_8QLpjpE6kfY/SsHah8szaDI/AAAAAAAALI0/qiaBNAj3sEI/s320/filesave.JPG" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 80px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5386826906076407858" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Depending on the user preference, if the always save &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;checkbox&lt;/span&gt; is ticked earlier, this dialog box will not appear, instead it will open the file save dialog directly. &lt;/div&gt;&lt;div style="text-align: left;"&gt;That's where the confusion is. In regular publish from does not display the save as box. User can easily confuse about whether that is the publish location it's talking about or the source location. &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Infact&lt;/span&gt; that's what happened to me. I save the file to it's publish location and then publish it to the same location. &lt;/div&gt;&lt;div style="text-align: left;"&gt;The funniest thing is I've lost all my work. It simply published and stored the original file. All changes are overwritten.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;To avoid such loss , I recommend, any time if you move a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;infopath&lt;/span&gt; form do the following thing first:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;Save the form again to it's new source, make sure path is selected correctly&lt;/li&gt;&lt;li&gt;publish to the correct location&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I hope this writing will help some one from loosing their days work, just because &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;infopath&lt;/span&gt; form doesn't like to move around.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-1400535968651105757?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/1400535968651105757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2009/09/infopath-forn-and-branching.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/1400535968651105757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/1400535968651105757'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2009/09/infopath-forn-and-branching.html' title='Infopath forn and Branching'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_8QLpjpE6kfY/SsHZALTo7bI/AAAAAAAALIs/QnvpsY2F_0g/s72-c/filemovedWarning.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-4100778657694716408</id><published>2009-09-07T13:26:00.003+01:00</published><updated>2009-09-07T13:59:03.129+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='parseexcel'/><category scheme='http://www.blogger.com/atom/ns#' term='MSExcel'/><title type='text'>Reading Microsoft Office Excel file in ruby without installing MSOffice</title><content type='html'>There are two ways one can read Excel file in Ruby; first using Win32OLE control of excel. In that case MS office has to be installed in the machine.&lt;br /&gt;&lt;br /&gt;Second option is to use parseexcel library. In this case MS office installation is not required. This library is available as standard gem from the ruby forge website.&lt;br /&gt;&lt;br /&gt;Simply install the parseexcel by running following command:&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;gem install parseexcel&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To use this library inlcude&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;require 'parseexcel'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And then a xls file can be loaded by simply calling&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;@workbook = Spreadsheet::ParseExcel.parse(file_name)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;@workbook.worksheet(worksheet_no) &lt;/span&gt;will return intended worksheet.&lt;br /&gt;&lt;br /&gt;And reading content of a cell is simply:&lt;br /&gt;       &lt;span style="color: rgb(255, 153, 0);"&gt; cell = worksheet.cell(row, col) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;        if cell != nil&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;          contents = cell.to_s('latin1')&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;        end&lt;/span&gt;&lt;br /&gt;And following code spits out all cells of a worksheet:&lt;br /&gt;&lt;br /&gt;   &lt;span style="color: rgb(255, 153, 0);"&gt; worksheet.each &lt;span style="color: rgb(51, 102, 255);"&gt;do &lt;/span&gt;|row|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;        j=0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;        i=0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;        if row != nil&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;          row.each &lt;span style="color: rgb(51, 102, 255);"&gt;do &lt;/span&gt;|cell|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;              if cell != nil&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;                contents = cell.to_s('latin1')&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;                puts "Row: #{j} Cell: #{i}&gt; #{contents}"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;              &lt;span style="color: rgb(51, 102, 255);"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;              i = i+1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;          &lt;span style="color: rgb(51, 102, 255);"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;        &lt;span style="color: rgb(51, 102, 255);"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;end&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/5001037551509839133-4100778657694716408?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/4100778657694716408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2009/09/reading-microsoft-office-excel-file-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/4100778657694716408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/4100778657694716408'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2009/09/reading-microsoft-office-excel-file-in.html' title='Reading Microsoft Office Excel file in ruby without installing MSOffice'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-8565722064376103773</id><published>2009-08-27T19:10:00.003+01:00</published><updated>2009-08-27T19:21:47.343+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='STSADM'/><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint'/><title type='text'>Job failed with the following error.  This job will be skipped. Failed to connect to an IPC Port: Access is denied.</title><content type='html'>While Running &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;stsadm&lt;/span&gt; with '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;execadmsvcjobs&lt;/span&gt;' if you come across following error, it's likely one of the following thing could fix it.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;stsadm&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;exe&lt;/span&gt; -o &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;execadmsvcjobs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Executing .&lt;br /&gt;Executing &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SharePoint&lt;/span&gt; Worker Process Group &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Updatefaab&lt;/span&gt;8d3e-048c-42b1-80d8-63ab5451&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;da&lt;/span&gt;0d.&lt;br /&gt;The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SharePoint&lt;/span&gt; Worker Process Group &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Updatefaab&lt;/span&gt;8d3e-048c-42b1-80d8-63ab5451&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;da&lt;/span&gt;0d job &lt;span style="color: rgb(255, 102, 0);"&gt;failed with the following error.  This job will be skipped. Failed to connect to an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;IPC&lt;/span&gt; Port: Access is denied.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Operation completed successfully.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This can be &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;result&lt;/span&gt; of multiple things. Some of the thing is specified in http://fnoja.blogspot.com/2007/08/failed-to-connect-to-ipc-port-access-is.html blog.&lt;br /&gt;In short you need to check following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;open services management console(services.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;msc&lt;/span&gt;) and check if 'Windows &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;SharePoint&lt;/span&gt; Services Administration' service is running. If not start it. Make sure service log-on credential are correct.&lt;/li&gt;&lt;li&gt;Check if the 'Windows &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;SharePoint&lt;/span&gt; Services Timer' service is running and with write credential. This user will need access to the database server as well.&lt;/li&gt;&lt;li&gt;And if your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Sharepoint&lt;/span&gt; server accessing the database using local service, then the machine is added to the database as sysadmin.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-8565722064376103773?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/8565722064376103773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2009/08/job-failed-with-following-error-this.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/8565722064376103773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/8565722064376103773'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2009/08/job-failed-with-following-error-this.html' title='Job failed with the following error.  This job will be skipped. Failed to connect to an IPC Port: Access is denied.'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-3151063551236210154</id><published>2009-08-10T18:28:00.004+01:00</published><updated>2009-08-10T18:48:00.497+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='STSADM'/><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Powershell'/><title type='text'>STSADM error message</title><content type='html'>Symptom:&lt;br /&gt;"The Web application at 'http://&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;yourserver&lt;/span&gt;:port&lt;/span&gt;/Approval Requests' could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application."&lt;br /&gt;&lt;br /&gt;Reason:&lt;br /&gt;Apparently &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Sharepoint&lt;/span&gt; gives this error message if you try to run &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;stsadm&lt;/span&gt; remotely. There are lots more cases when you will get same message, this is just one.&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;1) run command locally.&lt;br /&gt;2)Alternatively run command using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;psexec&lt;/span&gt;. Just create a batch file with the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;stsadm&lt;/span&gt; command to execute. Then execute the batch file with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;psexec&lt;/span&gt; with a administrator user id and password.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Example: copy following line to delete.bat file&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 102);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;stsadm&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;exe&lt;/span&gt; -o &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;gl&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;deletelistitem&lt;/span&gt; -&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;url&lt;/span&gt; "http://yourserver:port/Approval Requests"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Above line uses &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;powershell&lt;/span&gt; command to delete all contents of a list 'Approval Requests'. You can download &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;powershell&lt;/span&gt; from http://stsadm.blogspot.com/2009/02/downloads.html.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Then run following command from any workstation to execute above batch file remotely to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;sharepoint&lt;/span&gt; server.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 102);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;psexec&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;exe&lt;/span&gt; \\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;sharepointServer&lt;/span&gt; -u &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;yourdomain&lt;/span&gt;\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;sharepointAdmin&lt;/span&gt; -p password  C:\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;batchfilelocation&lt;/span&gt;\delete.bat'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;yourdomain&lt;/span&gt;\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;sharepointAdmin&lt;/span&gt;&lt;/span&gt; should also an administrator to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;sharepoint&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_23"&gt;database&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-3151063551236210154?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/3151063551236210154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2009/08/stsadm-error-message.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/3151063551236210154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/3151063551236210154'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2009/08/stsadm-error-message.html' title='STSADM error message'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-8310740310270816520</id><published>2009-07-10T16:30:00.004+01:00</published><updated>2009-07-13T13:38:09.938+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>This solution contains resources scoped for a Web application and must be deployed to one or more Web applications</title><content type='html'>There are quite a few intricacies which can result in following error message during &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;sharepoint&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;workflow&lt;/span&gt; deployment.&lt;br /&gt;"&lt;i style="color: rgb(255, 153, 102);"&gt;This solution contains resources scoped for a Web application and must be deployed to one or more Web &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;applications&lt;/span&gt;.&lt;/i&gt;"&lt;br /&gt;One of such scenarios described here with possible solution.&lt;br /&gt;I was trying to deploy a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;workflow&lt;/span&gt; having &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;InfoPath&lt;/span&gt; form on it. But in development machine I don't have MOSS &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;installed&lt;/span&gt;. I copied all &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;sharepoint&lt;/span&gt;( and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;sharepoint&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;workflow&lt;/span&gt;) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;dlls&lt;/span&gt; locally. This build fine. No compilation error.&lt;br /&gt;But when I was creating &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;WSP&lt;/span&gt; package using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;WSPBuilder&lt;/span&gt; it was giving a warning message:&lt;br /&gt;"&lt;span style="font-style: italic; color: rgb(255, 153, 102);"&gt;Could not resolve: Microsoft.SharePoint.WorkflowActions, Version=12.0.0.0, Culture=neutral, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;PublicKeyToken&lt;/span&gt;=71e9&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;bce&lt;/span&gt;111e9429c. Please define the -&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;DLLReferencePath&lt;/span&gt; with the path to the referenced assemblies. However a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;SafeControl&lt;/span&gt; tag for the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;WorkflowCode&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;MyWorkflow&lt;/span&gt; class has been created.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you deploy this solution using command line tool in MOSS it gives "&lt;i style="color: rgb(255, 153, 102);"&gt;This solution contains resources scoped for a Web application and must be deployed to one or more Web &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;applications&lt;/span&gt;.&lt;/i&gt;" error message.&lt;br /&gt;&lt;br /&gt;You can still configure this solution from &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_19"&gt;administration&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;UI&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;There are two ways to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;fis&lt;/span&gt; this:&lt;br /&gt;1) simply &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;GAC&lt;/span&gt; the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;dll&lt;/span&gt; in you development machine. This &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;willl&lt;/span&gt; ensure you &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_25"&gt;don't&lt;/span&gt; get the warning message in package creation and no error on deployment either.&lt;br /&gt;2) depending on the reference &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;dll's&lt;/span&gt; and their trust level &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;WSP&lt;/span&gt; builder creates as safe control list. Now when the above &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;dll&lt;/span&gt; is not &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;gac'ed&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;WSP&lt;/span&gt; builder creates &lt;br /&gt;&lt;br /&gt;&lt;assembly location="Bbc.Ww.Paws.Process.HeadcountReplacement.dll" deploymenttarget="GlobalAssemblyCache"&gt;&lt;br /&gt;      &lt;safecontrols&gt;&lt;br /&gt;        &lt;safecontrol assembly="Bbc.Ww.Paws.Process.HeadcountReplacement, Version=1.0.0.0, Culture=neutral, PublicKeyToken=66272b4125b54d87" namespace="Bbc.Ww.Paws.Process.HeadcountReplacement.WorkflowCode" typename="*" safe="True"&gt;&lt;br /&gt;      &lt;/safecontrols&gt;&lt;br /&gt;    &lt;/assembly&gt;&lt;br /&gt;  &lt;/assemblies&gt;&lt;br /&gt;&lt;br /&gt;To deploy this package correctly either delete safe control list manually from the manifest file. Manifest file is located &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_31"&gt;inside&lt;/span&gt; generated &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;WSP&lt;/span&gt; file.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_33"&gt;Alternatively&lt;/span&gt; set the "-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;BuildSafeControls&lt;/span&gt; false" in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;wspbuilder&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_36"&gt;configuration&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;This may not be the best option, but it's solves the issue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-8310740310270816520?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/8310740310270816520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2009/07/this-solution-contains-resources-scoped.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/8310740310270816520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/8310740310270816520'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2009/07/this-solution-contains-resources-scoped.html' title='This solution contains resources scoped for a Web application and must be deployed to one or more Web applications'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-1464384709448933580</id><published>2009-07-01T14:15:00.002+01:00</published><updated>2009-07-01T14:20:37.952+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='timeout'/><category scheme='http://www.blogger.com/atom/ns#' term='Service'/><category scheme='http://www.blogger.com/atom/ns#' term='1053'/><category scheme='http://www.blogger.com/atom/ns#' term='CLR'/><title type='text'>Error 1053: The service did not respond to the start or control request in a timely fashion</title><content type='html'>There could be a list of things that can cause this error. In my case I found not availability of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Internet&lt;/span&gt; access can cause this issue as well.&lt;br /&gt;&lt;br /&gt;Fix was simple, my system was &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;behind&lt;/span&gt; proxy server. After setting the proxy details in the Internet &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;explorer&lt;/span&gt; fixed the issue.&lt;br /&gt;&lt;br /&gt;If your system does not have &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;Internet&lt;/span&gt; access you can avoid this. This is dues the the fact .NET &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;CLR&lt;/span&gt; tries to resolve some space through &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;Internet&lt;/span&gt;. And it does not give up &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;until&lt;/span&gt; it received 404 or similar response.&lt;br /&gt;&lt;br /&gt;You can configure your .NET to avoid that check.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-1464384709448933580?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/1464384709448933580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2009/07/error-1053-service-did-not-respond-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/1464384709448933580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/1464384709448933580'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2009/07/error-1053-service-did-not-respond-to.html' title='Error 1053: The service did not respond to the start or control request in a timely fashion'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-8220062988470989519</id><published>2009-06-29T16:42:00.003+01:00</published><updated>2009-06-29T16:55:31.132+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Global Assembly Cache'/><category scheme='http://www.blogger.com/atom/ns#' term='DLL'/><category scheme='http://www.blogger.com/atom/ns#' term='GAC'/><title type='text'>How to copy dll from GAC</title><content type='html'>Well windows Global Assembly &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Cache&lt;/span&gt;(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;GAC&lt;/span&gt;) is a directory and it's not so. You can add file just &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;dragging&lt;/span&gt; and dropping it in the folder or using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Gacutil&lt;/span&gt;( preferred way :) ). &lt;div&gt;But what about copying back a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;dll&lt;/span&gt; from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;GAC&lt;/span&gt;? I tried to just copy it from windows explorer, but it &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;didn't&lt;/span&gt; work. Context menu does not shows copy/pest. And obviously &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Ctrl&lt;/span&gt;+c &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Ctrl&lt;/span&gt;+v does not work. But as I said it's a directory you can copy it some way.&lt;/div&gt;&lt;div&gt;Simply use command &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;prompt&lt;/span&gt;. From your windows command window change directory to C:\WINDOWS\assembly &lt;/div&gt;&lt;div&gt;When you run '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;dir&lt;/span&gt;' command on this directory you will see following &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;sub directories&lt;/span&gt;:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;GAC&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;GAC&lt;/span&gt;_32&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;GAC&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;MSIL&lt;/span&gt;&lt;/div&gt;&lt;div&gt;NativeImages1_v1.1.4322&lt;/div&gt;&lt;div&gt;NativeImages_v2.0.50727_32&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Go to your target directory, you can derived this information from 'Processor Architecture' columns information in windows explorer(C:\WINDOWS\&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;Assembly&lt;/span&gt;). So for managed code it will be &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;MSIL&lt;/span&gt; and your target directory is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;GAC&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;MSIL&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You are almost there, again '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;dir&lt;/span&gt;' will display list of directory named after all the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;dlls&lt;/span&gt;. Change into &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_22"&gt;intended&lt;/span&gt; directory and you will see directories with version number and your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;dll&lt;/span&gt; is inside that directory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enjoy reverse engineering.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&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/5001037551509839133-8220062988470989519?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/8220062988470989519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2009/06/how-to-copy-dll-from-gac.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/8220062988470989519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/8220062988470989519'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2009/06/how-to-copy-dll-from-gac.html' title='How to copy dll from GAC'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-286891941638108107</id><published>2008-12-19T08:43:00.009Z</published><updated>2009-01-20T17:42:09.149Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='operator'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><title type='text'>Ruby operators et el</title><content type='html'>&lt;div style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 4pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-element: para-border-div; mso-border-bottom-themecolor: accent1"&gt;&lt;p class="MsoTitle"&gt;Table of Content&lt;/p&gt;&lt;/div&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=5001037551509839133&amp;amp;postID=286891941638108107#_Toc217446748"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;=&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;1&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=5001037551509839133&amp;amp;postID=286891941638108107#_Toc217446749"&gt;==&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;3&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446750"&gt;!=&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;3&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=5001037551509839133&amp;amp;postID=286891941638108107#_Toc217446751"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;=~&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;3&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446752"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;!~&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;3&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446753"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&amp;lt;&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;3&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446754"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&gt;&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;3&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446755"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&amp;lt;=&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;3&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446756"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&gt;=&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;4&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446757"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;eql?&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;4&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446758"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;equal?&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;4&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446759"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;%q&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;4&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446760"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;%Q&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;4&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446761"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;#{expr}&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;4&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446762"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;= &amp;lt;&amp;lt;delimiter&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;4&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446763"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;..&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;4&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446764"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;...&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;5&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446765"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;&amp;lt;=&gt;&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;5&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: right 450.8pt" class="MsoToc1"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="file:///C:/Users/Ari/Desktop/Ruby%20Operators.htm#_Toc217446766"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;===&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt; &lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;5&lt;/span&gt;&lt;span style="DISPLAY: none; TEXT-DECORATION: none; mso-hide: screen; text-underline: nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-WEIGHT: normal; mso-no-proof: yes; mso-fareast-language: EN-GB; mso-fareast-: minor-fareastfont-family:'Times New Roman';font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="LINE-HEIGHT: 115%;font-size:10;" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 4pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-element: para-border-div; mso-border-bottom-themecolor: accent1"&gt;&lt;p class="MsoTitle"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;a name="_Toc217446748"&gt;&lt;span class="Heading1Char"&gt;&lt;span style="LINE-HEIGHT: 115%; mso-fareast-language: EN-GBfont-size:14;" &gt;=&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark: _Toc217446748"&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;Assignment operator, it assigns values on the right side( rValue) to the variable in the left side(lValue).&lt;br /&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;a = 1&lt;/span&gt;&lt;/i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;a = b + c&lt;br /&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;x = Array.new &lt;br /&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;a = b = c = 1&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;is equivalent to a= 1, be = 1, and c = 1. i.e. assignment can be chained.&lt;br /&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;a = (b = 4+2) + 3&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;span style="mso-tab-count: 2"&gt;                 &lt;/span&gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt; b = 6, a = 9&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;Parallel assignment:&lt;/span&gt;&lt;/b&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 1"&gt;          &lt;/span&gt;&lt;i&gt;a, b = 3, 4&lt;/i&gt;&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;span style="mso-tab-count: 2"&gt;                 &lt;/span&gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt; a= 3, b = 4.&lt;/span&gt;&lt;/i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;Simple sequence of variables on the left hand side gets assigned to corresponding value from the right hand side. Parallel assignment is pretty useful in some scenario. Let’s say a= 2 and b = 3, Now if you want to swap the values, you can do it single parallel assignment as follows:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;i&gt;a, b = 2, 3&lt;/i&gt;&lt;span style="mso-tab-count: 2"&gt;                   &lt;/span&gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt; a = 2, b = 3&lt;/span&gt;&lt;/i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;i&gt;a, b = b, a&lt;span style="mso-tab-count: 1"&gt;       &lt;/span&gt;&lt;/i&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt; a = 3, b = 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;Splitting Array into multiple variable:&lt;/span&gt;&lt;/b&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt; using parallel assignment an array elements can be assigned to a list of variables.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;a=[1, 2, 3, 4, 5]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;b, c = a &lt;span style="mso-tab-count: 2"&gt;                      &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;» b = 1, c = 2&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;b, *c = a&lt;span style="mso-tab-count: 2"&gt;                      &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;» b = 1, c= [2, 3, 4, 5]&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;b, c&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;= 123, a&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;» b = 123, c = [1,2,3,4,5]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;b, *c = 123, a&lt;span style="mso-tab-count: 2"&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;» b = 123, c= [[1,2,3,4,5]]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;b, c = 123, *a &lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;» b = 123, c = 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;b, *c = 123, *a&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;» b = 123, c = [1,2,3,4,5]&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;Nested assignment:&lt;/span&gt;&lt;/b&gt; &lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;The&lt;b style="mso-bidi-font-weight: normal"&gt; &lt;/b&gt;left-hand side of an assignment may contain a parenthesized list of terms. Ruby treats these terms as if they were a nested assignment statement. It extracts out the corresponding rvalue, assigning it to the parenthesized terms, before continuing with the higher-level assignment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;b, (c, d), e = 1,2,3,4&lt;span style="mso-tab-count: 1"&gt;   &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;           &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;b = 1,&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;c = 2,&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;d = nil, e = 3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;b, (c, d), e = [1,2,3,4]&lt;span style="mso-tab-count: 1"&gt; &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;           &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;b = 1,&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;c = 2,&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;d = nil, e = 3&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;b, (c, d), e = 1,[2,3],4&lt;span style="mso-tab-count: 1"&gt; &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;           &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;b = 1,&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;c = 2,&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;d = 3,&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;e = 4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;b, (c, d), e = 1,[2,3,4],5&lt;span style="mso-tab-count: 1"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;span style="mso-tab-count: 1"&gt;   &lt;/span&gt;b = 1,&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;c = 2,&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;d = 3,&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;e = 5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;b, (c,*d), e = 1,[2,3,4],5&lt;span style="mso-tab-count: 1"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;span style="mso-tab-count: 1"&gt;   &lt;/span&gt;b = 1,&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;c = 2,&lt;span style="mso-tab-count: 1"&gt;    &lt;/span&gt;d = [3, 4],&lt;span style="mso-tab-count: 1"&gt;   &lt;/span&gt;e = 5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a name="_Toc217446749"&gt;&lt;span class="Heading1Char"&gt;&lt;span style="LINE-HEIGHT: 115%;font-size:14;" &gt;==&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark: _Toc217446749"&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;Equality operator. It compares lvalue with the rvalue and result true if they same false otherwise. This compares value only.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;a, b = 2, 3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;a == b &lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»false&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;c = d= 4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;c == d &lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»true&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;e, f= 4, 4.0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;e == f &lt;span style="mso-tab-count: 1"&gt;&lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»true :&lt;/span&gt;&lt;/i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;Notice, although f is a floating point number the comparison return true as their value same.&lt;/span&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a name="_Toc217446750"&gt;&lt;span class="Heading1Char"&gt;&lt;span style="LINE-HEIGHT: 115%;font-size:14;" &gt;!=&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark: _Toc217446750"&gt;&lt;/span&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;&lt;a name="_Toc217446751"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;=~&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p class="MsoNormal"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;&lt;a name="_Toc217446752"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;!~&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p class="MsoNormal"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;&lt;a name="_Toc217446753"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&amp;lt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p class="MsoNormal"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;&lt;a name="_Toc217446754"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p class="MsoNormal"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;&lt;a name="_Toc217446755"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&amp;lt;=&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p class="MsoNormal"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;&lt;a name="_Toc217446756"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&gt;=&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p class="MsoNormal"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;&lt;a name="_Toc217446757"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;eql?&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p class="MsoNormal"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;&lt;a name="_Toc217446758"&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;equal?&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-fareast-language: EN-GB;font-family:'Times New Roman';" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p class="MsoNormal"&gt;&lt;span style="mso-fareast-language: EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;a name="_Toc217446759"&gt;&lt;span class="Heading1Char"&gt;&lt;span style="mso-fareast-language: EN-GB;font-size:14;" &gt;%q&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark: _Toc217446759"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;General purpose single quoted string&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;%q/something as a string/&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;   &lt;span style="mso-tab-count: 3"&gt;                                   &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt; something as a string&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;a name="_Toc217446760"&gt;&lt;span class="Heading1Char"&gt;&lt;span style="mso-fareast-language: EN-GB;font-size:14;" &gt;%Q&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark: _Toc217446760"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;General purpose double quoted string&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;%Q{something as a string} &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;      &lt;span style="mso-tab-count: 2"&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;something as a string&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;%QString with expression #{50*6} &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 1"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;String with replacement 300&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;a name="_Toc217446761"&gt;&lt;span class="Heading1Char"&gt;&lt;span style="mso-fareast-language: EN-GB;font-size:14;" &gt;#{expr}&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark: _Toc217446761"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;A Ruby expression block. This specific sequence used in string to create or format a string, generate value dynamically. It simply implies that the block of code inside the curly braces will get executed and the result will be embedded into the string. This sequence only can be used in double quoted string.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;"10 inch  = #{ 10*2.54} cm"&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 4"&gt;                                     &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;10 inch  = 25.4 cm&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;"#{'Ho! '*3} Merry Christmas"&lt;span style="mso-tab-count: 1"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 2"&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;Ho! Ho! Ho!  Merry Christmas&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;a name="_Toc217446762"&gt;&lt;span class="Heading1Char"&gt;&lt;span style="mso-fareast-language: EN-GB;font-size:14;" &gt;= &amp;lt;&amp;lt;delimiter&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark: _Toc217446762"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;This is special marker called document to write long text. Anything you write after the document until the delimiter is found is assigned to the string variable. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;aString = &lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:Arial;font-size:12;color:black;"   &gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;END_OF_STRING&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;    The body of the string&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;    is the input lines up to&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;    one ending with the same&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;    text that followed the '&lt;&lt;'&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;END_OF_STRING&lt;span style="mso-tab-count: 1"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 2"&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;"    The body of the string\n    is the input lines up to\n    one ending with the same\n    text that followed the '&lt;&lt;'\n"&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;a name="_Toc217446763"&gt;&lt;span class="Heading1Char"&gt;&lt;span style="mso-fareast-language: EN-GB;font-size:14;" &gt;..&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark: _Toc217446763"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;Range operator; syntax is m..n implies from m up to n , m and n inclusive. m/n could be number, alphabet or any object that implements range.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;1..4&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt; 1, 2, 3, 4&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;'a'..'k'&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 1"&gt;   &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt; a, b, c, d, e, f, g, h, i, j, k&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;a name="_Toc217446764"&gt;&lt;span class="Heading1Char"&gt;&lt;span style="mso-fareast-language: EN-GB;font-size:14;" &gt;...&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark: _Toc217446764"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;Range operator; syntax is m...n implies from m up to n , m included but not n. m/n could be number, alphabet or any object that implements range.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;1...4&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 2"&gt;                 &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt; 1, 2, 3&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;'a'...'k'&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 1"&gt;  &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt; a, b, c, d, e, f, g, h, i, j&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;a name="_Toc217446765"&gt;&lt;span class="Heading1Char"&gt;&lt;span style="mso-fareast-language: EN-GB;font-size:14;" &gt;&amp;lt;=&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark: _Toc217446765"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;Refer to &lt;a href="http://ari-techno.blogspot.com/2008/12/lt-is-spaceship-operator-of-ruby.html"&gt;spaceship operator&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;a name="_Toc217446766"&gt;&lt;span class="Heading1Char"&gt;&lt;span style="mso-fareast-language: EN-GB;font-size:14;" &gt;===&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark: _Toc217446766"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;Case equality operator. Used to test equality within a when clause of a case statement. All Ruby class implements this operator. In most cases this implies if the value falls within the range. But it can vary depending on the implementation of the class. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;(1..10) === 3 &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 2"&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt; true&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;(1..10) ===11&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;span style="mso-tab-count: 2"&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;»&lt;/span&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt; false&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;kind = case year&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;         when 1850..1889 then "Blues"&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;         when 1890..1909 then "Ragtime"&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;         when 1910..1929 then "New Orleans Jazz"&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;         when 1930..1939 then "Swing"&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;         when 1940..1950 then "Bebop"&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;         else                 "Jazz"&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;i&gt;&lt;span style="FONT-FAMILY: 'Arial', 'sans-serif'; mso-fareast-language: EN-GBfont-family:'Times New Roman';font-size:12;color:black;"   &gt;       end&lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;In the above example === operator used in every when clause to identify the match. Simply &lt;i&gt;comparison === target&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY: 'Georgia', 'serif'; mso-fareast-language: EN-GB; mso-fareast-font-family: 'Times New Roman'font-family:'Times New Roman';font-size:12;color:black;"   &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="tab-stops: 153.0pt" class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-286891941638108107?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/286891941638108107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2008/12/ruby-operators-et-el.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/286891941638108107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/286891941638108107'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2008/12/ruby-operators-et-el.html' title='Ruby operators et el'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-3088478213131960863</id><published>2008-12-18T09:47:00.002Z</published><updated>2008-12-18T10:00:23.230Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='spaceship operator'/><title type='text'>&lt;=&gt;</title><content type='html'>&lt;span class="Apple-style-span"  style=" ;font-family:'Times New Roman';"&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "&gt;&lt;span class="Apple-style-span"   style="white-space: pre; font-family:Arial;font-size:13px;"&gt;&lt;=&amp;gt;&lt;/span&gt; is spaceship operator of Ruby. This is general purpose comparison operator. It compares two values and returns -1, 0, +1 depending on whether value1 is less then, equal or grater than value2.&lt;div&gt;value1 &lt;&lt;span class="Apple-style-span"   style="white-space: pre; font-family:Arial;font-size:13px;"&gt;=&amp;gt; &lt;span class="Apple-style-span"   style="white-space: normal; font-family:Georgia;font-size:16px;"&gt;value2 =&amp;gt; -1 : if value1 &lt; value2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;      &lt;/span&gt;   0 : if value1 = value2 &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;      &lt;/span&gt; +1 : if value1 &amp;gt; value2 &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This operator is equivalent to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;ICompare&lt;/span&gt;.Compare( Object x, Object y) methods of .NET library.&lt;/div&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/5001037551509839133-3088478213131960863?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/3088478213131960863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2008/12/lt-is-spaceship-operator-of-ruby.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/3088478213131960863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/3088478213131960863'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2008/12/lt-is-spaceship-operator-of-ruby.html' title='&amp;lt;=&amp;gt;'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-7887512576843656639</id><published>2008-12-11T13:37:00.002Z</published><updated>2008-12-11T13:45:41.013Z</updated><title type='text'>Registering ASP.NET to IIS</title><content type='html'>&lt;div&gt;Registering or removing ASP .NET in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;IIS&lt;/span&gt; is simple. It takes only two steps:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Open Visual studio command prompt( dos)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;run &lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;aspnet&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;regiis&lt;/span&gt; -i&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Depending on the version you want to register you have to use correspond command prompt. i.e. to register .NET 2.0 use VS 2005 or VS2008 command prompt and for .NET 1.1 user VS .NET 2003 command prompt.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To remove a registered version use : &lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;aspnet&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;regiis&lt;/span&gt; -u&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-7887512576843656639?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/7887512576843656639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2008/12/registering-aspnet-to-iis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/7887512576843656639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/7887512576843656639'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2008/12/registering-aspnet-to-iis.html' title='Registering ASP.NET to IIS'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-5487500802550988756</id><published>2008-10-23T17:17:00.004+01:00</published><updated>2008-10-27T10:03:12.597Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='BAM'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Assembly management'/><category scheme='http://www.blogger.com/atom/ns#' term='GAC'/><title type='text'>Don't mess with GAC</title><content type='html'>I was doing some work with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;BizTalk&lt;/span&gt;&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;BAM&lt;/span&gt;&lt;/span&gt;. As you know after every change; you need to deploy/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;GAC&lt;/span&gt;&lt;/span&gt; every assembly(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;dll&lt;/span&gt;&lt;/span&gt;) used in a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;BizTalk&lt;/span&gt;&lt;/span&gt; project. I was &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;doing&lt;/span&gt; the same &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;until&lt;/span&gt; out of refactoring I renamed couple of library while keeping others intact. &lt;div&gt;&lt;br /&gt;&lt;div&gt;Apparently it should not cause any problem. Just redeploy them!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But it &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;didn't&lt;/span&gt; work. The &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;error&lt;/span&gt; message was quite clear, one of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;dll&lt;/span&gt;&lt;/span&gt; ( name unchanged) is still being &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;referenced&lt;/span&gt; by some of the old library( name changed). And as they are not in the current deployment list anymore, Visual studio is not &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;un&lt;/span&gt;-&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;installing&lt;/span&gt; them automatically. &lt;/div&gt;&lt;div&gt;What should I do. Just thought why not just drag them out of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;GAC&lt;/span&gt;&lt;/span&gt;. So simple.!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now as the related &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;BizTalk&lt;/span&gt; application still &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;referring&lt;/span&gt; old assemblies, it can't delete the application, because it can't find required &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;dlls&lt;/span&gt; in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;GAC&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How to fix it now???!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why not just dive into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;BizTalk&lt;/span&gt; database and delete those application configuration information. Did that !!! So stupid!!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm not a guru of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;BizTalk&lt;/span&gt; internal database &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;obvious&lt;/span&gt; reason i messed up the database. And you know what I had to reinstall the whole dam &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;BizTalk&lt;/span&gt;[ my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;dev&lt;/span&gt; machine only :) ] again. Amy be I could have only reconfigure it. But that thought never cam in my mind in the first place. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So the moral of the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_17"&gt;story&lt;/span&gt; is, don't play around with assemblies in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;GAC&lt;/span&gt; use &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_19"&gt;proper&lt;/span&gt; tools to do the job.  :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&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/5001037551509839133-5487500802550988756?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/5487500802550988756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2008/10/dont-be-dumb-like-me.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/5487500802550988756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/5487500802550988756'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2008/10/dont-be-dumb-like-me.html' title='Don&apos;t mess with GAC'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-207635619401924672</id><published>2008-10-23T17:07:00.003+01:00</published><updated>2008-10-23T17:17:09.108+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuration Error'/><category scheme='http://www.blogger.com/atom/ns#' term='BAM'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Business Activity Monitoring'/><title type='text'>Failed to set up BAM database(s)</title><content type='html'> Error Message:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;ERROR: Failed to set up BAM database(s).&lt;br /&gt;The alert infrastructure was not created.&lt;br /&gt;Cannot start service NS$BAMAlerts on computer '.'.&lt;br /&gt;The service did not respond to the start or control request in a timely fashion..&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Environment : BizTalk 2006 R2 with SQL Server Server 2005 developer edition in Windows 2003 server.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Solution:&lt;/div&gt;&lt;div&gt;This is due to some security/Access problem with the user account being used for BAM configuration. I am not sure yet what exactly the access it's looking for. But the solution is to use a domain account with admin right to the targetted system. Try configuring with a domain account with admin right, BAM Tools and Portal should configure correctly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-207635619401924672?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/207635619401924672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2008/10/failed-to-set-up-bam-databases.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/207635619401924672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/207635619401924672'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2008/10/failed-to-set-up-bam-databases.html' title='Failed to set up BAM database(s)'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-4089663915609366349</id><published>2008-10-07T13:41:00.002+01:00</published><updated>2008-10-07T14:00:53.289+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Set Parameter'/><category scheme='http://www.blogger.com/atom/ns#' term='Setting Expectation'/><category scheme='http://www.blogger.com/atom/ns#' term='Rhino Mocks'/><title type='text'>Setting Expection on Set Paramter using Rhino Mocks</title><content type='html'>Setting expectation for set_parameter call on a mocked object is almost same as setting expectation to a method call. i.e. you record your &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;expectation&lt;/span&gt; in the record() block;&lt;br /&gt;&lt;br /&gt;First create a mock object&lt;br /&gt;var car = repository.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;StrictMock&lt;/span&gt;();&lt;br /&gt;&lt;br /&gt;then set the expectation like follows:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;       using(repository.Record())&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color:#ff6666;"&gt;car.Name = "any";&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#009900;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;LastCall&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;IgnoreArguments&lt;/span&gt;();&lt;/span&gt;&lt;br /&gt;            }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;where mocked object has a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;settable&lt;/span&gt; parameter name. So your test expects a call to car.Name in the execution scope. Red line of code says you are expecting a set call. And the green line says ignore he value is being set. So this code just checking that the set_Name is getting invoked.&lt;br /&gt;If you know what value is going to be set, then simply remove the green line.&lt;br /&gt;&lt;br /&gt;This test does not need separate assertion &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;about&lt;/span&gt; the value etc. Rhino Mocks framework takes care of that. Framework automatically all recorded expectation. If one missing or extra invocation &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;happened&lt;/span&gt; in the execution scope, it will through exception and the test will fail.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Complete example is as follows:&lt;br /&gt;-------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;NUnit&lt;/span&gt;.Framework;&lt;br /&gt;using Rhino.Mocks;&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;namespace&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;RhinoMockExampleTest&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    [&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;TestFixture&lt;/span&gt;]&lt;br /&gt;    public class Example1Test&lt;br /&gt;    {&lt;br /&gt;        [Test]&lt;br /&gt;        public void &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;SetParameterTest&lt;/span&gt;()&lt;br /&gt;        {&lt;br /&gt;            var repository = new &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;MockRepository&lt;/span&gt;();&lt;br /&gt;            var car = repository.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;StrictMock&lt;/span&gt;&lt;icar&gt;();&lt;br /&gt;            var &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;carMaker&lt;/span&gt; = new &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;CarMaker&lt;/span&gt;();&lt;br /&gt;            using(repository.Record())&lt;br /&gt;            {&lt;br /&gt;                car.Name = "any";&lt;br /&gt;                &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;LastCall&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;IgnoreArguments&lt;/span&gt;();&lt;br /&gt;            }&lt;br /&gt;            using( repository.Playback())&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;carMaker&lt;/span&gt;.Create( car );&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public class &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;CarMaker&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        public void Create(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;ICar&lt;/span&gt; car)&lt;br /&gt;        {&lt;br /&gt;            car.Name = "some name";&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public interface &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;ICar&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        string Name{ get; set;}&lt;br /&gt;        string Type { get; set; }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-4089663915609366349?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/4089663915609366349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2008/10/setting-expection-on-set-paramter-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/4089663915609366349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/4089663915609366349'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2008/10/setting-expection-on-set-paramter-using.html' title='Setting Expection on Set Paramter using Rhino Mocks'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-8119807553400655109</id><published>2008-09-03T19:44:00.001+01:00</published><updated>2008-09-03T19:48:19.100+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='Exception'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>.NET Exceptions again</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Debugging in Visual Studio sometime really gets you bugged with annoying error messages. I have listed here are a few of them:&lt;/div&gt;&lt;div&gt;1.&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;A first chance exception of type 'System.Configuration.ConfigurationErrorsException' occurred in System.Configuration.dll. Additional information: This element is not currently associated with any context&lt;/div&gt;&lt;div&gt;2.&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;A first chance exception of type 'System.InvalidOperationException' occurred in System.dll. Additional information: Instance names used for writing to custom counters must be 127 characters or less. &lt;/div&gt;&lt;div&gt;3.&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;A first chance exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll . Additional information: Could not load file or assembly 'myProjectProxy.XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.&lt;/div&gt;&lt;div&gt;Scenario 1 and 3 is seems to be problem with the implementation of .NET libraries. In their normal processing they throw exception. It catches them and follow alternate execution path. In short developer (debugger :) )Don’t need to worry about it simply ignore them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For number 2 lots of people has lot of thing to say. None of them so far solved my problem. I will update once I find a solution. As I said again this one also doesn’t stop my application from working. But still i tried to fix it. After googling I found somebody was saying adding following parameter in web/app config will fix the problem. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&amp;lt;userDeploymentRoot&lt;br /&gt;type=“System.String“&gt;c:\temp&amp;lt;/userDeploymentRoot&gt;&lt;br /&gt;&amp;lt;useDefaultDeploymentRoot&lt;br /&gt;type=“System.Boolean“&gt; False&amp;lt;/useDefaultDeploymentRoot&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Well this didn't solve the problem yet. As I was saying these stuff are annoying but we gotta live with it.&lt;/div&gt;&lt;div&gt;Happy debugging :)&lt;/div&gt;&lt;div&gt;&lt;br /&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/5001037551509839133-8119807553400655109?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/8119807553400655109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2008/09/net-exceptions-again.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/8119807553400655109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/8119807553400655109'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2008/09/net-exceptions-again.html' title='.NET Exceptions again'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-5062451269099680029</id><published>2008-09-02T11:09:00.005+01:00</published><updated>2008-09-02T14:28:21.154+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Extension Methods'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>What's New C# 3: Extension methods</title><content type='html'>&lt;div&gt;Extension methods allows developer to add extra method to an existing class without creating a derivative of it or without modifying the original class code. Lets take an example of the standard C# library String class. We want to add a method to validate if the string length is zero or not. An extra method can be added to this class by simple implementing a method using extension method syntax. Extension method signature looks like this :&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;public&gt;static &lt;&lt;em&gt;returnType&lt;/em&gt;&gt; methodName( this CalssToExtend thisObject, &lt;em&gt;additional parameters list.....&lt;/em&gt;)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;em&gt;methods body&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;So in our example of string class if we add a method called IsZero to return true when check passed; it will look like&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;public static bool IsZero( this string thisObj )&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;return thisObj.Length== 0;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;The 'this' word before the first parameter in the method identifies which class this method relates to. In this case it's string class.&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;A working example is as follows.&lt;br /&gt;&lt;br /&gt;=====================&lt;br /&gt;&lt;code&gt;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;&lt;br /&gt;namespace ConsoleApplication1&lt;br /&gt;{&lt;br /&gt;public static class Program&lt;br /&gt;{&lt;br /&gt;private static void Main(string[] args)&lt;br /&gt;{&lt;br /&gt;var postcode = "SL2 8FF";&lt;br /&gt;var flag = postcode.IsPostcode();&lt;br /&gt;// var costs = new List&lt;double&gt;();&lt;br /&gt;// var sum = costs.&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static class Extension&lt;br /&gt;{&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// An extension method to String class to check whether this string is a postcode.&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;/// &lt;param name="input"&gt;&lt;/param&gt;&lt;br /&gt;/// &lt;returns&gt;&lt;/returns&gt;&lt;br /&gt;public static bool IsPostcode(this string input)&lt;br /&gt;{&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// And extension method to List to return sum of all entry of the list&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;/// &lt;param name="inputList"&gt;&lt;/param&gt;&lt;br /&gt;/// &lt;returns&gt;&lt;/returns&gt;&lt;br /&gt;public static double Sum( this IList&lt;double&gt; inputList )&lt;br /&gt;{&lt;br /&gt;var sum = 0.0;&lt;br /&gt;foreach( var item in inputList )&lt;br /&gt;sum += item;&lt;br /&gt;return sum;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;==================== &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Few points to remember:&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Extension method implementer class has to be static class.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;All extension methods must be static&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Advantage:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Don't need to derive a class to extend it. This is specially useful when a class is not derivable.&lt;/li&gt;&lt;a href="http://4.bp.blogspot.com/_8QLpjpE6kfY/SL0w73OxxeI/AAAAAAAAFrw/Ld93vmHKllY/s1600-h/extensionMethod.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5241399346325472738" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_8QLpjpE6kfY/SL0w73OxxeI/AAAAAAAAFrw/Ld93vmHKllY/s400/extensionMethod.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Methods are visible in intellisense drop down menu.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Extension can be added to interfaces. When a extension is added to a Interface it's applied/available to all its derive classes. &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/5001037551509839133-5062451269099680029?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/5062451269099680029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2008/09/whats-new-c-3-extension-methods.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/5062451269099680029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/5062451269099680029'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2008/09/whats-new-c-3-extension-methods.html' title='What&apos;s New C# 3: Extension methods'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_8QLpjpE6kfY/SL0w73OxxeI/AAAAAAAAFrw/Ld93vmHKllY/s72-c/extensionMethod.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-3197103326833049635</id><published>2008-08-28T16:03:00.005+01:00</published><updated>2008-08-28T16:42:50.787+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unit Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Exception'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>This element is not currently associated with any context</title><content type='html'>&lt;div&gt;When debugging unit for a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;WCF&lt;/span&gt; client in Visual studio 2008 you often come across following error message. "A first chance exception of type 'System.Configuration.ConfigurationErrorsException' occurred in System.Configuration.dll&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Additional information: This element is not currently associated with any context"&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;If the test is executed in non debug mode it works fine, without any &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;glitches&lt;/span&gt;. This is because some of the exception which otherwise handled by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;WCF&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;library&lt;/span&gt; is not handled in debug mode.Fix is &lt;a href="http://3.bp.blogspot.com/_8QLpjpE6kfY/SLbDKvaM1kI/AAAAAAAAFrQ/_h82ppR0wLM/s1600-h/exception.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5239589805784618562" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_8QLpjpE6kfY/SLbDKvaM1kI/AAAAAAAAFrQ/_h82ppR0wLM/s320/exception.JPG" border="0" /&gt;&lt;/a&gt;simple.  Open the Exception dialog box from Debug menu and deselect the Common Language &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Runtime&lt;/span&gt; Exception &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;check box&lt;/span&gt;. Shown in red in following diagram. This &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;simply&lt;/span&gt; tells Visual Studio not to break in system exception.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;This happens because &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;WCF&lt;/span&gt; throws and catches exception for it's normal application flow. Apparently there is no fix to it. See the post in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;MSDN&lt;/span&gt;(&lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1025211&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1025211&amp;amp;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;SiteID&lt;/span&gt;=1&lt;/a&gt;).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-3197103326833049635?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/3197103326833049635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2008/08/this-element-is-not-currently.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/3197103326833049635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/3197103326833049635'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2008/08/this-element-is-not-currently.html' title='This element is not currently associated with any context'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_8QLpjpE6kfY/SLbDKvaM1kI/AAAAAAAAFrQ/_h82ppR0wLM/s72-c/exception.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-5805973604254915271</id><published>2007-12-30T20:29:00.000Z</published><updated>2007-12-30T20:43:29.900Z</updated><title type='text'>Clickable row in ASP .NET Table II: Adding some functionality</title><content type='html'>In &lt;a href="http://ari-techno.blogspot.com/2007/12/clickable-row-in-asp-net-table.html"&gt;last blog&lt;/a&gt; you have learnt how to make Table row click able. Unfortunately it hardly does anything. This time we will add some functionality to it. This time on click of we are going to change the background color of the row.&lt;br /&gt;&lt;br /&gt;First we are going to modify the JavaScript function to take some parameter.&lt;br /&gt;&lt;br /&gt;&amp;lt; script type="text/javascript"&gt;&lt;br /&gt;function ToggleColor( selectedRow )&lt;br /&gt;{&lt;br /&gt;     if( tableRow.style.backgroundColor == 'red';)&lt;br /&gt;           tableRow.style.backgroundColor = 'blue';&lt;br /&gt;    else&lt;br /&gt;         tableRow.style.backgroundColor = '#red';&lt;br /&gt;}&lt;br /&gt;&amp;lt; / script&gt;&lt;br /&gt;&lt;br /&gt;ToggleColor takes a TableRow HTML DOM object as argument. It then checks if the background color of the row is red, if so set it to blue otherwise red.&lt;br /&gt;This will toggle row color to red and blue if you keep clicking the row.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now wee need to change the Table and javascript method association to call new method with argument.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;       row.Attributes.Add("onClick", "javascript:ToggleColor(this);");&lt;br /&gt;&lt;br /&gt;You must have noticed the difference. Yea we are passing 'this' object. Which refers to the invoking row. And that's does all the tricks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Keep clicking :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-5805973604254915271?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/5805973604254915271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2007/12/clickable-row-in-asp-net-table-ii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/5805973604254915271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/5805973604254915271'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2007/12/clickable-row-in-asp-net-table-ii.html' title='Clickable row in ASP .NET Table II: Adding some functionality'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-4046496395827490071</id><published>2007-12-30T19:39:00.000Z</published><updated>2007-12-30T20:44:09.874Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML Table'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET TABLE'/><title type='text'>Clickable row in ASP .NET Table</title><content type='html'>Easy three steps to create click able row in ASP .NET table. This is accomplished using JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step one: Create an ASP Table&lt;/span&gt;&lt;br /&gt;Adding a table in an .aspx file is easy. Just drag and drop the table icon from toolbox. Add header row. Or simply copy paste following code.&lt;br /&gt;&lt;br /&gt;&amp;lt; asp:table id="employeeTable" runat="server" cellpadding="0" cellspacing="0"&gt;&lt;br /&gt;&amp;lt; asp:tableheaderrow&gt;&lt;br /&gt;&amp;lt; asp:tableheadercell&gt;First Name &amp;lt; /asp:tableheadercell&gt;&lt;br /&gt;&amp;lt; asp:tableheadercell&gt;Last Name &amp;lt; /asp:tableheadercell&gt;&lt;br /&gt;&lt;br /&gt;           &amp;lt; /asp:tableheaderrow&gt;&lt;br /&gt;       &amp;lt; /asp:table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step two: Write a JavaScript function&lt;/span&gt; to invoke from onClick event of table row.&lt;br /&gt;&amp;lt; script type="text/javascript"&gt;&lt;br /&gt;function SayHello( )&lt;br /&gt;{&lt;br /&gt;alert( "Hello there." );&lt;br /&gt;}&lt;br /&gt;&amp;lt; / script&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step three: put them together&lt;br /&gt;Now you just one inch away to get your result. What you need to do is to add appropriate attribute the table row.&lt;br /&gt;Lets add a row in the table and associate the click event handler with the row. We are going to do that in page load event handler.&lt;br /&gt;&lt;br /&gt;protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;   {&lt;br /&gt;       TableCell name = CreateCell( "John" );&lt;br /&gt;       TableCell lastName = CreateCell( "Smith" );&lt;br /&gt; &lt;br /&gt;       TableRow row = CreateRow( new TableRow[]{ name, lastName});&lt;br /&gt;&lt;br /&gt;      this.employeeTable.Rows.Add( row );&lt;br /&gt;&lt;br /&gt;//this is the glue between your JavaScript and TableRow&lt;br /&gt;&lt;br /&gt;       row.Attributes.Add("onClick", "javascript:SayHello();");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public static TableRow CreateRow( TableCell []cells)&lt;br /&gt;   {&lt;br /&gt;       TableRow row = new TableRow();&lt;br /&gt;       foreach (TableCell cell in cells)&lt;br /&gt;           row.Cells.Add(cell);&lt;br /&gt;       return row;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;public static TableCell CreateCell(String text)&lt;br /&gt;   {&lt;br /&gt;       Label label = new Label();&lt;br /&gt;       label.Text = text;&lt;br /&gt;&lt;br /&gt;       TableCell cell = new TableCell();&lt;br /&gt; &lt;br /&gt;       cell.Controls.Add( label);&lt;br /&gt; &lt;br /&gt;       return cell;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now simply run your program. Click on the row. It should display a alert box.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ari-techno.blogspot.com/2007/12/clickable-row-in-asp-net-table-ii.html"&gt;Part II&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-4046496395827490071?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/4046496395827490071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2007/12/clickable-row-in-asp-net-table.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/4046496395827490071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/4046496395827490071'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2007/12/clickable-row-in-asp-net-table.html' title='Clickable row in ASP .NET Table'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-5531569145247120023</id><published>2007-11-17T21:23:00.000Z</published><updated>2007-11-25T15:13:05.846Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SELECT'/><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Selecting specific rows in MySQL</title><content type='html'>&lt;strong&gt;Selecting Top N&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Following select query returns top ten rown from my table. As there is no ORDER BY clause, it returns arbitery rows.&lt;br /&gt;SELECT * FROM mytable LIMIT 10;&lt;br /&gt;&lt;br /&gt;To return rows with specific sorting use ORDER BY as follows:&lt;br /&gt;&lt;br /&gt;SELECT * FROM myTable ORDER BY myId LIMIT 10;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Selecting Top N to M &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;MySQL provide special keyword called OFFSET. This works like 'to' as in 10 to 20. So to return top 10 to 20 rows SELECT query would be&lt;br /&gt;SELECT * FROM myTable ORDER BY myId LIMIT 10 OFFSET 20;&lt;br /&gt;or simply SELECT * FROM myTable ORDER BY myId LIMIT 10, 20;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Passing the LIMIT dynamically&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;If you want to pass the LIMIT value as a parameter to a stored procedure, the it has to be written little bit differently. Here how :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;CREATE PROCEDURE USP_GETMYTABLEENTRIES( startAt INT(2), numberOfRecords INT(2))&lt;br /&gt;BEGIN&lt;br /&gt;SET @_start = startAt, @records = numberOfRecords;PREPARE myStatement FROM 'SELECT * FROM myTable ORDER BY myId ASC LIMIT ?, ?';EXECUTE myStatement USING @_start, @records;DEALLOCATE PREPARE myStatement;&lt;br /&gt;END;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-5531569145247120023?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/5531569145247120023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2007/11/selecting-specific-rows-in-mysql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/5531569145247120023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/5531569145247120023'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2007/11/selecting-specific-rows-in-mysql.html' title='Selecting specific rows in MySQL'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001037551509839133.post-5285380998473253015</id><published>2007-11-13T13:57:00.000Z</published><updated>2007-11-13T20:15:26.772Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='nHibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>nHibernate and multithreading - I</title><content type='html'>nHibernate is no doubt is a great open source utility to encapsulate database connectivity. It has lot of feature that can make your system robust. You can read more details about nHibernate from &lt;a href="http://www.hibernate.org/"&gt;nHibernate.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But when it comes to multi-threading programming you have to be very cautious in your development. There are plenty of place it can work differently than you want it to be. Concurrency is a big think to keep in mind. I don't mean that nHibernate can't handle multi-threading or concurrent request. Rather is very efficient in multi threading, but the programmer has to be vigilant while setting properties and use method call to manipulate or to retrieve data.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In this post I want to discuss about stale data in multithreaded environment cache. Lets consider a web service which exposes two methods UpdateUser() to update user profile and GetUser() to retrieve a user details. In a typical scenario application uses this web service will make a call to UpdateUser and then GetUser to read updated details.&lt;br /&gt;&lt;br /&gt;In some scenario it might happen that the GetUser return old user profile, instead of latest updated one. At a first glance it might look impossible, as you are updating first and then calling get. But it happens.&lt;br /&gt;&lt;br /&gt;Lets see what going on the the web service side. When any one makes a request to a web service web server handle using separate thread. In most scenario server uses thread pooling to minimise thread creation overhead. Along with that as nHibernate suggests the Session is not shared among threads. the resultant is that the primary cache is separate for separate threads. resultant is calls reading data from different data cache. So now even if GetUser is called after UpdateUser if they are handled by different thread in the server, the UserProfile object may be out of sync. This is happens b'cus nHibernate try to read data from cache if it's available.&lt;br /&gt;&lt;br /&gt;To solve this issue caller simply has make sure that nHibernate picks up the data from database not from the cache. This can be done in very simple way. Use pessimistic Locking. ISession provides Lock() to do that.&lt;br /&gt;&lt;br /&gt;example:&lt;br /&gt;&lt;br /&gt;work in thread one:&lt;br /&gt;&lt;br /&gt;ISessionFactory sessions;&lt;br /&gt;IList profiles;&lt;br /&gt;UserProfile profile;&lt;br /&gt;....&lt;br /&gt;ISession session = sessions.OpenSession();&lt;br /&gt;...&lt;br /&gt;ICriteria criteria = session.CreateCriteria(typeof(UserProfile));&lt;br /&gt;profiles= criteria.List();&lt;br /&gt;&lt;br /&gt;....&lt;br /&gt;//do some updating&lt;br /&gt;&lt;br /&gt;Profile profile = profiles[0];&lt;br /&gt;profile.HomePhone = "0208 212 3333334";&lt;br /&gt;session.SaveOrUpdate(profile);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;while reading data:&lt;br /&gt;&lt;br /&gt;Profile profileToRead = profiles[0];&lt;br /&gt;session.Lock( profileToRead, LockMode.Read); // this will ensure profile updating, and will not return stale data.&lt;br /&gt;&lt;br /&gt;In this scenario Session does a version number check of the cache object with actual data store. If they are different it updated the cache with latest version of the object and thus it always returns updated data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001037551509839133-5285380998473253015?l=ari-techno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ari-techno.blogspot.com/feeds/5285380998473253015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ari-techno.blogspot.com/2007/11/nhibernate-and-multithreading-i.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/5285380998473253015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001037551509839133/posts/default/5285380998473253015'/><link rel='alternate' type='text/html' href='http://ari-techno.blogspot.com/2007/11/nhibernate-and-multithreading-i.html' title='nHibernate and multithreading - I'/><author><name>Ari Biswas</name><uri>https://profiles.google.com/100506785852772181686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--MuvHgKtdao/AAAAAAAAAAI/AAAAAAAALa0/xAGO9OANa0w/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
