<?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-8054147</id><updated>2011-04-21T18:16:43.870-07:00</updated><title type='text'>B#</title><subtitle type='html'>a blog on .NET, software development, gaming, &amp; whatever else I have on my mind....</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8054147.post-112283343632083397</id><published>2005-07-31T11:07:00.000-07:00</published><updated>2005-07-31T11:10:36.326-07:00</updated><title type='text'>Check out my new blog!</title><content type='html'>My new blog is located at &lt;a href="http://www.flux88.com"&gt;http://www.flux88.com&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;I have successfully ported over the posts from Blogger to dasBlog, and you can even find a nifty little app to help you do the same on my new blog.&lt;br /&gt;&lt;br /&gt;I will keep this blog up for the sake of old comments and such, but don't expect any more posts...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-112283343632083397?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/112283343632083397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=112283343632083397' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/112283343632083397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/112283343632083397'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/07/check-out-my-new-blog.html' title='Check out my new blog!'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-112066455066811876</id><published>2005-07-06T08:42:00.000-07:00</published><updated>2005-07-06T08:42:30.736-07:00</updated><title type='text'>Chinese translations</title><content type='html'>&lt;p&gt;Sometimes for fun I will read a google-translated, chinese blog and giggle at the funny things that it translates.&amp;nbsp; My favorite is &amp;ldquo;My Guestbook&amp;rdquo; becomes &amp;ldquo;Abundant Guest Garden.&amp;rdquo;&lt;/p&gt;&lt;p&gt;Even funnier is Star Wars: Episode III with chinese translated subtitles&amp;hellip;&lt;/p&gt;&lt;p&gt;&lt;a href="http://winterson.com/2005/06/episode-iii-backstroke-of-west.html"&gt;winterson.com: episode iii, the backstroke of the west&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;This is hilarious!&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-112066455066811876?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/112066455066811876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=112066455066811876' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/112066455066811876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/112066455066811876'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/07/chinese-translations.html' title='Chinese translations'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-112023413126842818</id><published>2005-07-01T09:08:00.000-07:00</published><updated>2005-07-01T09:08:51.326-07:00</updated><title type='text'>ControlInjector article updated</title><content type='html'>&lt;p&gt;I updated my article on Code Project, the new Control Injector is &lt;strong&gt;much &lt;/strong&gt;better and more useful than before.&amp;nbsp; If you haven&amp;rsquo;t yet read it, please do so and rate the article.&lt;/p&gt;&lt;p&gt;The link is on the right under &lt;strong&gt;My Articles&lt;/strong&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-112023413126842818?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/112023413126842818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=112023413126842818' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/112023413126842818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/112023413126842818'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/07/controlinjector-article-updated.html' title='ControlInjector article updated'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-112017055003908062</id><published>2005-06-30T15:29:00.000-07:00</published><updated>2005-06-30T15:29:10.086-07:00</updated><title type='text'>Replace notepad completely...</title><content type='html'>&lt;p&gt;I wonder why Microsoft doesn't choose to update some of their &lt;strong&gt;most frequently used programs &lt;/strong&gt;more often.&amp;nbsp; I mean come on!&amp;nbsp; When was the last time you saw an update to Solitaire for crying out loud.&amp;nbsp; (Speaking of, there will be a new suite of card games, complete with nice gooey graphics updates, in Longhorn&amp;hellip;.)&lt;/p&gt;&lt;p&gt;Anyway, one of those crappy programs is notepad, which I am glad to replace with something better.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.flos-freeware.ch/notepad2.html" target="_blank"&gt;Download Notepad2&lt;/a&gt;, then run &lt;a href="http://webdevel.blogspot.com/2004_04_01_webdevel_archive.html#108246184802912349" target="_blank"&gt;this guy's batch file&lt;/a&gt;&amp;nbsp;to tell Windows to stfu and replace the notepad.exe file.&lt;/p&gt;&lt;p&gt;Now I get a decent editor to &lt;em&gt;View Source &lt;/em&gt;in Internet Explorer!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-112017055003908062?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/112017055003908062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=112017055003908062' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/112017055003908062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/112017055003908062'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/06/replace-notepad-completely.html' title='Replace notepad completely...'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-112009365595273800</id><published>2005-06-29T18:07:00.000-07:00</published><updated>2005-06-29T18:10:46.403-07:00</updated><title type='text'>Lessons learned -- ViewState, Server Controls, and Control lifecycle.</title><content type='html'>Ugh, well... I finally fixed the major issue that has held up my development for 2 days now.It really boiled down to the fact that I had properties that were persisting themselves with ViewState like this:&lt;br /&gt;&lt;div id="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;private const string MYNAME_KEY = "__MyName";&lt;br /&gt;public string MyName&lt;br /&gt;{ &lt;br /&gt;    get { return ViewState[MYNAME_KEY].ToString(); } &lt;br /&gt;    set { ViewState[MYNAME_KEY] = value; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Which will work perfectly well as long as you don't access this property before the control's Init event...  This is what I have come up with, (and someone please correct me if I am wrong) is that ViewState is really an IStateBag instance that is given to your control, which is different for each control...  This helps eliminate conflicts if I add multiple controls on the same page...  If I try to access the property before this instance is created (which may be when our control is added to the parent controls collection...  I'm not yet sure of this) then I get a brand new string, not the one that was previously persisted...  .NET doesn't give you any error or warning that this is happening, which makes it very hard to track down.The above worked for most of my server controls, but one in particular was giving me problems.  I moved the persistance code away from the property itself, which I think I like better visually anyway, and this seems to have relieved the problem.This is how you tinker with your controls viewstate:&lt;br /&gt;&lt;br /&gt;&lt;div id="code"&gt;&lt;br /&gt;&lt;pre&gt;  &lt;br /&gt;private string _myName;  &lt;br /&gt;public string MyName  &lt;br /&gt;{   &lt;br /&gt;    get { return _myName; }   &lt;br /&gt;    set { _myName = value; }  &lt;br /&gt;}   &lt;br /&gt;&lt;br /&gt;protected override object SaveViewState()  &lt;br /&gt;{   &lt;br /&gt;    Pair p = new Pair();   &lt;br /&gt;    p.First = this._myName;   &lt;br /&gt;    p.Second = base.SaveViewState();   &lt;br /&gt;   &lt;br /&gt;    return p;  &lt;br /&gt;}  &lt;br /&gt;&lt;br /&gt;protected override void LoadViewState(object savedState)  &lt;br /&gt;{   &lt;br /&gt;    Pair p = savedState as Pair;     &lt;br /&gt;    this._myName = p.First as ArrayList;   &lt;br /&gt;    base.LoadViewState (p.Second);  &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;Hopefully this might save someone a few hours of head-scratchin....   it certainly cost me a lot more than a couple headaches.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-112009365595273800?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/112009365595273800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=112009365595273800' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/112009365595273800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/112009365595273800'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/06/lessons-learned-viewstate-server.html' title='Lessons learned -- ViewState, Server Controls, and Control lifecycle.'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111993043172391644</id><published>2005-06-27T20:47:00.000-07:00</published><updated>2005-06-27T20:54:41.210-07:00</updated><title type='text'>Server control Page reference</title><content type='html'>&lt;p&gt;Why does the following code generate a null reference exception?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="code"&gt;&lt;br /&gt;&lt;pre&gt; &lt;br /&gt;&lt;br /&gt;public class MyServerControl : WebControl, INamingContainer&lt;br /&gt;{&lt;br /&gt;     private TextBox textbox1; &lt;br /&gt;&lt;br /&gt;     protected override CreateChildControls()&lt;br /&gt;     {&lt;br /&gt;         if(! Page.IsPostBack) &lt;br /&gt;         {&lt;br /&gt;             &lt;span class="comments"&gt;//do stuff&lt;/span&gt;&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The page reference is not set. I see this sort of example all the time on the web regarding server controls. Why is it that I can not get this to work?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111993043172391644?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111993043172391644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111993043172391644' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111993043172391644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111993043172391644'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/06/server-control-page-reference.html' title='Server control Page reference'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111956490355952877</id><published>2005-06-23T14:59:00.000-07:00</published><updated>2005-06-23T15:15:03.566-07:00</updated><title type='text'>My worst job ever</title><content type='html'>Leave it to &lt;a href="http://neopoleon.com/blog/posts/14928.aspx"&gt;Rory Blyth&lt;/a&gt; to stir up some well-bottled memories of my youth.&lt;br /&gt;&lt;br /&gt;But anyway, reading that post got me thinking.  I think I have 2 of the "crappiest jobs ever" ...  one was a Paperboy and the other was a Popcorn wagon attendant.&lt;br /&gt;&lt;br /&gt;I shall reminisce in the terrors that were my first 2 jobs...&lt;br /&gt;&lt;br /&gt;When I was 12 I decided to take a job as a paperboy.  My neighbor friends all had a paper route and I somtimes helped them.  It was fun and easy.  Until I decided to suit up.  Since 3 of my friends already had routes near our houses, I had to get a route 3 miles from my house.  Where my friends had 20-30 papers on their route, I had more than 60.  These papers were delivered at 4:00 am on my doorstep every Wednesday and Saturday morning, and I swore I could hear the driver snicker as he dropped 2 heavy bundles of paper on my Welcome mat.&lt;br /&gt;&lt;br /&gt;It took me nearly an hour to fold the papers and shove them in those paper carriers (I had 2 to fill -- one went on my shoulders and one on my handlebars).  I finished at around 5:30 and had 2 hours to deliver the papers.  I pedaled like crazy until I reach the neighborhood, which was a trailer park.  If you have never graced a trailer park with your presence before, let me tell you that THEY ALL LOOK ALIKE.  I was never going to memorize this route!  On top of that, everybody who lived there was old and wanted their paper perfectly on their doorstep, which is right inside the carport.  This meant that I had to set my bike down FOR EVERY HOUSE and walk the paper up there.&lt;br /&gt;&lt;br /&gt;On top of all of this responsibility:  I had to collect.  I had to make several trips to the neighborhood to collect money:  $4.00 for each house.  I got to keep $1 of that.  This means in a one month period I spent about 60+ hours delivering papers and trying to collect money.  I made $60 for the entire month.  This makes me want to cry even now.  But I was a trooper and that amount in my mind equaled "one super nintendo game EVERY MONTH!"...   how sad is that.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;The next candidate for worst job ever was a popcorn wagon attendant for an outdoor museum in Dallas.  It was called &lt;a href="http://www.oldcitypark.org/"&gt;Old City Park&lt;/a&gt; and they had a popcorn wagon outside.  It was about the size of the trunk of my Altima (read:  SMALL) and I sat next to a hot-ass popcorn machine.  Inside the wagon it was probably 10 degrees hotter than the Dallas summer heat outside.  On a good day my wagon was only about 105 degrees F..   The saddest part of this:  I got paid $4.25 / hour.&lt;br /&gt;&lt;br /&gt;--- ahh, I feel much better now (sort of).....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111956490355952877?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111956490355952877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111956490355952877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111956490355952877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111956490355952877'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/06/my-worst-job-ever.html' title='My worst job ever'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111928403740837604</id><published>2005-06-20T09:07:00.000-07:00</published><updated>2005-06-20T09:17:23.210-07:00</updated><title type='text'>Securing client-side content:  Flash files</title><content type='html'>I came across this little pickle about security and flash files.  Basically since Flash is a wide open standard, anyone can easily grab your swf file and decompile it.  Obfuscation works a little bit here, but a determined little bastard could eventually modify your source.&lt;br /&gt;&lt;br /&gt;Of course someone could also just run your flash movie from their own server.  &lt;br /&gt;&lt;br /&gt;I came up with this little security table for some suggested guidelines in protecting our flash component.&lt;br /&gt;&lt;br /&gt;&lt;table border=1 class="tablefix"&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style="background-color: #334433; color:White" align="center" colspan=2&gt;&lt;b&gt;Flash Security&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;b&gt;Threat&lt;/b&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;b&gt;Suggested response&lt;/b&gt;&lt;/td&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;File could be stolen and hosted on another server&lt;/td&gt;&lt;br /&gt;&lt;td&gt;Come up with an dynamic encrypted key system-- the malicous users would have to know the scheme to get the file to unlock --  this is not 100%&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;File could be hotlinked from another server&lt;/td&gt;&lt;br /&gt;&lt;td&gt;flash file will only allow paths from the same domain as the swf resides...  this will ensure that no one will be able to hijack our swf and load their own XML file&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;File could be decompiled&lt;/td&gt;&lt;br /&gt;&lt;td&gt;Obfuscate the code&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;What worries me is that none of these are 100% safeguards.  They will deter the average evil-doer, but anyone smart &amp; determined enough could get steal our file and modify it.&lt;br /&gt;&lt;br /&gt;Does anyone have any suggestions on improving what I have above?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111928403740837604?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111928403740837604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111928403740837604' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111928403740837604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111928403740837604'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/06/securing-client-side-content-flash.html' title='Securing client-side content:  Flash files'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111902975844854156</id><published>2005-06-17T10:29:00.000-07:00</published><updated>2005-06-17T10:36:07.426-07:00</updated><title type='text'>HDNUG</title><content type='html'>I attended my first Houston Dot Net User Group meeting last night.  It was a lot larger than I originally thought.  Judging by their &lt;a href="http://www.hdnug.org"&gt;crappy website&lt;/a&gt; I would have never thought that they have been around for 3 years.  I estimated about 120 people attended the meeting, which they said was their largest turn-out ever.&lt;br /&gt;&lt;br /&gt;Anyway, I enjoyed the presentation on Enterprise Library, but more enjoyed talking to my old buddy Moe Al-Kazzaz!  I haven't seen him since he graduated from UH last year.&lt;br /&gt;&lt;br /&gt;I also heard that Venkat is going to be speaking at HDNUG in August.  Save me a seat for that talk!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111902975844854156?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111902975844854156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111902975844854156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111902975844854156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111902975844854156'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/06/hdnug.html' title='HDNUG'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111880299064362733</id><published>2005-06-14T19:28:00.000-07:00</published><updated>2005-06-28T15:37:48.643-07:00</updated><title type='text'>DevCon 2005 afterthoughts</title><content type='html'>Man, what a day! I had a blast at this conference. I really got something from every session, which was a lot more than I was expecting... especially after reading some of &lt;a href="http://www.managed-world.com"&gt;Jason Olson's&lt;/a&gt; comments about TechEd. Anyway, I especially enjoyed the talks by &lt;a href="http://blogs.msdn.com/methylamine/default.aspx"&gt;Michael Stuart&lt;/a&gt; and &lt;a href="http://agiledeveloper.com/blog/"&gt;Venkat Subramaniam&lt;/a&gt; on the new Visual Studio 2005 testing integration. My favorite features of Visual Studio 2005 are too many to list here, but mainly I think that Team Foundation Server is a huge step in the right direction. Microsoft is really paying attention to the community and providing what the developers really want/ (or already use)... but much tighter integration with the IDE. This was a recurring theme throughout the day... that you can do &lt;i&gt;all of these things without leaving Visual Studio&lt;/i&gt;. I did think that the free books were a little lame... I mean 90% of the people that were present would not need an "Introduction to..." anything. They are obviously past that point. But I guess I shouldn't expect much for an entry price of $99. The books they handed out were: &lt;ul&gt;&lt;li&gt;Introducing Visual Basic 2005 for Developers &lt;li&gt;Introducing SQL 2005 &lt;li&gt;Introducing ASP.NET 2.0&lt;/ul&gt; Oh well, at roughly 200 pages each it should take long to breeze through them, and I might stumble on a gem or 2 :). The ASP.NET one is written by Dino Esposito, so I will crack it open, I enjoyed his 1.1 version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111880299064362733?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111880299064362733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111880299064362733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111880299064362733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111880299064362733'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/06/devcon-2005-afterthoughts.html' title='DevCon 2005 afterthoughts'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111833554395808087</id><published>2005-06-09T09:45:00.000-07:00</published><updated>2005-06-09T09:45:43.970-07:00</updated><title type='text'>Visual Studio DevCon 2005 - Houston</title><content type='html'>I'll be there!  Look for me in the Team Systems track...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111833554395808087?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111833554395808087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111833554395808087' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111833554395808087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111833554395808087'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/06/visual-studio-devcon-2005-houston.html' title='Visual Studio DevCon 2005 - Houston'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111810350372820656</id><published>2005-06-06T17:05:00.000-07:00</published><updated>2005-06-06T17:21:47.700-07:00</updated><title type='text'>Reformats are fun -- cool utilities</title><content type='html'>Today I reformated my computer at work.  It REALLY needed a fix, it was running so slow!&lt;br /&gt;&lt;br /&gt;Anyway, I got 90% of the things I need installed in 1 day, which is pretty good.  Now I'm wondering:  I want to make a backup image of this install... should I use Norton Ghost or Acronis TruImage?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The first thing I like to do is customize the UI a bit...  to do that I first &lt;a href="http://www.belchfire.net/article205.html"&gt;patch uxtheme&lt;/a&gt;, then I download a nice &lt;a href="http://www.customize.org"&gt;visual style &amp; background&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So far I am liking Milk, Simple Plan, and of course Water Color.  I also found a good milk-look-alike called &lt;a href="http://www.customize.org/details/38285"&gt;Kuantum&lt;/a&gt; that has extras for the Yz dock.  &lt;a href="http://www.majorgeeks.com/download2790.html"&gt;Yz dock&lt;/a&gt; is a mac-cloned taskbar that auto-magnifies when your mouse rolls over it.  I like this thing, and it goes great with &lt;a href="http://www.otakusoftware.com/topdesk/"&gt;TopDesk&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Anyway, here's a screenshot of the style in action:&lt;br /&gt;&lt;a href="http://www.customize.org/view/38285"&gt;&lt;br /&gt;&lt;img width=410 src="http://images.customize.org/category/stylexp/KuantumVisualStyle1-2_full.gif"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;YZ Dock looks like this:&lt;br /&gt;&lt;img width=410 src="http://www.majorgeeks.com/screenshots/y/yzdock.jpg"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111810350372820656?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111810350372820656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111810350372820656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111810350372820656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111810350372820656'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/06/reformats-are-fun-cool-utilities.html' title='Reformats are fun -- cool utilities'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111729363466636780</id><published>2005-05-28T08:17:00.000-07:00</published><updated>2005-06-02T16:19:06.916-07:00</updated><title type='text'>My first article published!</title><content type='html'>Read my first published article &lt;a href="http://www.codeproject.com/aspnet/ControlInjector.asp"&gt;here&lt;/a&gt; at CodeProject. I developed a ControlInjector for applying a String.Format() pattern to server controls, mixing html literal content and private controls.&lt;br /&gt;&lt;br /&gt;The benefit is similar to the benefit of String.Format(), where you separate the string itself, and the variables to insert.&lt;br /&gt;&lt;br /&gt;Let me know what you think of it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111729363466636780?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111729363466636780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111729363466636780' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111729363466636780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111729363466636780'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/05/my-first-article-published.html' title='My first article published!'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111690006337922594</id><published>2005-05-23T18:53:00.000-07:00</published><updated>2005-05-23T20:33:58.113-07:00</updated><title type='text'>Server controls vs. User Controls</title><content type='html'>I ran across an interesting problem today, and I'm surprised that I have never read anything online or in ASP.NET books on the topic.&lt;br /&gt;&lt;br /&gt;Basically I created a Wizard Control that will facilitate the common UI task of separating a long task into steps. The idea of a Wizard with Next/Previous buttons has been a foundation of windows applications since the beginning. Providing a similar interface for the web can help a lot.&lt;br /&gt;&lt;br /&gt;The control provides a table that looks like this:&lt;br /&gt;&lt;table border="0" cellspacing="0" width="300"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;&lt;td align="center" bgcolor="Tan"&gt;&lt;b&gt;Header&lt;/b&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td align="right" bgcolor="Gray"&gt;&lt;i&gt;Step 1 of 5&lt;/i&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td align="center"&gt;Content goes here...&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td align="center" nowrap="nowrap"&gt;&lt;input value="Previous" enabled="false" type="button"&gt;   &lt;input value="Next" type="button"&gt; &lt;input value="Cancel" type="button"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;so I have the control developed, all is well, the html looks all nice and neat like this:&lt;br /&gt;&lt;br /&gt;&lt;div id="code"&gt;&lt;br /&gt;&amp;lt;cc1:Wizard id="wizard1" runat="server" HeaderText="New User"&amp;gt;&lt;br /&gt;&amp;lt;cc1:WizardStep id="step1" runat="server" ValidationGroup="step1Group"&amp;gt;&lt;br /&gt;I am inside step 1!!!&lt;br /&gt;&amp;lt;/cc1:WizardStep&amp;gt;&lt;br /&gt;&amp;lt;/cc1:Wizard&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Now what if I wanted to encapsulate some of the controls in step1 into it's own user control? Sounds like it would tidy things up a bit. So I did this, and everything was okay. Until I wanted to make each ascx file in charge of validating and saving itself...&lt;br /&gt;&lt;br /&gt;So I decide to instead, derive from FoundationWizardStep in the ascx code-behind. This way I could provide a couple public properties and method for validating and saving the form fields. This gives you an error though, because you cannot make a user control (one with an ascx file) derive from System.Web.UI.Control. Instead it must derive from System.Web.UI.UserControl. What's the difference, you ask? Well I suppose the it takes some extra steps in rendering to allow for rich designer support, but aside from that? Not much.&lt;br /&gt;&lt;br /&gt;Now if I make FoundationWizardStep in turn derive from UserControl, I get even more weird behavior. I get a run-time exception in the html that the FoundationWizard doesn't have a child property of type FoundationWizardStep...&lt;br /&gt;&lt;br /&gt;Now I have resolved the problem by eliminating the ascx control and making it a complete server control (class only). Anyone have ideas as to why this happened?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111690006337922594?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111690006337922594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111690006337922594' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111690006337922594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111690006337922594'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/05/server-controls-vs-user-controls.html' title='Server controls vs. User Controls'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111652069424880588</id><published>2005-05-19T09:35:00.000-07:00</published><updated>2005-05-19T09:38:14.250-07:00</updated><title type='text'>Forza Motorsport</title><content type='html'>My new fix is Forza Motorsport for XBox.  I am really getting into it.  I particularly like how you can search for cars that match certain criteria;  searching is a feature that is common to most applications (be it web, windows, whatever) but not so much in games...   I'd like to see more of this.&lt;br /&gt;&lt;br /&gt;Also, I  REALLY like the fact that they licensed Porsche and Ferrari, these were missing from Gran Turismo 3 and it was disappointing (yes, I know that RUF's cars are really Porsches, but still)&lt;br /&gt;&lt;br /&gt;I haven't yet played GT4 and was wondering how it stacks up against Forza....   I have a PS2, so I might pick it up if it's better than Forza.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111652069424880588?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111652069424880588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111652069424880588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111652069424880588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111652069424880588'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/05/forza-motorsport.html' title='Forza Motorsport'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111636934707615428</id><published>2005-05-17T15:31:00.000-07:00</published><updated>2005-05-17T15:35:47.083-07:00</updated><title type='text'>VS 2005 Beta 2 has arrived!</title><content type='html'>I walked in my office today and opened the yellow envelope on the floor by the door to find:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Visual Studio 2005 Beta 2&lt;/span&gt; - Team Suite CD&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Visual Studio 2005 Beta 2&lt;/span&gt; - Team Foundation Server&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;SQL Server 2005 &lt;/span&gt;Developer Edition - 365 day trial&lt;/li&gt; &lt;/ul&gt; Now I have to find the time to reformat my machine because there is no way I am installing anything heavy on it right now...   it's running too slow.&lt;br /&gt;&lt;br /&gt;Why in the world does VS2003 start moving like molasses after a couple months of use?  When I add a new item to my solution I have to wait 3 full minutes before I regain control of the computer...  how &lt;span style="font-style: italic;"&gt;ghey&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111636934707615428?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111636934707615428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111636934707615428' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111636934707615428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111636934707615428'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/05/vs-2005-beta-2-has-arrived.html' title='VS 2005 Beta 2 has arrived!'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111516609022720150</id><published>2005-05-03T17:08:00.000-07:00</published><updated>2005-05-05T08:33:28.103-07:00</updated><title type='text'>ASP.NET 1.1 Master Pages</title><content type='html'>I was too impatient to wait for .NET 2.0's Master Pages, so I started to look at some of the (many) implementations for master pages in ASP.NET 1.1 ...&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;I ran across &lt;a href="http://www.codeproject.com/aspnet/effectivempages.asp"&gt;this article&lt;/a&gt; at &lt;a href="http://www.codeproject.com"&gt;CodeProject&lt;/a&gt; and I started to implement it in my new project.  The basic idea behind it is to parse a child page (Context Page) and before Viewstate is even loaded, it does a Server.Execute to execute the desired master page, and the master page just loads its controls into the HttpContext (it makes sure not to render itself).  The execution resumes at the Context page and the entire control collection of &amp;lt;form&amp;gt; is copied into a specifically named control and finishes execution!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;The master page looks like this:&lt;br /&gt;&lt;div id="code"&gt;&lt;br /&gt;  &lt;pre&gt;&lt;br /&gt;    &amp;lt;html&amp;gt;&lt;br /&gt;    ...&lt;br /&gt;    &lt;span class="comments"&gt;//header &amp; navigation&lt;/span&gt;&lt;br /&gt;    &amp;lt;div id="masterContextContainer"&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="comments"&gt;//footer&lt;/span&gt;&lt;br /&gt;    &amp;lt;/html&amp;gt;&lt;br /&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;That's it!  Mark the class with the [MasterPage()] attribute and it's ready to go!&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;The Context Page is just a normal aspx page that has the class marked as [ContextPage(masterPageAlias)]  and it's done.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;There are a number of different methods to accomplish this, but I found this one to be very nice because A) I can inherit my PageBase class from this MasterContextPage and start using it on existing web forms...  B) it's very clever!&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;The only thing I found that is a little iffy is the Tracing.  If you have both pages enabled it messes up, so make sure and set the Master Page to trace="false" so that you don't get any conflicts with control id's.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111516609022720150?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111516609022720150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111516609022720150' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111516609022720150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111516609022720150'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/05/aspnet-11-master-pages.html' title='ASP.NET 1.1 Master Pages'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111500695780102503</id><published>2005-05-01T21:04:00.000-07:00</published><updated>2005-05-01T21:13:48.653-07:00</updated><title type='text'>Hear my email on .NET Rocks!</title><content type='html'>Carl Franklin from &lt;a href="http://www.dotnetrocks.com"&gt;.NET Rocks!&lt;/a&gt; chose my email to read on the next show.  Tune in and listen...&lt;br /&gt;&lt;br /&gt;For my prize I got to pick from their section of "useless crap", and I chose the big-ass coffee mug... because I can always use more coffee!  (I guess I am not dorky enough to wear a skin tight baseball shirt or truckers hat that says ".NET Rocks!" on it... )&lt;br /&gt;&lt;br /&gt;If you aren't a regular listener, you should really try it out, most of the time you'll learn a thing or two new, and it's sometimes pretty funny.  My favorite shows were with Scott Hanselman &amp; Rory Blyth and Bill Vaughn &amp; Rocky Lohtka.  Here's a hilarious quote from the show:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;"I'm done with objects."&lt;/b&gt;&lt;p align="right"&gt;&lt;i&gt;- Rocky Lohtka on .NET Rocks at Dev Connections 2005&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111500695780102503?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111500695780102503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111500695780102503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111500695780102503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111500695780102503'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/05/hear-my-email-on-net-rocks.html' title='Hear my email on .NET Rocks!'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111474660136613788</id><published>2005-04-28T20:41:00.000-07:00</published><updated>2005-04-28T21:21:45.593-07:00</updated><title type='text'>NHibernate and ASP.NET - Part 2</title><content type='html'>After some toying around, I have my first object Saving/Updating/Deleting and using a GetAll method to bind to a Datagrid.   All of this with about 5 or 6 lines of UI code!  Yummy!&lt;br /&gt;&lt;br /&gt;I still have some design concerns to wrinkle out, though.  Here's how I have mine set up:&lt;br /&gt;&lt;br /&gt;&lt;div id="code"&gt;&lt;pre&gt;public class NHManager&lt;br /&gt;{&lt;br /&gt;   public NHManager()&lt;br /&gt;   {&lt;br /&gt;     &lt;span class="comments"&gt;//load config&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;     &lt;span class="comments"&gt;//create session factory&lt;/span&gt;&lt;br /&gt;   }&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="code"&gt;&lt;pre&gt;public abstract class BusinessBase&lt;br /&gt;{&lt;br /&gt;  private static NHManager _mgr = null;&lt;br /&gt;  [ThreadStatic()]&lt;br /&gt;  protected static NHManager Manager&lt;br /&gt;  {&lt;br /&gt;    get &lt;br /&gt;    { &lt;br /&gt;      if( _mgr == null) &lt;br /&gt;        _mgr = new NHManager();&lt;br /&gt;      return _mgr;&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private ISession _session = null;&lt;br /&gt;  protected ISession CurrentSession&lt;br /&gt;  {&lt;br /&gt;    get&lt;br /&gt;    {&lt;br /&gt;      if( _session == null )&lt;br /&gt;      {&lt;br /&gt;        &lt;span class="comments"&gt;//see if context contains it&lt;/span&gt;&lt;br /&gt;        if( HttpContext.Current[NHSESSION] == null ) &lt;br /&gt;        &lt;span class="comments"&gt;//key is a constant&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;          &lt;span class="comments"&gt;&lt;br /&gt;          //this is the first access for this request, &lt;br /&gt;          //load the object&lt;br /&gt;          &lt;/span&gt;&lt;br /&gt;          _session = Manager.OpenSession();&lt;br /&gt;          HttpContext.Current[NHSESSION] = _session;&lt;br /&gt;        }&lt;br /&gt;        else&lt;br /&gt;        {&lt;br /&gt;          &lt;span class="comments"&gt;//it exists in this request&lt;/span&gt;&lt;br /&gt;          _session = HttpContext.Current[NHSESSION] &lt;br /&gt;            as ISession;&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;      &lt;span class="comments"&gt;//make sure it's connected&lt;/span&gt;&lt;br /&gt;      if(! _session.IsConnected)&lt;br /&gt;        _session.ReConnect();&lt;br /&gt;      return _session;&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Is there anything glaringly wrong about the above sample?  I am expecting a little flaming due to the [ThreadStatic()] in my ASP.NET Application, but is it really that bad since my manager object is WORM (Write Once Read Many) ???&lt;br /&gt;&lt;br /&gt;I welcome suggestions and comments (now that they will actually work :P )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111474660136613788?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111474660136613788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111474660136613788' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111474660136613788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111474660136613788'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/04/nhibernate-and-aspnet-part-2.html' title='NHibernate and ASP.NET - Part 2'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111474600060882990</id><published>2005-04-28T20:38:00.000-07:00</published><updated>2005-04-28T20:40:00.606-07:00</updated><title type='text'>New template</title><content type='html'>Well I gave up on the old template because I recently was told that &lt;b&gt;nobody can reply to any of my posts!&lt;/b&gt;  I wonder what this has to do with the template that I was using, but I think that was the culprit.  Maybe people actually &lt;i&gt;do&lt;/i&gt; read this after all. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111474600060882990?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111474600060882990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111474600060882990' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111474600060882990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111474600060882990'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/04/new-template.html' title='New template'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111464902589547890</id><published>2005-04-27T17:31:00.000-07:00</published><updated>2005-04-27T17:45:05.896-07:00</updated><title type='text'>NHibernate and ASP.NET</title><content type='html'>If you haven't seen Nhibernate yet, you should really check it out. There are a lot of free ORM tools out there, but this one seems to be the most liked, as far as I've read. I am implementing it in a new project at work and so far I am liking it. A lot.&lt;br /&gt;&lt;br /&gt;What I like best is that my Base business object can implement all of the details in Saving, Updating, and deleting objects... all I have to do is make sure and create the xml mapping file and all is taken care of for me.&lt;br /&gt;&lt;br /&gt;I do have some design concerns though, as I don't want my front-end coupled to NHibernate at all. The UI developer shouldn't even have to know the workings of the object persistance, he/she should just call &lt;i&gt;BusinessObject.Save()&lt;/i&gt; and let the Data Layer handle it.&lt;br /&gt;&lt;br /&gt;So, following some advice on &lt;a href="http://www.theserverside.net/"&gt;TSS&lt;/a&gt; and &lt;a href="http://www.codeproject.com/"&gt;Code Project&lt;/a&gt; I decided to abstract the &lt;i&gt;nitty-gritty&lt;/i&gt; into a static class.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ooh&lt;/b&gt;, did I just say static? That must be wrong... Static classes are not very reliable in a web application, as you don't control it's lifetime at all. So I have some basic code that generates the necessary configuration, loads my persistant classes into NHibernate, and builds the session factory, and this is all static. As far as the application goes, we won't be able to tell it isn't working because the static members will just be recreated once they are lost. I'm concerned about the performance hit that we will suffer because of this.&lt;br /&gt;&lt;br /&gt;I also want to avoid tying it to the Application bag, because that introduces a coupling between the UI and the Class library.&lt;br /&gt;&lt;br /&gt;I'm sort of stumped at this point, and I haven't read anything yet that gives me a better alternative. Can someone recommend a solution?&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111464902589547890?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111464902589547890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111464902589547890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111464902589547890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111464902589547890'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/04/nhibernate-and-aspnet.html' title='NHibernate and ASP.NET'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111327766156076573</id><published>2005-04-11T20:47:00.002-07:00</published><updated>2005-04-11T20:47:41.560-07:00</updated><title type='text'></title><content type='html'>&lt;a href='http://photos1.blogger.com/img/63/5130/640/DSC00973.jpg'&gt;&lt;img border='0' style='border:1px solid #000000; margin:2px' src='http://photos1.blogger.com/img/63/5130/320/DSC00973.jpg'&gt;&lt;/a&gt;&lt;br /&gt;interior 2&amp;nbsp;&lt;a href='http://www.hello.com/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbh.gif' alt='Posted by Hello' border='0' style='border:0px;padding:0px;background:transparent;' align='absmiddle'&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111327766156076573?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111327766156076573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111327766156076573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111327766156076573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111327766156076573'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/04/interior-2.html' title=''/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111327764545623115</id><published>2005-04-11T20:47:00.001-07:00</published><updated>2005-04-11T20:47:25.456-07:00</updated><title type='text'></title><content type='html'>&lt;a href='http://photos1.blogger.com/img/63/5130/640/DSC00966.jpg'&gt;&lt;img border='0' style='border:1px solid #000000; margin:2px' src='http://photos1.blogger.com/img/63/5130/320/DSC00966.jpg'&gt;&lt;/a&gt;&lt;br /&gt;interior&amp;nbsp;&lt;a href='http://www.hello.com/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbh.gif' alt='Posted by Hello' border='0' style='border:0px;padding:0px;background:transparent;' align='absmiddle'&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111327764545623115?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111327764545623115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111327764545623115' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111327764545623115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111327764545623115'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/04/interior.html' title=''/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111327762649360356</id><published>2005-04-11T20:47:00.000-07:00</published><updated>2005-04-11T20:47:06.493-07:00</updated><title type='text'></title><content type='html'>&lt;a href='http://photos1.blogger.com/img/63/5130/640/DSC00959.jpg'&gt;&lt;img border='0' style='border:1px solid #000000; margin:2px' src='http://photos1.blogger.com/img/63/5130/320/DSC00959.jpg'&gt;&lt;/a&gt;&lt;br /&gt;yet another&amp;nbsp;&lt;a href='http://www.hello.com/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbh.gif' alt='Posted by Hello' border='0' style='border:0px;padding:0px;background:transparent;' align='absmiddle'&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111327762649360356?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111327762649360356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111327762649360356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111327762649360356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111327762649360356'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/04/yet-another.html' title=''/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111327761843629799</id><published>2005-04-11T20:46:00.001-07:00</published><updated>2005-04-11T20:46:58.436-07:00</updated><title type='text'></title><content type='html'>&lt;a href='http://photos1.blogger.com/img/63/5130/640/DSC00958.jpg'&gt;&lt;img border='0' style='border:1px solid #000000; margin:2px' src='http://photos1.blogger.com/img/63/5130/320/DSC00958.jpg'&gt;&lt;/a&gt;&lt;br /&gt;here's another angle&amp;nbsp;&lt;a href='http://www.hello.com/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbh.gif' alt='Posted by Hello' border='0' style='border:0px;padding:0px;background:transparent;' align='absmiddle'&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111327761843629799?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111327761843629799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111327761843629799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111327761843629799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111327761843629799'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/04/heres-another-angle.html' title=''/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111327756406216532</id><published>2005-04-11T20:46:00.000-07:00</published><updated>2005-04-11T20:46:04.063-07:00</updated><title type='text'></title><content type='html'>&lt;a href='http://photos1.blogger.com/img/63/5130/640/DSC00955.jpg'&gt;&lt;img border='0' style='border:1px solid #000000; margin:2px' src='http://photos1.blogger.com/img/63/5130/320/DSC00955.jpg'&gt;&lt;/a&gt;&lt;br /&gt;I'm selling my car... anyone interested?&amp;nbsp;&lt;a href='http://www.hello.com/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbh.gif' alt='Posted by Hello' border='0' style='border:0px;padding:0px;background:transparent;' align='absmiddle'&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111327756406216532?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111327756406216532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111327756406216532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111327756406216532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111327756406216532'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/04/im-selling-my-car.html' title=''/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111138206127643258</id><published>2005-03-20T21:06:00.000-08:00</published><updated>2005-05-01T18:02:34.160-07:00</updated><title type='text'>IE / Firefox and Javascript</title><content type='html'>I'm pretty sure all web developers have been annoyed a time or two (thousand) at the differences in the way Firefox and IE perform with the same HTML / Javascript. I am forced to use IE primarily at work because half of the legacy code is only IE compliant, which is kind of sad.&lt;br /&gt;&lt;br /&gt;One recent annoyance I had was a simple one: opening a pop-up window. Here was the code:&lt;br /&gt;&lt;br /&gt;&lt;div id="code" height="50"&gt;&lt;br /&gt;&lt;pre&gt;&amp;lta onclick="window.open('url.html', 'some page', 'toolbar=no, location=no, scrollable=no');" href="#" &amp;gt link &amp;lt /a &amp;gt &lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana; overflow: auto;"&gt;This worked fine in Firefox, but not in IE. IE complained about "invalid argument" ... after about 3 hours of googling I found out that the page title (what I had put as "some page") has to be 1 word for IE to function properly. How retarded is that?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;On a side note, checkout these cool extensions for firefox! ... Tidy is my new favorite...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana; border: solid 1px Blue; background: #808080;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;EditCSS for on-the-fly css editing of viewed content (user edit, notpermanent) (&lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://editcss.mozdev.org/" target="_blank"&gt;http://editcss.mozdev.org/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;NukeAnything. Highlight, right-click, Remove. Remove any element from thecurrent browser view (not permanent).(&lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://extensionroom.mozdev.org/more-info/nukeanything" target="_blank"&gt;http://extensionroom.mozdev.org/more-info/nukeanything&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;Tidy extension(&lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://users.skynet.be/mgueury/mozilla/" target="_blank"&gt;http://users.skynet.be/mgueury/mozilla/&lt;/a&gt;) or the HTTP headers extension(&lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://livehttpheaders.mozdev.org/" target="_blank"&gt;http://livehttpheaders.mozdev.org/&lt;/a&gt;). Very friendly for checking code.&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/8054147-111138206127643258?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111138206127643258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111138206127643258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111138206127643258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111138206127643258'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/03/ie-firefox-and-javascript.html' title='IE / Firefox and Javascript'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-111028436561539350</id><published>2005-03-08T04:18:00.000-08:00</published><updated>2005-03-08T04:19:25.616-08:00</updated><title type='text'>Free books from Apress</title><content type='html'>Thanks to a link from &lt;a href="http://www.ircomm.net"&gt;Mykre&lt;/a&gt; , I now have some new books to read!  Apress is &lt;a href="http://www.apress.com/free/index.html"&gt;giving out some eBooks for free&lt;/a&gt;, and they might just be worth the download!  Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-111028436561539350?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/111028436561539350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=111028436561539350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111028436561539350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/111028436561539350'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/03/free-books-from-apress.html' title='Free books from Apress'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-110991837468069670</id><published>2005-03-03T22:27:00.000-08:00</published><updated>2005-03-03T22:39:34.683-08:00</updated><title type='text'>Team Development with ASP.NET Multiple Projects</title><content type='html'>I thought I'd share my little setup with the world. I have been googling my ass off trying to find out the best way to do what I need done, but I haven't had much luck.&lt;br /&gt;&lt;br /&gt;Basically here was my problem:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Multiple Developers accessing the solution -- need multiple projects (this was before source control -- yuck).&lt;/li&gt;   &lt;li&gt;Different components in VB.NET / C# (can't combine languages until 2.0)&lt;br /&gt;&lt;/li&gt;   &lt;ul&gt;     &lt;li&gt;the previous code used single file aspx pages...(double yuck)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;   &lt;ul&gt;     &lt;li&gt;need to maintain common directory structure as on live server&lt;br /&gt;    &lt;/li&gt;   &lt;/ul&gt;  &lt;/ul&gt; Now I read a solution somewhere that just said to keep adding projects underneath your web projects root directory, and remove the "application" in iis, remove global.asax &amp; web.config and you're good to go. But wait, when you compile it leaves the .dll in the local \bin folder. I tried to set the output directory to the root bin folder, but Visual Studio didn't keep the changes. In fact, when I clicked apply it just reverted to "\bin" instead of " ..\..\bin"&lt;br /&gt;I recieve a (stupid) suggestion from a website to add each project as a reference in the main project -- well this caused all 10 projects to be built each time I compiled... yuck.&lt;br /&gt;&lt;br /&gt;Finally, after a few problems of not being able to debug certain dll's, I started at the solution again.  &lt;a href="http://jolson.geekswithblogs.net"&gt;Jason Olson&lt;/a&gt; recommended I try editing the project file directly with notepad.   DAMNIT why didn't I think of this in the first place?!?!   It worked like a charm!  I'm not sure why Visual Studio compained about the output folder in the first place.  In any case, I have been so used to just building all of the projects each time I wanted to compile, that it feels like the build speed is lightning fast!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-110991837468069670?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/110991837468069670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=110991837468069670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110991837468069670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110991837468069670'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/03/team-development-with-aspnet-multiple.html' title='Team Development with ASP.NET Multiple Projects'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-110946118582058382</id><published>2005-02-26T15:19:00.000-08:00</published><updated>2005-02-26T15:39:45.823-08:00</updated><title type='text'>annoyances while combining VB.NET and C#</title><content type='html'>I ran across this annoyance today, probably a bug in Visual Studio.  I have a custom collection that encapsulates an arraylist, and it basically has 5 different overloads for the Add() method.&lt;br /&gt;&lt;br /&gt;well this is written in VB.NET, while 1 of the instances of this class is in C#.  When I added a new overload to the collection, I named it add() instead of Add()   (VB.NET takes the first declared name as the correct case usage for variables and methods, so my other methods were changed as well, but the compiler doesn't actually show this change unless you visit the line again -- and hit a carriage return). &lt;br /&gt;&lt;br /&gt;My C# project complained no method named Add() existed.  Hrm, so I use intellisense to find out that the method is now called add() -- weird.  So I change it to add() to get it to compile, then go fix it.&lt;br /&gt;&lt;br /&gt;Well the compiler this time complained that there didn't exist an add() method.  Ok, now I'm a little upset.  This is just stupid.  The compiler is obviously confused.  I go back in to the VB.NET project, fix the case to read Add(), and I get ANOTHER compile error.  This time saying that there was no Add() method.  Arg!&lt;br /&gt;&lt;br /&gt;Viewing the object in intellisense must've slapped VS back into shape because it showed the correct method: Add().  Rewriting the line verbatim solved the problem and compiled just fine.&lt;br /&gt;&lt;br /&gt;Ahh, that's why they say,  "Where do you want to go today?"   (one of my old professors used to say that....)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-110946118582058382?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/110946118582058382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=110946118582058382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110946118582058382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110946118582058382'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/02/annoyances-while-combining-vbnet-and-c.html' title='annoyances while combining VB.NET and C#'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-110901013133142622</id><published>2005-02-21T10:17:00.000-08:00</published><updated>2005-02-21T10:22:11.333-08:00</updated><title type='text'>I swear I'm the last to know everything....</title><content type='html'>I must be really out of the loop.  Even searching on google before I never ran into this until yesterday:  NUnitASP.  What  a cool extension.  I must've been searching on the wrong terms because it's been out for over a year.  Anyway it lets you grab pages and test things with full HtppContext so you can really test the front end behavior and be confident in your pages.&lt;br /&gt;&lt;br /&gt;Anyway, if there exists such a soul that has not heard/used ASP.NET unit testing before I suggest checking out NUnitASP.  There's a pretty easy-to-follow tutorial at &lt;a href="http://www.theserverside.net/articles/showarticle.tss?id=TestingASP"&gt;http://www.theserverside.net/articles/showarticle.tss?id=TestingASP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now to write tests for my 100+ pages... /quiver&lt;br /&gt;&lt;br /&gt;(on a side note I'm still looking for some practicle examples of testing my class library code with NUnit...   I'm missing the bigger picture I think, but how can I easily test a class library that almost primarily deals with database interaction?? )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-110901013133142622?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/110901013133142622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=110901013133142622' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110901013133142622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110901013133142622'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/02/i-swear-im-last-to-know-everything.html' title='I swear I&apos;m the last to know everything....'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-110852527625998883</id><published>2005-02-15T19:36:00.000-08:00</published><updated>2005-02-15T19:41:16.260-08:00</updated><title type='text'>Empires:  Dawn of the Modern World</title><content type='html'>&lt;a href="http://www.empiresrts.com/"&gt;Empires:  Dawn of the Moder World&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I am ADDICTED to this game!  I played the original Empire Earth for a really long time, and this is a pretty good sequel.&lt;br /&gt;&lt;br /&gt;One really cool thing is that Empire Earth 2 is coming out pretty soon, and it looks like another good addition to the series.  The original EE will probably be offered free from Sierra once it hits stores, so keep an eye out for that.&lt;br /&gt;&lt;br /&gt;Playing these types of games makes me think of how good of an example they are for good object oriented design and opportunity for lots of design patterns.  I really think a game like this is over my head at the moment, but it's nice to have something to strive for.&lt;br /&gt;&lt;br /&gt;Most resell shops will have this game for about $10-$15, so pick it up... it's good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-110852527625998883?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/110852527625998883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=110852527625998883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110852527625998883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110852527625998883'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/02/empires-dawn-of-modern-world.html' title='Empires:  Dawn of the Modern World'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-110825678472317007</id><published>2005-02-12T16:49:00.000-08:00</published><updated>2005-02-12T17:06:24.726-08:00</updated><title type='text'>ASP.NET Enterprise Environment</title><content type='html'>I have been reading a lot about agile practices lately, sopping up as much information I can get my hands on.  I'm hooked.  I knew immediately that these practices would benefit me at work.  The problem is that these are geared towards general development.  Web development is slightly different, and it poses some problems with source control, unit testing, and other things...&lt;br /&gt;&lt;br /&gt;For source control I setup Subversion on our test server, then installed Apache to serve up the repository over http.  It uses WebDAV and Apache permissions to identify the user.  As many people know, the subversion admin directory (.svn) doesn't play well with Visual Studio .NET Web projects.  I think it has something to do with FrontPage server extensions, but whatever.  Anyway, there is a modified version of &lt;a href="http://tortoisesvn.tigris.org"&gt;TortoiseSVN&lt;/a&gt; availalable that can convert this to a more friendly (_svn) directory.  Beware of using this though... other tools will not work if you use this method.  For Visual Studio integration I am using AnkhSVN (which you can configure to use _svn directories).  This works very well, however it's still not idea.  Here's why:&lt;br /&gt;I frequently run into commit conflicts on my .dlls, .suo, and .pdb files.  This really doesn't matter since the .dll's will be recompiled, but it gets quite annoying.  I'm really looking on a better way to manage my directory structure to easily omit these files from the source control. (I'm thinking that NAnt may help me setup a different structure, but I haven't messed around with it yet)&lt;br /&gt;&lt;br /&gt;For unit tests, it's quite difficult to implement in a web environment (at least it appears to be).  One thing I quickly realized is that most of our logic was residing directly in the page.  Obviously, this is not desirable so I started work on a robust class library (which is coming along quite nicely now).  But how do I write unit tests for code that inserts data into a database?  Should I insert, then check to see if the data was inserted?  I can easily see this doubling my work.   Almost ALL of my code is database interaction.&lt;br /&gt;&lt;br /&gt;I have also started configuring CruiseControl.NET to do some continuous integration on my repository.  This is waiting on a few other factors, but is the next step in improving my development environment at work.&lt;br /&gt;&lt;br /&gt;I know I'm on the right track, but I am not finding enough good resources specific to ASP.NET development with architecture, directory structures.  I'd love any advice on how to improve in these areas, maybe some book recommendations....  Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-110825678472317007?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/110825678472317007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=110825678472317007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110825678472317007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110825678472317007'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/02/aspnet-enterprise-environment.html' title='ASP.NET Enterprise Environment'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-110824034799920193</id><published>2005-02-12T12:30:00.000-08:00</published><updated>2005-02-12T12:32:28.000-08:00</updated><title type='text'>Categories</title><content type='html'>When is Blogger going to supporting Post Categories?  It's one of the neater features of .Text and Drupal (2 other other blogging platforms that I have used.)&lt;br /&gt;&lt;br /&gt;It would serve as a tool for people to ignore my non-technical posts if they were so inclined.  (Wait, who in the hell would wanna do that?!?!)&lt;br /&gt;&lt;br /&gt;File this under:  Blogging!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-110824034799920193?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/110824034799920193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=110824034799920193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110824034799920193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110824034799920193'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/02/categories.html' title='Categories'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-110573470294811093</id><published>2005-01-14T13:30:00.000-08:00</published><updated>2005-01-14T12:31:42.946-08:00</updated><title type='text'>Pass-Phrases are the new thing</title><content type='html'>Well, this link is &lt;span style="font-style: italic;"&gt;hardly&lt;/span&gt; new, but it's link-worthy nonetheless.  This is a very interesting article on password security.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/robert_hensing/archive/2004/07/28/199610.aspx"&gt;Robert Hensing's Blog on Passwords&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-110573470294811093?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/110573470294811093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=110573470294811093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110573470294811093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110573470294811093'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/01/pass-phrases-are-new-thing.html' title='Pass-Phrases are the new thing'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-110532933207758873</id><published>2005-01-09T19:27:00.000-08:00</published><updated>2005-02-13T10:50:28.420-08:00</updated><title type='text'>It's that time again - System wipe</title><content type='html'>&lt;span style="font-family: arial;font-family:arial;font-size:85%;"  &gt;Like many computer power (read: nit-picky) users, I find the need to reformat my machine just about twice a year. This time around I have been lazy and it has been 9 months since my last reformat. This is mainly because I have been utterly dependent upon it as a server.&lt;br /&gt;&lt;br /&gt;I have been developing applications in PHP that were being shown to different clients, and it seemed each time I was about to finish a project, another one came right along.&lt;br /&gt;&lt;br /&gt;I also started a couple ASP.NET projects and was becoming very dependent upon my computer (well, a little more than usual).&lt;br /&gt;&lt;br /&gt;To top it all off my computer serves media content to my xbox, whicch I also didn't want to interrupt.&lt;br /&gt;&lt;br /&gt;I finally realized that I was NEVER going to get a break from being dependent upon my computer, so tonight I will reformat. After this install I plan to "ghost" my hard drives and make a set of restore cd's. I have heard this is a great tool for many people, but my computer is rarely in a position where I want a "snapshot" to always return to. This will be my opportunity to do that.&lt;br /&gt;&lt;br /&gt;To make my restore state the most useful in the long run, I have written down all the software I want to have on it. Good god! No wonder my system is so damn slow! I hand-wrote an entire page of software titles that I will be installing.&lt;br /&gt;&lt;br /&gt;I might as well list it out and explain why I like each piece of software... maybe someone will find it useful. Or maybe you can post a comment making fun of me. In any case, this is my blog NOT YOURS!&lt;br /&gt;&lt;br /&gt;.....sorry, got a little carried away.  Where were we?  Ahh, yes.. the software list, complete with comments.&lt;br /&gt;&lt;br /&gt;My OS is WinXP Pro, for reasons that are probably obvious. Pretty much the only things I do are play games, develop in .NET and mess with DirectX... enough said.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Security&lt;br /&gt;&lt;hr /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;(these days it is a must to install these programs first! Think how dangerous it could be to visit 1 site without anti-virus / anti-spy with a stock version of IE.... /shudder)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;ul style="font-family: arial;font-family:arial;" &gt;   &lt;li&gt;&lt;span style="font-size:85%;"&gt;McAfee Enterprise 7 - far better than Norton imho...&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;&lt;span style="font-size:85%;"&gt;SpyBot - It's free and catches more than Ad-aware&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;&lt;span style="font-size:85%;"&gt;Ad-aware - well, Spybot isn't perfect....  any suggestions on replacing these 2 with one all mighty Anti-Spy solution?&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;span style="font-weight: bold; font-family: arial;font-family:arial;" &gt;System&lt;/span&gt;&lt;br /&gt;&lt;hr style="font-family: arial;font-family:arial;" &gt;&lt;span style="font-family: arial;font-family:arial;font-size:78%;"  &gt;&lt;br /&gt;&lt;/span&gt; &lt;ul style="font-family: arial;font-family:arial;" &gt;   &lt;li&gt;&lt;span style="font-size:85%;"&gt;DirectX 9.0c SDK - For my ventures in game programming with the awe-inspiring Managed DirectX&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;&lt;span style="font-size:85%;"&gt;.NET 1.1 - For my managed development&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;&lt;span style="font-size:85%;"&gt;PHP - cuz a little side money from &lt;a href="http://www.rentacoder.com/"&gt;Rent-a-coder&lt;/a&gt; never hurts.&lt;br /&gt; &lt;/span&gt;  &lt;/li&gt;   &lt;li&gt;&lt;span style="font-size:85%;"&gt;IIS - for asp.net and php&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt;&lt;span style="font-weight: bold; font-family: arial;font-family:arial;" &gt;Databases&lt;/span&gt;&lt;br /&gt;&lt;hr style="font-family: arial;font-family:arial;" &gt;&lt;br /&gt;&lt;span style="font-family: arial;font-family:arial;" &gt;I use 2 because I have to develop for different target database servers. &lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;   &lt;li&gt;SQL Server 2000 (for asp.net stuff)&lt;/li&gt;   &lt;li&gt;MySQL (for php)&lt;/li&gt; &lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Development&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/span&gt; &lt;ul&gt;   &lt;li&gt;Microsoft Visual Studio .NET 2003&lt;/li&gt;   &lt;li&gt;Dreamweaver MX 2004&lt;/li&gt;   &lt;li&gt;EditPlus (though dreamweaver has better builtin ftp support)&lt;br /&gt;  &lt;/li&gt;   &lt;li&gt;SQLYog (free!) (wonderful tool for MySQL&lt;br /&gt;  &lt;/li&gt;   &lt;li&gt;Enterprise Manager / Query Analyzer&lt;/li&gt;   &lt;li&gt;Subversion (best source control I've seen)&lt;br /&gt;  &lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;span style="font-family: arial;font-family:arial;" &gt; &lt;span style="font-weight: bold;"&gt;Visual&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr style="font-family: arial;"&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;   &lt;li&gt;&lt;strike&gt;StyleXP (lots of clean visual styles out there)&lt;/strike&gt; (i just recently learned that stylexp only hacks the microsoft dll to provide unsigned styles.  The same thing can be accomplished with a manual hack.  WindowsBlinds has their own dll for skinning, so I'm testing that out.  I also got a copy of RoyalXP (the 2005 MCE style -- nice!)&lt;/li&gt;&lt;li&gt;Customize.org (for wallpapers)&lt;/li&gt; &lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Media&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/span&gt; &lt;ul&gt;   &lt;li&gt;Windows Media Player 10 (though it's pissing me off to no end)&lt;/li&gt;   &lt;li&gt;Winamp 5&lt;/li&gt; &lt;/ul&gt; &lt;span style="font-weight: bold;"&gt;Burning&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/span&gt; &lt;ul&gt;   &lt;li&gt;Nero&lt;/li&gt;   &lt;li&gt;Alcohol 120%&lt;/li&gt;   &lt;li&gt;Daemon-Tools (for mounting images)&lt;/li&gt;   &lt;li&gt;CloneDVD&lt;/li&gt; &lt;/ul&gt; I'd like comments.  I'm always on the lookout for more good software to bloat my machine!&lt;span style="font-family: arial;font-family:arial;font-size:78%;"  &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/8054147-110532933207758873?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/110532933207758873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=110532933207758873' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110532933207758873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110532933207758873'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/01/its-that-time-again-system-wipe.html' title='It&apos;s that time again - System wipe'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-110463628015963078</id><published>2005-01-01T19:00:00.000-08:00</published><updated>2005-01-01T19:54:10.496-08:00</updated><title type='text'>The Antec P160 ATX Case</title><content type='html'>I have been building computers for as long as I can remember. There was a time when I could actually make quite a bit of profit, and still stay well below what other major pc manufacturers were charging. That is not the case anymore, however the experience is still with me.&lt;br /&gt;&lt;br /&gt;When someone would ask me to build them a computer, I would generally assess what they could do without and skimp on that. Most business users (in fact most users in general) do not need a good video card. Nor do they need that much hard drive space. I would go for the cheapest price when it came down to these componenents.&lt;br /&gt;&lt;br /&gt;The computer chassis was the same thing. I would pay the extra money to get an ATX case, since they were far superior to old AT style cases, but still I would only spend about $30 on it. (Looking back on it, it was no wonder I cut myself so many times on jagged sheet metal found in cheap cases).&lt;br /&gt;&lt;br /&gt;I recently discovered why &lt;a href="http://www.blogger.com/app/www.antec.com"&gt;Antec&lt;/a&gt; and other major case manufacturers charge upwards of $100 for their cases. I purchased the Antec P160 from Microcenter for $108.00 - $40 MIR = $68. Not bad, considering &lt;a href="http://www.blogger.com/app/www.newegg.com"&gt;NewEgg&lt;/a&gt; had it for $115. Soon after I found that CompUSA had it for $60, but oh well. Who shops there anyway? Anyway, I'm getting side tracked. Here's a picture of the case:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.antec.com/images/400/P160_front.jpg" /&gt;&lt;br /&gt;Sure it looks nice from the outside, but is it worth $100 just from the front? Absolutely not. Sure the asthetics are nice, and the Power button / usb ports are cleverly positioned at the top of the case, but I can find an equally pleasing case for $40 or so from &lt;a href="http://www.blogger.com/app/www.dealsonic.com"&gt;DealSonic&lt;/a&gt;. What's inside is even greater than the exterior.&lt;br /&gt;&lt;br /&gt;First thing I noticed: When they say aluminum... they mean it. The whole thing is made of 2mm rolled aluminum. Most aluminum cases I had dealt with before had aluminum side panels or something. This is way better quality.&lt;br /&gt;&lt;br /&gt;The hard drive cage is rotated perpendicular to the case, to allow easier access to the drives. You can see this in the next picture:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.antec.com/images/400/P160_inside.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;This is very clever. Though I have heard people have space issues when it comes to connecting SATA hard drives, but I don't have any of these. Not to mention you could easily stick SATA hard drives in the 3.5" slot below the floppy. The drive cage has rails for these sliding frames that you attach to the hard drives. Then you just slide the drive it and it clicks and locks. Easy!&lt;br /&gt;&lt;br /&gt;The 5.25" drive bays have the same rail system. Man, I'm starting to love this case! In front of the hard-drive cage (which is detachable, by the way) is space for a fan. Hrmm, how can I get a fan in there, I wonder. I unscrew the thumbscrew on the panel seen in the picture and the piece slides out! The fan can screw into this metal frame and slide right into place. The thumb screw even stays attached to the piece so you won't lose it.&lt;br /&gt;&lt;br /&gt;As for the fan on the back, it is attached by 4 rubber screws that you just pull through until they fan out, then you cut of the excess rubber hanging out the back. This gives you a fan that doesn't actually touch the chassis. They advertise that this is a quiet fan, but I have yet to ascertain that fact. I know that the rubber screws will definitely help.&lt;br /&gt;&lt;br /&gt;The motherboard tray comes out to make installation easy. It includes 2 temperature sensors that you can place where you like, and the front panel houses a washable dust filter.  2 of the 5.25" drive bays have fake bezels to make your drives look uniform.  I like this idea, but I have seen some crappy ones in the past, so I hope these function like they should.&lt;br /&gt;&lt;br /&gt;The only thing I could ask for would be to replace the thumb screws on the PCI panel and replace them with the pci clamps. I saw those on a couple &lt;a href="www.thermaltake.com"&gt;Thermaltake&lt;/a&gt; cases.  (The Tsunami dream was my 2nd choice, but I really didn't want a door in front of my optical drives.)&lt;br /&gt;&lt;br /&gt;So, I finally realized, after more than a decade of building computers, that the case is the same as just about any other component in a computer: you get what you pay for. Sadly I feel that I am not surprising anyone here. I just thought I would share my excitement with my new case.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-110463628015963078?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/110463628015963078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=110463628015963078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110463628015963078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/110463628015963078'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2005/01/antec-p160-atx-case.html' title='The Antec P160 ATX Case'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-109346578216379217</id><published>2004-08-25T13:27:00.000-07:00</published><updated>2004-08-25T13:29:42.163-07:00</updated><title type='text'>ahh, first week of classes</title><content type='html'>There is nothing like the bombardment of fraternaties and organizations that hound you into joining or donating or whatever.  I often see signs like NBSA (National Black Student Association)  or HSA (Hispanic Student Association)...  and there are many others.  In fact, I think there is one for just about every race out there, except white.  Why is this?  Because if there was a National White Student Association, it would be considered racist.  Hrm, what is wrong with us?&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-109346578216379217?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/109346578216379217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=109346578216379217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/109346578216379217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/109346578216379217'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2004/08/ahh-first-week-of-classes.html' title='ahh, first week of classes'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-109340739774782151</id><published>2004-08-24T21:15:00.000-07:00</published><updated>2004-08-24T21:16:37.746-07:00</updated><title type='text'>rentacoder is my friend</title><content type='html'>I am really liking rentacoder.com  (why didn't I find this sooner?)....  it's nice to be able to make a few hundred extra dollars per month for doing what I love:  coding.&lt;br /&gt;&lt;br /&gt;My only issues are that the RAC fee is huge, and that when they pay me, Paypal takes a tiny bit as well!  Good god, by the time I get my money it will have diminished almost 20%!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-109340739774782151?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/109340739774782151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=109340739774782151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/109340739774782151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/109340739774782151'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2004/08/rentacoder-is-my-friend.html' title='rentacoder is my friend'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-109336054558323805</id><published>2004-08-24T08:12:00.000-07:00</published><updated>2004-08-24T08:15:45.583-07:00</updated><title type='text'>different browsers</title><content type='html'>I finally made the switch from IE (long-time user) to Mozilla Firefox and I can't believe I didn't do this sooner!  IE is very annoying compared to Firefox, and is riddled with security flaws.   My favorite feature is how you can break out of framed pages, such as those that open from links inside hotmail messages....  very cool.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-109336054558323805?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/109336054558323805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=109336054558323805' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/109336054558323805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/109336054558323805'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2004/08/different-browsers.html' title='different browsers'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-109331696767074165</id><published>2004-08-23T20:06:00.000-07:00</published><updated>2004-08-23T20:09:27.670-07:00</updated><title type='text'>mathematical proof that girls are evil</title><content type='html'>First we know that girls take time and money, so&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;girl = time X money&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;next we know that time IS money, so&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;time = money&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;substitute in for time in the first equation:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;girl = money X money&lt;/span&gt;   or    &lt;span style="font-weight: bold;"&gt;girl = money^2&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;now we know that money is the root of all evil, so:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;money = sqrt(evil)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;and substitute in for the other equation&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;girl = money^2           &lt;/span&gt;and         &lt;span style="font-weight: bold;"&gt;money^2 = evil&lt;/span&gt;    thus:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;girl = evil&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That is the lesson of the day....&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-109331696767074165?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/109331696767074165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=109331696767074165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/109331696767074165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/109331696767074165'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2004/08/mathematical-proof-that-girls-are-evil.html' title='mathematical proof that girls are evil'/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8054147.post-109330534434899112</id><published>2004-08-23T16:55:00.000-07:00</published><updated>2004-08-23T16:55:44.346-07:00</updated><title type='text'></title><content type='html'>ugh...  first day of classes.  What a day, my feet hurt.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8054147-109330534434899112?l=subdigital.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://subdigital.blogspot.com/feeds/109330534434899112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8054147&amp;postID=109330534434899112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/109330534434899112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8054147/posts/default/109330534434899112'/><link rel='alternate' type='text/html' href='http://subdigital.blogspot.com/2004/08/ugh.html' title=''/><author><name>subdigital</name><uri>http://www.blogger.com/profile/11267397209306347140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
