<?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-11200964</id><updated>2011-11-12T10:54:50.251-08:00</updated><title type='text'>Stronglytyped v2</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>62</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11200964.post-113745393286673680</id><published>2006-01-16T15:17:00.000-08:00</published><updated>2006-11-11T21:02:18.873-08:00</updated><title type='text'>CodeWonderland.com</title><content type='html'>&lt;img src="http://www.stronglytyped.com/alice_in_wonderland.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Coming soon: &lt;a href="http://codewonderland.com/"&gt;CodeWonderland.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's been coming to a point where the domain "stronglytyped.com" no longer represents the subject of what I want to write about.  I have some solid ideas for CodeWonderland and will open the site with a full mission statement.&lt;br /&gt;&lt;br /&gt;I will not take down StronglyTyped because some of the posts have been helpful to others.  What I'll do is polish the site for read only operations and indexing by the search bots and just let it sit.&lt;br /&gt;&lt;br /&gt;There will be a follow up to this post for the cutoff date and RSS switch over.&lt;br /&gt;&lt;br /&gt;Thanks!!&lt;br /&gt;&lt;br /&gt;Richard&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-113745393286673680?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/113745393286673680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=113745393286673680&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113745393286673680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113745393286673680'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2006/01/codewonderlandcom.html' title='CodeWonderland.com'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-113676922356315399</id><published>2006-01-08T17:12:00.000-08:00</published><updated>2006-11-11T21:02:18.671-08:00</updated><title type='text'>Fork()</title><content type='html'>I've been doing linux systems programming lately and was interestd in the source code for the fork() system call.  I laughed when I saw this as the header:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/*&lt;br /&gt; *  'fork.c' contains the help-routines for the 'fork' system call&lt;br /&gt; * (see also entry.S and others).&lt;br /&gt; * Fork is rather simple, once you get the hang of it, but the memory&lt;br /&gt; * management can be a bitch. See 'mm/memory.c': 'copy_page_range()'&lt;br /&gt; */&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-113676922356315399?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/113676922356315399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=113676922356315399&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113676922356315399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113676922356315399'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2006/01/fork.html' title='Fork()'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-113653446596157425</id><published>2006-01-05T23:55:00.000-08:00</published><updated>2006-11-11T21:02:18.490-08:00</updated><title type='text'>Messman Quote</title><content type='html'>Jack Messman, chairman of Novel:&lt;br /&gt;&lt;br /&gt;"Commercial software companies have to start operating further up the [software] stack to differentiate themselves.  The open source community is bascially focusing on infrastructure" (Financial Times, June 14, 2004)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-113653446596157425?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/113653446596157425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=113653446596157425&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113653446596157425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113653446596157425'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2006/01/messman-quote.html' title='Messman Quote'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-113451527849662697</id><published>2005-12-13T15:04:00.000-08:00</published><updated>2006-11-11T21:02:18.310-08:00</updated><title type='text'>Anonymous Method Trick</title><content type='html'>I found out a quick way of using anonymous methods to wrap a call:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;WaitCallback callback = delegate(object client)&lt;br /&gt;{&lt;br /&gt;     processString((string)client);&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;ThreadPool.QueueUserWorkItem (callback, "the string");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;the target method:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;void processString(string initstring)&lt;br /&gt;{&lt;br /&gt;     ...&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Because the QueueUserWorkItem uses the delegate WaitCallback which accepts an "object" we can use the anon method to do the casting preserving the target method signature.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-113451527849662697?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/113451527849662697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=113451527849662697&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113451527849662697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113451527849662697'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/12/anonymous-method-trick.html' title='Anonymous Method Trick'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-113397989110860205</id><published>2005-12-07T10:21:00.000-08:00</published><updated>2006-11-11T21:02:18.036-08:00</updated><title type='text'>How is the project?</title><content type='html'>&lt;img src="http://www.stronglytyped.com/gems/project.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-113397989110860205?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/113397989110860205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=113397989110860205&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113397989110860205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113397989110860205'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/12/how-is-project.html' title='How is the project?'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-113234297389429832</id><published>2005-11-18T11:34:00.000-08:00</published><updated>2006-11-11T21:02:17.838-08:00</updated><title type='text'>NUnit setup for VSNET2005</title><content type='html'>&lt;img src="http://www.stronglytyped.com/gems/nunit.JPG" /&gt;&lt;br /&gt;&lt;br /&gt;I was getting this error when loading a v2.0.50727 assembly in NUnit 2.2.0:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;"System.BadImageFormatException: The format of the file 'something.dll' is invalid."&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;After a bit of hacking around I found out how to fix it.&lt;br /&gt;&lt;br /&gt;First you need to download and install the iteration &lt;a href="http://nunit.com/testweb/index.php?p=releaseNotes&amp;r=2.2.3"&gt;version 2.2.3&lt;/a&gt;.  Use that link because for some reason you won’t get there from http://www.nunit.com.  &lt;br /&gt; &lt;br /&gt;Here’s the link to download: h&lt;a href="ttp://nunit.com/testweb/index.php?p=download"&gt;ttp://nunit.com/testweb/index.php?p=download&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;I think they just updated the site (it was dated 11/14/05) and the web site may have not been released.&lt;br /&gt; &lt;br /&gt;Anyways, once you get 2.2.3 installed load up the nunit-gui.exe.config file under the bin folder for nunit.  Then uncomment the following section:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  &amp;lt;startup&amp;gt;&lt;br /&gt;     &amp;lt;supportedRuntime version="v2.0.50727" /&amp;gt;&lt;br /&gt;     &amp;lt;supportedRuntime version="v2.0.50215" /&amp;gt;&lt;br /&gt;     &amp;lt;supportedRuntime version="v2.0.40607" /&amp;gt;&lt;br /&gt;     &amp;lt;supportedRuntime version="v1.1.4322" /&amp;gt;&lt;br /&gt;     &amp;lt;supportedRuntime version="v1.0.3705" /&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;requiredRuntime version="v1.0.3705" /&amp;gt;&lt;br /&gt;  &amp;lt;/startup&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Make sure v2.0.50727 is at the top of the list.&lt;br /&gt;&lt;br /&gt;From there you should be able to load and test VSNET2005/.NET2.0 assemblies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-113234297389429832?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/113234297389429832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=113234297389429832&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113234297389429832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113234297389429832'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/11/nunit-setup-for-vsnet2005.html' title='NUnit setup for VSNET2005'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-113115164108633268</id><published>2005-11-04T16:42:00.000-08:00</published><updated>2006-11-11T21:02:17.652-08:00</updated><title type='text'>X Develop</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.stronglytyped.com/uploaded_images/xdevelop2-785028.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.stronglytyped.com/uploaded_images/xdevelop2-782897.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've been doing a lot of cross platform .NET develop and struggled with project files and compiling on both sides (Win32 &amp; Linux) between MS's Framework and Mono.&lt;br /&gt;&lt;br /&gt;I lucked out and found XDevelop (&lt;a href="http://www.omnicore.com/"&gt;http://www.omnicore.com/&lt;/a&gt;).  With built in Unit testing, refactoring, revision control, easy switching between .NET 1.x, 2.0, and Mono, and support for VS.NET's SLN and CSPROJ file formats I found myself in pure bliss...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-113115164108633268?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/113115164108633268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=113115164108633268&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113115164108633268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113115164108633268'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/11/x-develop.html' title='X Develop'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-113036013077205636</id><published>2005-10-26T13:43:00.000-07:00</published><updated>2006-11-11T21:02:17.438-08:00</updated><title type='text'>Gourmet Software</title><content type='html'>In a Time &lt;a href="http://www.time.com/time/archive/preview/0,10987,1118384,00.html"&gt;interview with Jobs&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"He needs that control because he is fastidious about technology the way a gourmet is fastidious about foie gras, and he recognizes that in an increasingly networked world, in which gadgets can't just do their own thing but have to talk to one another, that conversation will go better if Jobs has scripted both sides of it. "One company makes the software. The other makes the hardware ... It's not working," Jobs says. "The innovation can't happen fast enough. The integration isn't seamless enough. No one takes responsibility for the user interface. It's a mess.""&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Having just bought a Mac and being complete awestruck by it's quality, this statement hit it home for me.  I feel the same way about the software I use and I makes me happy to have purchased something from somebody like Jobs.&lt;br /&gt;&lt;br /&gt;I like experiemental software to experiment with. I like throw away software to use for a short time and then throw away.  And I like well designed software to use daily.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-113036013077205636?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/113036013077205636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=113036013077205636&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113036013077205636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/113036013077205636'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/10/gourmet-software.html' title='Gourmet Software'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112958527853638938</id><published>2005-10-17T14:29:00.000-07:00</published><updated>2006-11-11T21:02:17.199-08:00</updated><title type='text'>Job Posting: Software Discoverer</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.stronglytyped.com/uploaded_images/columbus-765652.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.stronglytyped.com/uploaded_images/columbus-762734.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lately I've been thinking about the effects an ego has on software development.  Some thoughts include how a strong ego could fight for a less than adequate solution.  What that may be saying is the end solution is something the programmer creates.  &lt;br /&gt;&lt;br /&gt;But what if programmers view the end solution as a discovery rather than a creation.  What if programmers carried the view that ALL solutions to a problem already exist and it's up to us (programmers) to "find" them.&lt;br /&gt;&lt;br /&gt;That mind set may lead us in a direction where there's less emphasis on the creation part and more on the discovery.  The goal would be to find the best solution.  &lt;br /&gt;&lt;br /&gt;There's a new title for you: Software Discoverer!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112958527853638938?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112958527853638938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112958527853638938&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112958527853638938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112958527853638938'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/10/job-posting-software-discoverer.html' title='Job Posting: Software Discoverer'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112908942158363698</id><published>2005-10-11T20:44:00.000-07:00</published><updated>2006-11-11T21:02:17.048-08:00</updated><title type='text'>GoVideo DVD Player</title><content type='html'>I just purchased one of these:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.stronglytyped.com/uploaded_images/D2730_490x210-777853.jpg"&gt;&lt;img style="cursor:pointer; &lt;br /&gt;cursor:hand;" src="http://www.stronglytyped.com/uploaded_images/D2730_490x210-775852.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's the &lt;a href="http://www.govideo.com/Index.asp?GV=D2730"&gt;killer feature&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;"Stream MP3 and WMA audio files, JPEG, Tiff, PSD, PICT, and Bitmap image files, and MPEG1, MPEG2 and MPEG4 video files from your PC to your Living Room"&lt;br /&gt;&lt;br /&gt;Plus it support &lt;a href="http://www.upnp.org/"&gt;Universal Plug and Play&lt;/a&gt; (UPnp)...more good times ahead!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112908942158363698?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112908942158363698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112908942158363698&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112908942158363698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112908942158363698'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/10/govideo-dvd-player.html' title='GoVideo DVD Player'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112853971363520681</id><published>2005-10-05T12:13:00.000-07:00</published><updated>2006-11-11T21:02:16.901-08:00</updated><title type='text'>What is Mac OS X?</title><content type='html'>Currently reading: "&lt;a href="http://www.kernelthread.com/mac/osx/"&gt;What is Mac OS X?&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;Oh, and by the way, I just bought a MAC!! Good times are ahead... =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112853971363520681?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112853971363520681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112853971363520681&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112853971363520681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112853971363520681'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/10/what-is-mac-os-x.html' title='What is Mac OS X?'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112846841255861201</id><published>2005-10-04T16:18:00.000-07:00</published><updated>2006-11-11T21:02:16.755-08:00</updated><title type='text'>Ballmerisms</title><content type='html'>I just read this quote in &lt;a href="http://www.businessweek.com/magazine/content/05_39/b3952001.htm"&gt;BusinessWeek from Steve Ballmer&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"If you take a look at where we're going with innovation, what we have in the pipeline, I'm very excited. The output of our innovation is great," says Ballmer. "We won the desktop. We won the server. We will win the Web. We will move fast, we will get there. We will win the Web."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Something in me says this guy doesn't get it.  I see the web as a mix culture of hackers and users, researchers and students, consumers and vendors...basically a place where many different folks come to play.   To move in and say you're going to win it sounds imposing and pathetic.  You don't come in to play thinking you're going to own the sandbox!  We learned that in preschool.  I believe you need to play nicely with the kids and learn to share the toys to get anywhere.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112846841255861201?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112846841255861201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112846841255861201&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112846841255861201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112846841255861201'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/10/ballmerisms.html' title='Ballmerisms'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112811717707769777</id><published>2005-09-30T14:50:00.000-07:00</published><updated>2006-11-11T21:02:16.585-08:00</updated><title type='text'>Custom ASP.NET Web Service Descriptions</title><content type='html'>I'm working on the Web Service API for a product at work and needed a way to override the default ASMX generated help page.  I found this document on CodeProject:&lt;br /&gt;&lt;br /&gt;&lt;p style="font-style: italic;"&gt;To use the new documentation generator in your code, do the following:&lt;/p&gt;  &lt;ul&gt; &lt;li style="font-style: italic;"&gt;Add the files ServiceDescriptionGenerator.aspx and WebServiceDocumentation.css to your project.  &lt;/li&gt;&lt;li style="font-style: italic;"&gt;Change your application's web.config to reference the new service description generator, as described above and shown in the sample project.  &lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Create a new XML file containing your documentation. The file should be named like your &lt;/span&gt;&lt;i style="font-style: italic;"&gt;WebService.asmx&lt;/i&gt;&lt;span style="font-style: italic;"&gt; file, but with a suffix of &lt;/span&gt;&lt;i style="font-style: italic;"&gt;Documentation.aspx&lt;/i&gt;&lt;span style="font-style: italic;"&gt;, for example: &lt;/span&gt;&lt;i style="font-style: italic;"&gt;WebServiceDocumentation.aspx&lt;/i&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; [&lt;a href="http://www.codeproject.com/soap/webservicedoc.asp"&gt;Code Project&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Very Nice!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112811717707769777?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112811717707769777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112811717707769777&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112811717707769777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112811717707769777'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/09/custom-aspnet-web-service-descriptions.html' title='Custom ASP.NET Web Service Descriptions'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112745761223496501</id><published>2005-09-22T23:35:00.000-07:00</published><updated>2006-11-11T21:02:16.423-08:00</updated><title type='text'>C# 3.0...Don't Know?</title><content type='html'>ZefHemel has some thoughts on C# future:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"So, hereÂs my question. How far are we willing to drag on the huge beast that is a static language? If you look at a language like Ruby or Python, they already got most of the features that C# had to add to make this happen, but in Ruby and Python theyÂre not half as complicated. In Ruby you could already add methods to existing classes, anonymous methods (in Ruby known as blocks) are something a Ruby programmer breathes, anonymous types? &lt;/span&gt;&lt;tt style="font-style: italic;"&gt;var&lt;/tt&gt;&lt;span style="font-style: italic;"&gt; keyword? generics? DonÂt  need those." [&lt;a href="http://www.zefhemel.com/archives/2005/09/22/linq-and-language-complexity"&gt;ZefHemel&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;I see his point, however I wouldn't be skeptical of what we have going here. The difference between C# 3.0 and Python/Ruby is the compiler. Count me old school, but I like having a compiler along my side while coding. Compilers are still very useful programming tools.&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112745761223496501?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112745761223496501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112745761223496501&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112745761223496501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112745761223496501'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/09/c-30dont-know.html' title='C# 3.0...Don&apos;t Know?'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112701923264343930</id><published>2005-09-17T21:53:00.000-07:00</published><updated>2006-11-11T21:02:16.179-08:00</updated><title type='text'>Linq</title><content type='html'>Holy cow!!!  These guys are onto something killer with LINQ...check this out:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"The use of connections and SQL command execution is essentially driven by the deferred execution (or lazy eval for the functional language folks) in LINQ."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/dinesh.kulkarni/archive/2005/09/16/469340.aspx"&gt;http://blogs.msdn.com/dinesh.kulkarni/archive/2005/09/16/469340.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And here's some more:&lt;br /&gt;&lt;br /&gt;&lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;var &lt;/span&gt;q =&lt;br /&gt;     &lt;span class="kwd"&gt;from &lt;/span&gt;c &lt;span class="kwd"&gt;in&lt;/span&gt; customers&lt;br /&gt;     &lt;span class="kwd"&gt;where &lt;/span&gt;c.City == &lt;span class="st"&gt;"Seattle"&lt;/span&gt;&lt;br /&gt;     &lt;span class="kwd"&gt;select &lt;/span&gt;&lt;span class="kwd"&gt;new&lt;/span&gt; { c.Name, c.Age };&lt;/pre&gt; &lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;foreach&lt;/span&gt; (&lt;span class="kwd"&gt;var &lt;/span&gt;c &lt;span class="kwd"&gt;in&lt;/span&gt; q) {&lt;br /&gt;     &lt;span class="clss"&gt;Console&lt;/span&gt;.WriteLine(c.Name);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/cyrusn/archive/2005/09/16/469953.aspx"&gt;http://blogs.msdn.com/cyrusn/archive/2005/09/16/469953.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Check out the usage of Anonymous Types! &lt;br /&gt;&lt;br /&gt;This is awesome!  Notice how C# 3.0  is really starting to bridge the gap between it and Lisp.  This is a great time to be a programmer!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112701923264343930?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112701923264343930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112701923264343930&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112701923264343930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112701923264343930'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/09/linq.html' title='Linq'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112535205446960740</id><published>2005-08-29T14:46:00.000-07:00</published><updated>2006-11-11T21:02:16.034-08:00</updated><title type='text'>Singleton Pattern in C#</title><content type='html'>I thought I knew how to build a singleton pattern until I read this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"       The singleton pattern is one of the best-known patterns in software engineering.       Essentially, a singleton is a class which only allows a single instance of itself       to be created, and usually gives simple access to that instance. Most commonly,       singletons don't allow any parameters to be specified when creating the instance -       as otherwise a second request for an instance but with a different parameter could       be problematic! (If the same instance should be accessed for all requests with the       same parameter, the factory pattern is more appropriate.) This article deals only with       the situation where no parameters are required. Typically a requirement of singletons       is that they are created lazily - i.e. that the instance isn't created until it is       first needed." &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www.yoda.arachsys.com/csharp/singleton.html"&gt;Implementing the Singleton Pattern in C#&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112535205446960740?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112535205446960740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112535205446960740&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112535205446960740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112535205446960740'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/08/singleton-pattern-in-c.html' title='Singleton Pattern in C#'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112440727515545230</id><published>2005-08-18T16:20:00.000-07:00</published><updated>2006-11-11T21:02:15.846-08:00</updated><title type='text'>Programmer or Killer</title><content type='html'>Programming language inventor or serial killer...&lt;a href="http://www.malevole.com/mv/misc/killerquiz/"&gt;take the quiz&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;my score was 7 out of 10...ouch!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112440727515545230?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112440727515545230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112440727515545230&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112440727515545230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112440727515545230'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/08/programmer-or-killer.html' title='Programmer or Killer'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112422945832933451</id><published>2005-08-16T14:55:00.000-07:00</published><updated>2006-11-11T21:02:15.674-08:00</updated><title type='text'>Magnifier</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.stronglytyped.com/uploaded_images/magnifier-727903.PNG"&gt;&lt;img style="cursor: pointer;" src="http://www.stronglytyped.com/uploaded_images/magnifier-725556.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;While writing some OwnerDraw() functions in C# today I finally found a use for Windows Magnifier! I was so glad it was there when I needed it. Makes me feel bad for bashing it a few years back!&lt;br /&gt;&lt;br /&gt;Amazing how an different assessment can cast opposite perceptions ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112422945832933451?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112422945832933451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112422945832933451&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112422945832933451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112422945832933451'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/08/magnifier.html' title='Magnifier'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112322069308834991</id><published>2005-08-04T22:42:00.000-07:00</published><updated>2006-11-11T21:02:15.549-08:00</updated><title type='text'>Working from home</title><content type='html'>Chris writes about working from home:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"I've been running my consulting practice from my home office for about 2.5 years  now, interacting with my remote team members via eMail and IM. After spending  the previous 10 years in actual office space, it's been quite a change. Along  the way I've learned a few things about myself and my work style in my few years  of working from home. Perhaps these things will apply to you too."&lt;/span&gt; [&lt;a href="http://www.christopherhawkins.com/08-04-2005.htm#86"&gt;ChristopherHawkings.com&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Maybe if I would have followed his advise I wouldn't have been so burnt out working from home.  For the last 2.5 years I also worked from home.  However, I welcomed the change going back to the office.  I actually missed working face to face with people.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112322069308834991?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112322069308834991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112322069308834991&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112322069308834991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112322069308834991'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/08/working-from-home.html' title='Working from home'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112291556707350004</id><published>2005-08-01T09:49:00.000-07:00</published><updated>2006-11-11T21:02:15.360-08:00</updated><title type='text'>Value of Design Patterns</title><content type='html'>A quick little blogging thread on the value of design patterns:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"The Design Patterns insight was that collections of classes, and especially the way they interact, are new units that deserve names so we can talk about them explicitly. Is this earth shattering? No, but it can be powerful, and not just because it gives us a shorthand in design meetings. Seeing the interaction between classes as a phenomenon deserving of terminology is an important idea for people designing software. Sure, people have been getting classes to interact for decades, how else would software work? But recognizing this level of system design, and creating a language for thinking about it, reasoning about it, and discussing it, is a big step forward."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www.nedbatchelder.com/blog/200508.html#e20050801T090410"&gt;The Value of Patterns&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;I agree.&lt;br /&gt;&lt;br /&gt;Here's the thing, OOP and Structured programming are not all that different. And we've seen that with Visual Basic 6. Sure we get encapsulation and polymorphism but those features are available with structs and functions with out objects. What makes OOP shine is the &lt;span style="font-weight: bold;"&gt;interactions between classes&lt;/span&gt; (as mentioned by Ned). And that's where patterns come in. Without patterns, objects are just glorified structured programming modules.&lt;br /&gt;&lt;br /&gt;On a different thread I think another vector of programming that really delivers bang for the buck is reflection based programming. The ability to program on top of your code. Lisp, Python, and .NET all have this ability using different approaches. I think this ability bends the boundaries of what dynamic or statically typed languages can do and yields agile pieces of code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112291556707350004?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112291556707350004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112291556707350004&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112291556707350004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112291556707350004'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/08/value-of-design-patterns.html' title='Value of Design Patterns'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112250415385209316</id><published>2005-07-27T13:05:00.000-07:00</published><updated>2006-11-11T21:02:15.205-08:00</updated><title type='text'>Cross Platform GUI with C#</title><content type='html'>At work we're building a product that will run on both Windows and Linux using C#. Over the last few days I've been reading up on Mono and what it delivers. I found Gtk# and QT# as the two main toolkits used across platforms. There have been an attempts to port System.Windows.Form as a layer on top of Gtk and another that runs on top of Wine.  I'm not sure if either would work well for us.&lt;br /&gt;&lt;br /&gt;Another project that's quite appealing is &lt;a href="http://svn.myrealbox.com/mwf/index.html"&gt;Managed Windows.Forms&lt;/a&gt; or MWF. MWF is an implementation of System.Windows.Forms that's all rendered using System.Drawing and uses drivers to translate the WndProc calls.&lt;br /&gt;&lt;br /&gt;I was able to build a few tests where a .NEt assembly that was complied using VS.NET displayed a form on my Fedora Core box. They are about 98% complete with the port so a few of my tests broke depending on which components were used.  But overall the project is on a promising track.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112250415385209316?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112250415385209316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112250415385209316&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112250415385209316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112250415385209316'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/07/cross-platform-gui-with-c.html' title='Cross Platform GUI with C#'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112241200749721027</id><published>2005-07-26T14:05:00.000-07:00</published><updated>2006-11-11T21:02:15.053-08:00</updated><title type='text'>So Much Drama in the PhD</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;font-family:Arial, Helvetica, sans-serif;" &gt; Your mom circulates like a public key,&lt;/span&gt;&lt;br /&gt; &lt;span style="font-style: italic;font-family:Arial, Helvetica, sans-serif;" &gt; Servicing more requests than HTTP.&lt;/span&gt;&lt;br /&gt; &lt;span style="font-style: italic;font-family:Arial, Helvetica, sans-serif;" &gt; She keeps all her ports open like Windows ME,&lt;/span&gt;&lt;br /&gt; &lt;span style="font-style: italic;font-family:Arial, Helvetica, sans-serif;" &gt; Oh, there's so much drama in the PhD.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.monzy.com/intro/drama_lyrics.html"&gt;So Much Drama in the PhD&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt; &lt;span style="font-family:Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;br /&gt;Oh God, this is sooo funny...we were rolling at work today listening to it!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112241200749721027?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112241200749721027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112241200749721027&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112241200749721027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112241200749721027'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/07/so-much-drama-in-phd.html' title='So Much Drama in the PhD'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112232161533826780</id><published>2005-07-25T12:54:00.000-07:00</published><updated>2006-11-11T21:02:14.862-08:00</updated><title type='text'>Satisfying Software Career?</title><content type='html'>&lt;span style="font-style: italic;"&gt;"Internal, in-house software is rarely important enough to justify hiring rock stars. Nobody hires Dolly Parton to sing at weddings. That's why the most satisfying careers, if you're a software developer, are at actual software companies, not doing IT for some bank."&lt;/span&gt; [&lt;a href="http://www.joelonsoftware.com/articles/HighNotes.html"&gt;High Notes&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Switching from an IT team to a software product team, one of the first things I noticed was, "Wow! You mean we've been designed for that long...and will be for this much longer?" I'm very excited about how my team is focused on building a great product, one that will do very well in the market, by tuning in to the design and architecture.&lt;br /&gt;&lt;br /&gt;I'll miss the high action and close customer support of the IT world. However, I won't miss the constant task and context switching that made it challenging to spend quality time on a product.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112232161533826780?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112232161533826780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112232161533826780&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112232161533826780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112232161533826780'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/07/satisfying-software-career.html' title='Satisfying Software Career?'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112180300098525561</id><published>2005-07-19T12:43:00.000-07:00</published><updated>2006-11-11T21:02:14.689-08:00</updated><title type='text'>Namespace madness</title><content type='html'>At work we've been focusing on the design of our software application. One aspect of the design is Namespaces in .NET. At first we got carried away with namespaces nested under namespaces for these classes and then some more namespaces nested under those namespaces for those other namespaces. Oh but we didn't want to leave out these interfaces so we created another namespace nested that other namespace....bleh!!!&lt;br /&gt;&lt;br /&gt;It became a mess really quick.  So after much discussion while referring to the&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconnamespacenamingguidelines.asp"&gt; MSDN namespace guidelines&lt;/a&gt; we settled on a very shallow and flat namespace architecture. Basically it consists of our company name plus the technology name followed by some feature:&lt;br /&gt;&lt;br /&gt;Acme.FooGenerator.Services&lt;br /&gt;Acme.FooGenerator.Data&lt;br /&gt;Acme.FooGenerator.Frameworks&lt;br /&gt;Acme.FooGenerator.Presentation&lt;br /&gt;&lt;br /&gt;The reason for the third level in our scheme is to note physical separation. The Acme.FooGenerator.Data classes are typically placed on our data server. Acme.FooGenerator.Presentation will typically live on a client somewhere. Acme.FooGenerator.Frameworks will be shared and if needed could be GAC'ed.&lt;br /&gt;&lt;br /&gt;I think a simple scheme is a better scheme. We pondered the issue of naming conflicts but if classed are designed with some orderly hierarchy it could be very minimal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112180300098525561?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112180300098525561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112180300098525561&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112180300098525561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112180300098525561'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/07/namespace-madness.html' title='Namespace madness'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112170513142347809</id><published>2005-07-18T09:44:00.000-07:00</published><updated>2006-11-11T21:02:14.578-08:00</updated><title type='text'>Design Links</title><content type='html'>&lt;img src="http://www.stronglytyped.com/gems/artlebedev_logo.gif" /&gt;&lt;br /&gt;&lt;a href="http://www.artlebedev.com/mandership/"&gt;writings on design&lt;/a&gt;...nice!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112170513142347809?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112170513142347809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112170513142347809&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112170513142347809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112170513142347809'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/07/design-links.html' title='Design Links'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112084477153911366</id><published>2005-07-08T10:42:00.000-07:00</published><updated>2006-11-11T21:02:14.371-08:00</updated><title type='text'>IncrediBuild</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.stronglytyped.com/uploaded_images/progress-774275.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer;" src="http://www.stronglytyped.com/uploaded_images/progress-772048.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At work we're using a build tool called &lt;a href="http://www.xoreax.com/main7.htm"&gt;IncrediBuild&lt;/a&gt;. It allows you to take a build and distribute it across different hosts. This helps decrease build time by a large factor. I was also pleased to find it works with Visual Studio .NET. Right click on the .SLN file and hit "Build with IncrediBuild"!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112084477153911366?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112084477153911366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112084477153911366&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112084477153911366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112084477153911366'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/07/incredibuild.html' title='IncrediBuild'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112075865448916184</id><published>2005-07-07T10:37:00.000-07:00</published><updated>2006-11-11T21:02:14.166-08:00</updated><title type='text'>Job Openings at Pelco</title><content type='html'>Yesterday &lt;a href="http://www.stronglytyped.com/2005/07/do-you-know-c.html"&gt;I posted a job opening for a C++ software engineer&lt;/a&gt;.  There's actually several more positions open at &lt;a href="http://www.pelco.com"&gt;Pelco&lt;/a&gt;.  We're working on some &lt;a href="http://www.pelco.com/products/endura/"&gt;cool software&lt;/a&gt; and looking for smart folks to help out.  Pelco is an awesome place to work and is a very people oriented company.  In addition you'll be starting on the ground floor of a new product.  Here's what's open:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;User Interface Designer - Someone who can do usability studies to develop wireframes and prototypes.  Skills would include flash, photoshop, and visio.&lt;/li&gt;   &lt;li&gt;Graphics Designer - We need someone who can create original artwork such as icons, splash screens, and color schemes.&lt;/li&gt;   &lt;li&gt;C++ / .NET / QT Software Engineers - We're looking to fill multiple positions on our development team.  We're doing a lot with C++ and .NET on both Windows and Linux.  Our software involves streaming video and integration with our own custom hardware devices.&lt;/li&gt;   &lt;li&gt;Team Leads - We're also looking for folks who can manage teams of engineers.   Skills would include dealing with requirements and seeing that the implemention is followed through.&lt;/li&gt; &lt;/ul&gt; To learn more about Pelco check out the web site: &lt;a href="http://www.pelco.com"&gt;www.pelco.com&lt;/a&gt;  All positions are located in Clovis California.  To apply for the positions send your resume to hr@pelco.com or drop me a line if you want to know more: caetano -at- gmail.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112075865448916184?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112075865448916184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112075865448916184&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112075865448916184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112075865448916184'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/07/job-openings-at-pelco.html' title='Job Openings at Pelco'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112069705202883284</id><published>2005-07-06T17:41:00.000-07:00</published><updated>2006-11-11T21:02:14.019-08:00</updated><title type='text'>Do you know C++?</title><content type='html'>We're looking for a good C++ coder to work on GUI stuff dealing with some cool devices on both Windows and Linux.  If you're interested and willing to move to central california drop me a line...I'll fill you in on the details:  caetano-at-gmail.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112069705202883284?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112069705202883284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112069705202883284&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112069705202883284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112069705202883284'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/07/do-you-know-c.html' title='Do you know C++?'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-112045843877273343</id><published>2005-07-03T23:14:00.000-07:00</published><updated>2006-11-11T21:02:13.815-08:00</updated><title type='text'>SimpleShare</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.stronglytyped.com/uploaded_images/Prod_SimpleShare-707443.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://www.stronglytyped.com/uploaded_images/Prod_SimpleShare-700994.jpg" alt="" border="0" /&gt;&lt;/a&gt;Today I purchased a &lt;a href="http://www.simpletech.com/commercial/simpleshare/index.php"&gt;SimpleShare NAS Device&lt;/a&gt;. A full 250GB of storage! This will allow me to retire my Dell Linux box which I'm using as a file server. In the middle of transferring the files I decided to rearrange my MP3 library. At first I started just copying the file by hand but it ended up being to time consuming. What I ended up doing was setting up a FTP share on my box and then used SmartFTP to queue up my transfers. It saved me time because I could queue up all the arrangements and then go read a book in the mean time.&lt;br /&gt;&lt;br /&gt;Along other bytes I wanted to report that I left Paramount Farms and am now working as a software engineer at &lt;a href="http://www.pelco.com/"&gt;Pelco&lt;/a&gt;. It's a pretty exciting time to start. We are working on a new product and I'll be on the ground floor. It's a pretty large system built on top of .NET with Linux servers and Windows clients. There is also a lot of cool integration with our specific hardware. I want to write more about what we're working on as time goes by.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-112045843877273343?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/112045843877273343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=112045843877273343&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112045843877273343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/112045843877273343'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/07/simpleshare.html' title='SimpleShare'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111959131791895912</id><published>2005-06-23T22:27:00.000-07:00</published><updated>2006-11-11T21:02:13.599-08:00</updated><title type='text'>"Personal" Digital Assistant</title><content type='html'>Since monday my Zire 72 has been lost.  At first I thought I just misplaced it and figured it would be in one of my routine spots.  As the days passed and the list of routine spots diminished I began to worry.  I kept so much information on it that the feeling of somebody else grabbing a hold of it was starting to disturb me.&lt;br /&gt;&lt;br /&gt;Come to find out it ended up being in my clothes hamper.  Not sure how that happened but I am happy to have found it.  &lt;br /&gt;&lt;br /&gt;Now I'm thinking about the data on it and how personal it is to me.  I already do daily backups (syncs with my PC) but the idea of somebody finding my data is not a comfortable one.  I could setup a password but not sure if I want to go back and forth with it everytime I use it.&lt;br /&gt;&lt;br /&gt;Of course the simple solution would be "DON'T STORE PERSONAL DATA ON THE PDA"...&lt;br /&gt;&lt;br /&gt;Any thoughts?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111959131791895912?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111959131791895912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111959131791895912&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111959131791895912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111959131791895912'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/06/personal-digital-assistant.html' title='&quot;Personal&quot; Digital Assistant'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111938520294731911</id><published>2005-06-21T13:15:00.000-07:00</published><updated>2006-11-11T21:02:13.423-08:00</updated><title type='text'>An Old Friend</title><content type='html'>With the new job I'm getting to know an old friend:&lt;br /&gt;&lt;br /&gt;&amp;lt;soap:Envelope &lt;br /&gt;  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"&amp;gt;&lt;br /&gt;  &amp;lt;soap:Header&amp;gt;&lt;br /&gt;  &amp;lt;/soap:Header&amp;gt;&lt;br /&gt;  &amp;lt;soap:Body&amp;gt;&lt;br /&gt;    &amp;lt;!-- Data goes here --&amp;gt;&lt;br /&gt;  &amp;lt;/soap:Body&amp;gt;&lt;br /&gt;&amp;lt;/soap:Envelope&amp;gt; &lt;br /&gt;&lt;br /&gt;and it says: "... have your way with me!"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111938520294731911?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111938520294731911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111938520294731911&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111938520294731911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111938520294731911'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/06/old-friend.html' title='An Old Friend'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111725780859661893</id><published>2005-05-27T22:15:00.000-07:00</published><updated>2006-11-11T21:02:13.274-08:00</updated><title type='text'>Lazy, Stupid, Boring</title><content type='html'>If I were a lazy, stupid, and boring programmer, would I make a good programmer?&lt;br /&gt;&lt;br /&gt;Let's see:&lt;br /&gt;&lt;br /&gt;If I were lazy I would try to write as many automation tools as possible.  I would want to rely on code generation tools because I'm too lazy to build all those Data Access Layer objects.  Code reuse would be my daily goal...why write something when you can reuse it?&lt;br /&gt;&lt;br /&gt;Being stupid would make it hard for me to see a project as a whole.  So I would decouple all the pieces to make them easier to think about.  Because I'm stupid I can only focus and think about little things like simple interfaces and short little methods.&lt;br /&gt;&lt;br /&gt;Yah, boring.  If I were a boring programmer I would write boring code.  For anybody who needs to maintain my stuff guess what...NO SUPRISES!  That's right, my stuff is super simple and quite boring.  You can get in there, make the modification, and get out without dealing in anything trick.&lt;br /&gt;&lt;br /&gt;So question?  Would I want to be a lazy, stupid, and boring programmer?&lt;br /&gt;&lt;br /&gt;Answer: In my dreams!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111725780859661893?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111725780859661893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111725780859661893&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111725780859661893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111725780859661893'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/05/lazy-stupid-boring.html' title='Lazy, Stupid, Boring'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111653805787057329</id><published>2005-05-19T14:25:00.000-07:00</published><updated>2006-11-11T21:02:13.063-08:00</updated><title type='text'>Podcasts to Zire</title><content type='html'>The first project I want to do with my Zire will be to setup a system for Podcasting.  I'm thinking I could either plug into FeedDemon or create a standalone app.  Then I would want to push it to the Zire (PalmOS) through HotSync.&lt;br /&gt;&lt;br /&gt;I'll post updates and I make progress.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111653805787057329?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111653805787057329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111653805787057329&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111653805787057329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111653805787057329'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/05/podcasts-to-zire.html' title='Podcasts to Zire'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111647493168701638</id><published>2005-05-18T20:32:00.000-07:00</published><updated>2006-11-11T21:02:12.888-08:00</updated><title type='text'>Stored Procedure Logic</title><content type='html'>Rik Hemsley wrote a little post on "&lt;a href="http://rikkus.info/log/index.php?p=32"&gt;Stored Procedures vrs Dynamic/Embedded SQL&lt;/a&gt;".  Neat comparison!&lt;br /&gt;&lt;br /&gt;Personally I like to think of the database as its own black box.  In itself there should be rules and logic necessary to keep data integrity.  That's where I lean on StoredProcs heavily. &lt;br /&gt;&lt;br /&gt;There are a lot of design patterns out there that pull the business logic out of the database and into some sort of business tier.  That's fine but I believe you can efficiently split that logic into something that maps closely to the database especially when transactions are needed.  &lt;br /&gt;&lt;br /&gt;I do my best to avoid 'monolithic transactions'.  That's where the developer opens a connection to the database, begins a transaction, and then has their way with the database.  It's a common strategy but very inflexible.  I believe small transactions kept at the stored proc level works better.  Then if needed you can nest them in larger transactions at the "business logic" layer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111647493168701638?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111647493168701638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111647493168701638&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111647493168701638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111647493168701638'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/05/stored-procedure-logic.html' title='Stored Procedure Logic'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111645790183243641</id><published>2005-05-18T16:06:00.000-07:00</published><updated>2006-11-11T21:02:12.709-08:00</updated><title type='text'>Zire72</title><content type='html'>&lt;img src="http://www.stronglytyped.com/gems/zire72.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;I just got a &lt;a href="http://www.palmone.com/us/products/handhelds/zire72/"&gt;Zire72&lt;/a&gt; and am pretty happy with it.  The camera's quality is "OK" but everything else works pretty well.  It comes with RealAudio media player which doesn't support WMA but &lt;a href="http://www.pocket-tunes.com/"&gt;pocketTunes&lt;/a&gt; does.  I have the trial and am happy with it (thanks for the heads up Paul).  I've always been a fan of the PalmOS for its simplicity.  Right now Palm is offereing some &lt;a href="http://www.palmone.com/us/products/handhelds/zire72/"&gt;cool rebates with the purchase&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;- Free Palm Hard Case with purchase of Zire 72 handheld or Zire 72 GPS Kit.&lt;br /&gt;- Free space. 512MB, to be exact! Get a FREE 512MB memory card by mail when you buy a Zire 72 handheld. $79 Value&lt;br /&gt;- Trade In / Trade Up - Give us your old handheld or communicator - We'll send you a $50 Gift Certificate!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Anybody still writing PalmOS apps out there?  What's popular for palm dev these days?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111645790183243641?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111645790183243641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111645790183243641&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111645790183243641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111645790183243641'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/05/zire72.html' title='Zire72'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111630607154671259</id><published>2005-05-16T21:56:00.000-07:00</published><updated>2006-11-11T21:02:12.500-08:00</updated><title type='text'>ASP,NET Development with Dreamweaver</title><content type='html'>&lt;img src="http://www.stronglytyped.com/gems/159x120_box_dreamweaver.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;I've been working on a small ASP.NET project.  With this particular project I've chosen to put all the code within &amp;lt;script&amp;gt; blocks.  For a change this time around I'm using &lt;a href="http://www.macromedia.com/software/dreamweaver/"&gt;Dreamweaver MX&lt;/a&gt; as the IDE.  I've typically used VisualStudio.NET or &lt;a href="http://www.crimsoneditor.com/"&gt;Crimson Editor&lt;/a&gt; in the past but DMX has killer code editor features for ASP.NET editing:&lt;br /&gt;&lt;br /&gt;- Works with ASP.NET DataSet, DataGrid and DataList objects&lt;br /&gt;- ASP.NET Webforms support&lt;br /&gt;- ASP.NET Custom Tag Support&lt;br /&gt;- Dynamic Form Objects&lt;br /&gt;- Server Objects&lt;br /&gt;- Tag Editors for ASP.NET&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111630607154671259?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111630607154671259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111630607154671259&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111630607154671259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111630607154671259'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/05/aspnet-development-with-dreamweaver.html' title='ASP,NET Development with Dreamweaver'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111587855128940654</id><published>2005-05-11T23:15:00.000-07:00</published><updated>2006-11-11T21:02:12.312-08:00</updated><title type='text'>ASP.NET Debug View</title><content type='html'>&lt;span style="font-style:italic;"&gt;"I love it when I get to kill two birds with one stone. So I decided to sit down and write a little browser extension to provide an indication of debug mode within the browser. " &lt;/span&gt;[&lt;a href="http://www.nikhilk.net/Entry.aspx?id=63"&gt;nikhilk.net&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;What a great idea!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111587855128940654?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111587855128940654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111587855128940654&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111587855128940654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111587855128940654'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/05/aspnet-debug-view.html' title='ASP.NET Debug View'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111587660735497629</id><published>2005-05-11T22:17:00.000-07:00</published><updated>2006-11-11T21:02:12.146-08:00</updated><title type='text'>Did you get that memo?</title><content type='html'>This email thread really did happen:&lt;br /&gt;&lt;br /&gt;An email is sent out by [person1]&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Attached you will find the format for functional spec documents.  &lt;br /&gt;Any new (material) development should include the completion of &lt;br /&gt;this document.  The document is short and should not require a &lt;br /&gt;high level of effort.  This document may change as we fit it to &lt;br /&gt;our development cycles, but I think this is a pretty good start.  &lt;br /&gt;If you have change suggestions please forward them.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I respond with:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;I'm working on the functional spec for the oracle interface.  &lt;br /&gt;Any opposition to storing the document in MSWord format?  &lt;br /&gt;We can then include pictures and use Word's "track changes" &lt;br /&gt;feature.&lt;br /&gt;&lt;br /&gt;Oh...do we need TPS Coversheets for submitted specs?&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The response from [person1]:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;We can.  I was hoping to store them near the code so we can &lt;br /&gt;reference them quickly.  I was thinking they might be viewed &lt;br /&gt;by cat or vi as reference to how the process works.  &lt;br /&gt;Thoughts?&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;[person2] asks 3 honest questions:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Richard:&lt;br /&gt;&lt;br /&gt;1.  What is a TPS coversheet?&lt;br /&gt;2.  VI is some kind of text editor, right?&lt;br /&gt;3.  What is "cat"?&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;                 &lt;br /&gt;[person3] responds with:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;1. Attached.  We're putting cover sheets on all of our &lt;br /&gt;TPS reports now before they go out. Did you get that memo?  &lt;br /&gt;(see http://en.wikipedia.org/wiki/TPS_report)&lt;br /&gt;&lt;br /&gt;2. Roman numeral 6… or Unix text editor &lt;br /&gt;(see http://en.wikipedia.org/wiki/Vi)&lt;br /&gt;&lt;br /&gt;3. [[picture of a feline]]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;[person2] responds with:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;1.  Thanks for the TPS.  Still don't know what it stands &lt;br /&gt;for, though -- anyone know?  Plus, I did not see that &lt;br /&gt;movie.  Perhaps [person1] will grant education credit &lt;br /&gt;for viewing it.&lt;br /&gt;&lt;br /&gt;2.  Good link.  Thanks.&lt;br /&gt;&lt;br /&gt;3.  This is the first humorous response you have provided &lt;br /&gt;me with -- waytuhgo, [person3]!  Keep 'em comin'!&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;[person4] suggests:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Test Procedure Specification, perhaps?&lt;br /&gt;&lt;br /&gt;Yes, thank you for the link.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;[person3] sheds some light:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;The TPS is just a joke…. Richard was referring to the &lt;br /&gt;mindless paperwork definition.  ;)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Funny thing is [person2] and [person4] never watched office space!&lt;br /&gt;&lt;br /&gt;The thread ends with:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[person4] &lt;br /&gt;Ahh… hahahahah&lt;br /&gt;&lt;br /&gt;[person2] &lt;br /&gt;You got me good.  I just did not expect it from you. &lt;br /&gt;A new side emerges!&lt;br /&gt;  &lt;br /&gt;p.s.  I agree, by the way...&lt;br /&gt;&lt;br /&gt;[person3]&lt;br /&gt;You really do need to watch Office Space&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/11200964-111587660735497629?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111587660735497629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111587660735497629&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111587660735497629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111587660735497629'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/05/did-you-get-that-memo.html' title='Did you get that memo?'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111539114649610765</id><published>2005-05-06T07:04:00.000-07:00</published><updated>2006-11-11T21:02:11.806-08:00</updated><title type='text'>Back with (dot)NET</title><content type='html'>After working with the &lt;a href="http://msdn.microsoft.com/netframework/"&gt;.NET framework&lt;/a&gt; since beta 1 I recently took a 8 month hiatus from it to do some work with linux and python/perl. Over the last couple days I dug back into it using v2.0 of the framework and &lt;a href="http://lab.msdn.microsoft.com/express/vcsharp/default.aspx"&gt;Visual C# Express 2005&lt;/a&gt;.  I have to say WOW.  Microsoft really was able to pull off some great things.&lt;br /&gt;&lt;br /&gt;Before the hiatus a few upcoming features were interesting to me. &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/csharp_generics.asp"&gt;Generics&lt;/a&gt; and &lt;a href="http://www.theserverside.net/articles/showarticle.tss?id=AnonymousMethods"&gt;Annonymous methods&lt;/a&gt; are two very useful framework features that I never got to see until now.&lt;br /&gt;&lt;br /&gt;With generics, something I've been dying to use, we can instantiate a class with specific types. For example let's create a class that holds a reference to a type that we'll define:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public class HoldSomething&amp;lt;anytype&amp;gt;&lt;br /&gt;{&lt;br /&gt;private anytype _data;&lt;br /&gt;&lt;br /&gt;public void Store(anytype data)&lt;br /&gt;{&lt;br /&gt; _data = data;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public anytype Retrieve()&lt;br /&gt;{&lt;br /&gt; return _data;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;It's an overly simple example but with that class we can instantiate it with the type we're going to use:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// let's work with an int&lt;br /&gt;HoldSomething&amp;lt;int&amp;gt; hold = new HoldSomething&amp;lt;int&amp;gt;();&lt;br /&gt;hold.Store(10);&lt;br /&gt;&lt;br /&gt;// let's work with a string&lt;br /&gt;HoldSomething&amp;lt;string&amp;gt; holdastring = new HoldSomething&amp;lt;string&amp;gt;();&lt;br /&gt;hold.Store("Hello World");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I believe Generics makes the C# language a bit more dynamic, kind of like Python or Perl. There were many times in that past where I had to reference and unknown type with System.Object resulting in implicit boxing.&lt;br /&gt;&lt;br /&gt;I'm also blown away with all the neat little features tucked in Visual C# 2005: refactoring support, practical debugging enhancements, a light footprint, better ergonomics, and more as I keep using it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111539114649610765?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111539114649610765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111539114649610765&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111539114649610765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111539114649610765'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/05/back-with-dotnet.html' title='Back with (dot)NET'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111514619992783245</id><published>2005-05-03T11:37:00.000-07:00</published><updated>2006-11-11T21:02:11.662-08:00</updated><title type='text'>TetrisNET</title><content type='html'>&lt;img src="http://www.stronglytyped.com/gems/tetrisnet.JPG" /&gt;&lt;br /&gt;&lt;br /&gt;This was one of my first projects with C#. At the time C# was still in Beta 2. I used the tetris idea as a way to learn more about the framework and how the language works.&lt;br /&gt;&lt;br /&gt;My first hack is based around 3 objects: CTetrisGame, CTetrisBoard, and CShapeBase.&lt;br /&gt;&lt;br /&gt;CTetrisGame controls the game and does the rendering. It also handles game play such as checking for completed lines and game scores. It's a rough sketch of the controller in MVC.&lt;br /&gt;&lt;br /&gt;CTetrisBoard simply manages the game board. It remembers where blocks are stored and does boundary checking. CTetrisGame encapsulates an instance of this object.&lt;br /&gt;&lt;br /&gt;CShapeBase starts an object hierarchy to represent each shape. CShapeBase encapsulates the basic shape functionality such as movement and rotation. Each concrete shape inherits from the CShapeBase and overrides the layout of itself. CTetrisGame then randomly picks the shape from an array of shape instances to handles the game action.&lt;br /&gt;&lt;br /&gt;Future ideas included a remote service to record game scores. That idea was never fully implemented. Another idea was to add sound. I left the hooks in place but they are commented out in the current source.&lt;br /&gt;&lt;br /&gt;If I were to redesign the source code I would have implemented a more traditional MVC architecture. Linked here is the "solution" updated with Visual C# 2005 Express Edition. Feel free to download and critique. I love feed back.&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www.stronglytyped.com/downloads/tetrisnet.zip"&gt;Download Source and Executable&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111514619992783245?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111514619992783245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111514619992783245&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111514619992783245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111514619992783245'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/05/tetrisnet.html' title='TetrisNET'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111514540464454851</id><published>2005-05-03T11:31:00.000-07:00</published><updated>2006-11-11T21:02:11.518-08:00</updated><title type='text'>Interesting Links</title><content type='html'>I tend to collect links on my desktop for future reading. While cleaning up my desktop today I figured I'd post them before deleting them:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/architecture/default.aspx?pull=/library/en-us/dnbda/html/rfidretsupchn.asp"&gt;RFID Enabled Retail Supply Chain&lt;/a&gt; - Covers an area I've been working with: RFID&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.coralcdn.org/"&gt; Coral is peer-to-peer content distribution network&lt;/a&gt;, comprised of a world-wide network of web proxies and nameservers.&lt;/li&gt;   &lt;li&gt;&lt;a href="http://live.capescience.com/AirportWeather/index.html"&gt;&lt;span class="masterheading"&gt;Web Service: &lt;/span&gt;&lt;/a&gt;&lt;span class="masterheadingorange"&gt;&lt;a href="http://live.capescience.com/AirportWeather/index.html"&gt;AirportWeather&lt;/a&gt; - I have ideas for this!&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;&lt;span class="masterheadingorange"&gt;&lt;a href="http://www.poplarware.com/bizstart.html"&gt;Starting a Software Consulting Business&lt;/a&gt; - Lots of good ideas and things to think about&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;&lt;span class="masterheadingorange"&gt;&lt;a href="http://www.gallagherpress.com/pierce/recipe.htm"&gt;Recipe for Simplicity&lt;/a&gt; - More life related but a good read&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;&lt;span class="masterheadingorange"&gt;&lt;a href="http://www.listensoftware.com/hrxp/cmarticles.asp?contentid=473"&gt;Building a DML Transaction logs for an MS Application&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;&lt;span class="masterheadingorange"&gt;&lt;a href="http://www.stanford.edu/dept/itss/docs/oracle/9i/win.920/a97262/ch5.htm"&gt;Oracle Migration Workbench Reference Guide for Microsoft Access&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;&lt;span class="masterheadingorange"&gt;&lt;a href="http://www.dynarch.com/projects/calendar/"&gt;The DHTML / JavaScript Calendar&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;  &lt;/ul&gt;and for fun ...&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.cs.ubc.ca/%7Evan/sssjava/javademo.html"&gt;Ski Stunt Simulator&lt;/a&gt;&lt;br /&gt;  &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/11200964-111514540464454851?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111514540464454851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111514540464454851&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111514540464454851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111514540464454851'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/05/interesting-links.html' title='Interesting Links'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111505291254645268</id><published>2005-05-02T09:59:00.000-07:00</published><updated>2006-11-11T21:02:11.381-08:00</updated><title type='text'>Glass3d</title><content type='html'>&lt;img src="http://www.stronglytyped.com/gems/glass3d.png" /&gt;&lt;br /&gt;&lt;br /&gt;Glass3d was an experiement with C#/GDI+ and basic 3d rendering. Although I would not normally use GDI+ to render this it was a good exercise in threading and basic Win32 GUI programming.&lt;br /&gt;&lt;br /&gt;NOTE: The EXE is compiled against the framework v2.0.50215.  The "solution" was setup under Visual C# Express 2005.&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www.stronglytyped.com/downloads/glass3d.zip"&gt;download glass3d&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111505291254645268?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111505291254645268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111505291254645268&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111505291254645268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111505291254645268'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/05/glass3d.html' title='Glass3d'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111499365679314988</id><published>2005-05-01T17:24:00.000-07:00</published><updated>2006-11-11T21:02:11.201-08:00</updated><title type='text'>Off Shoring ... literally</title><content type='html'>&lt;span style="font-style: italic;"&gt;"In an outrageous affront to U.S. labor laws, a California company plans to anchor a 600-cabin cruise ship just beyond the three-mile limit off the coast of El Segundo, near Los Angeles, and stock it with foreign software programmers."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www.newsmax.com/archives/articles/2005/4/28/170632.shtml"&gt;newsmax&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Gotta love the effects of capitalism...where audacity is rewarded and the stagnant is left behind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111499365679314988?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111499365679314988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111499365679314988&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111499365679314988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111499365679314988'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/05/off-shoring-literally.html' title='Off Shoring ... literally'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111447133694918301</id><published>2005-04-25T16:20:00.000-07:00</published><updated>2006-11-11T21:02:11.061-08:00</updated><title type='text'>Reflections on RPC</title><content type='html'>Last night I had an online chat with &lt;a href="http://sourceforge.net/users/skot/"&gt;Scott &lt;/a&gt;about how well the web services space has developed. We've both been digging Flickr and their API.&lt;br /&gt;&lt;br /&gt;Sparked by that chat, this morning on the way to my day job I was reflecting on what RPC is and how it has changed over time. I have a short list of technologies I've worked with:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sockets (late 90's) &lt;/span&gt;- Ahhh...the trusty socket. Open a connection. Send data. Receive it. Do something. Kind of like two people chatting, two processes share a socket and chat about which method calls to invoke. My early projects used strait sockets to talk. It was tedious to build but it works and it was light.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DCOM (late 90's)&lt;/span&gt; – COM’s hidden promise was to allow calls across threads, processes, and networks boundaries. DCOM was the cross network piece. My ventures into DCOM obviously extended through my usage of COM.  It was conceptually clean but I struggled with security issues and the heaviness in its nature.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;XML and HTTP (2000ish)&lt;/span&gt; – Somehow I ended up on the XML bandwagon and found it to be a better way to add syntax to the socket idea. But this time around rather than writing socket listeners I moved up the chain to a web server. It’s still light if you excluded the weight of the web server. This is being used with today’s Ajax framework.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;XML-RPC (2000ish)&lt;/span&gt; - Dave Winer and friends developed this VERY clean and simple way of doing the basic remote procedure call over the wire using XML. I still love this format for its simplicity and elegance.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SOAP (2001ish)&lt;/span&gt; - I remember reading about SOAP in Visual Basic Programmers Journal. I was sold on the extensibility of SOAP. It was still clean and simple. However something went wild and I couldn't hold on anymore. Something about WS-*.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;REST (2002ish)&lt;/span&gt; - I liked the idea behind this. Working along side HTTP and XML you could setup an entity and use standard HTTP verbs to manipulate it. It’s a little different thinking than the RPC but kudos for the simplicity.&lt;br /&gt;&lt;br /&gt;Over the years I've grown to love simple models based on simple standards. For most projects I would rely on XML-RPC and/or REST.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111447133694918301?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111447133694918301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111447133694918301&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111447133694918301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111447133694918301'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/04/reflections-on-rpc.html' title='Reflections on RPC'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111438406745642529</id><published>2005-04-24T16:01:00.000-07:00</published><updated>2006-11-11T21:02:10.902-08:00</updated><title type='text'>MidiWeb</title><content type='html'>Last week I saw a killer group play at a local hangout. Their set was entirely electronic with an array of 4 or 5 notebooks powering the live show. They used a variety of musical instruments to improvise over the arrangements. It was quite impressive.&lt;br /&gt;&lt;br /&gt;The name of the group was &lt;a href="http://www.aspectsofphysics.com/"&gt;Aspects of Physics&lt;/a&gt;. One of the members runs an interesting project that uses python to tie together midi and tcp/ip to coordinate live music arrangements and production. Notes from the project's website:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    * Realtime music collaboration via the Internet through web pages&lt;/span&gt;  &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    * The easy develpoment of unique interfaces for controlling devices aiding to the perpetuation of experimental music&lt;/span&gt;  &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    * The common use of midi not only for music application but also for lighting, robotics and digitally controlled devices&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pretty cool stuff!  Find out more at:  &lt;a href="http://www.midiweb.org/index.php"&gt;http://www.midiweb.org&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111438406745642529?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111438406745642529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111438406745642529&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111438406745642529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111438406745642529'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/04/midiweb.html' title='MidiWeb'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111421068136508983</id><published>2005-04-22T15:53:00.000-07:00</published><updated>2006-11-11T21:02:10.713-08:00</updated><title type='text'>HREF Profit</title><content type='html'>Every corner of the web has that familar box titled "Ads by Goooooooooooogle".  I have it on my site and feel that I'm one of several million.  It's a pretty clean way to sell links....&lt;br /&gt;&lt;br /&gt;HA! I thought!&lt;br /&gt;&lt;br /&gt;And it just dawned on me.  Google's business model is really about making money on one of the most abundant things around....the HREF Link!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111421068136508983?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111421068136508983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111421068136508983&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111421068136508983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111421068136508983'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/04/href-profit.html' title='HREF Profit'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111380237837360137</id><published>2005-04-17T22:08:00.000-07:00</published><updated>2006-11-11T21:02:10.601-08:00</updated><title type='text'>Solving the problem of complexity</title><content type='html'>One time I was on a bus in Seattle on my way to a software convention. I sat next to a computer science professor from Israel. We talked about various CS related subjects but I remember one thing the most. I asked him what was the biggest problem in CS. He simply responded with "Dealing with complexity".&lt;br /&gt;&lt;br /&gt;Every system I've worked on seemed to approach a critical mass where changes get harder to implement and bugs take longer to fix. Problem is dynamic users like "business" need systems that can change rapidly.&lt;br /&gt;&lt;br /&gt;I've been paying attention to what the &lt;a href="http://rubyonrails.com/"&gt;Ruby on Rails&lt;/a&gt; folks are doing. Simple things like programming by convention and code generators seem like perfect tools for tackling the complexity problem.&lt;br /&gt;&lt;br /&gt;Programming by convention is really a neat way to keep the bits clean. In typical systems every programmer adds their own "interpretation" of how things should be done. This even changes for the same person over time. If the framework works via convention, say any table with a primary key gets a dynamic class for setting up CRUD screens, it will result in less code to maintain along with less variance throughout.&lt;br /&gt;&lt;br /&gt;I would love to see what the real dynamics are like with the Rails project. In addition I would love to see the project after it's been hammered by bug fixes, time, and post implementation programmers. Would it turn out any better?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111380237837360137?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111380237837360137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111380237837360137&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111380237837360137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111380237837360137'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/04/solving-problem-of-complexity.html' title='Solving the problem of complexity'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111358405624864386</id><published>2005-04-15T09:52:00.000-07:00</published><updated>2006-11-11T21:02:10.413-08:00</updated><title type='text'>Rails Day</title><content type='html'>This sounds like a lot of fun:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"On June 4th, Ruby on Rails developers all over the globe will have 24 hours to  build the best application they can."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://railsday.com/"&gt;Railsday.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111358405624864386?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111358405624864386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111358405624864386&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111358405624864386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111358405624864386'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/04/rails-day.html' title='Rails Day'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111238663587052110</id><published>2005-04-01T12:16:00.000-08:00</published><updated>2006-11-11T21:02:10.241-08:00</updated><title type='text'>Humorix</title><content type='html'>&lt;img src="http://www.stronglytyped.com/gems/dilbert-unix.gif" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111238663587052110?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111238663587052110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111238663587052110&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111238663587052110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111238663587052110'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/04/humorix.html' title='Humorix'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111229230350879610</id><published>2005-03-31T10:02:00.000-08:00</published><updated>2006-11-11T21:02:09.963-08:00</updated><title type='text'>Prefetching Google Results</title><content type='html'>&lt;a href="http://www.google.com/help/features.html#prefetch"&gt;Google now supports&lt;/a&gt; Mozilla's prefetching feature:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"On some searches, Google automatically instructs your browser to start downloading the top search result before you click on it. If you click on top result, the destination page will load faster than before&lt;/span&gt;."&lt;br /&gt;&lt;br /&gt;When you add a &lt;span style="font-weight: bold;"&gt;rel="prefetch"&lt;/span&gt; attribute to a &lt;span style="font-weight: bold;"&gt;&amp;lt;link&amp;gt;&lt;/span&gt; tag Firefox will begin downloading the target page to cache to speed up browsing. It seems like a neat feature.  I first questioned it as another attempt to "extend" standards but according to the &lt;a href="http://www.w3.org/TR/html4/types.html#type-links"&gt;HTML 4.01 spec&lt;/a&gt; it's perfectly legal:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"Authors may wish to define additional link types not described in this specification. If they do so, they should use a profile to cite the conventions used to define the link types. Please see the profile attribute of the HEAD element for more details."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mozilla.org/projects/netlib/Link_Prefetching_FAQ.html#What_is_link_prefetching"&gt;Read more about prefetching.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111229230350879610?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111229230350879610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111229230350879610&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111229230350879610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111229230350879610'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/03/prefetching-google-results.html' title='Prefetching Google Results'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111211823963908845</id><published>2005-03-29T08:51:00.000-08:00</published><updated>2006-11-11T21:02:09.817-08:00</updated><title type='text'>IronPython 0.7</title><content type='html'>&lt;a href="http://www.ironpython.com/"&gt;IronPython&lt;/a&gt; 0.7 has just been released. [&lt;a href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=ad7acff7-ab1e-4bcb-99c0-57ac5a3a9742"&gt;download&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;This project is something to definitely keep an eye on.  For kicks I wrote  quick little Fibonacci script to play with:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# Fibonacci Sequence Seed&lt;br /&gt;n = [0, 1]&lt;br /&gt;&lt;br /&gt;# Calculate the rest of the series&lt;br /&gt;start, stop = 0, 10&lt;br /&gt;while start &lt;= stop:&lt;br /&gt;    n.append(n[-1] + n[-2])&lt;br /&gt;    start += 1&lt;br /&gt;    print n[-1],&lt;br /&gt;   &lt;br /&gt;print "\nItems in list: ", len(n)&lt;br /&gt;&lt;br /&gt;# Calculate sum of the series&lt;br /&gt;sum = 0&lt;br /&gt;for x in n:&lt;br /&gt;    sum += x&lt;br /&gt;&lt;br /&gt;print "Sum of list: ", sum&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I pushed the script to calculated 10000 numbers into the series.  It handled the task with no trouble.  That to me is the beauty of python's number system...you could say it "scales".  The sum of a 10000 number fibonacci series is a number that's 2092 digits long =0&lt;br /&gt;&lt;br /&gt;As posted on the web site...IronPython is:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Fast - IronPython-0.6 is up to 1.7x faster than Python-2.3 on the standard pystone benchmark.  An early performance report is are contained in this paper for PyCon 2004&lt;/li&gt;   &lt;li&gt;Integrated with the Common Language Runtime - IronPython code can easily use CLR libraries and Python classes can extend CLR classes.&lt;/li&gt;   &lt;li&gt;Fully dynamic - IronPython supports an interactive interpreter and transparent on-the-fly compilation of source files just like standard Python.&lt;/li&gt;   &lt;li&gt;Optionally static - IronPython also supports static compilation of Python code to produce static executables (.exe's) that can be run directly or static libraries (.dll's) that can be called from other CLR languages including C#, VB, managed C++ and many more.  Note: static compilation is only partially implemented in the 0.6 public release.  This will need further development before being useful.&lt;/li&gt;   &lt;li&gt;Managed and verifiable - IronPython generates verifiable assemblies with no dependencies on native libraries that can run in environments which require verifiable managed code.&lt;/li&gt;   &lt;li&gt;Not finished - IronPython is currently at a pre-alpha stage suitable for experimentation but not for serious development work.  The latest public release can be downloaded below.&lt;br /&gt;  &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/11200964-111211823963908845?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111211823963908845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111211823963908845&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111211823963908845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111211823963908845'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/03/ironpython-07.html' title='IronPython 0.7'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111144135009664844</id><published>2005-03-21T13:39:00.000-08:00</published><updated>2006-11-11T21:02:09.698-08:00</updated><title type='text'>Perl GD PPM</title><content type='html'>Quick note:&lt;br /&gt;&lt;br /&gt;How to install the GD package for ActivePerl:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt; ppm install http://theoryx5.uwinnipeg.ca/ppms/GD.ppd&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Referenced from the thread '&lt;a href="http://groups-beta.google.com/group/comp.lang.perl.modules/browse_frm/thread/51f6d3bd1d72aa18/0830363b26473d8b?q=perl+ppm+gd#0830363b26473d8b"&gt;GD and libgd for WIN32 Perl&lt;/a&gt;' on comp.lang.perl.modules&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111144135009664844?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111144135009664844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111144135009664844&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111144135009664844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111144135009664844'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/03/perl-gd-ppm.html' title='Perl GD PPM'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111139429414220511</id><published>2005-03-21T00:26:00.000-08:00</published><updated>2006-11-11T21:02:09.486-08:00</updated><title type='text'>Client Side Options</title><content type='html'>There's been some blogspeak going around on Ajax.  According to the &lt;a href="http://www.adaptivepath.com/publications/essays/archives/000385.php"&gt;adaptive path write&lt;/a&gt; up ajax is:&lt;br /&gt;&lt;ul style="font-style: italic;"&gt; &lt;li&gt;&lt;a href="http://www.adaptivepath.com/publications/essays/archives/000266.php"&gt;standards-based presentation&lt;/a&gt; using XHTML and CSS;&lt;/li&gt;&lt;li&gt;dynamic display and interaction using the &lt;a href="http://www.scottandrew.com/weblog/articles/dom_1"&gt;Document Object Model&lt;/a&gt;;&lt;/li&gt;&lt;li&gt;data interchange and manipulation using &lt;a href="http://www-106.ibm.com/developerworks/xml/library/x-xslt/?article=xr"&gt;XML and XSLT&lt;/a&gt;;&lt;/li&gt;&lt;li&gt;asynchronous data retrieval using &lt;a href="http://www.xml.com/pub/a/2005/02/09/xml-http-request.html"&gt;XMLHttpRequest&lt;/a&gt;;&lt;/li&gt;&lt;li&gt;and &lt;a href="http://www.crockford.com/javascript/javascript.html"&gt;JavaScript&lt;/a&gt; binding everything together.&lt;/li&gt; &lt;/ul&gt; Personally I like this approach. I have home brewed several basic hacks at it but never got close enough to satisfy my expectations. Google on the other hand has knocked the ball out of the park. &lt;a href="http://www.gmail.com/"&gt;Gmail &lt;/a&gt;and &lt;a href="http://maps.google.com/"&gt;Maps &lt;/a&gt;are both wonderful examples of what's possible.&lt;br /&gt;&lt;br /&gt;Thing is this style of development is time consuming and somewhat difficult and the tool set is sort of crude to work with. However, I see the Mozzila platform as a better alternative. XUL+Javascript is quite the dyno package.&lt;br /&gt;&lt;br /&gt;For our little software shop we are in the process of migrating our flagship product written in MS Access to a MySql backend while still using the MSAccess front end. As we begin shipping our new product we will use the revenue to develop a web based version of the application built with XUL+Javascript+Mozilla as the client and MySql + Ruby On Rails as the application and database tier. We're looking to expand to provide application hosting for our product as a service while providing a robust client. It's a bet that we as a team believe in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111139429414220511?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111139429414220511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111139429414220511&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111139429414220511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111139429414220511'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/03/client-side-options.html' title='Client Side Options'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111139319828292154</id><published>2005-03-21T00:17:00.000-08:00</published><updated>2006-11-11T21:02:09.287-08:00</updated><title type='text'>The Joy of Code</title><content type='html'>Somebody's learning to love the "joy of code":&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"The more I learn about code the more beautiful it becomes. Languages as diverse as our own, quirks, and tweaks like accents among us. Its individuality make learning a new rule set very attractive to me."&lt;/span&gt; [&lt;a href="http://airhostess.weblogs.us/archives/105"&gt;Diary of an Air Hostess&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Code is a beautiful thing...yes indeed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111139319828292154?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111139319828292154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111139319828292154&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111139319828292154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111139319828292154'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/03/joy-of-code.html' title='The Joy of Code'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111116814058949434</id><published>2005-03-18T09:28:00.000-08:00</published><updated>2006-11-11T21:02:09.139-08:00</updated><title type='text'>A Perl of Thoughts</title><content type='html'>&lt;img src="http://www.stronglytyped.com/gems/phb-perl.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Yesterday I spent my first full day coding in Perl. In the past I have done next to nothing with the language...only tinkering with a few lines here and there of existing scripts.&lt;br /&gt;&lt;br /&gt;I would definitely say it's one of those "get-$hit-done" languages. Very little friction. I mostly related concepts back to what I knew from Python. I do think it's a language that one needs to be on their toes if they want to produce good code. "get-$shit-done" doesn't necessarily mean "write-readable-code".&lt;br /&gt;&lt;br /&gt;Here's a few bits that I thought were neat:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Variable Interpolation&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;$name = "T-Bone Walker";&lt;br /&gt;print "Great blues music by $name";&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;Prints: "Great blues music by T-Bone Walker"&lt;br /&gt;&lt;br /&gt;That saves a lot of time especially when constructing things like  HTML.  It helps keep code clean by reducing concatenations.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Function with Arguments&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This threw me sideways:&lt;br /&gt;&lt;pre&gt;sub adder{&lt;br /&gt; $sum = 0;&lt;br /&gt; foreach $_ (@_) {&lt;br /&gt;     $sum += $_;&lt;br /&gt; }&lt;br /&gt; return $sum;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;print add(1,2,3); # prints 6&lt;br /&gt;print add(1,2,3,4,5); #prints 15&lt;br /&gt;print add(1..5); # prints 15&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;It's unnatural to me to not declare function signatures but passing arguments as an array is an interesting concept. Lot's of flexibility.&lt;br /&gt;&lt;br /&gt;I feel like the last person on earth learning to program with Perl but it is still exciting. I love feeling out new concepts especially with dyno-packed languages like Perl.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111116814058949434?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111116814058949434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111116814058949434&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111116814058949434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111116814058949434'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/03/perl-of-thoughts.html' title='A Perl of Thoughts'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111101672182084128</id><published>2005-03-16T15:37:00.000-08:00</published><updated>2006-11-11T21:02:08.951-08:00</updated><title type='text'>MVC Framework for Perl</title><content type='html'>I like the ideas implemented in &lt;a href="http://www.rubyonrails.com"&gt;Ruby on Rails&lt;/a&gt; but Ruby and an implmentation will probably not happen here at the day job.  As far as languages go we're either going to go ASP.NET for Microsoft servers or Perl/Java on the linux servers.&lt;br /&gt;&lt;br /&gt;One framework I found for &lt;a href="http://c2.com/cgi/wiki?ModelViewController"&gt;MVC&lt;/a&gt; style web development in Perl is &lt;a href="http://maypole.perl.org/"&gt;Maypole&lt;/a&gt;.  It does some similar auto class constructing like the Rails project.  Also included is a templating package for the view.  Perl.com has an article that gives an adequate tutorial&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.perl.com/pub/a/2004/04/15/maypole.html"&gt;Rapid Web Application Deployment with Maypole&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111101672182084128?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111101672182084128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111101672182084128&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111101672182084128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111101672182084128'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/03/mvc-framework-for-perl.html' title='MVC Framework for Perl'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111100244003278837</id><published>2005-03-16T11:37:00.000-08:00</published><updated>2006-11-11T21:02:08.768-08:00</updated><title type='text'>V1 Arcvhies Available</title><content type='html'>I posted my stronglytype v1 archives from blogger:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.stronglytyped.com/v1"&gt;http://www.stronglytyped.com/v1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I would like to note a few of my favorite posts:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.stronglytyped.com/v1/2003/08/hacking-xbox.html"&gt;Hacking the XBOX&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.stronglytyped.com/v1/2003/07/using-asp-sql-to-ping-remote-server.html"&gt;Using SQL to Ping a Remote Server&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.stronglytyped.com/v1/2003/03/i-havent-found-any-issues-with-running.html"&gt;Bamboo.Prevalence&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.stronglytyped.com/v1/2003/03/sta-threads-in-href-exes.html"&gt;STA Threads in HREF EXE's&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.stronglytyped.com/v1/2003/03/sta-threads-in-href-exes.html"&gt;Smashing the Stack&lt;/a&gt;&lt;br /&gt;  &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/11200964-111100244003278837?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111100244003278837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111100244003278837&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111100244003278837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111100244003278837'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/03/v1-arcvhies-available.html' title='V1 Arcvhies Available'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111057954208583504</id><published>2005-03-11T14:17:00.000-08:00</published><updated>2006-11-11T21:02:08.600-08:00</updated><title type='text'>Technology Speeds the Pistachio Harvest</title><content type='html'>&lt;span style="font-style: italic;"&gt;"From mid-August to mid-October every year, Paramount Farms of California's San Joaquin Valley processes roughly 11,000 loads of the year's pistachio harvest. For optimum quality, the nuts have to get from the tree to the huller as quickly as possible, without ever touching the ground. Since 2002, Paramount has been removing bottlenecks from the harvest process using a variety of computer technologies—RFID tags, bar code readers, Pocket PCs, networking, Web services, databases, and programmable logic controllers (PLCs)—tied together with software written using the Microsoft.NET Framework. Paramount has not only improved the speed of the harvest, it has also improved its accuracy at every step, reduced unnecessary data entry, and provided better visibility to management and growers alike."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/resources/casestudies/CaseStudy.asp?CaseStudyID=16311"&gt;Technology Speeds the Pistachio Harvest&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111057954208583504?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111057954208583504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111057954208583504&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111057954208583504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111057954208583504'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/03/technology-speeds-pistachio-harvest.html' title='Technology Speeds the Pistachio Harvest'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111052656500541464</id><published>2005-03-10T23:11:00.000-08:00</published><updated>2006-11-11T21:02:08.374-08:00</updated><title type='text'>Adopting a new Framework</title><content type='html'>When I was younger, like in my teens, I would freely spend time trying out different programming languages, frameworks, libraries, etc with much ease. I loved dabbling with different solutions to problems. Some choices would stay with me, like Object Pascal, others would not, &lt;a href="http://www.cs.colorado.edu/%7Emain/bgi/doc/"&gt;Borland Graphics Interface&lt;/a&gt;.  At any rate I basically had a lot of freedom to move between choices.&lt;br /&gt;&lt;br /&gt;I carried that habit into my career as a software developer. After some time I finally realized that I can't freely work with choices when I'm part of a team. Some developers are open to new things others would rather use what they know. I can understand it either way.&lt;br /&gt;&lt;br /&gt;Recently I needed to prototype a web interface that did basic CRUD to a set of tables. In mind to use C# for delivery I choose to prototype with &lt;a href="http://www.rubyonrails.com/"&gt;Ruby on Rails&lt;/a&gt;. In one afternoon I was able to build the prototype (which involved 6 tables and a couple of relationships) including picking up some basic Ruby. I felt the most productive than any other language or framework! And the end result code was highly readable and maintainable.&lt;br /&gt;&lt;br /&gt;But my team works with ASP.NET not Rails and I don't feel secure enough to push Rails. I will probably end up falling back on ASP.NET after the prototype is selected but it sure means extra work.&lt;br /&gt;&lt;br /&gt;So lately I've been thinking about when should you push a new environment. I don't have a formula for the answer but I do have a list of things to think about:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;What will your current or future team think about it?&lt;/span&gt;  Are they open to new environments?  What about management?&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Does the new environment mesh well with any existing technology?&lt;/span&gt;  Are you pushing a linux server in an active directory shop?&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;What kind of support does the new environment have when you get stuck?&lt;/span&gt;  Newsgroups, books, articles, blogs all help when you're learning or when you get stuck.&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Will the new environment be around long enough for your applications?&lt;/span&gt;  Check out the community, see if there's strong push behind it. &lt;br /&gt; &lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Will the new environment have pro's that out weigh the con's of your current environment?&lt;/span&gt;  Classic ASP to Ruby on Rails does but would Classic ASP to PHP have the same leap?&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Does the new environment cover your project's needs? &lt;/span&gt; Does the environment support the database server natively? Do you need to render PDFs? Do you really want to generate reports by hand using HTML and script or would a report package make more sense?&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Is the technology solid?&lt;/span&gt;  Check out the dependencies?  Does it carry over a lot of legacy components?&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;What is the risk factor?&lt;/span&gt;  What would happen if your team gets 1/2 way through and decides that the new environment is not suitable?&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;In a current venture to upgrade an Access project to a multitier platform I selected MySql as the database server of choice because I was able to answer a plus for each of those questions.  I felt really secure in pushing that choice.  So far the team is really happy and we all seem to be on the same page.&lt;br /&gt;&lt;br /&gt;I'll see where my Rails prototypes goes in the mean time =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111052656500541464?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111052656500541464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111052656500541464&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111052656500541464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111052656500541464'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/03/adopting-new-framework.html' title='Adopting a new Framework'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-111025959847759004</id><published>2005-03-07T21:17:00.000-08:00</published><updated>2006-11-11T21:02:07.968-08:00</updated><title type='text'>SQL On Steroids</title><content type='html'>At our plant we have machines that are controlled by Programmable Logic Controllers (PLC's). They are basically computers that can be programmed to control switches and pumps and can also read sensors such as thermalcouplers.&lt;br /&gt;&lt;br /&gt;The PLCs are capable of generating LOTS of data and quite frequently we need to capture that data. To do that we're using a product from &lt;a href="http://www.wonderware.com/products/historian/insql/"&gt;Wonderware called InSql&lt;/a&gt;. The product is capable of recording several thousand values per millisecond and give the programmer the ability to view a snapshot through MS SQL Server.&lt;br /&gt;&lt;br /&gt;I've been spending the last few days studying the internals of the product. It's actually built along side of MSSQL Server. It stores it's configuration in a SQL database and exposes its data using OLEDB. InSql uses its own data format outside of SQL Server to achieve its high performance.&lt;br /&gt;&lt;br /&gt;InSql also has the unique ability to interpolate values which is really nice when building portals for operations. InSql can be setup to poll on a certain interval yet be queried on a different interval.&lt;br /&gt;&lt;br /&gt;I actually think out of all of Microsoft's products SQL server in my opinion is the best built. It's just rock solid and it was a good call from Wonderware to build along side it with InSql.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-111025959847759004?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/111025959847759004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=111025959847759004&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111025959847759004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/111025959847759004'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/03/sql-on-steroids.html' title='SQL On Steroids'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-110990227923687893</id><published>2005-03-03T18:08:00.000-08:00</published><updated>2006-11-11T21:02:07.762-08:00</updated><title type='text'>My Experience with MySql and MS Access</title><content type='html'>(retrieved from stronglytyped v1)&lt;br /&gt;&lt;br /&gt;I have been pondering the idea of using MySql as a database backend with Microsoft Access. I thought that if it worked well it would make a great match. Some friends asked why not just use Microsoft SQL or the desktop version. My question to that was why not use MySql? We would need some tests to prove feasiblilty and heres what I found:&lt;br /&gt;&lt;br /&gt;NOTE: Ive been using a product called DBTools - DBManager Professional . Its an awesome product and can connect to a variety of databases including MySql (Brasillians Rock!!).&lt;br /&gt;&lt;br /&gt;After getting MySql installed youll need the MySql ODBC driver. Access connected and worked very well from the start with the combination although there are a few things you need to keep in mind.&lt;br /&gt;&lt;br /&gt;First MySql supports types that Access doesnt. For example MySql can use BigInt. Access doesnt support that and if you open a table with an unsupported type youll get #error in the grid view. Also if you make any changes to the tables youll have to delete and recreate the linked tables.&lt;br /&gt;&lt;br /&gt;The second thing I found that helps a great deal is to include a timestamp field in each table. MySql supports this and will update the field with a date/time value of when the record was updated. My guess is Access uses this for concurrency management.&lt;br /&gt;&lt;br /&gt;The next thing I did was started logging how Access talks with the database. The results were interesting:&lt;br /&gt;&lt;br /&gt;Access doesnt open a connection to the database until it needs to which is good. When I opened my app it didnt connect until I opened the form. The connection isnt closed until Access is shutdown not when the MDB is closed.&lt;br /&gt;&lt;br /&gt;For reference Im using this table:&lt;br /&gt;&lt;br /&gt;CREATE TABLE `todos` (&lt;br /&gt;`id` int(11) NOT NULL auto_increment,&lt;br /&gt;`description` varchar(100) NOT NULL default ,&lt;br /&gt;`done` tinyint(4) default NULL,&lt;br /&gt;PRIMARY KEY (`id`)&lt;br /&gt;) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;&lt;br /&gt;The MyISAM database engine seemed most appropriate because of its goal as a general purpose engine.&lt;br /&gt;&lt;br /&gt;When I first opened the form I found a series of queries that came through:&lt;br /&gt;&lt;br /&gt;1&gt; 45 Connect root@localhost on todo&lt;br /&gt;2&gt; 45 Query SELECT Config, nValue FROM MSysConf&lt;br /&gt;3&gt; 45 Query SELECT `todos`.`id` FROM `todos`&lt;br /&gt;4&gt; 45 Query SELECT `id`,`description`,`done` FROM `todos` WHERE `id` = 1&lt;br /&gt;&lt;br /&gt;The query to MSysConf was unfamiliar to me. I found that if the table exists it help control Access with optimizing its connection:&lt;br /&gt;&lt;br /&gt;http://office.microsoft.com/en-us/assistance/HP051876211033.aspx&lt;br /&gt;&lt;br /&gt;The next two queries look familiar. The #3 looks like its grabbing a list of primary keys and #4 is pulling the record which is being displayed&lt;br /&gt;&lt;br /&gt;Heres what I found after an update. As soon as I started the edit Access pulled the latest record:&lt;br /&gt;&lt;br /&gt;SELECT `id`,`description`,`done` FROM `todos` WHERE `id` = 1&lt;br /&gt;&lt;br /&gt;Im assuming its pulling the latest record for concurrency checking.&lt;br /&gt;&lt;br /&gt;Heres what it did after I committed the record:&lt;br /&gt;&lt;br /&gt;SET AUTOCOMMIT=0&lt;br /&gt;UPDATE `todos` SET `description`=Upgrade to python 2.9′ WHERE `id` = 1 AND `description` = Upgrade to python 2.8′ AND `done` = 1&lt;br /&gt;COMMIT&lt;br /&gt;SET AUTOCOMMIT=1&lt;br /&gt;&lt;br /&gt;So far everything makes sense and seems reasonable. MySql should be more than capable of handling this type of interaction.&lt;br /&gt;&lt;br /&gt;Heres what happened when I committed a new record:&lt;br /&gt;&lt;br /&gt;SET AUTOCOMMIT=0&lt;br /&gt;INSERT INTO `todos` (`description`,`done`) VALUES (Buy more books,0)&lt;br /&gt;SELECT `id`,`description`,`done`,`sys_timestamp` FROM `todos` WHERE `id` IS NULL&lt;br /&gt;COMMIT&lt;br /&gt;SET AUTOCOMMIT=1&lt;br /&gt;SELECT `id`,`description`,`done`,`sys_timestamp` FROM `todos` WHERE `id` IS NULL&lt;br /&gt;SELECT `todos`.`id` FROM `todos` WHERE `description` = Buy more books AND `done` = 0&lt;br /&gt;SELECT `id`,`description`,`done`,`sys_timestamp` FROM `todos` WHERE `id` = 5&lt;br /&gt;SELECT `id`,`description`,`done`,`sys_timestamp` FROM `todos` WHERE `id` = 5 OR `id` = 5 OR `id` = 5 OR `id` = 5 OR `id` = 5 OR `id` = 5 OR `id` = 5 OR `id` = 5 OR `id` = 5 OR `id` = 5&lt;br /&gt;&lt;br /&gt;Im not sure what Access is doing with the 4 select queries. I think the second one is to refresh the form to take into account of any default data produced by the database.&lt;br /&gt;&lt;br /&gt;The one with multiple id = 5 just confuses me. I also noticed that if the timestamp field doesnt exist youll get #deleted text in the fields if you go back to the record in Access.&lt;br /&gt;&lt;br /&gt;Ive been testing Access and MySql with several databases with 100K+ records and it seems to hum pretty well. I havent found any show stoppers.&lt;br /&gt;&lt;br /&gt;Currently were porting a medium sized Access application to a MySql back end. We had to rename many fields and tables (i.e. Balance$ had to be changed to BalanceAmt) and made sure primary keys existed. Besides that its working quite well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-110990227923687893?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/110990227923687893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=110990227923687893&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/110990227923687893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/110990227923687893'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/03/my-experience-with-mysql-and-ms-access.html' title='My Experience with MySql and MS Access'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11200964.post-110983156770190048</id><published>2005-03-02T22:14:00.000-08:00</published><updated>2006-11-11T21:02:07.517-08:00</updated><title type='text'>Welcome to Stronglytyped Version 2.0</title><content type='html'>In the real world we have the preacher, the congregation, and the atheists. In the world of computers and software I have blogged through StronglyTyped as all three.&lt;br /&gt;&lt;br /&gt;I really love software. It's a passion of mine to learn, build, debug, break, test, deliver, and exchange code. It's a simple pleasure. There's no need to analyze it. Coding in just plain fun.&lt;br /&gt;&lt;br /&gt;In the real world there are lots of enemies against the enjoyment of coding. Corporate politics, outsourcing, downsizing, burn out, and bad egos all play against the developer who does it for the love of code.&lt;br /&gt;&lt;br /&gt;With StronglyTyped v2.0 I want to write about code and how I have fun with it. I will fill it up with thoughts and ideas on various areas of software development. Occasionally I will post something from StronglyTyped v1.0 but I will not carry the old site over. It's a new version; a new start.&lt;br /&gt;&lt;br /&gt;I will stay away from dissing technology and weak and bias comparisons. This is not about M$ against the Slashdot geeks. It's about enjoying the goodness of code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11200964-110983156770190048?l=strongly-typed2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://strongly-typed2.blogspot.com/feeds/110983156770190048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11200964&amp;postID=110983156770190048&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/110983156770190048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11200964/posts/default/110983156770190048'/><link rel='alternate' type='text/html' href='http://strongly-typed2.blogspot.com/2005/03/welcome-to-stronglytyped-version-20.html' title='Welcome to Stronglytyped Version 2.0'/><author><name>Richard</name><uri>http://www.blogger.com/profile/06305244583600694033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://bp2.blogger.com/_u02Lvi20yB4/SARND2uZ8fI/AAAAAAAAAAM/J4x8snS4iKE/S220/DSC02522.JPG'/></author><thr:total>1</thr:total></entry></feed>
