<?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-35198169</id><updated>2011-04-21T14:55:12.300-07:00</updated><title type='text'>Dev Muse</title><subtitle type='html'>Observations, code, and random musings gleaned from my workaday adventures as a software developer.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://devmuse.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35198169/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://devmuse.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>George Ritchie</name><uri>http://www.blogger.com/profile/15500197623809734795</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>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-35198169.post-115973487445930887</id><published>2006-10-01T13:19:00.000-07:00</published><updated>2006-10-01T15:48:14.006-07:00</updated><title type='text'>Lego Blocks</title><content type='html'>In a prior software incarnation I worked with &lt;a href="http://en.wikipedia.org/wiki/Genetic_Programming"&gt;&lt;b&gt;Genetic Programming&lt;/b&gt;&lt;/a&gt;. Reflection reminds me vaguely of GP in the sense that the problem data influences the solution in an 'autonomous' fashion. Of course, with GP this is a 'random' influence whereas template code and attributes constructed for use with &lt;b&gt;Reflection&lt;/b&gt; are most definitely not.&lt;br /&gt;&lt;br /&gt;However both can assemble code or objects from bits and pieces - like Lego Blocks. GP by running large functional populations over many generations of evolution. Reflection by making runtime decisions, dynamically invoking and 'emitting' objects or code depending on the variation of data inputs. Fascinating.&lt;br /&gt;&lt;br /&gt;What sorts of problems use reflection and how is it used?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35198169-115973487445930887?l=devmuse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devmuse.blogspot.com/feeds/115973487445930887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35198169&amp;postID=115973487445930887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35198169/posts/default/115973487445930887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35198169/posts/default/115973487445930887'/><link rel='alternate' type='text/html' href='http://devmuse.blogspot.com/2006/10/lego-blocks.html' title='Lego Blocks'/><author><name>George Ritchie</name><uri>http://www.blogger.com/profile/15500197623809734795</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-35198169.post-115967853269657589</id><published>2006-09-30T21:39:00.000-07:00</published><updated>2006-10-01T15:56:59.843-07:00</updated><title type='text'>XML Everywhere</title><content type='html'>As you may imagine, in the service oriented, information integration and sharing business, &lt;em&gt;data flows&lt;/em&gt;, &lt;em&gt;work flows&lt;/em&gt; and &lt;em&gt;business processes&lt;/em&gt; are where it's at. In this context, everything we touch relates in one way or another to XML. Often XML is used in conjunction with Web Services - but that's another topic.&lt;br /&gt;&lt;br /&gt;XML is the currency in this world. Passed up and down layers and hierarchies of systems and code. Being complex and structured, XML is not to be looked upon simply as collections of 'data'. That is, XML implies 'objects'. And the objects we deal with are being passed around, serialized and deserialized, &lt;em&gt;everywhere&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;XML begats Objects and Objects begat XML&lt;/em&gt;. Up and down round and round... We end up doing some novel and downright cool stuff with this XML/object currency. One of the things that enables us to get funky with XML/objects is the idea of &lt;b&gt;Reflection&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;Reflection is all about &lt;em&gt;MetaData&lt;/em&gt;. Data about data. &lt;em&gt;Attributes&lt;/em&gt; are a way to add this metadata to your methods, classes, events, programs and other assembly targets. In a nutshell, &lt;em&gt;Reflection allows a running program to discover its own metadata and modify its behaviour accordingly&lt;/em&gt;.  &lt;br /&gt;&lt;br /&gt;XML, client dependent data say, is passed around and instantiated as objects. These objects are then acted upon via reflection at runtime. Our client data has come alive! This is powerful stuff. More about relection later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35198169-115967853269657589?l=devmuse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devmuse.blogspot.com/feeds/115967853269657589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35198169&amp;postID=115967853269657589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35198169/posts/default/115967853269657589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35198169/posts/default/115967853269657589'/><link rel='alternate' type='text/html' href='http://devmuse.blogspot.com/2006/09/xml-everywhere.html' title='XML Everywhere'/><author><name>George Ritchie</name><uri>http://www.blogger.com/profile/15500197623809734795</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-35198169.post-115965742765272127</id><published>2006-09-30T16:00:00.000-07:00</published><updated>2006-10-01T15:43:34.603-07:00</updated><title type='text'>TLAs</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/2055/3912/1600/Three-E-Diagramv4.gif"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/2055/3912/320/Three-E-Diagramv4.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;My employer, &lt;a href="http://visiphor.com"&gt;Visiphor&lt;/a&gt;, inhabits the Service Oriented Architecture (SOA) / Software Integration / Data Sharing space. We're a Microsoft shop that uses &lt;b&gt;BizTalk, K2, InfoPath,&lt;/b&gt; custom solutions, and our own Enterprise Information Integration (EII) product called &lt;b&gt;BIE&lt;/b&gt;. (for more about BIE or &lt;em&gt;Briyante Integration Environment&lt;/em&gt;, see the Visiphor website) We have a product side and a consulting side. I work for the consulting side - Visiphor Consulting Services. (VCS)&lt;br /&gt;&lt;br /&gt;One simple way of looking at the Data Sharing/Integration space is in terms of two development solutions at opposite ends of a spectrum as depicted above. A stateful &lt;b&gt;EAI&lt;/b&gt; (&lt;em&gt;Enterprise Application Integration&lt;/em&gt;) solution may use Biztalk, amongst other tools. And a 'real-time', stateless, purely &lt;b&gt;EII&lt;/b&gt; (&lt;em&gt;Enterprise Information Integration&lt;/em&gt;) solution using BIE.&lt;br /&gt;&lt;br /&gt;Employ &lt;b&gt;EII&lt;/b&gt; in situations where you need to query the 'latest' information from a network of database providers &lt;em&gt;now&lt;/em&gt; and state is not critical. Example: perform a 'Federated Query' of several disparate law enforcement agencies for potential suspect information in real-time. &lt;br /&gt;&lt;br /&gt;Use &lt;b&gt;EAI&lt;/b&gt; in situations involving long running Business Processes that evolve over time and which necessitate the keeping of state. An EAI example might involve using BizTalk, web services, web applications and databases to maintain correct relationships, according to complex Business Rules, between different Health Care Providers that host related patient data on seperate systems.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;EAI&lt;/b&gt; is usually the more heavyweight solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35198169-115965742765272127?l=devmuse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devmuse.blogspot.com/feeds/115965742765272127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35198169&amp;postID=115965742765272127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35198169/posts/default/115965742765272127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35198169/posts/default/115965742765272127'/><link rel='alternate' type='text/html' href='http://devmuse.blogspot.com/2006/09/tlas.html' title='TLAs'/><author><name>George Ritchie</name><uri>http://www.blogger.com/profile/15500197623809734795</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-35198169.post-115947193724889851</id><published>2006-09-28T12:31:00.000-07:00</published><updated>2006-10-01T15:35:05.466-07:00</updated><title type='text'>Hello World</title><content type='html'>Some noteworthy items of interest to this software developer are to be found here.&lt;br /&gt;&lt;br /&gt;A few Words to get the ball rolling; BizTalk, C#, .NET, SQL, Perl, Web Services, Federated Query, Mash-Up, Web 2.0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35198169-115947193724889851?l=devmuse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devmuse.blogspot.com/feeds/115947193724889851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35198169&amp;postID=115947193724889851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35198169/posts/default/115947193724889851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35198169/posts/default/115947193724889851'/><link rel='alternate' type='text/html' href='http://devmuse.blogspot.com/2006/09/hello-world.html' title='Hello World'/><author><name>George Ritchie</name><uri>http://www.blogger.com/profile/15500197623809734795</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>
