<?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-8418874662877846453</id><updated>2011-12-16T08:49:15.885-08:00</updated><category term='facebook.com'/><category term='UNIX'/><category term='Use Case'/><category term='Silly Buggers'/><category term='Code Clarity'/><category term='Data base'/><category term='Responsibility'/><category term='Sun Microsystems'/><category term='well-craftedness'/><category term='living document'/><category term='Workflow'/><category term='FreeBSD'/><category term='expression'/><category term='Mark Zuckerberg'/><category term='Rest'/><category term='User Stories'/><category term='Software Engineering Culture'/><category term='Computer History Museum'/><category term='JQuery'/><category term='silly-buggers'/><category term='Meme'/><category term='The Facebook Effect'/><category term='Functional'/><category term='memetic vocabulary'/><category term='Lambda'/><category term='Memetics'/><category term='CRC'/><category term='Zeitgeist'/><category term='Collaboration'/><category term='History'/><category term='code'/><category term='programming language'/><category term='Knowledge Worker Culture'/><category term='Meta Data'/><category term='nonsense'/><category term='Story-Telling'/><category term='Innovation of Sharing'/><category term='Facebook'/><category term='repository'/><category term='Social Networking'/><category term='Knowledge Units'/><category term='Class'/><title type='text'>Psychology of Computing</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-7685391482410553530</id><published>2011-09-15T13:41:00.001-07:00</published><updated>2011-09-15T13:41:27.564-07:00</updated><title type='text'>Run It</title><content type='html'>&lt;pre&gt;  Public Function GetCollection() As List(Of NewsCatagory)&lt;br /&gt;        Dim _message As String = String.Format("Get Collection of NewsCatagory failed;")&lt;br /&gt;        Dim _cacheName As String = String.Format("NewsCatagoryGetCollection")&lt;br /&gt;        If HttpRuntime.Cache(_cacheName) Is Nothing Then&lt;br /&gt;            Dim NewsCatagoryList As List(Of NewsCatagory) = New List(Of NewsCatagory)&lt;br /&gt;            Try&lt;br /&gt;&lt;br /&gt;                Using cn As SqlConnection = New SqlConnection(Connstring)&lt;br /&gt;                    cn.Open()&lt;br /&gt;                    Dim cmd As SqlCommand = New SqlCommand("General.sp_wb_Get_NewsCatagory", cn)&lt;br /&gt;                    cmd.CommandType = CommandType.StoredProcedure&lt;br /&gt;                    REM call with blank parameters, returns all items...&lt;br /&gt;                    Dim r As SqlDataReader = cmd.ExecuteReader()&lt;br /&gt;                    While r.Read&lt;br /&gt;                        Dim item As NewsCatagory = New NewsCatagory()&lt;br /&gt;                        item.Deserialize(r.ToDataRow())&lt;br /&gt;                        NewsCatagoryList.Add(item)&lt;br /&gt;                    End While&lt;br /&gt;                    cn.Close()&lt;br /&gt;                End Using&lt;br /&gt;                HttpRuntime.Cache.Insert(_cacheName, NewsCatagoryList, Nothing,&lt;br /&gt;                                      Caching.Cache.NoAbsoluteExpiration, New TimeSpan(0, 0, 60, 0),&lt;br /&gt;                                      CacheItemPriority.Default, Nothing)&lt;br /&gt;&lt;br /&gt;            Catch ex As SqlException&lt;br /&gt;                Me.err.WriteError("SQL Exception: " &amp; _message, BCBSDWebControlLibrary.ProcessHelper.GetProcessName(Me), ex)&lt;br /&gt;            Catch ex As Exception&lt;br /&gt;                err.WriteError(ex.Message, BCBSDWebControlLibrary.ProcessHelper.GetProcessName(Me), ex)&lt;br /&gt;            End Try&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;        Return DirectCast(HttpRuntime.Cache(_cacheName), List(Of NewsCatagory))&lt;br /&gt;    End Function&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/8418874662877846453-7685391482410553530?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/7685391482410553530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=7685391482410553530' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/7685391482410553530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/7685391482410553530'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2011/09/run-it.html' title='Run It'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-6708595220643189192</id><published>2011-09-15T13:40:00.001-07:00</published><updated>2011-09-15T13:40:47.711-07:00</updated><title type='text'>Imports Solution.DataExtensions</title><content type='html'>&lt;pre&gt;Imports System.Runtime.CompilerServices&lt;br /&gt;&lt;br /&gt;Module DataExtensions&lt;br /&gt;&lt;br /&gt;    &lt;extension()&gt;&lt;br /&gt;    Public Sub Deserialize(ByVal this As Object, ByVal row As Dictionary(Of String, Object))&lt;br /&gt;        For Each Field As KeyValuePair(Of String, Object) In row&lt;br /&gt;            Dim intVal As System.Object() = {Field.Value}&lt;br /&gt;            this.GetType().InvokeMember(&lt;br /&gt;                Field.Key,&lt;br /&gt;                System.Reflection.BindingFlags.SetProperty,&lt;br /&gt;                Type.DefaultBinder,&lt;br /&gt;                this,&lt;br /&gt;                intVal&lt;br /&gt;                )&lt;br /&gt;        Next&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    &lt;extension()&gt;&lt;br /&gt;    Public Function ToDataRow(ByVal this As Object) As Dictionary(Of String, Object)&lt;br /&gt;        Return Enumerable.Range(0, this.FieldCount).ToDictionary(&lt;br /&gt;            Function(field) this.GetName(field).ToString(),&lt;br /&gt;            Function(field) this.GetValue(field)&lt;br /&gt;                )&lt;br /&gt;    End Function&lt;br /&gt;&lt;br /&gt;End Module&lt;br /&gt;&lt;/extension()&gt;&lt;/extension()&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-6708595220643189192?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/6708595220643189192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=6708595220643189192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/6708595220643189192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/6708595220643189192'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2011/09/imports-solutiondataextensions.html' title='Imports Solution.DataExtensions'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-7627183794395115213</id><published>2011-07-22T03:27:00.000-07:00</published><updated>2011-07-22T03:28:44.498-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='Functional'/><category scheme='http://www.blogger.com/atom/ns#' term='Lambda'/><category scheme='http://www.blogger.com/atom/ns#' term='programming language'/><title type='text'>Functional Patterns in our Everyday Code</title><content type='html'>&lt;div class="MsoNormal"&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Modern Programming&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;During the advent of modern programming, which I think of as post 2005 code base, we have received many enhancements to our programming toolsets.&amp;nbsp; Much ado has been made about these enhancements, often these are the frameworks that Web 2.0 has been built on. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;The modern programming tools are very aware of the upcoming Mobile Application Flood,&amp;nbsp; but they also own a considerable amount to older programming techniques first developed in LISP as early back as the 1960's.&amp;nbsp; Python popularized much of the functional programming style, and was incorporated into ECMAScript.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Functional Programming&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Javascript and its adopted parent ECMAScript were developed with functional capabilities from the very beginning. Methods in JavaScript are first class and can be passed as around as arguments. Consider the following Native Javascript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #DDD9C3; border: solid #948A54 1.0pt; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-border-themeshade: 128; mso-element: para-border-div; padding: 1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; line-height: 115%;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas; font-size: 9.5pt; line-height: 115%;"&gt;script&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;"&gt; &lt;span style="color: red;"&gt;language&lt;/span&gt;&lt;span style="color: blue;"&gt;="ecmascript"&lt;/span&gt; &lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;="text/ecmascript"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Array.prototype.AlertOnce = &lt;span style="color: blue;"&gt;function&lt;/span&gt; () { alert(&lt;span style="color: maroon;"&gt;'A'&lt;/span&gt;) };&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [1, 2, 3].AlertOnce();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: maroon; font-family: Consolas; font-size: 9.5pt;"&gt;script&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;The script applies an anonymous function to the array object as an extension method, via the prototype pattern.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;In the script below, the anonymous function iterates the array, and runs once per primary object occurrence in the array.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #DDD9C3; border: solid #948A54 1.0pt; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-border-themeshade: 128; mso-element: para-border-div; padding: 1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas; font-size: 9.5pt;"&gt;script&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: red;"&gt;language&lt;/span&gt;&lt;span style="color: blue;"&gt;="ecmascript"&lt;/span&gt; &lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;="text/ecmascript"&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;var&lt;/span&gt; IEnum = [1, 2, 3];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnum.forEach(&lt;span style="color: blue;"&gt;function&lt;/span&gt; (ele, i) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(i + &lt;span style="color: maroon;"&gt;':'&lt;/span&gt; + ele)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: maroon; font-family: Consolas; font-size: 9.5pt;"&gt;script&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNoSpacing"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNoSpacing"&gt;Contrasted with the JQuery Method, below. The methods are almost identical.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNoSpacing"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #DDD9C3; border: solid #948A54 1.0pt; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-border-themeshade: 128; mso-element: para-border-div; padding: 1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas; font-size: 9.5pt;"&gt;script&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: red;"&gt;language&lt;/span&gt;&lt;span style="color: blue;"&gt;="ecmascript"&lt;/span&gt; &lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;="text/ecmascript"&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;var&lt;/span&gt; IEnum = [1, 2, 3];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(IEnum).each(&lt;span style="color: blue;"&gt;function&lt;/span&gt; (i, ele) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(i + &lt;span style="color: maroon;"&gt;':'&lt;/span&gt; + ele)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: maroon; font-family: Consolas; font-size: 9.5pt;"&gt;script&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNoSpacing"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNoSpacing"&gt;As compared to a Lambda expression in VB.Net&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNoSpacing"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #DDD9C3; border: solid #948A54 1.0pt; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-border-themeshade: 128; mso-element: para-border-div; padding: 1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;Dim&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; IEnum = &lt;span style="color: blue;"&gt;New&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;List&lt;/span&gt;(&lt;span style="color: blue;"&gt;Of&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt;)(&lt;span style="color: blue;"&gt;New&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt;() {1, 2, 3})&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;IEnum.ForEach(&lt;span style="color: blue;"&gt;Function&lt;/span&gt;(i) System.Diagnostics.Debug.Print( i ) )&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;or in C#&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background: #DDD9C3; border: solid #948A54 1.0pt; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-border-themeshade: 128; mso-element: para-border-div; padding: 1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 9.5pt;"&gt;List&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;lt;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&amp;gt; IEnum = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&amp;gt;(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt;[] { 1, 2, 3 });&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;IEnum.ForEach(i =&amp;gt; i.ToString());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: #DDD9C3; border: none; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-background-themecolor: background2; mso-background-themeshade: 230; mso-border-alt: solid #948A54 .5pt; mso-border-themecolor: background2; mso-border-themeshade: 128; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; padding: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;These scripts demonstrate multiple ideas. To wit, JavaScript natively supports the sort of iterating across collections pattern that we usually think of JQuery for. And .net now supports a wide set of functional programming, this now includes anonymous methods, JavaScript like prototyping via extension methods (and on those extension methods, even method chaining).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Conclusion: &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Instead of thinking about JQuery, or .Net extension methods, we should be seeing these new pieces as functional programming patterns and getting used to thinking in terms of delegates, callbacks and prototypes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-7627183794395115213?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/7627183794395115213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=7627183794395115213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/7627183794395115213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/7627183794395115213'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2011/07/new-functional-patterns-in-everyday.html' title='Functional Patterns in our Everyday Code'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-950843542990413236</id><published>2011-07-11T03:31:00.000-07:00</published><updated>2011-07-22T03:45:42.480-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rest'/><title type='text'>Rest Service Implementation</title><content type='html'>&lt;blockquote&gt;&lt;br /&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;WCF Rest-like Service&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;Proto-type implementation&lt;/span&gt;&lt;a href="" name="id.978ba1709401"&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h1&gt;Vocabulary &lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;&lt;div class="Standard"&gt;&lt;b&gt;&lt;span style="color: black;"&gt;Representational State Transfer&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black;"&gt;:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Low level stateless software architecture approach that uses the structure of URI's (uniform resource locator) and HTTP 1.0 verbs to define resultant service data displays. REST outlines how to define, access and address data sources without the need for additional messaging layers or session tracking.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;b&gt;&lt;span style="color: black;"&gt;Windows Communication Foundation&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black;"&gt;: WCF is a platform that supports a multitude of different methods to expose data services, in a service-oriented methodology. It is request agnostic, meaning it is not tied to a single request method like REST, or SOAP.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;b&gt;&lt;span style="color: black;"&gt;Http Client&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black;"&gt;: Object to initiate a Http Request, previously known as XHR or XMLHttpRequest. This safe for scripting object was used to initiate AJAX calls.&lt;/span&gt;&lt;a href="" name="id.4a5212b3d505"&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h1&gt;Document &lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;This document is meant to detail the top level technological decisions that were made in the proto-type WCF Rest-like Service implementation. This document, based on proto-type implementation is meant to postulate possible guidelines, as such this document will remain in draft format in perpetuity, and will be superseded by any and all Guidance Documents or White Pages on the technologies in this document.&lt;/span&gt;&lt;a href="" name="id.f0c54dfa07fa"&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h1&gt;References - Prerequisites&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;&lt;div class="Standard" style="margin-left: .5in; mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="color: black; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana;"&gt;&lt;span style="mso-list: Ignore;"&gt;●&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="color: black;"&gt;WCF Rest Service Template 4.0 for Visual Basic&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Standard" style="margin-left: .5in; mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="color: black; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana;"&gt;&lt;span style="mso-list: Ignore;"&gt;●&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="color: black;"&gt;WCF Rest Starter Kit (http client)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Standard" style="margin-left: .5in; mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="color: black; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana;"&gt;&lt;span style="mso-list: Ignore;"&gt;●&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="color: black;"&gt;Visual Studios 2010, .Net Framework 4.0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Standard" style="margin-left: .5in; mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="color: black; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana;"&gt;&lt;span style="mso-list: Ignore;"&gt;●&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="color: black;"&gt;IIS 7.0&lt;/span&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h1 style="page-break-before: always;"&gt;&lt;a href="" name="id.078b10f4e621"&gt;&lt;/a&gt;Http Verbs&lt;span style="color: black; font-size: 11.0pt; font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;It seems appropriate to start any discussion of restful(like) solutions with a conversation about HTTP Request Methods. These are often referred to as "verbs."&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Most of us are familiar with "&lt;i&gt;Get&lt;/i&gt;" and "&lt;i&gt;Post&lt;/i&gt;" but have failed up to now to notice the other request methods that the http protocol supports. For now, let it be sufficient (until we begin our discussion on routing masks) to say that restful services respond to not only the URI of a request, but also route based on the action that is described via the Request Method. WCF commonly responds to GET, POST, PUT and DELETE for crud operations, there are more Verbs in the HTTP Protocol Specification, but they are not in common usage in Restful services.&lt;/span&gt;&lt;a href="" name="id.af1de4ee462c"&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h1&gt;Routes &lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;&lt;div class="Standard"&gt;&lt;u&gt;&lt;span style="color: grey;"&gt;Guideline&lt;/span&gt;&lt;/u&gt;&lt;span style="color: grey;"&gt;: &lt;i&gt;Configure your routes in the virtual route table, accessed in code in the Global.asax file in a custom Procedure called RegisterRoutes.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;This behavior is similar to the routing mechanism employed by MVC.Net web sites.&lt;/i&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: grey; font-family: Consolas; font-size: 6.0pt; mso-fareast-font-family: Consolas;"&gt;fig. 1&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Private&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Sub&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; Application_Start(&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;ByVal&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; sender &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;As&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Object&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;, &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;ByVal&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; e &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;As&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;EventArgs&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;RegisterRoutes()&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Sub&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Private&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Sub&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; RegisterRoutes()&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;RouteTable&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;.Routes.Add(&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;New&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;ServiceRoute&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"RouteName"&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;, &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;New&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;WebServiceHostFactory&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(), &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;GetType&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(MyApplication.&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;MyClass&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;)))&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Sub&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2&gt;Application Start&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;Creating a response to a request in a virtual location (there is no physical file to respond to the request), means that a listener will have to be created.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;WCF supplies a factory method to create this listener, with the WebServiceHostFactory class. This factory class should be called at application start,&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;and added as a Route to the application's RouteTable object.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: grey; font-family: Consolas; font-size: 6.0pt; mso-fareast-font-family: Consolas;"&gt;fig. 2&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;RouteTable&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;.Routes.Add(&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;New&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;ServiceRoute&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"RouteName"&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;, &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;New&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;WebServiceHostFactory&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(), &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;GetType&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(MyApplication.&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;MyClass&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;)))&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2&gt;Routing&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;Incoming request are passed from IIS to the WebServiceHostFactory, where they are routed according to the RouteTable rules into the class specified in the Routes.Add type argument. The request is then picked up by the Class, and is handled by a method of the class based on the "verbs" and the arguments specified by the request.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h2&gt;&lt;a href="" name="id.f25f0bb99205"&gt;&lt;/a&gt;&lt;span style="color: black; font-size: 11.0pt; font-weight: normal;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h2&gt;Route Masks, &lt;span style="font-weight: normal;"&gt;(HTTP Method and UriTemplates)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;The WCF Rest Template offers Common Routing, and templates for the most common scenerios. These are mostly self defining, based on the HTTP method, and also the existance of an id or name argument. It is worth noting, that all arguments passed via a URI will be of type string.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: grey; font-family: Consolas; font-size: 6.0pt; mso-fareast-font-family: Consolas;"&gt;fig. 3&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 9.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;WebGet&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(UriTemplate := &lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;""&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;)&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Public&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Function&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; GetCollection() &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;As&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;List&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Of&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;SampleItem&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Throw&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;New&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;NotImplementedException&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;()&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Function&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;WebInvoke&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(UriTemplate := &lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;""&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;, Method := &lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"POST"&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;)&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Public&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Function&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; Create(&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;ByVal&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; instance &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;As&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;SampleItem&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;) &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;As&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;SampleItem&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Throw&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;New&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;NotImplementedException&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;()&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Function&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;WebGet&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(UriTemplate := &lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"{id}"&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;)&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Public&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Function&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; [Get](&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;ByVal&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; id &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;As&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;String&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;) &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;As&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;SampleItem&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Throw&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;New&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;NotImplementedException&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;()&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Function&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;WebInvoke&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(UriTemplate := &lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"{id}"&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;, Method := &lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"PUT"&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;)&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Public&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Function&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; Update(&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;ByVal&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; id &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;As&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;String&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;, &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;ByVal&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; instance &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;As&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;SampleItem&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;) &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;As&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;SampleItem&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Throw&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;New&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;NotImplementedException&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;()&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Function&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;WebInvoke&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(UriTemplate := &lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"{id}"&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;, Method := &lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"DELETE"&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;)&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Public&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Sub&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; Delete(&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;ByVal&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; id &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;As&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;String&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Throw&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;New&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;NotImplementedException&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;()&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Sub&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;Restful services have some common practices, which govern there usage, and these should be adhered to as long as they do not create odiously architected solutions. There is an expectation that reaching the root a Restful Object (in a URL Get), that object will return an unfiltered list of objects of that type.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;When an "&lt;i&gt;id&lt;/i&gt;" or "&lt;i&gt;name&lt;/i&gt;" is specified in a Get on a Restful Object then the expectation is that the Restful Service will return a single instance of the item in question.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Using the HTTP Method, "&lt;i&gt;Delete&lt;/i&gt;" means that the requesting caller would like to see that item removed from the underling persistence store.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;This is clear, but the Delete could be requested using either a "&lt;i&gt;id&lt;/i&gt;" as in "please remove the item with this id from the persistence store" or the object could be sent in a http form, meaning "please remove the item in the persistence store that resembles this item." The Put and Post methods have similar problems, as the user community is not 100% decided on a usage for these items. For the purposes of our discussion, we will assume that POST is equal to a form post in which the requestor desires that we insert the item into the persistence store, and that a PUT is when the requestor desires us to perform an update on an item in the persistence store. &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;A Note of Caution: It is incumbent on me to offer a note of caution on POST and PUT, the &lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp; &lt;/span&gt;Restful service creator should handle PUTs in POSTs and POSTs in PUTs, or send back an &lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;explanation on why the desired result was not achieved.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2&gt;Complex Routes &lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;Routes that specify multiple filtering items at different levels of the Restful Portion of the Resource Locator, are complex routes.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;Complex routes need to be specified on the top hierarchical level. For instance, there is a parent-child relationship and the service should list a collection of children, filtered by the parent id, then the handler method will be created on the parent level.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: grey; font-family: Consolas; font-size: 6.0pt; mso-fareast-font-family: Consolas;"&gt;fig. 4&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 9.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;WebGet&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(UriTemplate := &lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"{id}/Child"&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;)&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Public&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Function&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; GetChildCollection() &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;As&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;List&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Of&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;SampleItem&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Throw&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;New&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;NotImplementedException&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;()&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Function&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;a href="" name="id.e777a70afef6"&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h1&gt;Introducing the HtHttpClient&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;The WCF Rest starter kit comes with a new and improved HttpClient Utility. This new client, like the old XMLHttpRequest Utility allows a thread to programmatically access the web resources without the overhead of a user-interface. The new HttpClient is a major update of functionality, since the XHR methodologies of early 2000 contained no support for Http Request Methods beyond GET and POST and also were not concerned about serialization. Modern Service Architectures have significant enhancements to serialization and do not stop at POX (Plain Old XML, simply returning a document of XML data). The WCF service and the HttpClient come together in serialization of strongly typed data, you may expose your data from the WCF as "exact type" and consume it in your interface as the same "exact type" that you exposed it as. This methodology means that a WSDL data contract is not only unnecessary, but also undesirable, in so far as the WSDL creates a new type that the client consumes. &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;Additionally the new HttpClient has built in support for "DELETE" and "PUT" Http Verbs, as well as the more common, "GET" and "POST" of XHR.&lt;/span&gt;&lt;a href="" name="id.7e04cd4d6d04"&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h2&gt;Usage&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;The HttpClient is located in the Microsoft.Http.dll, which is included in the WCF Rest Starter Kit. Adding Headers is simple in the&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: grey; font-family: Consolas; font-size: 6.0pt; mso-fareast-font-family: Consolas;"&gt;fig. 5&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Using&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; client &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;As&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;New&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;HttpClient&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"http://localhost:8080/Route/"&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Using&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; response &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;As&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;HttpResponseMessage&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; = client.[Get](&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"Action?id=3"&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;response.EnsureStatusIsSuccessful()&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Dim&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; anon = response.Content.ReadAsDataContract(&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Of&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;List&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;(&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Of&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; ContractLibrary.Interfaces.&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;IItem&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;))()&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Using&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;Using&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2&gt;Custom Headers&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;Adding Headers is simple in the HttpClient. Access the DefaultHeaders Collection of your instantiated client and then call the Add method. &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: grey; font-family: Consolas; font-size: 6.0pt; mso-fareast-font-family: Consolas;"&gt;fig. 6&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;client.DefaultHeaders.Add(&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"CustomHeader"&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;, HeaderValue)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h1&gt;Security/Authentication&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;The Restful service site is secured through the usual Microsoft Web Security Provider, and needs no configuration beyond what is usually contained in a .net web site. Accessing the resources in a secure manner usually means that you will be sending a set of credentials (as system.net.icredentials) in the Http Request of the HttpClient Utility.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: grey; font-family: Consolas; font-size: 6.0pt; mso-fareast-font-family: Consolas;"&gt;fig. 7&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;client.TransportSettings.Credentials = Credentials&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h1&gt;Configuration&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;The options specified in the web.config file of the Rest service are fairly straight forward.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Though please note the last WCF section, and in particular the attribute HelpEnabled, which automatically creates an operation description page for each route when the route action is "/help."&lt;/span&gt;&lt;a href="" name="id.915be63fbb6a"&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h2&gt;Authentication:&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;roleManager&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;defaultProvider&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;=&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;..&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;enabled&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;=&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;true&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;providers&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;add&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;name&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;=&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;..&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;connectionStringName&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;=&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;..&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;applicationName&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;=&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;..&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;type&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;=&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;System.Web.Security.SqlRoleProvider, ..&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;/&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;providers&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;roleManager&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;authorization&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;deny&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;users&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;=&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;?&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; /&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;authorization&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2&gt;Routing :&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;modules&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;runAllManagedModulesForAllRequests&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;=&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;true&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;add&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;name&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;=&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;UrlRoutingModule&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;type&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;=&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; /&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;modules&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2&gt;WCF:&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;serviceHostingEnvironment&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;aspNetCompatibilityEnabled&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;=&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;true&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family:Consolas;mso-fareast-font-family:Consolas;color:green"&gt;&lt;baseaddressprefixfilters&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="Standard"&gt;&lt;span style="font-size:7.0pt;font-family:Consolas;mso-fareast-font-family:Consolas;color:green"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;addprefix="http://www.wildwildwest.net"/&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="Standard"&gt;&lt;span style="font-size:7.0pt;font-family:Consolas;mso-fareast-font-family:Consolas;color:green"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/baseAddressPrefixFilters&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family:Consolas;mso-fareast-font-family:Consolas;color:blue"&gt;--&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;serviceHostingEnvironment&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;standardEndpoints&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;webHttpEndpoint&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;standardEndpoint&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;name&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;=&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;""&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;helpEnabled&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;=&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;true&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;automaticFormatSelectionEnabled&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;=&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;true&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;"&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;/&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;webHttpEndpoint&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;standardEndpoints&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 7.0pt; mso-fareast-font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard" style="margin-left: .5in; page-break-before: always;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;REST: &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Restful"&gt;&lt;span style="color: blue;"&gt;http&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Restful"&gt;&lt;span style="color: blue;"&gt;://&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Restful"&gt;&lt;span style="color: blue;"&gt;en&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Restful"&gt;&lt;span style="color: blue;"&gt;.&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Restful"&gt;&lt;span style="color: blue;"&gt;wikipedia&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Restful"&gt;&lt;span style="color: blue;"&gt;.&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Restful"&gt;&lt;span style="color: blue;"&gt;org&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Restful"&gt;&lt;span style="color: blue;"&gt;/&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Restful"&gt;&lt;span style="color: blue;"&gt;wiki&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Restful"&gt;&lt;span style="color: blue;"&gt;/&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Restful"&gt;&lt;span style="color: blue;"&gt;Restful&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;WCF Rest HttpClient: &lt;/span&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;http&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;://&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;weblogs&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;.&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;asp&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;.&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;net&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;/&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;cibrax&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;/&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;archive&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;/2009/03/13/&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;httpclient&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;in&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;the&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;wcf&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;rest&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;starter&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;kit&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;preview&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;-2.&lt;/span&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/cibrax/archive/2009/03/13/httpclient-in-the-wcf-rest-starter-kit-preview-2.aspx"&gt;&lt;span style="color: blue;"&gt;aspx&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;WCF Rest Template: &lt;/span&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;http&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;://&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;visualstudiogallery&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;.&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;msdn&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;.&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;microsoft&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;.&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;com&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;/&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;e&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;1&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;ec&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;66&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;f&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;1-902&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;f&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;-4&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;e&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;31-8227-3&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;a&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;537&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;f&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;45&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;afa&lt;/span&gt;&lt;/a&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/e1ec66f1-902f-4e31-8227-3a537f45afa8"&gt;&lt;span style="color: blue;"&gt;8&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;Http verbs: &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;http&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;://&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;en&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;.&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;wikipedia&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;.&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;org&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;/&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;wiki&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;/&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;Hypertext&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;_&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;Transfer&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;_&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;Protocol&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;#&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;Request&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;_&lt;/span&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods"&gt;&lt;span style="color: blue;"&gt;methods&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;span style="color: black;"&gt;HttpClient:&lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;http&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;://&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;blogs&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;.&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;msdn&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;.&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;com&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;/&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;b&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;/&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;endpoint&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;/&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;archive&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;/2010/01/11/&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;clients&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;and&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;the&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;automatic&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;help&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;page&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;in&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;wcf&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;webhttp&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;-&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;services&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;.&lt;/span&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/endpoint/archive/2010/01/11/clients-and-the-automatic-help-page-in-wcf-webhttp-services.aspx"&gt;&lt;span style="color: blue;"&gt;aspx&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="Standard"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-list: l0 level1 lfo1; tab-stops: list 0in .5in; text-indent: -.25in;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-950843542990413236?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/950843542990413236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=950843542990413236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/950843542990413236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/950843542990413236'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2011/07/rest-service-implementation.html' title='Rest Service Implementation'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-531231569600039344</id><published>2011-04-15T07:10:00.001-07:00</published><updated>2011-04-15T07:10:35.325-07:00</updated><title type='text'>Restful WCF</title><content type='html'>I had a quick write up of WCF services in a restful state. &lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/viewer?a=v&amp;pid=explorer&amp;chrome=true&amp;srcid=0B1AwLfyKxW00MzNjODE2ZjEtMGNhMy00M2Y5LWEzMWEtODMyOTBhNmZlY2Iz&amp;hl=en"&gt;https://docs.google.com/viewer?a=v&amp;pid=explorer&amp;chrome=true&amp;srcid=0B1AwLfyKxW00MzNjODE2ZjEtMGNhMy00M2Y5LWEzMWEtODMyOTBhNmZlY2Iz&amp;hl=en&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-531231569600039344?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/531231569600039344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=531231569600039344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/531231569600039344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/531231569600039344'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2011/04/restful-wcf.html' title='Restful WCF'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-8019783766368665859</id><published>2011-04-01T02:26:00.000-07:00</published><updated>2011-04-01T02:26:35.608-07:00</updated><title type='text'>Microsoft - A Story of an early Compiler Company</title><content type='html'>Long ago, back in the early nineteen eighties, there once was a new technology company that built compilers, this company managed to build a compiler that had one trait that was better then all the others, it had a superior implementation of a floating point operator that allowed it do better precision math then the other off the shelf compilers. Since this was good, lots of people used it.&lt;br /&gt;&lt;br /&gt;A big company with deep pockets asked the company that was good at making compilers to build a simple text operating system for it, and so the compiler company built DOS for deep pockets. This arrangement worked out so well for both of them, they formed a short lived partnership to make a graphical operating system together.&lt;br /&gt;&lt;br /&gt;At about the time that the first graphical operating systems from this partnership (someplace in the very early nineteen nineties) came to market, the compiler company wanted graphical applications to run on its new operating system, and so started to port some standard office productivity tools from the text based world to the new graphical operating system world.  Office productivity tools had become fairly standard already, so they began making a word processor (the text based standard was word perfect) to work in their new glossy graphical computer interface.  So they made Microsoft Word and in doing so created a Macro Language (based on their “Embedded Basic Language” that they created for reuse in various Applications) called WordBASIC to allow the Users of the word processor to automate tasks (after all this was a compiler company). &lt;br /&gt;&lt;br /&gt;The compiler company then used the WordBASIC macro language foundation it had built, and ported this to a “full” compiler called VisualBasic. This new compiler had a new idea in it, to support drop and drag “Visual” development, and so the compiler company partnered with a small start-up company that made a “form generator” and incorporated the visual form generator into the final compiler.  This new compiler had menus that were trivially  easy to make, differentiating it with the thousands of lines of code required to handle menuing usually, so this compiler was used to make millions of applications, because it’s menu system was so easy.&lt;br /&gt; &lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;It seems to me, that the softies that invented VisualBasic, had little intention of its use becoming so predominate, but that the predominants of the VisualBasic language came from its menuing system being so easy to use.  &lt;/i&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;So around 1993, a set of technologies was beginning to form around Microsoft.  Their DOS and IBM partnership had born fruit in the form of a new graphical operating system called windows and was shipping as Windows 3.1 which had network support.  They had partnered with an innovative database company and ported the UNIX Sybase database engine to their 16 bit environment, and in the process were learning all sorts of interesting things about Client-Server development which led to the development of protocols that eased task of connecting to a remote database resource called respectively ODBC and DAO (which eventually became ADO and ADO.Net, after passing through a transitional period known as RDO). &lt;br /&gt;&lt;br /&gt;The compiler company now had a network capable operating system, a full set of Office Productivity Tools (with embedded macro languages), a couple of decent database engines for storing data, a new “open” protocol for accessing data in databases, and a compiler that made it fairly easy to build forms that connected from from the client computer to databases, and other external resources. This setup, even though no individual tool was better or more innovative then other applications on the markup, taken together made the lives of business people easier.&lt;br /&gt;&lt;br /&gt;The total was so much greater then the sum of the parts in fact that millions of custom applications were made for that platform by a widely divergent groups of individuals with widely varying skill sets. &lt;br /&gt;&lt;br /&gt;This is one of the great plateaus of Information Systems, as this configuration has remained largely intact to the present, and looks capable of continue to stay in roughly this same configuration in the business world for decades.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-8019783766368665859?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/8019783766368665859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=8019783766368665859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/8019783766368665859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/8019783766368665859'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2011/04/microsoft-story-of-early-compiler.html' title='Microsoft - A Story of an early Compiler Company'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-3745418136821357004</id><published>2010-09-14T06:01:00.000-07:00</published><updated>2010-09-14T06:01:30.616-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Social Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='Innovation of Sharing'/><title type='text'>The Innovation of Sharing</title><content type='html'>Social Network, a disruptive new innovation, is starting to shift people’s online behavior, even to the point that the meaning of "online" has even shifted from web based to mobile based.&lt;br /&gt;&lt;br /&gt;The new world wide web will be not only based in mobile, but it will be built with applications and tools that put both people and peoples associations at the center of all activities.&lt;br /&gt;&lt;br /&gt;Instead of content, you will have posts, and those posts will be "points of sharing", and that interplay   between points of contact, "nodes" will create social network "ties."&lt;br /&gt;&lt;br /&gt;Facebook is without doubt not only the market leader as the most used Social networking site, but also is the leader in crafting a platform and set of tools to take advantage of the new opportunities on offer in this new ecosystem.&lt;br /&gt;&lt;br /&gt;This has rather large implications for builders of internet tools (previously web sites) and for anyone engaging in commerce on the web.  The way people desire to interact with commercial offerings is changing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-3745418136821357004?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/3745418136821357004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=3745418136821357004' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/3745418136821357004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/3745418136821357004'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2010/09/innovation-of-sharing.html' title='The Innovation of Sharing'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-1017691987481091970</id><published>2010-09-13T06:03:00.000-07:00</published><updated>2010-09-13T06:05:39.139-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun Microsystems'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>Sun Microsystems - Goodbye and thanks for all the UNIX</title><content type='html'>Sun Microsystems is no more, having been purchased by a company (Oracle) that seems intent on capturing "open" software and hijacking that software for short-term gain.  Certain aspects of the Oracle deal just point to Oracles acquisition of first InnoDB  (the storage engine that MySQL  uses) and then MySQL itself with the acquisition of Sun Microsystems, as a method to hijack the MySQL open source project.&lt;br /&gt;&lt;br /&gt;But Sun’s founders, were amongst the creators of FreeBSD (through Bill Joy’s work on BSD UNIX), and Sun was always the strongest large Corporate proponent of "Openness" in software directly creating Java, MySQL, and having strongly contributed to the vision that produced Linux (through open UNIX work), and PHP (which owes at least some of its inception to Sun’s java server pages).  The whole LAMP stack traces at least some of its roots back to Sun (Apache owning the least to Sun, but you get my meaning).&lt;br /&gt;&lt;br /&gt;I think we are not taking account of the large position that Sun had as an intellectual proponent of openness in software.  And I for one will lament its passing, especially as Oracle starts using Sun Intellectual Property as a patent-troll to quash innovation in the space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-1017691987481091970?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/1017691987481091970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=1017691987481091970' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/1017691987481091970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/1017691987481091970'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2010/09/sun-microsystems-goodbye-and-thanks-for.html' title='Sun Microsystems - Goodbye and thanks for all the UNIX'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-3230214989680804662</id><published>2010-09-13T05:07:00.000-07:00</published><updated>2010-09-13T05:07:26.834-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='The Facebook Effect'/><category scheme='http://www.blogger.com/atom/ns#' term='Mark Zuckerberg'/><category scheme='http://www.blogger.com/atom/ns#' term='Innovation of Sharing'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer History Museum'/><title type='text'>Computer History Museum - The Facebook Effect with Mark Zuckerberg</title><content type='html'>An area of the web that has, for me, consistently a very high level of quality of discourse about computer engineering is the Computer History Museum. Its YouTube channel may be found here, &lt;a href="http://www.youtube.com/user/computerhistory#p/u/19/dkmzb904tG0"&gt;http://www.youtube.com/user/computerhistory#p/u/19/dkmzb904tG0&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I enjoyed this interview with Facebook founder Mark Zuckerberg, found here &lt;a href="http://www.youtube.com/watch_popup?v=_TuFkupUn7k&amp;vq=small"&gt;http://www.youtube.com/watch_popup?v=_TuFkupUn7k&amp;vq=small&lt;/a&gt;.  I found it refreshing to hear Mark (I can call him Mark, because he is one of my facebook friends), talking about the Innovation of Sharing.  He tried to discuss the potentials of "sharing" over a long time frame. How this would impact the software ecosystem, and how it would create new business opportunities. Of course everyone wanted to talk to him about privacy, which was much less interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-3230214989680804662?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/3230214989680804662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=3230214989680804662' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/3230214989680804662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/3230214989680804662'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2010/09/computer-history-museum-facebook-effect.html' title='Computer History Museum - The Facebook Effect with Mark Zuckerberg'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-5574703172167904553</id><published>2009-10-18T05:43:00.000-07:00</published><updated>2009-10-18T05:47:56.731-07:00</updated><title type='text'>Narratives in Programming</title><content type='html'>&lt;pre style="color: blue;"&gt;“...The programmer, like the poet, &lt;br /&gt;works only slightly removed from &lt;br /&gt;pure thought-stuff. He builds his &lt;br /&gt;castles in the air, from air, &lt;br /&gt;creating by exertion of the imagination. &lt;br /&gt;Few media of creation are [...] so readily &lt;br /&gt;capable of realizing grand &lt;br /&gt;conceptual structures...”&lt;/pre&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- &amp;nbsp;&lt;span style="font-family: 'Times New Roman'; white-space: normal;"&gt;Fred Brooks&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-5574703172167904553?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/5574703172167904553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=5574703172167904553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/5574703172167904553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/5574703172167904553'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2009/10/narratives-in-programming.html' title='Narratives in Programming'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-4929957136679877784</id><published>2009-10-17T06:46:00.000-07:00</published><updated>2009-10-17T08:22:35.314-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nonsense'/><category scheme='http://www.blogger.com/atom/ns#' term='Code Clarity'/><category scheme='http://www.blogger.com/atom/ns#' term='Class'/><category scheme='http://www.blogger.com/atom/ns#' term='Story-Telling'/><category scheme='http://www.blogger.com/atom/ns#' term='User Stories'/><category scheme='http://www.blogger.com/atom/ns#' term='silly-buggers'/><title type='text'>OOP Semaphores Byline: Smoke signals from one developer to another.</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;div&gt;I would like to point out the very obvious, that too often gets lost in the shuffle. &amp;nbsp;The code choices we make when designing components act as a series of “signals” that we send to the next developer working on the library or to the developer who is applying and implementing the objects we have created. &amp;nbsp;When we are crafting our code, our choices of class and parameter names, member protection levels, and constructors act as the primary method of disseminating the indented usage of our code.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If an organizations code base is the most inclusive repository of business process knowledge of an organization, then our code libraries supply the nouns, verbs, and adjectives of the business process.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;u&gt;Name for global business understanding&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most business processes have a generally accepted internal name. &amp;nbsp;This is the name that the stakeholder community will call something when telling their business story. &amp;nbsp;Using a different name, as in the statement, “to me blank is this,” when your user community has consolidated on a defined designation, is obfuscation, and to me, smacks of hubris. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sometimes, you must rename, for elucidation, like when swapping out an acronym or abbreviation for a “Plain English” term that more fully explains the intended usage. &amp;nbsp;But this means you will have to disseminate the new term and usage throughout the hierarchy you are involved in.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the best reasons I can think of to develop documentation artifacts before the creation of a code base, is so that you have a more complete set of thoughts on the business processes, so that the names you choose will be indicative of the actual use of your objects in the wild.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;&lt;u&gt;Code the meaning of your Intended Usage into your implementations&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So lets talk about the following code:&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;span style="font-family: Arial; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="right" class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; tab-stops: 6.25in; text-align: right; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;Fig.1&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; tab-stops: 6.25in; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;interface&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;iAnimal&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; tab-stops: 6.25in; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; tab-stops: 6.25in; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; Name { &lt;span style="color: blue;"&gt;get&lt;/span&gt;; &lt;span style="color: blue;"&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; tab-stops: 6.25in; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;object&lt;/span&gt; Vocalize(&lt;span style="color: blue;"&gt;object&lt;/span&gt; SpeechType);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; tab-stops: 6.25in;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; tab-stops: 6.25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Plain English meaning of this code is that all objects that implement iAnimal will have at least one string type property called Name, and a method called Vocalize that takes a parameter of type object and returns an object. &amp;nbsp;By creating an interface (a code pattern that set a base contract of what will be contained in an object) the architect of the code, signals to other human beings implementing his work, that this is the minimal acceptable level of code to implement this functionality. &amp;nbsp;If you implement from this interface, the assembler will only compile your object, if your code object contains all the members specified in the interface. Those the contextual meaning of the code is “you must have all these pieces.”&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div align="right" class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-align: right; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;Fig.2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Animal&lt;/span&gt; : &lt;span style="color: #2b91af;"&gt;iAnimal&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none; text-indent: .5in;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt; &lt;span style="color: blue;"&gt;object&lt;/span&gt; _vocalization;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none; text-indent: .5in;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; _name;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;get&lt;/span&gt; { &lt;span style="color: blue;"&gt;return&lt;/span&gt; _name; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;set&lt;/span&gt; { _name = &lt;span style="color: blue;"&gt;value&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;object&lt;/span&gt; Vocalize() &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; _vocalization; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: silver; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 93.0pt; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Figure 2 shows the terms of the code contract being met in full. So we have a cycle of intention and usage, playing out into fulfillment, Contract spelled out by the interface, and then Contractual Obligations met in full by the implementing class.&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;i&gt;&lt;br /&gt;“What I would like to stress here, is this is not just a series of assembly instructions, this has inherent intended meaning from one human being to another”&lt;br /&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;div&gt;So how about when a developer sets up a class as abstract, the Plain English meaning is that the object must be inherited to be used. The compiler will not build if you try to call new on the abstract object. &amp;nbsp;But the contextual meaning that the code’s architect is attempting to send to the implementing developer is that the architect’s intended usage of this code is as a base class that is meant to be inherited.&lt;br /&gt;&lt;/div&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/8418874662877846453-4929957136679877784?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/4929957136679877784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=4929957136679877784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/4929957136679877784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/4929957136679877784'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2009/10/oop-semaphores-byline-smoke-signals.html' title='OOP Semaphores &lt;br/&gt;Byline: Smoke signals from one developer to another.'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-4659048895013163875</id><published>2009-07-12T06:57:00.000-07:00</published><updated>2009-07-13T05:43:17.159-07:00</updated><title type='text'>Planning for Risk</title><content type='html'>&lt;div&gt;Probabilistic risk assessment, and benefit analysis. Probabilistic risk assessment is a methodology to evaluate risks associated with a technology endevor.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Risk in a Probabilistic risk assessment (PRA) is defined as frequency of a hazard occuring from an activity or action.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;In a Probabilistic risk assessment (PRA) , risk is characterized by two quantities:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Severity: the magnitude of the possible adverse consequence.&lt;/li&gt;&lt;li&gt;Probability: the likelihood of occurrence of a hazard.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Probabilistic risk assessment (PRA) answers the following three questions:&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;What can go wrong with the studied technological in question, and what are the initiating events (undesirable starting events) that lead to the hazard (adverse consequences)?&lt;/li&gt;&lt;li&gt;What and how severe are the hazards (potential detriments), or the exposure (adverse consequences) that the technological entity may be eventually subjected to as a result of the occurrence of the initiator?&lt;/li&gt;&lt;li&gt;How likely to occur are these undesirable consequences, or what are their probabilities or frequencies?&lt;/li&gt;&lt;/ul&gt;&lt;table border="1" id="serunbric"&gt;&lt;caption&gt;Risk Analysis&lt;/caption&gt;&lt;thead style="background-color: #dcdcdc;"&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;th&gt;Hazard&lt;/th&gt;&lt;th&gt;Severity&lt;/th&gt;&lt;th&gt;Initiator&lt;/th&gt;&lt;br /&gt;&lt;th&gt;Probability&lt;/th&gt;&lt;th&gt;Exposure&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;1&lt;/th&gt;&lt;td&gt;&lt;b&gt;Project Time Overrun&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Moderate&lt;/td&gt;&lt;td&gt;Lack of or incorrect Project Management&lt;/td&gt;&lt;td&gt;High&lt;/td&gt;&lt;td&gt;Software not released on time&lt;/td&gt;&lt;/tr&gt;            &lt;tr&gt;&lt;th&gt;2&lt;/th&gt;&lt;td&gt;&lt;b&gt;Cost Overrun&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Moderate&lt;/td&gt;&lt;td&gt;Hazard 1&lt;/td&gt;&lt;td&gt;High&lt;/td&gt;&lt;td&gt;Costs Skyrocket&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;3&lt;/th&gt;&lt;td&gt;&lt;b&gt;Crash Project&lt;/b&gt; - Additional Resources allocated. New team members are not properly trained&lt;/td&gt;&lt;td&gt;High&lt;/td&gt;&lt;td&gt;Hazard 1, after time overrun is identified new resources are allocated to project&lt;/td&gt;&lt;td&gt;High&lt;/td&gt;&lt;td&gt;Code base becomes higly unstable&lt;/td&gt;            &lt;/tr&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;Additionally your full risk analysis should include a cost-benefit analysis, as well as opportunity costs (strategic), with a measurement of the risk of benefit shortfall.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Strategic Planning is a set of plans that take into account other players responses to events as a plan unfolds.  This is different from a process plan that outlines in linear form the steps to achieve a goal.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-4659048895013163875?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/4659048895013163875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=4659048895013163875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/4659048895013163875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/4659048895013163875'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2009/07/planning-for-risk.html' title='Planning for Risk'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-4655974060288231441</id><published>2009-03-25T01:37:00.000-07:00</published><updated>2009-10-09T16:23:16.154-07:00</updated><title type='text'>How can Business Objects in Code help us tell stories?</title><content type='html'>A business object can be set up to offer our code structure an actor. We should &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;endeavor&lt;/span&gt; to keep our actor and its associated &lt;span style="color:#009900;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;UML&lt;/span&gt; User Story&lt;/span&gt; actions from our &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;programmatic&lt;/span&gt; plumbing, the functions like "&lt;em&gt;save to the database&lt;/em&gt;" and "&lt;em&gt;serialize to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;xml&lt;/span&gt;&lt;/em&gt;."&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;Encapsulation tells us that we should engage in data hiding practices, so that programmatic&lt;/span&gt; plumbing functions can be held in base classes and that functionality can be inherited, keeping the implementation details out of our User Stories. Once we get the implementation details out of our utilization code, we can get closer to representing the &lt;em&gt;User Story&lt;/em&gt; directly in our.&lt;br /&gt;&lt;br /&gt;Personally I think this would go along way in keeping our thinking from getting muddled and also saving us from &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;spaghetti&lt;/span&gt; code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-4655974060288231441?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/4655974060288231441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=4655974060288231441' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/4655974060288231441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/4655974060288231441'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2009/03/how-can-business-objects-in-code-help.html' title='How can Business Objects in Code help us tell stories?'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-1882722706377326178</id><published>2008-12-28T21:52:00.000-08:00</published><updated>2009-01-08T17:47:18.426-08:00</updated><title type='text'>Software Engineer Code of Professional Conduct</title><content type='html'>&lt;a href="http://www.acm.org/about/code-of-ethics" target="_new"&gt;ACM Code of Ethics and Professional Conduct &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-1882722706377326178?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/1882722706377326178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=1882722706377326178' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/1882722706377326178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/1882722706377326178'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2008/12/software-engineer-profossional-conduct.html' title='Software Engineer Code of Professional Conduct'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-1520724006367185413</id><published>2008-12-28T16:09:00.000-08:00</published><updated>2008-12-28T22:18:42.141-08:00</updated><title type='text'>Software Engineer: Phases of Professional Development</title><content type='html'>&lt;p&gt; &lt;/p&gt;&lt;p&gt;Software Engineer Developmental Rubric&lt;/p&gt;&lt;table id="serunbric" border="1"&gt;&lt;thead style="COLOR: blue"&gt;&lt;tr&gt;&lt;th&gt;Dimension&lt;/th&gt;&lt;th&gt;Jr. Technician&lt;/th&gt;&lt;th&gt;Mid Carrier Level&lt;/th&gt;&lt;th&gt;Team Leader&lt;/th&gt;&lt;th&gt;Architect&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Training &lt;/th&gt;&lt;td&gt;Learns job requirements&lt;/td&gt;&lt;td&gt;Teaches requirements&lt;/td&gt;&lt;td&gt;Teaches Technical Concepts&lt;/td&gt;&lt;td&gt;Disseminates cultural values&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Operating Procedures&lt;/th&gt;&lt;td&gt;Told what to do&lt;/td&gt;&lt;td&gt;Standard Operating Procedure&lt;/td&gt;&lt;td&gt;Best Practices&lt;/td&gt;&lt;td&gt;Patterns and Practices&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Standards&lt;/th&gt;&lt;td&gt;Writes code, waits for others to test&lt;/td&gt;&lt;td&gt;Test functionality, will settle for working functionality&lt;/td&gt;&lt;td&gt;Oversees build, replaces work that is substandard&lt;/td&gt;&lt;td&gt;Creates implementations of concepts&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Requirements&lt;/th&gt;&lt;td&gt;Only works on requirements that are supplied.&lt;/td&gt;&lt;td&gt;Gets requirements from stakeholders&lt;/td&gt;&lt;td&gt;Integrates stakeholder requirements with scope&lt;/td&gt;&lt;td&gt;Integrates requirements, scope with systems architecture and corporate vision. Sets Technical Vision&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Vision&lt;/th&gt;&lt;td&gt;Disregards vision, too distracting, too many other things to worry about&lt;/td&gt;&lt;td&gt;Disregards Vision, believes it is just another stupid HR &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;initiative&lt;/span&gt;&lt;/td&gt;&lt;td&gt;Uses vision to generate excitement.&lt;/td&gt;&lt;td&gt;Set vision goals to expand the software community ecosystem and incorporates altruistic agenda.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Value System&lt;/th&gt;&lt;td&gt;does not know&lt;/td&gt;&lt;td&gt;personal ethics&lt;/td&gt;&lt;td&gt;team ethics&lt;/td&gt;&lt;td&gt;community ethics&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Relationship between Effort and Result&lt;/th&gt;&lt;td&gt;Believes others are "smarter"&lt;/td&gt;&lt;td&gt;Believes excuses, if only everyone else would do something then this would work.&lt;/td&gt;&lt;td&gt;Takes responsibility for outgoing work.&lt;/td&gt;&lt;td&gt;Integrates &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;contemplation&lt;/span&gt; of software concepts into leisure activities. Incorporates professional growth into Personal learning and private conversations.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Programming Style&lt;/th&gt;&lt;td&gt;In line&lt;/td&gt;&lt;td&gt;some encapsulation&lt;/td&gt;&lt;td&gt;class hierarchies&lt;/td&gt;&lt;td&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Asyncronism&lt;/span&gt; processing, prototyping, Interface building&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Testing&lt;/th&gt;&lt;td&gt;Expects others to test&lt;/td&gt;&lt;td&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Ad-Hoc&lt;/span&gt; Testing&lt;/td&gt;&lt;td&gt;Testing Against use cases&lt;/td&gt;&lt;td&gt;Automated Testing Suites&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;ref: &lt;a href="http://cfpm.org/jom-emit/2003/vol7/dirlam_dk.html#appendixa" target="_new"&gt;Appendix A: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Memetic&lt;/span&gt; system for the historical development of developmental research; Dr.D.K.Dirlam&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-1520724006367185413?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/1520724006367185413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=1520724006367185413' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/1520724006367185413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/1520724006367185413'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2008/12/software-engineer-developmental-rubric.html' title='Software Engineer: Phases of Professional Development'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-6540136897704103473</id><published>2008-12-28T08:49:00.000-08:00</published><updated>2010-09-13T09:27:47.741-07:00</updated><title type='text'>Software Engineering Culture, Shared Cultural Traits</title><content type='html'>&lt;p&gt;I have given some thought to traits that are common within individuals in the software culture. &lt;/p&gt;&lt;p&gt;&lt;u&gt;Common Cultural Properties:&lt;/u&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Describes learning as exciting&lt;/li&gt;&lt;li&gt;Caution - Pessimism &lt;/li&gt;&lt;li&gt;Long Work Hours/Personal Responsibility - Doing anything it takes to get the job done.&lt;/li&gt;&lt;li&gt;Strong Personal Sovereignty &lt;/li&gt;&lt;li&gt;Anal - Process oriented&lt;/li&gt;&lt;li&gt;Oriented towards knowledge acquisition&lt;/li&gt;&lt;li&gt;Prone towards empirical experimentation&lt;/li&gt;&lt;li&gt;Skeptical - proofs require measurable result&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;It is easy to see that when asking a knowledge worker if “learning is exciting?” All will know the only acceptable answer is yes. Not only would their peers would make fun of them (peer pressure?), but ansering in the negative during an interview will most likely cost you the job.&lt;br /&gt;&lt;br /&gt;The cautious streak comes from the fact that we work in environments filled with possible problems with implications that can get us fired. If someone foolishly destroys the database server and all staff and all customers are not able to perform work related functions for days, there can be quite severe repercussions. We learn caution from getting burned a couple of times.&lt;br /&gt;&lt;br /&gt;On project deadlines we all ramp up towards the end, crashing project timelines, leading us to trying to get things finished by the imposed timeline, which does not represent the amount of work that needed to be done, but the desired time to finish the work. We get used to very heavy workloads, and very late evenings. Most of us develop mitigation strategies like “work from home, ” to offset this. Even still it is common to work until 2am at least 5 times a year, in even the most relaxed environments.&lt;br /&gt;&lt;br /&gt;I think a large part of the personal sovereignty comes from the monetization of the software engineer skill set. The negotiating leverage is useful far beyond acquiring money and benefits. After a knowledge worker achieves their financial goals, they can use this leverage to have a say in the development of the environment they work in.&lt;br /&gt;&lt;br /&gt;Software engineers are process oriented as a group. The work attracts Type-A people and rewards “anal” behavior.&lt;br /&gt;&lt;br /&gt;Knowledge acquisition is rewarded in our culture with more money, and career advancement, this positive re-enforcement causes this trait to be common amongst member of the knowledge worker community.&lt;br /&gt;&lt;br /&gt;When dealing with complex problems that need to be solved I have heard, “when the going gets tough, the tough get empirical.” To ascertain the root cause of a wickedly complex issue (a quandary all software engineers find themselves in) empirical methods to test hypothesis is a necessary debugging tool.&lt;br /&gt;&lt;br /&gt;Our skepticism and desire for measurable truths results from the relationship software engineers have with the business. In bad environments (you know we have all been in them) we work with the subjective emotional experience of “The Business” and try to convert that to testable rubrics and machine instructions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-6540136897704103473?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/6540136897704103473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=6540136897704103473' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/6540136897704103473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/6540136897704103473'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2008/12/software-engineering-culture-shared.html' title='Software Engineering Culture, Shared Cultural Traits'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-7066648753625908196</id><published>2008-12-26T21:33:00.000-08:00</published><updated>2008-12-28T17:36:22.322-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zeitgeist'/><category scheme='http://www.blogger.com/atom/ns#' term='Knowledge Worker Culture'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Engineering Culture'/><category scheme='http://www.blogger.com/atom/ns#' term='History'/><title type='text'>Software Engineering Culture, a little background</title><content type='html'>&lt;p&gt;The knowledge worker culture as we know it today began with the acceptance of the UNIX (AT&amp;amp;T) operating system in the 1980’s. The software language C&lt;sup&gt;(1)&lt;/sup&gt; that was built to run the UNIX environment is the root of our modern systems.&lt;br /&gt;&lt;br /&gt;In the late 1980’s modern database systems were completed, and added support for a common extraction language (Structured Query Language, SEQUEL developed by IBM) and support for Open Database Connectivity (developed by Microsoft) was added in the very early 1990’s. OS2, a joint project of IBM and Microsoft, which morphed into the Window NT family was started in the late 1980’s and released in 1993 was the final fundamental step that completed the move to the modern computer era. By 1995, with protocols like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;TCPIP&lt;/span&gt;, HTTP, OLE we had a platform that significantly resembles the modern age of software.&lt;br /&gt;&lt;br /&gt;Most of the people that I know in the industry spent 1989 through 1996 developing data retrieval code for Windowed based &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;GUIs&lt;/span&gt;. From 1996 to about 2001, 2002 the industry scrambled to implement web sites and web applications, with out much knowledge about their tool sets. So from 2002 to today, we have been cleaning up the mess we made in the late 1990’s.&lt;br /&gt;&lt;br /&gt;So when people talk about the pace of change in software, I am taken aback. We have had two decades to get used to the current environment. The last big change in the industry came with Microsoft’s release of the .NET framework in 2001(we'll talk about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SOA&lt;/span&gt; later, it came before this, and does have a large &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;paradigm&lt;/span&gt; shift grade impact), and that was a shift that took the code base back to the Object Oriented Programming Ideals&lt;sup&gt;(2)&lt;/sup&gt; of C. What .Net represented was not so much a rethinking of software, but a nanny system that forced bad programmers to correspond to established best practices.&lt;br /&gt;&lt;br /&gt;The problem with having an idea of the changes in software is that the code changes from year to year, as better version (revisions) of software are released, not that the paradigm of development has changed. Add the fact that computer systems have immensely complexity, to this and it could appear that every thing has changed, when we are only discovering what we did not know last year (but really should have).&lt;br /&gt;&lt;br /&gt;So, that almost unanimous statement that “Change” is part of IT culture is something that I always wince at, when I hear it. The only universal changing thing in IT is knowledge-workers abandoning their respective employers for better opportunities.&lt;br /&gt;&lt;br /&gt;So what is the Zeitgeist of IT Culture, what are the traits that we share? Unfortunately I will need to weed out those people who write code as only their job, and talk only about Software Engineering Culture.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Need for constant process improvement.&lt;/strong&gt; “If I am not improving things here, I can just go somewhere else that I can make a difference.”&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Control over their own personal sovereignty.&lt;/strong&gt; “If you don’t like it, I can just leave.”&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Aggressive negotiating skills.&lt;/strong&gt; “I got five hits today on my monster resume.”&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Need to achieve to their own level of quality.&lt;/strong&gt; “You don’t own quality, we all do.”&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Aggressive self-study program.&lt;/strong&gt; “I will implement that new third party software in three days, I will learn it on the fly.”&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Consistent desire to implement new ideas.&lt;/strong&gt; “Check out this recursive function I made!”&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Desire for a comprehensive solution to problems.&lt;/strong&gt; “We need to fix the underlying problem, not just patch the patch.”&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;sup&gt;(1)&lt;/sup&gt;. C was a class based language with support for functions, it spawned C+, C++, and Java and is the basis for Microsoft.NET&lt;br /&gt;&lt;sup&gt;(2)&lt;/sup&gt;. With some very cool &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;API&lt;/span&gt; features and Visual Studio 2008 has a great code editor, but it still is a direct &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;descendant&lt;/span&gt; of C.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-7066648753625908196?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/7066648753625908196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=7066648753625908196' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/7066648753625908196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/7066648753625908196'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2008/12/software-engineering-culture-little.html' title='Software Engineering Culture, a little background'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-4963934160549603352</id><published>2008-12-26T09:54:00.000-08:00</published><updated>2008-12-26T09:59:14.695-08:00</updated><title type='text'>Learning Culture in Software Engineering - Preamble</title><content type='html'>So I have been at this for over two decades now, and have been close to software development for 26 years. During that time, I notice a pattern, which has been 100% accurate. All software engineers who are very good at their job are dedicate to life long learning. They all have a robust self-study program that they control, and allows then to master new ideas.&lt;br /&gt;&lt;br /&gt;Often they are mistakenly thought of by others as being smarter. But in truth, they are simply diligently working a self-study program.&lt;br /&gt;&lt;br /&gt;A self-study program is important because it trains the software engineer in acquiring new information quickly. It helps train the individual in the art of making informed assumptions that speed up knowledge acquisition. It shows the individual the size of knowledge chunks that they can consume, and through repetition trains them to be able to absorb larger information groups. The self in self study is important because it trains the individual in being able to go after information and knowledge on the individual’s own time and to correspond to the individuals life flow.&lt;br /&gt;&lt;br /&gt;So if one believes that repetition leads to enhanced skill uptake, then following a self-study program would improve an individuals overall learning capacity.&lt;br /&gt;&lt;br /&gt;Learning and being smart are core culture traits of the IT industry. This culture of learning in IT is nourished by Higher Education Establishments, Large Software Venders and by individual engineers. It is a common thread amongst all knowledge workers.&lt;br /&gt;&lt;br /&gt;So we will want to look at this cultural trait a bit to understand it.&lt;br /&gt;How do you foster and grow a culture of “life-long” learning?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How does “life-long” learning benefit you personally?&lt;/li&gt;&lt;li&gt;What value does “life-long” learning bring to organizational structures?&lt;/li&gt;&lt;li&gt;How is “life-long” learning taught and passed on to incoming members of the community?&lt;/li&gt;&lt;li&gt;Who makes their resources freely available and what benefits does that bring?&lt;/li&gt;&lt;li&gt;Where does “life-long education” fit into “life-long learning?”&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/8418874662877846453-4963934160549603352?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/4963934160549603352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=4963934160549603352' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/4963934160549603352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/4963934160549603352'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2008/12/learning-culture-in-software.html' title='Learning Culture in Software Engineering - Preamble'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-5072270944007841898</id><published>2008-06-18T17:19:00.000-07:00</published><updated>2008-06-21T04:54:27.553-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Meme'/><category scheme='http://www.blogger.com/atom/ns#' term='Class'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><title type='text'>Memes as Class Objects</title><content type='html'>I am interested in the idea of the Meme, because it appears to behave in a manner very similar to a Class. A meme is a container that may contain any amount of meme inside of it. A meme as a knowledge unit suggests a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;discrete&lt;/span&gt; action that it accounts for. A meme may have properties.&lt;br /&gt;&lt;br /&gt;A Meme, as a transferable knowledge unit, would consist of at least one noun and one verb.  This would correlate to properties and methods in OOP.&lt;br /&gt;&lt;br /&gt;It would appear to transfer well as a method of capturing &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;work-flow&lt;/span&gt; into an object oriented class structure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-5072270944007841898?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/5072270944007841898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=5072270944007841898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/5072270944007841898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/5072270944007841898'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2008/06/memes-as-class-objects.html' title='Memes as Class Objects'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-5668316325027196599</id><published>2008-06-15T18:59:00.001-07:00</published><updated>2008-06-21T04:49:35.463-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Memetics'/><category scheme='http://www.blogger.com/atom/ns#' term='Meme'/><category scheme='http://www.blogger.com/atom/ns#' term='Knowledge Units'/><category scheme='http://www.blogger.com/atom/ns#' term='memetic vocabulary'/><category scheme='http://www.blogger.com/atom/ns#' term='Use Case'/><category scheme='http://www.blogger.com/atom/ns#' term='User Stories'/><title type='text'>Memes = Knowledge Units</title><content type='html'>In business, knowledge units are routinely passed from person to person as people shift and change positions. Many people in an organization have knowledge about the functions that a person performs in a position, from the specific to the general. Most often position specific information is passed from position occupant to position occupant. During the 1970’s the study of the actions of a group of business people was called “System’s Analysis.” Today much of a IT group’s understanding of a business knowledge is gained through “Use Cases" or "User Stories."&lt;br /&gt;&lt;br /&gt;The User Stories are have more to do with the desired solution, then with what is currently happening, so that the shape of “System’s Analysis,” which was the documentation of current procedures has changed somewhat over time. As now we collaborate more on what we want to happen, then on what happens.&lt;br /&gt;&lt;br /&gt;A partial understanding of what is currently happening could be gained using the sociological tools of memetics. Memetics is the study of transmittable pieces of knowledge replicated primarily through imitation. Lots of work flow analysis may benefit from capturing the information that is transmitted from position holder to position holder as natural turnover happens in the enterprise.&lt;br /&gt;&lt;br /&gt;A meme is a unit of knowledge that can be transferred between people, usually through imitation. Transfer of knowledge units happens with replication and propagation. Knowledge transfer through an organization has a transformation &lt;strong&gt;vector&lt;/strong&gt;. Knowledge vectors have a tendency to cluster and happen together or "herd", this is &lt;strong&gt;memetic association&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;A knowledge unit can morph between propagations, not unlike a game of telephone, this is reflected in &lt;strong&gt;memetic drift&lt;/strong&gt; or the meme's &lt;strong&gt;copying-fidelity&lt;/strong&gt;. A meme is thought to have &lt;strong&gt;memetic inertia&lt;/strong&gt; if its characteristics are manifested in the same manner, regardless of who receives or transmits the meme.&lt;br /&gt;&lt;br /&gt;A knowledge unit may not always be health and helpful, this is reflected in the &lt;strong&gt;Meme's Fitness&lt;/strong&gt;. A knowledge unit that does not allow another specfic meme to exist is an &lt;strong&gt;Allomeme&lt;/strong&gt;, a mutually exclusive cultural trait.&lt;br /&gt;&lt;br /&gt;A meme's rate of replication and therefore its spread is the meme's &lt;strong&gt;fecundity&lt;/strong&gt;. The longer any instance of the replicating pattern survives, the more copies can be made of it, this is the Meme's &lt;strong&gt;longevity&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;A cluster of meme's is known as a &lt;strong&gt;memeplex&lt;/strong&gt;. A collection of memeplexes is know as a &lt;strong&gt;Deme&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;As a software developer a portion of my job is to capture the processes in an organization. There are most likely great tools out there to do this, I just don't know about them. So I spend time wondering about how knowledge is transferred around the office, so that I can take my butterfly net and capture it for study so that I can turn it into "&lt;a href="http://psychologyofcomputing.blogspot.com/2008/06/machine-code.html"&gt;machine Instructions&lt;/a&gt;."&lt;br /&gt;&lt;p&gt;User Stories are great, but they don't get deep enough sometimes in the processes of knowledge. So I use "User Stories" but think about the propagation of knowledge in the enterprise.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-5668316325027196599?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/5668316325027196599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=5668316325027196599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/5668316325027196599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/5668316325027196599'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2008/06/memes-knowledge-units.html' title='Memes = Knowledge Units'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-3211949368142603181</id><published>2008-06-15T11:45:00.000-07:00</published><updated>2008-06-21T04:48:39.276-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nonsense'/><category scheme='http://www.blogger.com/atom/ns#' term='CRC'/><category scheme='http://www.blogger.com/atom/ns#' term='Data base'/><category scheme='http://www.blogger.com/atom/ns#' term='Knowledge Units'/><category scheme='http://www.blogger.com/atom/ns#' term='Meta Data'/><category scheme='http://www.blogger.com/atom/ns#' term='Responsibility'/><category scheme='http://www.blogger.com/atom/ns#' term='Class'/><category scheme='http://www.blogger.com/atom/ns#' term='Collaboration'/><category scheme='http://www.blogger.com/atom/ns#' term='silly-buggers'/><title type='text'>Class-Responsibility-Collaboration hierarchies in databases</title><content type='html'>Database Structure is the rules of how an organization's data interacts together. This may seem obvious, but if you look at designs of databases and development, you see that the obvious is often ignored when in context. &lt;span style="color:#990000;"&gt;The database structure is the Meta Data&lt;/span&gt;, the data that explains data.&lt;br /&gt;&lt;br /&gt;An organization, from where I sit in the back office “virtually” consists of a network skeleton that reaches across to nodes, and or satellites. A backbone of heavy iron churns that data and runs the processes, launched by request from workstations.&lt;br /&gt;&lt;br /&gt;Usually an organization will have one or many databases that act as the repository of information in an organization. The purpose of this data is to &lt;span style="color:#006600;"&gt;monetize the information or processes for profit&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The way to think about the database is not to view it as a dog-pile of stuff, but to think of &lt;span style="color:#990000;"&gt;knowledge units&lt;/span&gt;. Many knowledge units are contained in the database and linked through processes and/or relationships.&lt;br /&gt;&lt;br /&gt;Knowledge units are first understood through the analysis of existing (or new) business practices. This often is done through “Use Case” scenarios. These knowledge units are transformed (part of the problem?) into “machine Instructions†” by a programmer.&lt;br /&gt;&lt;br /&gt;Knowledge Unit storage in the database, is the combination of data and the applied rules to the data in conjunction with the relationships that data has with other data (a variety of rule).&lt;br /&gt;&lt;br /&gt;Yet, what so often happens in production of a database design, is too much of the design is set up because, “I need to store this somewhere,” and a table of codes is created. The structure reflects the needs of the designer at design time, but does not take into account that what needs to be stored are things from the real world. These knowledge units are digital depictions of a&lt;strong&gt; &lt;/strong&gt;&lt;span style="color:#990000;"&gt;real world objects or processes.&lt;/span&gt; The real world intrudes on the digital with Class-Responsibility-Collaboration hierarchies, but too often the immediate needs of a program result in structures being created on the fly that are nonsense.&lt;br /&gt;&lt;br /&gt;So what I am saying is that when we are storing data into a database, we are storing the digital representation of a real thing, a classification or series of actions. To miscellaneously toss this willy-nilly into a hierarchical structure risks moving the whole structure into a game of “Silly-Buggers.”&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;†Usage for me is anything set of instructions a computer can use to render results, i.e. Table relationships, SQL statements for data extraction, script or compiled code, ect.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-3211949368142603181?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/3211949368142603181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=3211949368142603181' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/3211949368142603181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/3211949368142603181'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2008/06/class-responsibility-collaboration.html' title='Class-Responsibility-Collaboration hierarchies in databases'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-7327184316847707759</id><published>2008-06-15T07:05:00.000-07:00</published><updated>2008-06-16T13:01:23.895-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='expression'/><category scheme='http://www.blogger.com/atom/ns#' term='living document'/><category scheme='http://www.blogger.com/atom/ns#' term='well-craftedness'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='repository'/><category scheme='http://www.blogger.com/atom/ns#' term='Story-Telling'/><category scheme='http://www.blogger.com/atom/ns#' term='Silly Buggers'/><category scheme='http://www.blogger.com/atom/ns#' term='programming language'/><title type='text'>Code as "Story-Telling" Introduction</title><content type='html'>Computer code is a &lt;span style="color:#006600;"&gt;language of expression&lt;/span&gt;. The core purposes of a programming language are to &lt;span style="color:#006600;"&gt;articulate rules and actions&lt;/span&gt;. This expression of the rules is done by people, who have the purpose of sending instruction sets to the computer in such a way as to get the computer to execute a series of tasks that achieve a desired and mostly likely testable result.&lt;br /&gt;&lt;br /&gt;But the&lt;span style="color:#990000;"&gt; life cycle of programs goes beyond the extent of the first publication&lt;/span&gt;. Some computer code exists in a modified state for over 30 years. This life expectancy of code impacts how the written instructions should be targeted. It is not just enough for a program to be designed so that it does exactly what was desired, another aspect of a programs is its human maintainability over its full life-cycle.&lt;br /&gt;&lt;br /&gt;When developing code, the business processes are laid out in documents, these documents amount to the intention of what a program should do. The industry is getting better at producing these documents and putting together scope. The problem with the scope is when a change request is applied to the original scope the request amounts to an&lt;span style="color:#990000;"&gt; errata of the scope&lt;/span&gt;. Over the life of development of an item the original intention of the software is greatly modified, and you get errata, of errata, of errata and so forth. The issue comes into play that not even the documentation of the business process &lt;span style="color:#990000;"&gt;adequately defines&lt;/span&gt; what the true in production business process actually is.&lt;br /&gt;&lt;br /&gt;I sometimes view software through the conceit of the software being the real story of a business and that reading a businesses’ software is an exercise in &lt;span style="color:#009900;"&gt;exploring an enterprises’ set of practices&lt;/span&gt;. This story telling view of software, when I am reading someone else’s programs or writing the software myself helps me to get into a mind frame while I am developing to know that there will be (most likely) many other people who will work on a piece of software before it’s useful life expires.&lt;br /&gt;&lt;br /&gt;This view, as it has achieved fullness has led me to be slightly discouraged with the state of enterprise software that I have worked with. On the web, the software instruction set is usually just dog-pile. In-line code directives (line by line processed very similar to an old BASIC program) piled into pages that are not even organized well into directories, without even the use of basic programming plumbing like methods. In all the organizations I have worked at these code repository’s code could be best summed up by naming them “&lt;span style="color:#009900;"&gt;Silly Buggers&lt;/span&gt;.”&lt;br /&gt;&lt;br /&gt;A large part of the software writing community strives only to get the exact desired result from software. If the desired result is achieved then software is deemed to be successful. This can be summed up best by programmers who are asked about their software and they reply in its defense with “It Works,” which somehow absolves the software from any necessity of organization, well-craftedness, or maintainability.&lt;br /&gt;&lt;br /&gt;If &lt;span style="color:#990000;"&gt;software is the one true repository of the business processes of an enterprise&lt;/span&gt;, I wonder how a business can afford to have its’ processes stored in a manner that other human beings are not able to readily understand, or replicate. Additionally if the usage of code goes beyond just getting the correct result, but includes that code has a status as both a rules repository and a dynamic &lt;span style="color:#009900;"&gt;living document&lt;/span&gt;, then perhaps the way that the code itself is written should be looked at.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-7327184316847707759?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/7327184316847707759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=7327184316847707759' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/7327184316847707759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/7327184316847707759'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2008/06/code-as-story-telling-intruduction.html' title='Code as &quot;Story-Telling&quot; Introduction'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-3125357706327235154</id><published>2008-06-11T07:31:00.001-07:00</published><updated>2011-04-01T02:32:42.669-07:00</updated><title type='text'>My History</title><content type='html'>My name is Gareth &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Dirlam&lt;/span&gt;, I was raised in San Diego County and was a teenager (relatively) next to the hot spot of technology. My father was a computer salesman, and I learned about business system programing and database systems at the age of twelve. I worked in &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;financial&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;departments&lt;/span&gt; starting in 1989 when I was 19, doing budgeting &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;forecasts&lt;/span&gt;. Until now, I have worked mostly in the insurance and medical industries, besides maybe a year or two.&lt;br /&gt;&lt;br /&gt;As a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;programmer&lt;/span&gt; (&lt;a name="3.3.6"&gt;A name that in my thoughts becomes me best&lt;/a&gt;) I moved from script hacking to object oriented design in 1999 with the assistance and mentoring of some excellent engineers. I now write almost exclusively in C# and VB.net when I am on the server side.&lt;br /&gt;&lt;br /&gt;As a engineer and system's architect who cares about tiers, I have done &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;a lot &lt;/span&gt;of work with databases, and think that the database is a fine place to be. I work in database systems as a database designer, and believe &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;strongly&lt;/span&gt; in them. I work primarily in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SQL&lt;/span&gt; Server.&lt;br /&gt;&lt;br /&gt;&lt;strike&gt;I am currently employed as an IT director in the real estate industry.&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;I am mostly a web programmer, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;preferring&lt;/span&gt; that platform for ease of deployment and also comfort with a tool set I have worked with for a long time. I know HTML/XML, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;CSS&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;XSLT&lt;/span&gt; and Javascript, and use them to improve the overall &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;experience&lt;/span&gt; of the web applications I &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;develop&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-3125357706327235154?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/3125357706327235154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=3125357706327235154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/3125357706327235154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/3125357706327235154'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2008/06/my-history.html' title='My History'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8418874662877846453.post-1225199208526423122</id><published>2008-06-11T07:27:00.000-07:00</published><updated>2008-06-11T07:31:06.148-07:00</updated><title type='text'>New Blog</title><content type='html'>I felt that I needed someplace to start putting some ideas to paper (so to speak) and so I have started a blog.&lt;br /&gt;&lt;br /&gt;I will post here about my thoughts on programing, coordination of programing efforts, industry trends (past, present and future) and any aspects of the collaboration game that come to mind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8418874662877846453-1225199208526423122?l=psychologyofcomputing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psychologyofcomputing.blogspot.com/feeds/1225199208526423122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8418874662877846453&amp;postID=1225199208526423122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/1225199208526423122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8418874662877846453/posts/default/1225199208526423122'/><link rel='alternate' type='text/html' href='http://psychologyofcomputing.blogspot.com/2008/06/new-blog.html' title='New Blog'/><author><name>Gareth</name><uri>http://www.blogger.com/profile/07798203911958057070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
