<?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-21640713</id><updated>2012-01-31T22:40:13.085-08:00</updated><category term='linux'/><category term='firefox'/><category term='flash'/><category term='iis'/><category term='javascript'/><category term='authentication'/><category term='internet explorer'/><category term='books'/><category term='ajax'/><category term='programming'/><category term='sugarcrm'/><category term='microsoft'/><category term='Tools'/><category term='asp.net'/><category term='windows'/><category term='fun'/><category term='image'/><category term='xp embedded'/><category term='webdev'/><category term='offtopic'/><category term='Google'/><category term='database'/><category term='delphi'/><title type='text'>A Nofsinger's Blog</title><subtitle type='html'>Web Developer, Software Engineer, Technology Enthusiast</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21640713.post-3325581589567351694</id><published>2010-10-30T09:04:00.000-07:00</published><updated>2010-10-30T09:16:44.162-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Console.Writeline() Hangs if User clicks in Console Window</title><content type='html'>&lt;h2&gt;The Problem&lt;/h2&gt;&lt;br /&gt;We had this issue with some .NET Console Applications at work, although I imagine the framework of the application doesn't really matter. The scenario is that you have a console app which needs to run in the background for a long time, in our case a FileCreate watcher script. But someone is administering the server or machine, and accidentally clicks somewhere on the console window. This causes the title of the window to change from &lt;code&gt;"C:\Windows\system32\cmd.exe"&lt;/code&gt; or something like that to &lt;code&gt;"SELECT - C:\Windows\system32\cmd.exe"&lt;/code&gt;. Now the application will halt its execution the next time a &lt;code&gt;Console.Write()&lt;/code&gt; or &lt;code&gt;Console.WriteLine()&lt;/code&gt; occurs in the application.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;The Solution&lt;/h2&gt;&lt;br /&gt;This problem is actually a feature of the console window in Windows XP, called "QuickEdit." Normally, you have to go to the menu at top-left before you can select something in the console window for copying, but with QuickEdit on you can do this at any time and are in danger of halting  your application. To turn it off:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Goto the menu by clicking icon in top-left corner of console window.&lt;/li&gt;&lt;li&gt;Goto "Properties"&lt;/li&gt;&lt;li&gt;On the Options tab, under "Edit Options," un-check "QuickEdit Mode"&lt;/li&gt;&lt;li&gt;Click "OK" and confirm that you would like to apply changes to all windows with same title.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Apparently there is a way to adjust this &lt;a href="http://bytes.com/topic/visual-basic-net/answers/366818-console-writeline-hangs-if-user-click-into-console-window"&gt;setting from your application&lt;/a&gt;, but I didn't really need to since I was only worried about this on one server. Also, the instructions are in VB.NET, eww.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-3325581589567351694?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/3325581589567351694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=3325581589567351694' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/3325581589567351694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/3325581589567351694'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2010/10/consolewriteline-hangs-if-user-clicks.html' title='Console.Writeline() Hangs if User clicks in Console Window'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-4095140323747095849</id><published>2009-12-16T12:44:00.001-08:00</published><updated>2009-12-16T12:46:33.936-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Wave</title><content type='html'>I have some &lt;a href="http://wave.google.com"&gt;Google Wave&lt;/a&gt; Invites to hand out. Any of my regular readers would like one?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just comment on this post with your email address. I recommend obfuscating it like this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;myname at gmail&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll assume it is a ".com" unless you say otherwise.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-4095140323747095849?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/4095140323747095849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=4095140323747095849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/4095140323747095849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/4095140323747095849'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2009/12/google-wave.html' title='Google Wave'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-2411564857079470089</id><published>2009-12-04T10:40:00.000-08:00</published><updated>2009-12-04T10:55:59.577-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='authentication'/><title type='text'>My Issues w/ LastPass</title><content type='html'>I tried &lt;a href="http://lastpass.com"&gt;LastPass&lt;/a&gt; as a password management solution and I have a few issues:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;LastPass is very browser-centric or website-oriented. I do a lot of IT stuff being a Software Developer, and I need passwords for databases, workstations, program keys, etc. With LastPass, it is a bit clunky to open up your vault, try to find the right entry (see my next gripe) and then copy the information out and paste into the program.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;LastPass has a "group" (folder) for each entry, but just one group/folder. I prefer &lt;a href="http://passpack.org"&gt;Passpack&lt;/a&gt;'s ability to tag every entry with multiple tags, or &lt;a href="http://keepass.info"&gt;KeePass&lt;/a&gt;' ability to have a nested hierarchy of folders/groups. I might especially dislike LastPass' implementation of this because I tried importing 60 some passwords from KeePass into LastPass, and it was a mess to try to sort out the password for my two jobs and home.&lt;/li&gt;&lt;li&gt;As far as I can tell, LastPass does not very elegantly handle the fact that I do a lot of development and "intranet" site use. So, I will have a buttload of different passwords for the domain "localhost" and for the domain "xxx.ims3k.com" (which LastPass handles as ims3k.com), etc.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The "Identity" thing doesn't work how you'd expect. I wanted it to partition out all my passwords into separate accounts, in essence: "Personal" "Job1" "Job2", etc. Instead, it just only exposes passwords you select from the primary account to these sub-identities. If you delete the password for a site in one identity, it will be gone in the primary identity and others that have a view of it, or so it seems.&lt;/li&gt;&lt;/ul&gt;If I could somehow combine the way that KeePass works and LastPass, I'd have my perfect tool. Or maybe if PassPack dropped the 100 password limit, and had a decent Firefox plug-in or desktop widget.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-2411564857079470089?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/2411564857079470089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=2411564857079470089' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/2411564857079470089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/2411564857079470089'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2009/12/my-issues-w-lastpass.html' title='My Issues w/ LastPass'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-2764482239056286486</id><published>2009-08-31T09:32:00.000-07:00</published><updated>2009-09-01T11:36:40.911-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugarcrm'/><title type='text'>Script: SugarCRM Click-Thru Target to Lead in Email Campaign</title><content type='html'>A quick post here about a little script I wrote for SugarCRM.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Update:&lt;/span&gt; I forgot to mention that I am working with SugarCRM version 5.2.0i here. Results may vary (read "not work") with other versions.&lt;br /&gt;&lt;br /&gt;We were having trouble with the workflow process of running an Email Campaign in SugarCRM. Namely, we had like 100 some clickthru's in an email campaign, and I really wanted to just click a button to make all of those clickthru targets become leads. I would have even settled for the click-thru list being clickable links and doing it one-by-one (well, i would have had the marketing guys do that), but even that is not possible.  They are not clickable links that redirect you to the target details view - instead, they are just a static list with only the related hyperlink being clickable.&lt;br /&gt;&lt;br /&gt;Details of the problem here: &lt;a href="http://www.sugarcrm.com/forums/showthread.php?p=181660#post181660"&gt;http://www.sugarcrm.com/forums/showthread.php?p=181660#post181660&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, I wrote a &lt;a href="http://gist.github.com/178562"&gt;php script to solve our dilemma&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;script src="http://gist.github.com/178562.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;Be sure to change the Database user/password/name to match your configuration, and to change the &lt;pre&gt;$campaign_id and $user_id&lt;/pre&gt; variables at the top of the file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-2764482239056286486?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/2764482239056286486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=2764482239056286486' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/2764482239056286486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/2764482239056286486'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2009/08/quick-post-here-about-little-script-i.html' title='Script: SugarCRM Click-Thru Target to Lead in Email Campaign'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-6985233290148338452</id><published>2009-06-16T12:48:00.001-07:00</published><updated>2010-03-01T11:47:15.890-08:00</updated><title type='text'>Rebekah H.</title><content type='html'>&lt;a href="http://daisypath.com/"&gt;&lt;img src="http://daisypath.com/pic/2010/03/02/zSaz.jpg" width="60" height="80" border="0" alt="Daisypath - Personal picture" /&gt;&lt;img src="http://davf.daisypath.com/A34xm6.png" width="400" height="80" border="0" alt="Daisypath Anniversary tickers" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-6985233290148338452?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/6985233290148338452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=6985233290148338452' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/6985233290148338452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/6985233290148338452'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2009/06/rebekah-h.html' title='Rebekah H.'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-1985830726193614484</id><published>2009-02-03T08:01:00.001-08:00</published><updated>2009-02-03T08:11:35.254-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>Facebook broken for AdBlock Plus in Firefox</title><content type='html'>&lt;p&gt;For the last day or so I’ve noticed that &lt;a href="http://facebook.com/" target="_blank"&gt;Facebook&lt;/a&gt; has had major issues when I view it with &lt;a href="http://getfirefox.com" target="_blank"&gt;Firefox&lt;/a&gt; 3.0.5. If I do a Refresh of pages, I can usually get places, but it was almost as if a lot of the AJAX and dynamic stuff that normally happens was not working, and any postbacks (like commenting, searching for a friend, etc) would “freeze up” the site and I would have&amp;nbsp; to do a refresh to get to the next page or to see the results of my action.&lt;/p&gt; &lt;p&gt;This not being my first rodeo, my first instinct was to disable my Firefox add-ons by restarting in safe mode.&lt;/p&gt;&lt;pre class="csharpcode"&gt;firefox.exe -safe-mode&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Sure enough, now Facebook was working perfectly again. I then had another series of hunches which turned out to be correct.&amp;nbsp; First, I figured that AdBlock Plus or Firebug would be the offending extensions, and sure enough it was AdBlock. So, I right-clicked on the ABP icon in the Firefox status bar and went to &lt;strong&gt;Open Blockable Items&lt;/strong&gt;. Looking at the list of things that were blocked (they show up in &lt;span style="color: red"&gt;Red&lt;/span&gt;), I had a hunch to look for a script file, since the AJAX and dynamic stuff is what seemed to be broken.&amp;nbsp; There was only one script blocked for me:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a title="http://b.static.ak.fbcdn.net/rsrc.php/z3WYR/l/eil5yaf6/nu_ll/143116/js/adnetwork/adnetwork.js" href="http://b.static.ak.fbcdn.net/rsrc.php/z3WYR/l/eil5yaf6/nu_ll/143116/js/adnetwork/adnetwork.js"&gt;http://b.static.ak.fbcdn.net/rsrc.php/z3WYR/l/eil5yaf6/nu_ll/143116/js/adnetwork/adnetwork.js&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, I double-clicked on this blocked item to bring up the dialog to add an exception rule.&amp;nbsp; Just in case they feed this script from different addresses or different CDN servers, I made the exception a bit more robust than just the address above:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://*.fbcdn.net/*adnetwork.js"&gt;http://*.fbcdn.net/*adnetwork.js&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;After adding this exception rule, and reloading the page, everything is working ship shape again.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Now, my question is this – was this an attempt by Facebook to force people to turn off ad blockers in order to make Facebook function properly?&amp;nbsp; It seems to me that this script file should probably only handle loading the ads and such (judging by the name), thus it must break some of the other functionality only because other scripts detect that it is not loaded and do not function unless it is loaded. The last line of that script is this:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (window.Bootloader) { Bootloader.done([&lt;span class="str"&gt;"js\/adnetwork\/adnetwork.js"&lt;/span&gt;]); }&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So, maybe Bootloader has been changed to make the site not work correctly if this has not been called? &lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Experiment time!&amp;nbsp; &lt;/h3&gt;&lt;br /&gt;&lt;p&gt;So, I removed that exception I added, and once again the site is broken. This is visually apparent when I look at the search box typically present in the top right corner.&amp;nbsp; It doesn’t have the watermarked text saying &lt;span style="color: lightgray"&gt;Search&lt;/span&gt;. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;I open up Firebug and enable the Console for facebook.com, so that I can run some of my own script on this page.&amp;nbsp; Running the last line of that script myself fixes Facebook!&amp;nbsp; Here is a screencast of the experiment: &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a title="http://www.screencast.com/users/Noffie/folders/Jing/media/ddde9d8c-a4c1-4e28-aeab-976f4fb692de" href="http://www.screencast.com/users/Noffie/folders/Jing/media/ddde9d8c-a4c1-4e28-aeab-976f4fb692de"&gt;http://www.screencast.com/users/Noffie/folders/Jing/media/ddde9d8c-a4c1-4e28-aeab-976f4fb692de&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-1985830726193614484?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/1985830726193614484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=1985830726193614484' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/1985830726193614484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/1985830726193614484'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2009/02/facebook-broken-for-adblock-plus-in.html' title='Facebook broken for AdBlock Plus in Firefox'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-6737766987634085918</id><published>2009-01-07T11:53:00.000-08:00</published><updated>2009-01-07T12:36:17.631-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>Do Not Forget RenderEndTag()</title><content type='html'>I have been fighting for a few hours with a strange behavior in one of my ASP.NET custom controls - &lt;span style="font-style: italic;"&gt;Flasher&lt;/span&gt;. This control is for displaying an image, or a flash, on a web page.  How the control renders depends on whether the media assigned to it is an image or flash file.&lt;br /&gt;&lt;br /&gt;For some reason, this control was making the page bug out when it was set to an image, and inside an UpdatePanel.  Validating the XHTML, I discovered that the &amp;lt;div&amp;gt; tag was not being generated by the UpdatePanel in the spot where I thought it would.  I would have assumed something was wrong with the UpdatePanel, or it was a bug in this control, but I &lt;span style="font-weight: bold;"&gt;knew&lt;/span&gt; that things worked fine when my Flasher control was rendering the flash markup.  Only when it was rendering the image markup did this happen.&lt;br /&gt;&lt;br /&gt;I scanned over the code that rendered the markup in Flasher.cs, and the only difference I could notice was that the flash rendering code had both &lt;span style="font-weight: bold;"&gt;RenderBeginTag()&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;RenderEndTag()&lt;/span&gt;.  I had only called &lt;span style="font-weight: bold;"&gt;RenderBeginTag() &lt;/span&gt;in the image markup code, falsely assuming I did not need the end tag call because &amp;lt;img /&amp;gt; is a self-terminating tag.  Apparently ASP.NET will still generate the &amp;lt;img /&amp;gt; tag correctly, but if you do not make the call to &lt;span style="font-weight: bold;"&gt;RenderEndTag()&lt;/span&gt;, then it messes up the tag matching mechanism or what-have-ya and causes controls further on down the line to get "messed up," technically speaking.&lt;br /&gt;&lt;br /&gt;Lesson learned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-6737766987634085918?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/6737766987634085918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=6737766987634085918' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/6737766987634085918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/6737766987634085918'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2009/01/do-not-forget-renderendtag.html' title='Do Not Forget RenderEndTag()'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-2143417284915538551</id><published>2008-12-11T08:05:00.000-08:00</published><updated>2008-12-11T11:52:58.588-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Follow me on Twitter...</title><content type='html'>So, I finally bit the bullet and started using Twitter a bit more - I have had an account for some time, but now that I use &lt;a href="http://www.blogger.com/digsby.com"&gt;Digsby&lt;/a&gt;, I actually follow people.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://twitter.com/AdamNofsinger"&gt;http://twitter.com/AdamNofsinger&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Anyone else I know - and who reads this blog I guess ;) - use Twitter at all?  I hardly ever update compared to most people, but I felt like I was still web 1.0 not using it.  Maybe it's just a Silicon Valley fad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-2143417284915538551?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/2143417284915538551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=2143417284915538551' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/2143417284915538551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/2143417284915538551'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2008/12/follow-me-on-twitter.html' title='Follow me on Twitter...'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-5730748060076413371</id><published>2008-11-12T08:05:00.001-08:00</published><updated>2008-11-24T12:04:45.748-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Using BCP Format Files and SQL BULK IMPORT</title><content type='html'>You have a bunch of data - let's say locations that you are putting in a store locator database and application - which was given to you by a customer as an Excel spreadsheet.  Or maybe even a CSV or Tab-delimited file.&lt;br /&gt;&lt;br /&gt;You want to import that data into an SQL database table you coded up with a very similar schema to the data file.  Here's what your database table looks like - pretty standard and minimal for this domain:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;CREATE TABLE [dbo].[Locations](&lt;br /&gt;    [LocationID] [int] IDENTITY(1,1) NOT NULL,&lt;br /&gt;    [LocationName] [varchar](500) NOT NULL,&lt;br /&gt;    [PhoneNumber] [varchar](50) NOT NULL,&lt;br /&gt;    [Address1] [varchar](100) NOT NULL,&lt;br /&gt;    [Address2] [varchar](100) NOT NULL,&lt;br /&gt;    [City] [varchar](100) NOT NULL,&lt;br /&gt;    [StateProvince] [varchar](20) NOT NULL,&lt;br /&gt;    [ZipPostalCode] [varchar](20) NOT NULL,&lt;br /&gt;    [Latitude] [decimal](18, 9) NULL,&lt;br /&gt;    [Longitude] [decimal](18, 9) NULL,&lt;br /&gt;    CONSTRAINT [PK_Locations] PRIMARY KEY CLUSTERED ([LocationID] ASC)&lt;br /&gt;)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Here is an example of what your data file might look like, if it is Comma Delimited for instance:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;Bob's Meat Mart,565-555-1236,Bob Wallace,423 Highland Ave.,Juneau,WI,54701,44.778885,-91.478939&lt;br /&gt;Alvin Dairy Ranch,565-555-4875,Greg Alvin,1032 Caledonia St.,Plain,WI,54603,43.838412,-91.246566&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;So you can see in the data file, the order of the columns is like this:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;LocationName&lt;br /&gt;PhoneNumber&lt;br /&gt;OwnerName&lt;br /&gt;Address&lt;br /&gt;City&lt;br /&gt;State&lt;br /&gt;ZIP&lt;br /&gt;Latitude&lt;br /&gt;Longitude&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;It doesn't exactly match up with the order, and number of columns, in our database.  If you try to import this data file using a minimal BULK INSERT command such as the following, you will get some error messages like I show below the command and the process will fail completely:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;BULK INSERT Locations &lt;br /&gt;FROM 'C:\Work\StoreLocator\Docs\TestData.csv' WITH (&lt;br /&gt;    FIELDTERMINATOR = ',',&lt;br /&gt;    ROWTERMINATOR = '\n'&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Msg 4864, Level 16, State 1, Line 3&lt;br /&gt;Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 1 (LocationID).&lt;br /&gt;Msg 4864, Level 16, State 1, Line 3&lt;br /&gt;Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 2, column 1 (LocationID).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Format File to the Rescue&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;What we need is a &lt;a href="http://msdn.microsoft.com/en-us/library/ms191516.aspx"&gt;BCP Format File&lt;/a&gt; to tell the BULK INSERT command how to manage the difference in number of columns and order of columns.  I'll brush over the steps I used here to get one of those - there maybe a different or better way, but this works for me.&lt;br /&gt;&lt;br /&gt;You can use the bcp.exe tool that comes with SQL Server 2005 (earlier versions too I think) to generate a "first draft" of a format file.  BCP can connect to your database, look at the schema of a table you specify, and then generate a format file which, in its first draft, would describe a 1:1 mapping between a data file and that table.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; if you are having trouble getting &lt;i&gt;bcp.exe&lt;/i&gt; to connect to your database, make sure that you turn on remote connections (I read somewhere that that is how bcp.exe connects), and that the user you are running the command as has proper access on the database/table.  Another trick I figured out was to specify the server instance name using the &lt;i&gt;-S ServerName&lt;/i&gt; parameter on the command - I have a couple of database instances, and for some reason these tools tend to default to the wrong one.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Another Note:&lt;/strong&gt; After struggling for hours trying to get this to work with the XML format file, I tried it with the non-XML format file and got it working in minutes.  I won't waste your time trying to explain that whole frustrating process, but I suggest you stick with the non-XML format file.&lt;br /&gt;&lt;br /&gt;So, here is the &lt;i&gt;bcp.exe&lt;/i&gt; command I came up with to create my non-XML format file, and what it generates:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt; &amp;gt; bcp StoreLocator.dbo.Locations format nul -T -n -f LocationsFormatFile.fmt -S localhost\SQLEXPRESS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;9.0&lt;br /&gt;10&lt;br /&gt;1       SQLINT        0       4       ""   1     LocationID                     ""&lt;br /&gt;2       SQLCHAR       2       500     ""   2     LocationName                   SQL_Latin1_General_CP1_CI_AS&lt;br /&gt;3       SQLCHAR       2       50      ""   3     PhoneNumber                    SQL_Latin1_General_CP1_CI_AS&lt;br /&gt;4       SQLCHAR       2       100     ""   4     Address1                       SQL_Latin1_General_CP1_CI_AS&lt;br /&gt;5       SQLCHAR       2       100     ""   5     Address2                       SQL_Latin1_General_CP1_CI_AS&lt;br /&gt;6       SQLCHAR       2       100     ""   6     City                           SQL_Latin1_General_CP1_CI_AS&lt;br /&gt;7       SQLCHAR       2       20      ""   7     StateProvince                  SQL_Latin1_General_CP1_CI_AS&lt;br /&gt;8       SQLCHAR       2       20      ""   8     ZipPostalCode                  SQL_Latin1_General_CP1_CI_AS&lt;br /&gt;9       SQLDECIMAL    1       19      ""   9     Latitude                       ""&lt;br /&gt;10      SQLDECIMAL    1       19      ""   10    Longitude                      ""&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Now we need to edit this file so that it actually represents what is in a row on the input data file and things get mapped to the correct column in the table.  Also, we'll need to make BULK IMPORT skip the extra "OwnerName" field we have in the data, but not in the table.  Here are the articles I read over to figure out how to do that, and the format file I ended up with:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms191479.aspx"&gt;Understanding non-XML Format Files&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms179250.aspx"&gt;Using a format file to skip a Table Column&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms187908.aspx"&gt;Using a format file to skip a Data Field&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;9.0&lt;br /&gt;9&lt;br /&gt;1       SQLCHAR       0       500     ","     2     LocationName                   SQL_Latin1_General_CP1_CI_AS&lt;br /&gt;2       SQLCHAR       0       50      ","     3     PhoneNumber                    SQL_Latin1_General_CP1_CI_AS&lt;br /&gt;3       SQLCHAR       0       500     ","     0     EXTRA                          SQL_Latin1_General_CP1_CI_AS&lt;br /&gt;4       SQLCHAR       0       100     ","     4     Address1                       SQL_Latin1_General_CP1_CI_AS&lt;br /&gt;5       SQLCHAR       0       100     ","     6     City                           SQL_Latin1_General_CP1_CI_AS&lt;br /&gt;6       SQLCHAR       0       20      ","     7     StateProvince                  SQL_Latin1_General_CP1_CI_AS&lt;br /&gt;7       SQLCHAR       0       20      ","     8     ZipPostalCode                  SQL_Latin1_General_CP1_CI_AS&lt;br /&gt;8       SQLCHAR       0       19      ","     9     Latitude                       ""&lt;br /&gt;9       SQLCHAR       0       19      "\r\n"  10    Longitude                      ""&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;So, now everything was looking good, except I got a complaint about the Address2 field not being NULL, so I had to modify the script a little bit to support this.  Nothing you can do in the Format file.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;-- Temporarily set Locations.Address2 to NULLable&lt;br /&gt;ALTER TABLE Locations &lt;br /&gt; ALTER COLUMN [Address2] [varchar](100) NULL&lt;br /&gt;&lt;br /&gt;BULK INSERT Locations &lt;br /&gt;FROM 'C:\Work\StoreLocator\Docs\TestData_TSV.txt' WITH (&lt;br /&gt; FORMATFILE='C:\Work\StoreLocator\Database\LocationsFormat.fmt'&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;-- Blank all of the NULL Address2 fields, and rest to NOT NULLable&lt;br /&gt;UPDATE Locations&lt;br /&gt;SET  Address2 = ''&lt;br /&gt;WHERE Address2 IS NULL&lt;br /&gt;&lt;br /&gt;ALTER TABLE Locations &lt;br /&gt; ALTER COLUMN [Address2] [varchar](100) NOT NULL&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Success!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-5730748060076413371?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/5730748060076413371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=5730748060076413371' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/5730748060076413371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/5730748060076413371'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2008/11/using-bcp-format-files-and-sql-bulk.html' title='Using BCP Format Files and SQL BULK IMPORT'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-7865415266668328625</id><published>2008-11-05T06:40:00.000-08:00</published><updated>2008-11-13T11:12:31.840-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='offtopic'/><title type='text'>Favorite line from Obama Victory Speech</title><content type='html'>My favorite line from Obama's victory speech was this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"The road ahead will be long. Our climb will be steep. We may not get there in one year or even in one term. But, America, I have never been more hopeful than I am tonight that we will get there."  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And then everyone in the crowd chanted &lt;span style="font-style: italic;"&gt;"Yes, you can!"  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obama smirked.&lt;br /&gt;&lt;br /&gt;As an engineer, I know &lt;span style="font-weight: bold;"&gt;exactly&lt;/span&gt; what was going through his head at that moment: &lt;span style="font-weight: bold;"&gt;fear&lt;/span&gt;.  He has bid his project, promised wildly optimistic results, and has won the contract.  Now, the customers are going to expect him to make good on those promises.&lt;br /&gt;&lt;br /&gt;He better be praying right now that &lt;a href="http://www.samizdata.net/blog/archives/2008/11/obama_in_the_wh.html"&gt;the analysts&lt;/a&gt; are wrong.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-7865415266668328625?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/7865415266668328625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=7865415266668328625' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/7865415266668328625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/7865415266668328625'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2008/11/favorite-line-from-obama-victory-speech.html' title='Favorite line from Obama Victory Speech'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-1252646626627434344</id><published>2008-10-15T07:03:00.000-07:00</published><updated>2008-10-15T07:56:13.140-07:00</updated><title type='text'>StackOverflow</title><content type='html'>Not sure why, but &lt;a href="http://stackoverflow.com/"&gt;StackOverflow.com&lt;/a&gt; seems pretty neat to me.  It's like a free Experts-Exchange (which I have only used a tiny bit, mostly to steal other peoples questions/answers) only it is better in many respects.&lt;br /&gt;&lt;br /&gt;Anyhow, here is me on stackoverflow.com :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/users/18524/noffie"&gt;http://stackoverflow.com/users/18524/noffie&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-1252646626627434344?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/1252646626627434344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=1252646626627434344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/1252646626627434344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/1252646626627434344'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2008/10/stackoverflow.html' title='StackOverflow'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-7894336783535354609</id><published>2008-10-06T09:10:00.000-07:00</published><updated>2008-10-07T06:30:32.760-07:00</updated><title type='text'>Beware of Ad-Blocking!</title><content type='html'>&lt;p&gt;So, I just spent a good 6 hours trying to diagnose the strangest little quirk I was having.  In one of our products, we use a Flash map selection product called &lt;a target="_blank" href="http://truevectortech.com/"&gt;TrueVector&lt;/a&gt;.  This is implemented as a flash file (tvfm.swf) which itself grabs various configuration files (tv_cfg.xml) and xml data files from your web server in order to load up with a pretty little map you can select states and zip codes on.  I have &lt;a target="_blank" href="http://adamnoffie.blogspot.com/2008/04/flash-to-javascript-calls-in-internet.html"&gt;blogged about&lt;/a&gt; this troublesome control before (most of the trouble seems to be in getting all the files in the file structure and in the config file listings just right so that the flash successfully finds them).&lt;/p&gt;&lt;p&gt;The map solution was working fine, until I moved the page (and thus, out of necessity, some of the supporting files such as tv_cfg.xml) to a subdirectory in the web, specifically &lt;span style="font-style: italic;"&gt;/Ads/campaign_edit.aspx.  &lt;/span&gt;Now, the flash file would load up, but it would immediately display an error &lt;span style="font-weight: bold;"&gt;Failed to load main configuration data from: tv_cfg.xml&lt;/span&gt;. Now, the tv_cfg.xml file was in the same relative spot it was before in the root of the web page, and I actually had it in several other places just for testing.  Firebug was not even showing a request for this file in the &lt;span style="font-style: italic;"&gt;Net &lt;/span&gt;tab.  To further confuse me, I tested this page in Internet Explorer, then in Firefox 2, then in Firefox 3 (where I was having the issue) on a virtual machine - they all loaded the map fine.  I finally started getting close when I thought to try loading my development Firefox 3 in safe-mode, with all of the add-ons disabled.  Now, it worked!  Through the process of elimination, and to make a long story short, I finally figured out that AdBlock was causing the problem.  I pulled up the &lt;span style="font-weight: bold;"&gt;Blockable Items (Ctrl-Shift-V)&lt;/span&gt; page and smacked myself on the forehead:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zO-wyeK2BiA/SOo65ieKylI/AAAAAAAAAAM/98j9jlUcSQQ/s1600-h/ScreenShot002.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_zO-wyeK2BiA/SOo65ieKylI/AAAAAAAAAAM/98j9jlUcSQQ/s320/ScreenShot002.jpg" alt="" id="BLOGGER_PHOTO_ID_5254076675461401170" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I could have just added an exception to AdBlock, but I decided instead to go through the work of renaming this directory in the website.  That way, I can be more sure that if any of our customers use AdBlock or similar software, that they will not have issues with the site.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-7894336783535354609?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/7894336783535354609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=7894336783535354609' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/7894336783535354609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/7894336783535354609'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2008/10/beware-of-ad-blocking.html' title='Beware of Ad-Blocking!'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zO-wyeK2BiA/SOo65ieKylI/AAAAAAAAAAM/98j9jlUcSQQ/s72-c/ScreenShot002.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-6361186738755552685</id><published>2008-07-14T18:47:00.001-07:00</published><updated>2008-07-14T18:47:35.596-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Firefox 3 and Self-Signed SSL Certificates at http://localhost</title><content type='html'>&lt;p&gt;I'm putting this here because it was too hard to find on google -- I guess there are variations of this problem with the new Firefox 3 SSL error handling functionality.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Problem: &lt;/strong&gt;When you browse to a secure site on your local computer using 'localhost' -- &lt;a href="https://localhost/website"&gt;https://localhost/website&lt;/a&gt; -- you get a modal dialog stating&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;...&lt;br&gt;The certificate is not trusted because it is &lt;b&gt;self signed&lt;/b&gt;&lt;br&gt;(Error code: sec_error_ca_cert_invalid) &lt;br&gt;[Ok]&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;You can go no further.&amp;nbsp; If you try to manually add an exception using the advanced properties of Firefox, you will hit the same wall again when you tell Firefox to fetch the certificate you want to add an exception for.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Cause: &lt;/strong&gt;It's a bug in FF3, specifically with IPv6 stuff I guess. &lt;a title="https://bugzilla.mozilla.org/show_bug.cgi?id=435558" href="https://bugzilla.mozilla.org/show_bug.cgi?id=435558"&gt;https://bugzilla.mozilla.org/show_bug.cgi?id=435558&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; There are two workarounds.&amp;nbsp; The first is to use 127.0.0.1 instead of &lt;em&gt;localhost&lt;/em&gt;.&amp;nbsp; The second is to disable IPv6 tunneling (which you probably don't use now anyhow) by going to 'about:config' and setting &lt;em&gt;network.dns.disableIPv6 &lt;/em&gt;to &lt;em&gt;true&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/21640713-6361186738755552685?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/6361186738755552685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=6361186738755552685' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/6361186738755552685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/6361186738755552685'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2008/07/firefox-3-and-self-signed-ssl.html' title='Firefox 3 and Self-Signed SSL Certificates at http://localhost'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-6280277723886243613</id><published>2008-06-30T09:09:00.001-07:00</published><updated>2008-06-30T14:30:05.167-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Issues adding CUPS printers to Samba with cupsaddsmb</title><content type='html'>&lt;p&gt;So, once again I find myself trying to get printers from CUPS to Samba on a debian linux print/file server.  I didn't have any luck with &lt;strong&gt;cupsaddsmb&lt;/strong&gt; command last time, but I thought "What the heck, I know a bit more about linux now" and decided to try using it again.  (The &lt;a href="http://us3.samba.org/samba/docs/man/Samba-HOWTO-Collection/CUPS-printing.html#id420581" target="_blank"&gt;alternative&lt;/a&gt; is to manually add the printers to Samba, and then manually install the drivers in Samba using &lt;strong&gt;rpcclient&lt;/strong&gt; or something).&lt;/p&gt; &lt;p&gt;I was following this &lt;a href="http://forums.gentoo.org/viewtopic-t-456501-highlight-.html" target="_blank"&gt;somewhat updated guide&lt;/a&gt;.  I'll just record here the error messages I got when trying to run&lt;/p&gt; &lt;p class="code"&gt;&lt;strong&gt;cupsaddsmb -v -U root -a&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;and the corresponding fixes.&lt;/p&gt; &lt;p&gt;First error messages (they typically just keep repeating if you have '-v' on, otherwise it silently fails):&lt;br /&gt;&lt;/p&gt;&lt;p class="code"&gt;Unable to copy Windows 2000 printer driver files (1)!&lt;br /&gt;Running command: smbclient //localhost/print$ -N -A /tmp/4868f5046ce91 -c 'mkdir W32X86;put /tmp/4868f4ff23c03 W32X86/PUB_Conference_HPLJ5n.ppd;put /usr/share/cups/drivers/ps5ui.dll W32X86/ps5ui.dll;put /usr/share/cups/drivers/pscript.hlp W32X86/pscript.hlp;put /usr/share/cups/drivers/pscript.ntf W32X86/pscript.ntf;put /usr/share/cups/drivers/pscript5.dll W32X86/pscript5.dll'&lt;br /&gt;Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.30]&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Server not using user level security and no password supplied.&lt;br /&gt;Server requested LANMAN password (share-level security) but 'client use lanman auth' is disabled&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;tree connect failed: SUCCESS - 0&lt;br /&gt;&lt;/p&gt;I guess this is a &lt;a href="http://www.mail-archive.com/desktop-bugs@lists.ubuntu.com/msg191761.html" target="_blank"&gt;sort of bug in something&lt;/a&gt;, where the solution (workaround) is to add&lt;br /&gt;&lt;p class='code'&gt;&lt;strong&gt;client lanman auth = yes&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;to your smb.conf and restart samba&lt;br /&gt;&lt;/p&gt;&lt;p class='code'&gt;&lt;strong&gt;/etc/init.d/samba restart&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;One error message down, another one crops up.  :-)&lt;br /&gt;&lt;/p&gt;&lt;p class="code"&gt;Unable to copy Windows 2000 printer driver files (1)!&lt;br /&gt;Running command: smbclient //localhost/print$ -N -A /tmp/4868f64feb286 -c 'mkdir W32X86;put /tmp/4868f64a04e87 W32X86/PUB_Conference_HPLJ5n.ppd;put /usr/share/cups/drivers/ps5ui.dll W32X86/ps5ui.dll;put /usr/share/cups/drivers/pscript.hlp W32X86/pscript.hlp;put /usr/share/cups/drivers/pscript.ntf W32X86/pscript.ntf;put /usr/share/cups/drivers/pscript5.dll W32X86/pscript5.dll'&lt;br /&gt;Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.30]&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Server not using user level security and no password supplied.&lt;/span&gt;&lt;br /&gt;tree connect failed: NT_STATUS_WRONG_PASSWORD&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I had a feeling the line about "Server not using user level security and no password supplied" had something to do with it.  On a whim, I opened up my &lt;strong&gt;/etc/samba/smb.conf&lt;/strong&gt; again and changed&lt;br /&gt;&lt;/p&gt;&lt;p class='code'&gt;&lt;strong&gt;security = SHARE&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;to&lt;br /&gt;&lt;/p&gt;&lt;p class='code'&gt;&lt;strong&gt;security = USER&lt;/strong&gt;&lt;/p&gt;Hooray!  That seemed to do the trick.  Now the &lt;strong&gt;cupsaddsmb&lt;/strong&gt; command runs to completion for each printer, and states that the drivers are installed for it.  Of course, I'll change my security back to SHARE after I'm done installing the browsers.  Guess I'll have to switch it to USER and restart samba every time I want to add another printer.  Not much of a sacrifice compared to doing it the manual way -- I might switch to user based security if our company expands anyhow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-6280277723886243613?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/6280277723886243613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=6280277723886243613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/6280277723886243613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/6280277723886243613'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2008/06/issues-adding-cups-printers-to-samba.html' title='Issues adding CUPS printers to Samba with cupsaddsmb'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-770773703288205995</id><published>2008-04-28T11:54:00.001-07:00</published><updated>2008-04-28T11:54:26.209-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>Flash to Javascript calls in Internet Explorer</title><content type='html'>&lt;p&gt;I was having trouble getting a Flash that uses "FSCommand()" to send messages to javascript on a page working in Internet Explorer 7 (this applies to other versions too I'm assumming).&amp;nbsp; Worked fine in Firefox just having the &lt;/p&gt; &lt;p&gt;&lt;strong&gt;function flashEmbedID_DoFSCommand(command, args) {}&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;javascript function defined somewhere in the page.&amp;nbsp; But the same setup in Internet Explorer seemed to not be getting any calls from the Flash.&lt;/p&gt; &lt;p&gt;Internet Explorer runs Flash as an ActiveX component instead of a plug-in like Firefox does.&amp;nbsp; I had already read somewhere that you need to use VBScript to get a call from Flash in IE, and then make a subsequent call to javascript. &lt;/p&gt; &lt;p&gt;&lt;a title="http://moock.org/webdesign/flash/fscommand/index.html" href="http://moock.org/webdesign/flash/fscommand/index.html"&gt;http://moock.org/webdesign/flash/fscommand/index.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I tried this right away, but still no go. After days of sandbox testing and googling one thing after another, I somehow came up with just the right mix of words to feed Google and came back with a possible fix (NOTE: I'm using the latest version of &lt;a href="http://code.google.com/p/swfobject/" target="_blank"&gt;SWFObject&lt;/a&gt; 2 for javascript-based standards compliant Flash embedding, which is similar to UFO and actually replaces it (along with SWFObject 1.5, which was not so similar to UFO)). Follow the rabbit trail:&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.accessifyforum.com/viewtopic.php?t=9261" href="http://www.accessifyforum.com/viewtopic.php?t=9261"&gt;http://www.accessifyforum.com/viewtopic.php?t=9261&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.bobbyvandersluis.com/ufo/index.html" href="http://www.bobbyvandersluis.com/ufo/index.html"&gt;http://www.bobbyvandersluis.com/ufo/index.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;From &lt;a href="http://www.bobbyvandersluis.com/ufo/index.html" target="_blank"&gt;bobbyvandersluis.com&lt;/a&gt;:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;Q&lt;/em&gt;&lt;/strong&gt; Why doesn't &lt;code&gt;fscommand&lt;/code&gt; work in Internet Explorer?&lt;br&gt;&lt;strong&gt;&lt;em&gt;A&lt;/em&gt;&lt;/strong&gt; In order to make &lt;code&gt;fscommand&lt;/code&gt; work in Internet Explorer Adobe recommends to add a block of VBScript to capture and forward the FSCommand calls to JavaScript. However VBScript doesn't work anymore when a Flash movie is inserted using &lt;code&gt;innerHTML&lt;/code&gt;, like UFO does. Fortunately you can also use JavaScript instead of VBScript to catch the FSCommand calls. A small downside is that it uses &lt;a href="http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/event.asp"&gt;proprietary attributes&lt;/a&gt;, however wrapped in &lt;a href="http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp"&gt;conditional comments&lt;/a&gt; you will keep your code valid. A sample page can be found &lt;a href="http://www.bobbyvandersluis.com/ufo/test/testFSCommand.html"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;I'm not sure his explanation exactly fits my problem, since I tried &lt;em&gt;not &lt;/em&gt;using SWFObject, just using a straight &amp;lt;object&amp;gt; embed, and it &lt;strong&gt;still&lt;/strong&gt; did not work in IE.&amp;nbsp; I'm guessing ASP.NET or something else broke the VBScript FSCommand subroutine calls working for me, so using the javascript with the proprietary "event" and "for" attributes was still a great solution.&lt;a title="http://www.accessifyforum.com/viewtopic.php?t=9261" href="http://www.accessifyforum.com/viewtopic.php?t=9261"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="http://moock.org/webdesign/flash/fscommand/index.html" href="http://moock.org/webdesign/flash/fscommand/index.html"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-770773703288205995?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/770773703288205995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=770773703288205995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/770773703288205995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/770773703288205995'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2008/04/flash-to-javascript-calls-in-internet.html' title='Flash to Javascript calls in Internet Explorer'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-9138404599412514301</id><published>2008-04-04T06:46:00.001-07:00</published><updated>2008-04-04T06:47:28.300-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>Netflix Site Design Upgrades</title><content type='html'>&lt;p&gt;So, Netflix has done a complete revamping of their site design - bringing some of the &lt;a title="to an article on my Personal Blog" href="http://adamnoffie.wordpress.com/2008/01/04/netflix-new-releases-list-changes/" target="_blank"&gt;changes they made to the "New Releases" page&lt;/a&gt; to the rest of the site.&lt;/p&gt; &lt;p&gt;Having dabbled primarily in web application development now for awhile, the first thing that I noticed was that they changed the width of the overall layout.&amp;nbsp; Previously, the site had a fixed layout fit perfectly well into any &lt;strong&gt;800px&lt;/strong&gt; wide display - catering to people still stuck using &lt;strong&gt;800x600&lt;/strong&gt; as their screen resolution.&amp;nbsp; This is something you used to see pushed a lot on the net.&amp;nbsp; Making sure their your pages still look ok on older computers - or for yesteryears abundance of novices who hadn't even seen their Display control panel since they had installed Windows 98 years prior.&lt;/p&gt; &lt;p&gt;The new Netflix site design is still a fixed layout, but now looks best on a &lt;strong&gt;1024px&lt;/strong&gt; wide or wider display.&amp;nbsp; Anything less, and you will get horizontal scroll bars.&amp;nbsp; "So What? They have an extra 224 pixels of width to take up now -- big deal!"&amp;nbsp; Well, I can tell you from experience, having worked on two large projects recently where one was designed to support &lt;strong&gt;800x600 &lt;/strong&gt;displays and the other only &lt;strong&gt;1024x768&lt;/strong&gt; and above, that it is much easier to obtain a 'Web 2.0-ish' look when you have those extra pixels to play with.&amp;nbsp; I am glad to see that high visibility sites like this are committing to a new, higher standard.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-9138404599412514301?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/9138404599412514301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=9138404599412514301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/9138404599412514301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/9138404599412514301'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2008/04/netflix-site-design-upgrades.html' title='Netflix Site Design Upgrades'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-4044267819988023094</id><published>2008-03-28T12:54:00.001-07:00</published><updated>2008-03-28T12:54:28.194-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>The Table Cell Box Model</title><content type='html'>&lt;p&gt;Another Firefox vs. Internet Explorer behavior quirk, this time relating to how heights, padding, etc are interpreted on table cell (&amp;lt;td&amp;gt;) elements - The table cell box model, if you will.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.brunildo.org/test/" target="_blank" rel="colleague"&gt;Bruno Fassino&lt;/a&gt; (great CSS IE bugs/fixes page) has a &lt;a href="http://www.brunildo.org/test/TablesBM2V_q.html" target="_blank"&gt;test page&lt;/a&gt; up that demonstrates the behavior, and offers an explanation as to why I can't get cell height to be exactly the same in Firefox and IE7 on a table cell that has some padding all around it:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;Results: height on cell (td) is interpreted as:&lt;/em&gt; &lt;ol&gt; &lt;li&gt;&lt;em&gt;&lt;strong&gt;content-box height&lt;/strong&gt; in: &lt;strong&gt;IE/Win/standards&lt;/strong&gt;, Saf3/standards, iCab4/standards &lt;/em&gt; &lt;li&gt;&lt;em&gt;&lt;strong&gt;border-box height&lt;/strong&gt; in: IE/Win/quirks, &lt;strong&gt;Gecko 1.8+,&lt;/strong&gt; Op9, Saf3/quirks, iCab4/quirks&lt;/em&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt; &lt;p&gt;I looked around, and there &lt;a title="SitePoint forum post with discussion on this issue" href="http://www.sitepoint.com/forums/showthread.php?p=3770673#post3770673" target="_blank"&gt;seems to be some confusion&lt;/a&gt; as to exactly what the proper behavior is.&lt;/p&gt; &lt;h2&gt;The Solution&lt;/h2&gt; &lt;p&gt;For now, it seems like the only fix is to have alternate CSS for IE7 (I recommend &lt;a href="http://msdn2.microsoft.com/en-us/library/ms537512.aspx#dlhidden" target="_blank"&gt;conditional comments&lt;/a&gt;, and a separate iehax.css file)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-4044267819988023094?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/4044267819988023094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=4044267819988023094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/4044267819988023094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/4044267819988023094'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2008/03/table-cell-box-model.html' title='The Table Cell Box Model'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-8003633636546084048</id><published>2008-01-30T20:57:00.001-08:00</published><updated>2008-01-30T20:57:05.383-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>CSS Performance Enhancing Drugs</title><content type='html'>&lt;p&gt;Several times I have gone looking for an article like this on Google, and several times I have failed.&amp;nbsp; Tonight I hit just the right combination of keywords, and up popped this article straight from the horses mouth:&lt;/p&gt; &lt;p&gt;&lt;a title="http://developer.mozilla.org/en/docs/Writing_Efficient_CSS" href="http://developer.mozilla.org/en/docs/Writing_Efficient_CSS"&gt;http://developer.mozilla.org/en/docs/Writing_Efficient_CSS&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Whenever I'm writing rules for CSS, I always find myself asking questions like "Is it faster for the client rendering engine if I use #id as a selector, or if I use div#id"?&amp;nbsp; This article answers that and many other questions - and exposes several things I've been doing all wrong, thinking I was actually improving the render speed.&amp;nbsp; &lt;/p&gt; &lt;p&gt;BTW, from the article: &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;BAD - tag#id&lt;br&gt;GOOD - #id"&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/21640713-8003633636546084048?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/8003633636546084048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=8003633636546084048' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/8003633636546084048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/8003633636546084048'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2008/01/css-performance-enhancing-drugs.html' title='CSS Performance Enhancing Drugs'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-1531753642665565844</id><published>2008-01-14T09:59:00.001-08:00</published><updated>2008-08-15T10:23:13.360-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>Windows Media Player Embed</title><content type='html'>&lt;p&gt;Here is an object / embed I used to successfully embed a .wmv movie in a website.&amp;nbsp; Users will see the Media Player controls at the bottom, and the movie will "buffer" automatically without the need for some special server software.&lt;/p&gt; &lt;pre class='code'&gt;&amp;lt;!-- embed:  UCNvideo04.wmv --&amp;gt;&lt;br /&gt;&amp;lt;object id="MediaPlayer1" &lt;br /&gt;    CLASSID="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" &lt;br /&gt;    codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsm p2inf.cab#Version=5,1,52,701"&lt;br /&gt;    standby="Loading Microsoft Windows® Media Player components..." &lt;br /&gt;    type="application/x-oleobject" &lt;br /&gt;    width="640" height="480"&amp;gt;&lt;br /&gt;    &lt;br /&gt;    &amp;lt;param name="fileName" value="UCNvideo04.wmv" /&amp;gt;&lt;br /&gt;    &amp;lt;param name="animationatStart" value="true" /&amp;gt;&lt;br /&gt;    &amp;lt;param name="transparentatStart" value="true" /&amp;gt;&lt;br /&gt;    &amp;lt;param name="autoStart" value="true" /&amp;gt;&lt;br /&gt;    &amp;lt;param name="showControls" value="true" /&amp;gt;&lt;br /&gt;    &amp;lt;param name="Volume" value="100" &amp;gt;&lt;br /&gt;    &lt;br /&gt;    &amp;lt;embed type="application/x-mplayer2" &lt;br /&gt;        pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" &lt;br /&gt;        src="UCNvideo04.wmv" &lt;br /&gt;        name="MediaPlayer1" &lt;br /&gt;        width="640" height="480" &lt;br /&gt;        autostart="1" showcontrols="1" volume="100" /&amp;gt;&lt;br /&gt;&amp;lt;/object&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;We stopped using this though, and switched to FLV files loaded into FlowPlayer (&lt;a href="http://flowplayer.org" target="_blank"&gt;flowplayer.org&lt;/a&gt;).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-1531753642665565844?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/1531753642665565844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=1531753642665565844' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/1531753642665565844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/1531753642665565844'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2008/01/windows-media-player-embed.html' title='Windows Media Player Embed'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-1910875245720612360</id><published>2007-11-20T20:41:00.001-08:00</published><updated>2007-11-20T20:41:47.116-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Regurgitated News: VS 2008 / .NET 3.5 RTM'd</title><content type='html'>&lt;p&gt;&lt;a title="http://weblogs.asp.net/scottgu/archive/2007/11/19/visual-studio-2008-and-net-3-5-released.aspx" href="http://weblogs.asp.net/scottgu/archive/2007/11/19/visual-studio-2008-and-net-3-5-released.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2007/11/19/visual-studio-2008-and-net-3-5-released.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I wonder how much longer my beta will operate.&amp;#xA0; Hopefully it won't self destruct like my Office 2007 beta did.&amp;#xA0; &lt;/p&gt;  &lt;p&gt;&amp;lt;ramblings type='bedtime' &amp;gt;&lt;/p&gt;  &lt;p&gt;Man, had to think a bit to come up with that number (2007).&amp;#xA0; The electronics industry as a whole needs to come up with some sort of generational labeling standard for software release, video game consoles, etc.&amp;#xA0; I do like the &amp;quot;year&amp;quot; naming method VS 2.0, 2.5, 3.0, etc.&amp;#xA0; Not only does the year naming convention increase in size with newer product versions, but it gives consumers some details about when it was released, and how old it is now (assuming the consumer knows what year it is).&amp;#xA0; Maybe it could go in cycles, like presidential elections.&amp;#xA0; So we would have&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Visual Studio 2004&lt;/li&gt;    &lt;li&gt;Xbox 2004&lt;/li&gt;    &lt;li&gt;Nintendo 2004&lt;/li&gt;    &lt;li&gt;Disc 2004 (instead of DVD)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;and then the next generation would be&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Visual Studio 2008&lt;/li&gt;    &lt;li&gt;Xbox 2008&lt;/li&gt;    &lt;li&gt;Nintendo 2008&lt;/li&gt;    &lt;li&gt;Disc 2008 (instead of Blu-ray / HD-dvd)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hmm... those names suck from a marketing standpoint.&amp;#xA0; Then again, that never stopped Microsoft.&lt;/p&gt;  &lt;p&gt;&amp;lt;/ramblings&amp;gt;&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-1910875245720612360?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/1910875245720612360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=1910875245720612360' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/1910875245720612360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/1910875245720612360'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/11/regurgitated-news-vs-2008-net-35-rtm.html' title='Regurgitated News: VS 2008 / .NET 3.5 RTM&amp;#39;d'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-3167429068477583238</id><published>2007-10-29T07:45:00.001-07:00</published><updated>2008-09-12T07:50:33.454-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>File Upload not Working on First PostBack after loading Async through ASP.NET UpdatePanel</title><content type='html'>&lt;p&gt;I was setting up a ASP.NET Wizard control.&amp;nbsp; The 3rd or 4th step had a file upload control on it, with a runat="server".&amp;nbsp; The entire wizard control I wrapped in an ASP.NET UpdatePanel so that the wizard was all AJAXified.&amp;nbsp;&amp;nbsp;I had already fixed the "next" button for this wizard step so that it did a full postback to the server, not an asynchronous one - since I knew that was required to get a file upload to the server.&amp;nbsp; &lt;strong&gt;However, the file was STILL not being posted back, atleast not on the first post.&lt;/strong&gt;&amp;nbsp; Subsequent posts would work fine.&amp;nbsp; On a whim, I looked at the Firebug console to inspect the details of the request while it was in progress (Set a breakpoint in your code somewhere, then look at the Firebug console -- you'll see a "POST" entry with info about what was posted, headers for the request, etc).&amp;nbsp; Below the POST entry, I saw a warning/error message I had never seen before:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&amp;nbsp;This page has a file upload.&amp;nbsp; However, the form tag does not have both the enctype=multipart/form-data and method=POST attributes.&amp;nbsp; The file will not be uploaded.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Hmm...&amp;nbsp; I thought about it a bit, and then looked at a normal page I had that had file upload controls on it.&amp;nbsp; Sure enough, the form tag (there is always just one in ASP.NET) had the enctype attribute set automagically by ASP.NET if ASP.NET knew there was a file upload control on the page.&amp;nbsp; Otherwise, it leaves it off.&amp;nbsp; The Async update by the UpdatePanel was loading the FileUpload ok, but wasn't adding the enctype=multipart/form-data to the form tag attributes.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Solution: manually add the enctype to the page's form on Page_Load()&lt;/p&gt;&lt;br /&gt;&lt;pre class="vs code" &gt;&lt;span style="color: rgb(255,255,255)"&gt;&lt;span style="background: rgb(18,18,18)"&gt;                                                             &lt;br&gt; Page.Form.Attributes.Add(&lt;span style="color: rgb(255,98,98)"&gt;"enctype"&lt;/span&gt;&lt;span style="color: rgb(255,255,255)"&gt;, &lt;/span&gt;&lt;span style="color: rgb(255,98,98)"&gt;"multipart/form-data"&lt;/span&gt;&lt;span style="color: rgb(255,255,255)"&gt;); &lt;br&gt;                                                             &lt;br&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:350feaab-1729-4056-b90b-877b0f582574" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/asp.net" rel="tag"&gt;asp.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/asp.net%20ajax" rel="tag"&gt;asp.net ajax&lt;/a&gt;, &lt;a href="http://technorati.com/tags/file%20upload" rel="tag"&gt;file upload&lt;/a&gt;&lt;/div&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-3167429068477583238?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/3167429068477583238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=3167429068477583238' title='37 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/3167429068477583238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/3167429068477583238'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/10/file-upload-not-working-on-first.html' title='File Upload not Working on First PostBack after loading Async through ASP.NET UpdatePanel'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>37</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-3639995982549256352</id><published>2007-10-12T09:57:00.001-07:00</published><updated>2008-08-01T09:41:26.870-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>SubSonic Central Database Issues</title><content type='html'>&lt;p&gt;I like using the &lt;a href="http://subsonicproject.com/view/using-the-scaffold.aspx" target="_blank"&gt;SubSonicCentral autoscaffold&lt;/a&gt; for playing around with my database.  I realize that since I'm already in VS2008, often writing stored procedures in the database, I could just use Visual Studio's built in table data editor for this, but I like how the subsonic scaffold (and the autoscaffold) use the interface to make it easier to select Foreign Key columns, dates, etc.  Also, the Visual Studio data editor has a tendency to make a "ghost' image of itself if I let a tooltip come up over any cell in the table, and then plunge my PC into a &lt;a title="Blue Screen of Death" href="http://en.wikipedia.org/wiki/Blue_Screen_of_Death" target="_blank"&gt;BSOD&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;But one day recently, my SSC on my development PC just stopped working.  I would get an error in App_Code\builder.abp (which signifies it is a Subsonic/Database issue) stating "Login failed for user ADAM-IMS\ASPNET".  I tried resetting everything (IIS, SQL Express Server, Windows XP!) and still got this message, which cropped up randomly.  I made sure EVERY Subsonic configuration was correct, and that the connection strings were correct.  I made sure the databases (both my development one and Northwind, which SSC requires for some stuff) were set up with proper permissions for user ASPNET on my machine.&lt;/p&gt; &lt;p&gt;I finally solved the problem days later with a random, hopeless (in my opinion) act.  I deleted my "ssc" virtual directory form IIS and remade it, then reset IIS.  Ta-da!  It started working perfectly again.  I doubt this will help anyone else, but just in case I forget I'm posting it here.&lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;UPDATE (8/1/2008): &lt;/span&gt;I figured out the problem with the Blue Screen of Death showing up when looking at tables in Visual Studio.  Finally did the right google search and came up with this: &lt;a href="http://botsikas.blogspot.com/2007/06/ssms-and-win32ksys-blue-screen.html"&gt;http://botsikas.blogspot.com/2007/06/ssms-and-win32ksys-blue-screen.html&lt;/a&gt;.&lt;br /&gt;Thanks to Andreas Botsikas for figuring this out!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:0a9a9d79-2f1c-4472-91fd-90e2dd75bcc7" style="margin: 0px; padding: 0px; display: inline; float: none;" contenteditable="false"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Subsonic%20Central" rel="tag"&gt;Subsonic Central&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Subsonic" rel="tag"&gt;Subsonic&lt;/a&gt;, &lt;a href="http://technorati.com/tags/IIS" rel="tag"&gt;IIS&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;ston&gt;&lt;/ston&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-3639995982549256352?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/3639995982549256352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=3639995982549256352' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/3639995982549256352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/3639995982549256352'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/10/subsonic-central-database-issues.html' title='SubSonic Central Database Issues'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-7146364111522539690</id><published>2007-10-04T10:50:00.001-07:00</published><updated>2008-08-15T10:17:45.628-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Setup ddclient for DynDNS and OpenDNS</title><content type='html'>&lt;p&gt;After googling around a bit, and looking at different examples, I came up with a configuration for ddclient that updates both my companies &lt;a href="http://www.dyndns.com/support/kb/using_ddclient_with_dyndns_services.html" target="_blank"&gt;DynDNS&lt;/a&gt; host (which I use to get access to certain intranet stuff from home) and the &lt;a href="http://www.opendns.com/support/article/192" target="_blank"&gt;OpenDNS&lt;/a&gt; Dynamic IP address, so OpenDNS can collect stats and customize our experience, etc.&amp;nbsp; Leave a comment if you need something explained or need more info on how I set ddclient up.&amp;nbsp; (Note: &lt;em&gt;Values surrounded with [brackets] are names&amp;nbsp;changed to protect the innocent :-&lt;/em&gt;)&lt;/p&gt;&lt;br /&gt;&lt;pre class="code"&gt;# Configuration file for ddclient&lt;br /&gt;#&lt;br /&gt;# /etc/ddclient.conf&lt;br /&gt;&lt;br /&gt;daemon=300                      # check every 300 seconds&lt;br /&gt;syslog=yes                      # log update msgs to syslog&lt;br /&gt;pid=/var/run/ddclient.pid&lt;br /&gt;ssl=yes&lt;br /&gt;&lt;br /&gt;### Select one of these options to determine your IP address&lt;br /&gt;## via hardware interface (if you don't have a router/firewall)&lt;br /&gt;#use=if, if=eth0&lt;br /&gt;## via our CheckIP server&lt;br /&gt;&lt;br /&gt;use=web, web=checkip.dyndns.com/, web-skip='Current IP Address: '&lt;br /&gt;&lt;br /&gt;## from the status page for a linksys router/firewall&lt;br /&gt;#use=linksys, fw=linksys, fw-login=admin, fw-p&lt;br /&gt;&lt;br /&gt;#DynDNS for [dyndns_host_name, e.g. bob.ath.cx or bob.dyndns.org]&lt;br&gt;################################################################&lt;br /&gt;server=members.dyndns.org&lt;br /&gt;protocol=dyndns2&lt;br /&gt;login=[login]&lt;br&gt;password=[password]&lt;br&gt;[dyndns_host_name], [dyndns_host_name_2]&lt;br&gt;&lt;br /&gt;#Dynamic IP for [OPENDNS_NETWORK_NAME] OpenDNS account&lt;br /&gt;######################################################&lt;br /&gt;server=updates.opendns.com&lt;br /&gt;protocol=dyndns2&lt;br /&gt;login=[login]&lt;br&gt;password=[password]&lt;br&gt;[OPENDNS_NETWORK_NAME]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:07bf9b66-15ac-4d3f-ae01-d07cdb7f0e8e" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/linux" rel="tag"&gt;linux&lt;/a&gt;, &lt;a href="http://technorati.com/tags/ddclient" rel="tag"&gt;ddclient&lt;/a&gt;, &lt;a href="http://technorati.com/tags/opendns" rel="tag"&gt;opendns&lt;/a&gt;, &lt;a href="http://technorati.com/tags/dyndns" rel="tag"&gt;dyndns&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-7146364111522539690?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/7146364111522539690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=7146364111522539690' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/7146364111522539690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/7146364111522539690'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/10/setup-ddclient-for-dyndns-and-opendns.html' title='Setup ddclient for DynDNS and OpenDNS'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-2366353806840767932</id><published>2007-10-02T14:36:00.001-07:00</published><updated>2007-10-02T14:37:23.320-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='iis'/><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>Self-signed SSL Certificate on Development PC</title><content type='html'>&lt;p&gt;As I near deployment of a moderately large-scale ASP.NET 2.0 web application, I'm trying to wrap my head completely around all of the issues related to deployment.&amp;nbsp; One of the questions that keeps boiling up in my mind is how an&amp;nbsp;ASP.NET web application, some of the AJAX stuff, IIS, and SSL all play nice together.&lt;/p&gt; &lt;p&gt;After doing some research online, and even asking some guys that run web sites for a living, I've come to the conclusion that this is definitely something that is best learned by doing.&amp;nbsp; So, I'm going to attempt to setup the whole&amp;nbsp;package on my development machine.&amp;nbsp; I know enough about SSL to know that this won't be a perfect simulation.&amp;nbsp; I'm going to&amp;nbsp;try to generate my own certificate, so&amp;nbsp;I'll just have to pretend like I don't see Firefox telling me that the certificate is not from a trusted source or whatever - if I manage to get that far.&amp;nbsp; Here goes.&lt;/p&gt; &lt;h2&gt;The Self-Signed Certificate&lt;/h2&gt; &lt;p&gt;When searching for a method to make my own certificate, a couple of methods were commonly suggested on forums and blog articles: &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&amp;amp;DisplayLang=en" target="_blank"&gt;SelfSSL&lt;/a&gt; - part of the IIS Resource Kit  &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&amp;amp;DisplayLang=en" target="_blank"&gt;MakeCert&lt;/a&gt;&amp;nbsp;-&amp;nbsp;seems to be bundled with Visual Studio  &lt;li&gt;MS&amp;nbsp;Certificate Authority.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;I decided to try SelfSSL, since it seems to be the easiest at &lt;a href="http://blog.wekeroad.com/category/aspnet/page/2/" target="_blank"&gt;first glance&lt;/a&gt;.&amp;nbsp; So, I downloaded and installed the IIS Resource Kit (which claims to be for IIS 6.0, but people ay it works fine on Windows XP / IIS 5.1).&amp;nbsp; I did a custom install and only installed the &lt;em&gt;IIS 6.0 Tools Documentation, &lt;strong&gt;SelfSSL&lt;/strong&gt;, TinyGet, Web Capacity Analysis Tool, and WFetch.&lt;/em&gt;&amp;nbsp; The other stuff sounded useful, but I'll probably just forget about it and only use SelfSSL.&lt;/p&gt; &lt;p&gt;After&amp;nbsp;the install finishes,&amp;nbsp;running SelfSSL from the start menu will bring up a command&amp;nbsp;box with the following info and prompt:&lt;/p&gt; &lt;div style="padding-right: 0px; padding-left: 50px; font-size: smaller; padding-bottom: 0px; width: 838px; padding-top: 0px; font-family: consolas, monaco, courier, tahoma, verdana; height: 397px"&gt; &lt;p&gt;Microsoft (R) SelfSSL Version 1.0&lt;br&gt;Copyright (C) 2003 Microsoft Corporation. All rights reserved.  &lt;p&gt;Installs self-signed SSL certificate into IIS.&lt;br&gt;SELFSSL [/T] [/N:cn] [/K:key size] [/S:site id] [/P:port]  &lt;p&gt;/T&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Adds the self-signed certificate to "Trusted Certificates"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; list. The local browser will trust the self-signed certificate&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if this flag is specified.&lt;br&gt;/N:cn&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specifies the common name of the certificate. The computer&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name is used if not specified.&lt;br&gt;/K:key size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specifies the key length. Default is 1024.&lt;br&gt;/V:validity days Specifies the validity of the certificate. Default is 7 days.&lt;br&gt;/S:site id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specifies the id of the site. Default is 1 (Default Site).&lt;br&gt;/P:port&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specifies the SSL port. Default is 443.&lt;br&gt;/Q&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Quiet mode. You will not be prompted when SSL settings are&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; overwritten.  &lt;p&gt;The default behaviour is equivalent with:  &lt;p&gt;selfssl.exe /N:CN=ADAM-IMS /K:1024 /V:7 /S:1 /P:443  &lt;p&gt;C:\Program Files\IIS Resources\SelfSSL&amp;gt;&lt;/p&gt;&lt;/div&gt; &lt;p&gt;I decided to be gutsy and try it with all default settings - except to set the validity to 30 days instead of 7.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;&amp;gt; selfssl.exe /V:30&lt;br&gt;&amp;gt; iisreset&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Cool beans.&amp;nbsp; Now, if I look at the "Directory Security" tab in IIS for my default web site (or any of the site under that for that matter) I can click "View Certificate" and see the self-signed certificate I've installed.&amp;nbsp; There are some errors displayed about it not being from a Trusted Certificate Authority, but I expected that since I made it myself, and didn't get it from a CA like GeoTrust or Thawte or GoDaddy.&lt;/p&gt; &lt;p&gt;I'll try going to &lt;em&gt;&lt;a href="https://localhost"&gt;https://localhost&lt;/a&gt;&lt;/em&gt; now - I have just a dummy page set up there in the Default Site.&amp;nbsp; Ok - two warning dialogs popup.&amp;nbsp; The first, as I expected, told me that the certificate is not signed by a trusted CA.&amp;nbsp; The second warns me that the certificate is for ADAM-IMS, but I am viewing localhost.&amp;nbsp; I want to fix this second one, since Visual Studio usually opens up to localhost when debugging a web application.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;&amp;gt; selfssl.exe /N:CN=localhost /V:30&lt;br&gt;&amp;gt; iisreset&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;There, that did the trick.&amp;nbsp; Now I just get the first warning.&lt;/p&gt; &lt;h2&gt;Testing the App&lt;/h2&gt; &lt;p&gt;Cassini, aka the Visual Studio Development Server, does not currently support SSL (and I doubt it will anytime soon).&amp;nbsp; Makes sense - it basically opens up a standard http server on a single port (usually 49587 or something like that).&amp;nbsp; SSL typically runs on port 443 of IIS, separate from the standard http server typically on port 80.&amp;nbsp; That is why most browsers go to port 80 automatically for http:// and go to port 443 automatically for https:// - of course, Microsoft could write Cassini to support SSL, and make some new convention for what ports are what on Cassini, but I don't think they will anytime soon since you can specify in your project settings that you want to debug your web application using IIS anyhow.&amp;nbsp; Cassini is for convenience, but you are getting in pretty deep by the time you are thinking about SSL.&lt;/p&gt; &lt;p&gt;So, I set my web app to run on IIS (at localhost/&amp;lt;project_name&amp;gt; for the application root)&amp;nbsp;and fired it up.&amp;nbsp; Currently, I have to manually switch from http:// to https://, but I'll probably have my Master Page and login page redirect to https:// if a user attempts to connect insecurely.&lt;/p&gt; &lt;p&gt;Things went better than I expected when floating around my application, testing stuff and watching for popup warnings like "This page has encrypted and un-encrypted elements... do you want to display the un-encryted stuff?"&amp;nbsp;I have tried to keep the eventual conversion to secure application in mind, and always follow these conventions:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;When linking to an image, or another page in the web app, I always use either relative urls [e.g. &lt;strong&gt;"img/first.png"&lt;/strong&gt;] or the ASP.NET application relative path [e.g. &lt;strong&gt;"~/dynamics/dynamics.aspx"&lt;/strong&gt; or &lt;br&gt;&lt;strong&gt;ResolveUrl("~/somepage.aspx")&lt;/strong&gt;]&lt;/li&gt; &lt;li&gt;I always use relative paths in CSS &lt;strong&gt;url("...") &lt;/strong&gt;values&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;To be continued?&lt;/h2&gt; &lt;p&gt;I'll keep messing around with this, and see if anything else pops up.&lt;/p&gt; &lt;p&gt;Useful things I came across in researching this:&lt;/p&gt; &lt;p&gt;&lt;a title="http://blog.coryisakson.com/PermaLink,guid,67d7542d-5a28-4de1-8be3-24903d6eb5c1.aspx" href="http://blog.coryisakson.com/PermaLink,guid,67d7542d-5a28-4de1-8be3-24903d6eb5c1.aspx"&gt;blog.coryisakson.com&lt;/a&gt;&amp;nbsp;-&amp;nbsp;MakeCert, and redirecting to https://&lt;br&gt;&lt;a title="http://weblogs.asp.net/scottgu/archive/2007/04/06/tip-trick-enabling-ssl-on-iis7-using-self-signed-certificates.aspx" href="http://weblogs.asp.net/scottgu/archive/2007/04/06/tip-trick-enabling-ssl-on-iis7-using-self-signed-certificates.aspx"&gt;Scott Guthrie: Enabling SSL on IIS 7.0 using Self-Signed Certificates&lt;/a&gt;&amp;nbsp;- incase you have IIS 7.0, things look much easier&lt;br&gt;&lt;a title="http://blog.wekeroad.com/2005/08/26/ssl-and-development/" href="http://blog.wekeroad.com/2005/08/26/ssl-and-development/"&gt;Rob Conery: SSL and Development&lt;/a&gt; - SelfSSL, by a guy whose blog I read regularly.&amp;nbsp;Odd and cool that his blog would have this tucked away in the archives.&amp;nbsp;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-2366353806840767932?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/2366353806840767932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=2366353806840767932' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/2366353806840767932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/2366353806840767932'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/10/self-signed-ssl-certificate-on.html' title='Self-signed SSL Certificate on Development PC'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-1066971976249237675</id><published>2007-09-27T10:28:00.001-07:00</published><updated>2007-09-27T10:29:35.006-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>Personal Blog started</title><content type='html'>&lt;p&gt;None of my immediate family have ever read this blog&amp;nbsp;- not that a whole lot of other people do -&amp;nbsp; which is fine since this blog is mostly for me.&amp;nbsp; For instance, seems every time I need to do something at work with Linux and drive imaging I can't remember the EXACT syntax, and it's a somewhat risky operation, so I come here and click the "image" tag to find the post where I wrote that down.&lt;/p&gt; &lt;p&gt;So, I thought it might be cool to start a blog that maybe my mom or my brother would be able to read, and maybe my other readers (Jonah ;-)&amp;nbsp;could actually enjoy.&lt;/p&gt; &lt;p&gt;&lt;a href="http://adamnoffie.wordpress.com" target="_blank"&gt;http://adamnoffie.wordpress.com&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I started it on wordpress.com, just so I could see what that software is like compared to Bloggers.&amp;nbsp; So far, I like most everything just a&amp;nbsp;little better, except the custom CSS -- on wordpress&amp;nbsp;they charge you $15/year to have custom CSS!&amp;nbsp; Seems to me that most people who would even consider editing their stylesheet probably are hosting their own wordpress blog on their own server anyhow, so not sure they'll get a lot of people with that (says me - who wants to muddle with the CSS and not host offsite).&amp;nbsp; Well, at least they didn't charge me to make the cool custom header.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-1066971976249237675?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/1066971976249237675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=1066971976249237675' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/1066971976249237675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/1066971976249237675'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/09/personal-blog-started.html' title='Personal Blog started'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-1756660334330590659</id><published>2007-09-21T10:31:00.000-07:00</published><updated>2007-09-21T10:32:19.328-07:00</updated><title type='text'>A test of the Mail-to-Blog function</title><content type='html'>&lt;tt&gt;In the blog setting on Blogger.com blogs, you can go to Settings --&amp;gt; Email, and setup an email account for emailing posts to your blog.&amp;nbsp; This post was done by emailing &amp;lt;username&amp;gt;.&amp;lt;secret&amp;gt;@blogger.com, which is cool.&amp;nbsp; The way you set this up sort of reminds me of &lt;a href="http://spamgourmet.com"&gt;spamgourmet.com&lt;/a&gt; for some reason.&amp;nbsp; It's neat to see inventive uses of email.&lt;/tt&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-1756660334330590659?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/1756660334330590659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=1756660334330590659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/1756660334330590659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/1756660334330590659'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/09/test-of-mail-to-blog-function.html' title='A test of the Mail-to-Blog function'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-3191185933629332221</id><published>2007-09-10T15:00:00.001-07:00</published><updated>2008-08-15T07:51:49.038-07:00</updated><title type='text'>Extending a SubSonic Generated Class</title><content type='html'>&lt;p&gt; I kept running into this issue, so I finally wrote up a little theory code to see what was possible, and what might be an elegant solution.&lt;/p&gt; &lt;p&gt;The issue: I am returning one of my SubSonic objects through a stored procedure.  Normally, pretty straight forward.  My test object for this was called "TestTable", and represents the same-named table in the database.&lt;/p&gt; &lt;table unselectable="on" border="1" cellpadding="2" cellspacing="0" width="400"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;&lt;u&gt;Column Name&lt;/u&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt;&lt;u&gt;Type&lt;/u&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;TestID&lt;/td&gt; &lt;td valign="top" width="200"&gt;int&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;TestName&lt;/td&gt; &lt;td valign="top" width="200"&gt;varchar(50)&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;TestValue&lt;/td&gt; &lt;td valign="top" width="200"&gt;int&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;So, Subsonic generates a class that has all the properties representing these columns, and all the useful ActiveRecord methods.&lt;/p&gt; &lt;p&gt;Now, I make a stored procedure to get elements of this type from the database - normally I'd skip using a stored procedure unless I needed to do some special filtering or business logic, but for the sake of testing / demonstration:&lt;/p&gt; &lt;div  style=";color:black;"&gt;&lt;pre class="code" style='background-color: black'&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;&lt;span&gt;ALTER PROCEDURE &lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;spTest    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 255, 0);"&gt;-- SET NOCOUNT ON added to prevent extra result sets from&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 255, 0);"&gt;-- interfering with SELECT statements.&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;SET NOCOUNT ON&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 255, 0);"&gt;-- Insert statements for procedure here&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;SELECT &lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; TestTable.*,&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;CAST&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;((&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;CASE WHEN &lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;TestTable.TestValue &amp;gt; &lt;/span&gt;&lt;span style="color: rgb(255, 121, 121);"&gt;2 &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;THEN &lt;/span&gt;&lt;span style="color: rgb(255, 121, 121);"&gt;1 &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;ELSE &lt;/span&gt;&lt;span style="color: rgb(255, 121, 121);"&gt;0 &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;END&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;) &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;AS    BIT&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;) &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;AS &lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;GreaterThanTwo&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;FROM    &lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;TestTable&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;END&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;If you look at the SP, you'll see where things start to get interesting.  Not only am I returning all of the columns that exist in our Table (or this could be a View too, same theory applies), but I am also returning an extra BIT field.  Here, I'm just setting it to true if the number is greater than 2, but you can use your imagination for how this might be useful.  Examples might be returning true if an item is editable by the user viewing it or returning some sort of derived field (a SUM total, MIN, MAX, etc.).  When Subsonic loads the DataReader object you pull from this SP in code, it will simply ignore the fact that the Reader has a "GreaterThanTwo" field -- Subsonic uses the Table schema only when pulling the columns from the reader.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, let's add an extra property to our TestTable generated class, and then make sure that, if present, this information is pulled from the IDataReader.&lt;/p&gt;&lt;br /&gt;&lt;div style="background: black none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;pre class="code" style='background-color: black'&gt;&lt;span style="color: rgb(255, 128, 0);"&gt; &lt;span&gt;using&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; System;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;namespace&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; Protos&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;public&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;partial&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;class&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;TestTable&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    {       &lt;br /&gt;       &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;public&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;bool&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; GreaterThanTwo { &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;get&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;; &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;set&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;; }&lt;br /&gt;&lt;br /&gt;       &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;public&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;override&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;void&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; Load(System.Data.&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;IDataReader&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; rdr)&lt;br /&gt;       {&lt;br /&gt;           &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;base&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;.Load(rdr);&lt;br /&gt;           &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; (rdr.FieldCount &amp;gt; &lt;/span&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;TestTable&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;.Schema.Columns.Count)&lt;br /&gt;           {&lt;br /&gt;               &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;try&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;                {&lt;br /&gt;                   GreaterThanTwo =&lt;br /&gt;                       &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;bool&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;)(rdr[&lt;/span&gt;&lt;span style="color: rgb(255, 98, 98);"&gt;"GreaterThanTwo"&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;] ?? &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;);&lt;br /&gt;               }&lt;br /&gt;               &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;catch&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; (&lt;/span&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;Exception&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;)&lt;br /&gt;               {&lt;br /&gt;                   GreaterThanTwo = &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;;&lt;br /&gt;               }&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;You'll notice that the conditional, and the try-catch block set the GreaterThanTwo property to false if it isn't present in the IDataReader.  You could modify this to set it to null by making the property nullable (bool?).  &lt;/p&gt;&lt;br /&gt;&lt;h3&gt;&lt;img src="http://farm2.static.flickr.com/1408/1356105291_be23749d03_o.png" align="right" /&gt; Results&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Here are two gridviews loaded up with some sample data.  The first one uses the Stored procedure shown above.  The second one is a simple Subsonic collection Load(), which will not use the stored procedure or extra column, but does internally make a call to TestTable.Load(IDataReader rdr).&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;More&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;You could also extend this to loading DataRows and DataTables by overriding those methods (e.g. public override void Load(System.Data.DataRow dr)).  That should be even simpler, since the DataSet classes seem to offer more information about what is in them compared to the IDataReader (which I gather is swifter, and has less overhead).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-3191185933629332221?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/3191185933629332221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=3191185933629332221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/3191185933629332221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/3191185933629332221'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/09/extending-subsonic-generated-class.html' title='Extending a SubSonic Generated Class'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-2135619190228015226</id><published>2007-08-23T08:41:00.001-07:00</published><updated>2007-08-23T08:41:49.838-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>Firefox Slowness with Cassini (VS Web Server) on Vista or XP with IPv6</title><content type='html'>&lt;p&gt;I'm not sure what happened, maybe a firefox update or maybe the switch to VS 2008 Beta 2, but recently I have noticed that Firefox will take literally 1 whole second to download each and every script, stylesheet, image, etc, from the Cassini web server when I'm debugging ASP.NET stuff on my local machine.&amp;nbsp; Really annoying, and a waste of time.&lt;/p&gt; &lt;p&gt;So, suspecting it had something to do with a bug in VS 2008 cassini I googled "visual studio 2008 cassini" and came up with &lt;a href="http://http://weblogs.asp.net/dwahlin/archive/2007/06/17/fixing-firefox-slowness-with-localhost-on-vista.aspx" target="_blank"&gt;Dan Wahlin's blog post&lt;/a&gt; about what was causing this (thorugh &lt;a href="http://blogs.msdn.com/mikeormond/archive/2007/08/14/vista-firefox-cassini-web-server-visual-studio-web-server-revisited.aspx" target="_blank"&gt;Mike Ormunds post&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;From Dan's blog:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://kb.mozillazine.org/Network.dns.disableIPv6"&gt;http://kb.mozillazine.org/Network.dns.disableIPv6&lt;/a&gt; &lt;p&gt;It turns out that the slowness is caused by an IPv6 issue with DNS and can easily be resolved by turning IPv6 support off in Firefox while doing localhost testing.&amp;nbsp; To make the change, type &lt;em&gt;about:config&lt;/em&gt; in the address bar, locate the &lt;em&gt;network.dns.disableIPv6&lt;/em&gt; setting and double-click on it to set it to &lt;em&gt;true&lt;/em&gt;.&amp;nbsp; This does the trick for the Firefox&amp;nbsp;localhost issue on Vista and everything is running fast again.&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/21640713-2135619190228015226?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/2135619190228015226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=2135619190228015226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/2135619190228015226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/2135619190228015226'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/08/firefox-slowness-with-cassini-vs-web.html' title='Firefox Slowness with Cassini (VS Web Server) on Vista or XP with IPv6'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-5049502133968521977</id><published>2007-08-13T14:14:00.001-07:00</published><updated>2007-08-13T14:45:01.660-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>VS 2008 Beta 2 Quirks Log</title><content type='html'>&lt;p&gt;I finally bit the bullet and installed Visual Studio 2008 Pro Beta 2&amp;nbsp;on my development PC.&amp;nbsp; Couldn't resist anymore with all the buzz in the ASP.NET blogosphere and I thought it would be safe enough since &lt;/p&gt; &lt;ul&gt; &lt;li&gt;You can install it alongside VS 2005 (in theory -&amp;nbsp;it &lt;em&gt;is &lt;/em&gt;a beta)  &lt;li&gt;With VS2008 "Multi-Targeting" you can use VS2008 to work on ("target") a ASP.NET 2.0 web application, even using ASP.NET AJAX 1.0 extensions.&amp;nbsp; Supposedly, you can still get most of the cool features of VS2008 to work while targeting .NET 2.0.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Well, the install went smooth enough for me, but I've had a heck of a time actually &lt;em&gt;using&lt;/em&gt; any of the &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/07/26/vs-2008-and-net-3-5-beta-2-released.aspx" target="_blank"&gt;new features&lt;/a&gt; I should be able to use.&amp;nbsp; I mean, the big feature list goes: Multi-Targeting Support, &lt;u&gt;Web Designer CSS intellisense support&lt;/u&gt;, &lt;u&gt;Javascript Intellisense&lt;/u&gt;, &lt;u&gt;Javascript Debugging&lt;/u&gt;, and all the LINQ stuff.&amp;nbsp; Notice I underlined the features I was personally interested in utilizing on my current project.&amp;nbsp; Multi-targeting support was the only thing I have had great success with so far.&amp;nbsp; :-(&lt;/p&gt; &lt;h2&gt;&lt;font size="2"&gt;Javascript Intellisense&lt;/font&gt;&lt;/h2&gt; &lt;p&gt;I did manage to get Javascript Intellisense working the way I think it should.&amp;nbsp; I was using the AJAX Control Toolkit version of the ScriptManager control&amp;nbsp;&amp;lt;ajaxControlToolkit:ToolkitScriptManager&amp;gt; and VS2008 wasn't picking up on this to give me stuff like "$get" and "Sys.Browser" in my javascript intellisense.&amp;nbsp; Temporary workaround: replace it with a standard ScriptManager.&amp;nbsp; I was only using the ToolkitScriptManager for its CombineScripts attribute, which lets you combine all the toolkit scripts to be sent to a page into one super script automagically (which I'm still not convinced is so great, not knowing much about how or if browsers cache javascript files generated by ASP.NET AJAX).&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;ScriptManager&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="sman"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&amp;gt;&lt;br&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Scripts&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;br&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;ScriptReference&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Path&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="~/scripts/protos.js"&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;/&amp;gt;&lt;br&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Scripts&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;ScriptManager&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;I'll update this post if I figure anything else out along the way.&amp;nbsp; I really should be getting a paycheck from Microsoft.&amp;nbsp; :-)&amp;nbsp; But then, that is the brilliance of the community driven development that Microsoft is tapping into so heavily now - and I can't be angry at them for that, since I have benefited from that a lot more than I have contributed.&lt;/p&gt; &lt;h2&gt;&lt;/h2&gt; &lt;h2&gt;CSS Features&lt;/h2&gt; &lt;p&gt;I got CSS intellisense almost completely working.&amp;nbsp; I was using a declaration in the System.Web.Pages section of my Web.Config to bring in the App_Theme\default information from my project, including default.css; this was not working for the&amp;nbsp;CSS features.&amp;nbsp; I had to create a manual &amp;lt;link rel="stylesheet" /&amp;gt; in the &amp;lt;head&amp;gt; of my master page, and then it started working slowly but surely.&amp;nbsp; Another thing I'll have to remember on deployment.&amp;nbsp; Good thing I have this all written down somewhere.&amp;nbsp; :-)&amp;nbsp; &lt;/p&gt; &lt;p&gt;The one thing that doesn't work is typing class="&amp;nbsp;&amp;nbsp; doesn't bring up an intellisense box like it is supposed to when a StyleSheet and classes are present for a page. Ctrl+Space doesn't help either of course.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-5049502133968521977?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/5049502133968521977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=5049502133968521977' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/5049502133968521977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/5049502133968521977'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/08/vs-2008-beta-2-quirks-log.html' title='VS 2008 Beta 2 Quirks Log'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-449621322737083881</id><published>2007-08-02T15:05:00.001-07:00</published><updated>2007-08-02T15:13:09.204-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>Migration: VS2005 Stock Web Site Project --&gt; VS2005 SP1 Web Application Project</title><content type='html'>&lt;p&gt;I'm following &lt;a href="http://webproject.scottgu.com/CSharp/Migration2/Migration2.aspx" target="_blank"&gt;these instructions by Scott Guthrie&lt;/a&gt; on updating my Web Site project to a Web Application Project.&amp;nbsp; It sounded good after reading &lt;a href="http://west-wind.com/WebLog/posts/5601.aspx" target="_blank"&gt;Rick Strahl's advice here&lt;/a&gt;.&amp;nbsp; Below is my journal of following those steps, in case this process need be repeated, or someone else finds it helpful.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Step 0&lt;/strong&gt; : I already have WAP installed, having VS2005 SP1.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt; : I opted to create a new Project in my current Solution.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt; : Everything seems to go swell here.&amp;nbsp; We'll see if I missed any references or dependencies later on.&amp;nbsp; This is kind of interesting compared to the stock project options.&amp;nbsp; Instead of having the "Bin" directory and putting dlls in there, I add references and the dependencies will be compiled into my project assembly I imagine.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt; : I did the copy paste in Visual Studio like Scott recommends.&amp;nbsp; Everything seemed to go well.&amp;nbsp; I did get some "Overwrite files?" requests when copying the \Bin directory.&amp;nbsp; That's because VS physically copies the assemblies for the references I added in step 2 to the \bin folder in the WAP whenever I build and they are out of date (or not there).&amp;nbsp; So, no big deal.&amp;nbsp; &lt;strong&gt;TAKE 2&lt;/strong&gt;: Oops.&amp;nbsp; I realized that if I copy all of the files this way (right in VS), I'll loose all of the source control history I have in Subversion.&amp;nbsp; Instead, I copied them all over using the subversion copy -- which is to say I did a Branch/Tag (cheap copy) of the old project to a new directory, then copied the WAP files to that directory and renamed the directory to the WAP name.&amp;nbsp; Confused?&amp;nbsp; Ok, I had \web as the old stock project, and \stations as the new WAP project from step 2.&amp;nbsp; I renamed \stations to \stations2, did a branch/tag of \web to \stations, and then copied the files out of \stations2 into \stations and deleted \stations2.&amp;nbsp; Then I hit refresh in Solution Explorer and nothing!&amp;nbsp; Well, naturally there is nothing.&amp;nbsp; This is back to the good old project model now, where all files in the project must be added.&amp;nbsp; So, I clicked "Show All Files" at the top of the Solution Explorer and added those files that I wanted by right-clicking on them and doing "Include in project".&amp;nbsp; I did everything except "obj" and "bin" folders.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Step 4: &lt;/strong&gt;Everything seems to have gone fine here, but it won't compile now.&amp;nbsp; I expected that.&amp;nbsp; First things I did: I did some SVN rename magic to make the App_Code folder (which the convert renames to Old_App_Code) into the "Source" folder, and maintain the file source control version info.&amp;nbsp; Then I pointed the "Protos" database in SQL Server to the new copy of the protos.mdf file in SQL Server Management Studio (delete, attach). The Full Text Catalogs can't come along for this ride, so I re-run the script I have saved that makes it, along with all the indexes.&amp;nbsp; Now when I try to build, I get missing references to all my SubSonic generated classes.&amp;nbsp; That's because before I was using the SubSonic build provider (the .abp file in App_Code) but that won't work in a Web Application Project, because the compilation doesn't happen on the fly.&amp;nbsp; WAPs don't support Build Providers.&amp;nbsp; Remove the Build Provider section from the Web.config, it'll do me no good. So, I need to physically generate the class files - I know the title is "without a website", but &lt;a href="http://www.subsonicproject.com/view/subsonic-and-windows-applications.aspx" target="_blank"&gt;this webcast by Rob&lt;/a&gt;, daddy of Subsonic, explains how to use SubSonic commander (subsonic.exe) to generate your files, and how to make a cool little button to do&amp;nbsp;it.&amp;nbsp; I think their might be some other tools or Macros you can use here, but I'll look into that later.&amp;nbsp; For now, this works.&lt;/p&gt; &lt;p&gt;The next problem: one of my files did not get ".aspx.designer.cs" files generated for them, and thus cannot compile.&amp;nbsp; I had already read about this and other problems on &lt;a href="http://www.west-wind.com/weblog/posts/125083.aspx" target="_blank"&gt;Rick Stahl's blog&lt;/a&gt;.&amp;nbsp; I tried right-clicking on the .aspx file and selecting "Convert to Web Application."&amp;nbsp;This showed me what the problem was.&amp;nbsp; "Cannot convert: unrecognized server control uc:DynamicDropDown!"&amp;nbsp; At first I thought that updating my Web.config file to point to the new "Source" code directory for its "assembly" attribute would fix it, but that did nothing.&amp;nbsp; So, I commented out the custom controls and then did the convert.&amp;nbsp; It worked!&amp;nbsp; Then I uncommented them back in and wha-la, a successful build of the project!&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Step&amp;nbsp;5&lt;/strong&gt; : Well, the custom control was still giving me trouble.&amp;nbsp; So, I finally just stopped searching for strange solutions and did what you are supposed to do in the first place: I created and put the custom control in it's own C# class library project.&amp;nbsp; Added a reference to this project in my WAP, and updated my control registration in my web.config to match.&amp;nbsp; Works like a charm, although it is kind of annoying to have to build a second project just for this custom control:&lt;/p&gt;&lt;pre class="code"&gt;    &lt;span style="color: rgb(0,128,0)"&gt;//[SupportsEventValidation]&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; This DynamicDropDown behaves identical to the &lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; DropDownList control, except that it does&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; not have the [SupportsEventValidation] Attribute, &lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; and thus does not participate in&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; event validation.  This makes it ideal for use with &lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; the CascadingDropDown AjaxControlToolkit&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; Extender control.&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;class&lt;/span&gt; &lt;span style="color: rgb(0,128,128)"&gt;DynamicDropDown&lt;/span&gt; : &lt;span style="color: rgb(0,128,128)"&gt;DropDownList&lt;br /&gt;&lt;/span&gt;    {&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Step 6 &lt;/strong&gt;: Hmmm... adding the new namespace to all my forms, and then updating all of the "inherits" fields.&amp;nbsp; I think I'll save this for tonight.&amp;nbsp; I'm tired, and I spent ALL day working on this.&amp;nbsp; I should post something fun to my "blog" every now and then, like my cousin James does.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-449621322737083881?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/449621322737083881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=449621322737083881' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/449621322737083881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/449621322737083881'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/08/migration-vs2005-stock-web-site-project.html' title='Migration: VS2005 Stock Web Site Project --&amp;gt; VS2005 SP1 Web Application Project'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-5880499740077421431</id><published>2007-07-16T14:29:00.001-07:00</published><updated>2007-07-16T14:32:32.968-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>ASP.NET Control Styles</title><content type='html'>&lt;p&gt;I feel like a complete idiot.&amp;nbsp; You CAN give ASP.NET controls element level style information.&amp;nbsp; E.G.:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lbl"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Hi"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Style&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="border: solid 10px Blue;"&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;I assumed this wasn't possible, and that you had to use asp.net skins or something, simply because "Style" doesn't come up on the intellisense for an ASP.NET control, and it does for a regular html control like &amp;lt;input type="button" /&amp;gt; ... etc. VS 2005 will even give you help with writing the style once you are in the double quotes after the Style attribute.&amp;nbsp; Sometimes I feel like instead of spending time with my family, or enjoying a good game, I should spend every moment of my life I'm not at work reading about stuff I use at work.&amp;nbsp; :-(&amp;nbsp; I guess I'll just keep looking at example source code and such to keep learning all these little nuances, tips, tricks, and design patterns.&amp;nbsp; I figured this one out while figuring .skin files out while looking over the StarterSite that comes with &lt;a href="http://subsonicproject.com" target="_blank"&gt;SubSonic&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-5880499740077421431?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/5880499740077421431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=5880499740077421431' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/5880499740077421431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/5880499740077421431'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/07/aspnet-control-styles.html' title='ASP.NET Control Styles'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-930991966473089052</id><published>2007-07-05T08:30:00.001-07:00</published><updated>2008-08-15T09:50:31.048-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>Wrapping a Flash SWF &lt;object&gt; with Hyperlink Anchor &lt;a&gt;</title><content type='html'>&lt;p&gt;The quick answer to this problem (at least if you want browser compatibility): it is impossible - you &lt;strong&gt;must &lt;/strong&gt;have any hyperlink you want your flash to link to to actually be in the flash file itself - that is, you have to make a button and have it be a link in the .FLA or .SWF file itself.&amp;nbsp; So, if this link has to be set at run-time, you'll need to make a special "Loader" flash file and have it have the transparent button in it.&amp;nbsp; That part of it is above me (for now).&amp;nbsp; Maybe I'll write about making one of those when I figure that out.&lt;/p&gt; &lt;p&gt;So, you should know that this does not work after doing a little Googling:&lt;/p&gt; &lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;a&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;href&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="medium.aspx?id=25"&amp;gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;object&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;width&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="200"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;height&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="128"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;quality&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Medium"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;loop&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;play&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;br /&gt;        &lt;span style="color: rgb(255,0,0)"&gt;data&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="media/static/1_25.swf"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Flasher1"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="application/x-shockwave-flash"/&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;a&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;What also doesn't work is trying to make a &amp;lt;div&amp;gt;, setting it to position:fixed, and z-index: 10000.&amp;nbsp; Even if you make the &amp;lt;div&amp;gt;'s background-color transparent, you will no longer be able to see the Flash file (at least in Firefox you won't be able to).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-930991966473089052?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/930991966473089052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=930991966473089052' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/930991966473089052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/930991966473089052'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/07/wrapping-flash-swf-with-hyperlink.html' title='Wrapping a Flash SWF &amp;lt;object&amp;gt; with Hyperlink Anchor &amp;lt;a&amp;gt;'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-8008760288651710101</id><published>2007-06-28T08:40:00.001-07:00</published><updated>2008-08-15T09:23:25.297-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Windows Live Writer Test</title><content type='html'>&lt;p&gt;I'm writing this post using my freshly downloaded and installed copy of&amp;nbsp;&lt;a href="http://gallery.live.com/default.aspx?pl=8" target="_blank"&gt;Windows Live Write (Beta)&lt;/a&gt;.&amp;nbsp; I've talked about using ScribeFire in the blog before - I was impressed initially but have since been disappointed by the quality of the posts it makes to Blogger.&lt;/p&gt; &lt;p&gt;So, we'll see how Live Writer handles formatting and such.&amp;nbsp; Couple of neat things I've noticed so far, that were missing in ScribeFire:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;You can goto the &lt;u&gt;V&lt;/u&gt;iew menu and choose to see the HTML Code for your post, A "Web Layout" mode that gives you your post in a WYSIWYG format using the style sheet you have applied to your blog, and even a "Web Preview" mode that shows you what your post should look like if inserted into your blog as is.  &lt;li&gt;The "tags" (categories WLW calls them) support seems to be good, and seems to incorporate the tags I have already used on my Blogger blog.  &lt;li&gt;You can insert all sorts of neat stuff (Pictures, Links, Tables, Maps) and even extend what you can insert by downloading Insert plugins from &lt;a href="http://gallery.live.com/results.aspx?c=0&amp;amp;bt=9&amp;amp;pl=8&amp;amp;st=5" target="_blank"&gt;Windows Live Gallery&lt;/a&gt;.&amp;nbsp; I saw the &lt;a href="http://11011.net/software/vspaste"&gt;"Insert from Visual Studio"&lt;/a&gt; plugin and had to have it right away.&amp;nbsp; Lets try it out.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Here is some code inserted using "Insert from Visual Studio" plugin:&lt;/p&gt;&lt;br /&gt;&lt;pre class="code"&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; Grabs an integer parameter from the HttpContext.Current.Request&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;param name="sParam"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;The name of the parameter&lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;The int parameter, or -1 if there was no such parameter.&lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;int&lt;/span&gt; GetIntParameter(&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; sParam)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;int&lt;/span&gt; iOut = -1;&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (&lt;span style="color: rgb(43,145,175)"&gt;HttpContext&lt;/span&gt;.Current.Request.QueryString[sParam] != &lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; sOut = &lt;span style="color: rgb(43,145,175)"&gt;HttpContext&lt;/span&gt;.Current.Request[sParam].ToString();&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (!&lt;span style="color: rgb(43,145,175)"&gt;String&lt;/span&gt;.IsNullOrEmpty(sOut))&lt;br /&gt;                &lt;span style="color: rgb(0,0,255)"&gt;int&lt;/span&gt;.TryParse(sOut, &lt;span style="color: rgb(0,0,255)"&gt;out&lt;/span&gt; iOut);&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; iOut;&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Awesome!&amp;nbsp; It pasted in just fine, but my layout was too narrow, so the code was wrapping in places it shouldn't.&amp;nbsp; So, I switched over the HTML source view on WLW and wrapped the whole thing in a &amp;lt;div&amp;gt; and gave it some width. (WLW handled me typing that &amp;lt;div&amp;gt; just now too - another thing to note).&amp;nbsp; Anyhow, once I gave the div a style="width: 100%", I could switch back to the Web Layout view and click on the div, and drag it's size around using drag handles.&amp;nbsp; Was not expecting that, but it's pretty neat!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Alright, time to post this thing and see if WLW can make the actual post look as nice as the WYSIWYG view it is giving me.&amp;nbsp; Then, I'll test the update post capabilities of WLW (if there are any) to let you know.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Ok, doing the update was pretty easy.&amp;nbsp; Using the "Open" dialog, you can see posts that were recently edited in WLW, or you can even click the Blog view button to edit posts that are already posted using other means.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Everything looked great on the actual blog too!&amp;nbsp; The only&lt;strong&gt; small &lt;/strong&gt;issue was that my inserted Code block had a noticeably bigger space below it in Firefox than in WLW WYSIWYG view.&amp;nbsp; I'm going to try changing the height on the &amp;lt;div&amp;gt; I wrapped that in.&amp;nbsp; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;PS: Looks like you can do Technorati tags with this too:&lt;/p&gt;&lt;br /&gt;&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:7024ae7f-c846-4da5-b3d3-d93c80f15d9b" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/tools" rel="tag"&gt;tools&lt;/a&gt;, &lt;a href="http://technorati.com/tags/windows" rel="tag"&gt;windows&lt;/a&gt;, &lt;a href="http://technorati.com/tags/live%20writer" rel="tag"&gt;live writer&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-8008760288651710101?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/8008760288651710101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=8008760288651710101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/8008760288651710101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/8008760288651710101'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/06/windows-live-writer-test.html' title='Windows Live Writer Test'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-412512404156072631</id><published>2007-06-27T19:39:00.000-07:00</published><updated>2008-08-15T08:09:56.795-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>Ending an ASP.NET Response during processing.</title><content type='html'>&lt;p&gt;Your ASP.NET 2.0 page is in the middle of processing a Request (thus creating a Response), when all of the sudden you need to stop the request.  Why?  Well, say you just called:&lt;/p&gt;&lt;br /&gt;&lt;p class="code"&gt;FormsAuthentication.SignOut();&lt;br /&gt;FormsAuthentication.RedirectToLoginPage();&lt;/p&gt;&lt;br /&gt;&lt;p&gt;And now you need the current Response to stop processing (no more event handlers to fire, etc). How do you do that?  That's the question I had for some time, but didn't have time to investigate it further.  After familiarizing myself more with the objects in HttpContext.Current, It became more obvious with where I needed to look, and there it was:&lt;/p&gt;&lt;br /&gt;&lt;p class="code"&gt;HttpContext.Current.Response.End();&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The description says that this method "Sends all currently buffered output to the client, stops execution of the page, and raises the EndRequest event."  Nice.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-412512404156072631?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/412512404156072631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=412512404156072631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/412512404156072631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/412512404156072631'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/06/ending-aspnet-response-during.html' title='Ending an ASP.NET Response during processing.'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-9084073972880262005</id><published>2007-05-03T13:52:00.001-07:00</published><updated>2007-06-27T19:34:03.628-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Full screen Flash 9 standalone in Linux</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;It would be really useful to be able to open a standard Flash 9 .swf in the standalone player that you can get for linux at &lt;a href="http://www.adobe.com/support/flashplayer/downloads.html"&gt;http://www.adobe.com/support/flashplayer/downloads.html.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I envision something like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;./flashplayer --full-screen ~/some_flash.swf &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If I could do that, then I would be able to incorporate flash into the "off-line, demo" kiosk units I make using DSL on compact flash - that would make the boss happy.  Unfortunately, everything on the net seems to indicate one needs to put some actionscript in the first frame of the flash in the "authoring" stage of things.  That would defeat the purpose of my project though, since I can't guarantee our resellers or other folk will all be able to do this.&lt;br /&gt;&lt;br /&gt;Maybe I'll have to spend some of my quality free time reading up on &lt;a href="http://haxe.org/swhx"&gt;SWHX&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tag/flash" class="performancingtags"&gt;flash&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/linux" class="performancingtags"&gt;linux&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-9084073972880262005?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/9084073972880262005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=9084073972880262005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/9084073972880262005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/9084073972880262005'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/05/full-screen-flash-9-standalone-in-linux.html' title='Full screen Flash 9 standalone in Linux'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-3467073419644730961</id><published>2007-04-19T08:42:00.001-07:00</published><updated>2007-06-05T08:19:15.444-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='iis'/><title type='text'>ASP.NET 2.0 app under IIS 5.1 on my Development Machine</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I made my initial attempt to host an ASP.NET 2.0 application under IIS 5.1 on my development machine.  The Application was the &lt;a href="http://www.codeplex.com/actionpack"&gt;SubSonic&lt;/a&gt; 2.0 Beta 3 SubSonicCentral demonstration site.  Normally I use the ASP.NET Development Server for this sort of thing, but I got tired of loading up the SubSonic solution in VS 2005 just to view this site - VS 2005 is a resource hog like no other.  Anyhow, I ran into issues, and found solutions.  Posting them here so I can reference them later if need be.&lt;br /&gt;&lt;br /&gt;Issue the First: &lt;b&gt;App-Domain could not be created. Error: 0x80131902 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This error shows up in the Application Event Log under Administrative Tools -- Event Log.  The actual message given to you in your browser tells you the "Site is Unavailable" and tells the administrator to look at the Event log.  Solved this by following &lt;a href="http://community.rainbowportal.net/blogs/jonathans_rainbow_blog/archive/2006/03/10/1347.aspx"&gt;these instructions&lt;/a&gt; (Jonathon's Blog) - note: I got some error messages during the "aspnet_regiss.exe" steps, but they didn't seem to affect the outcome.&lt;br /&gt;&lt;br /&gt;Issue the Second: &lt;b&gt;Could not access database "Northwind" with user login ADAM-IMS\ASPNET&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In VS 2005 ASP.NET Development Server, the .NET process tries to access the SQL Server Express instance using my login account (ADAM-IMS\Owner).  IIS uses the ASPNET account.  One simply needs to add a Login in the SQL Server Management Studio, and then give the user permissions on the Database.&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tag/asp.net" class="performancingtags"&gt;asp.net&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/iis" class="performancingtags"&gt;iis&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/microsoft" class="performancingtags"&gt;microsoft&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-3467073419644730961?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/3467073419644730961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=3467073419644730961' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/3467073419644730961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/3467073419644730961'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/04/aspnet-20-app-under-iis-51-on-my.html' title='ASP.NET 2.0 app under IIS 5.1 on my Development Machine'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-2828991049814543983</id><published>2007-04-12T14:21:00.001-07:00</published><updated>2007-07-16T14:37:26.928-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>RAS (Dial-Up) Tip/Trick for Auto dial</title><content type='html'>&lt;p&gt;So, you want a dial-up connection to dial whenever a program "asks" for a remote resource (i.e. uses the internet)? Pretty standard - you goto the &lt;i&gt;Internet Settings&lt;/i&gt; in the Control Panel, and look at the &lt;i&gt;Connections&lt;/i&gt; tab. You should see any dial-up connection you have in the listbox, and below that the options you seek -- either "Always dial this connection" or "Dial this connection whenever a Network Connection is unavailable." I usually stick with the second option, since it seems more stable and reliable on the embedded systems I maintain.&lt;/p&gt; &lt;p&gt;This is all well and good, but I soon ran into a problem. After going through this setup, the first time you open an internet-savvy application and it attempts to use the remote resource, you'll be presented with a small dialog that lists the connection, has three buttons (Connect, Settings, and Work Offline) and also has a checkbox that is empty marked "Connect automatically." The problem is, the devices I'm engineering don't have a keyboard or mouse hooked up to them, and one of them is about 3 hours drive from here. So, the first time it drops the internet connection (which is dialed at startup fortunately) and these settings cause it to automatically connect again, it will throw this little dialog up on the screen and sit there - unaccessible to me since it is offline.&lt;/p&gt; &lt;p&gt;I used process monitor and my own development computer to (miraculously) narrow this down to one registry key. Interesting factoid: on my development laptop, Windows XP Pro hits the Registry (Mostly Reads fortunately) around 50 thousand times in the few second interval I captured using procman.exe! Here is the key:&lt;/p&gt; &lt;p&gt;&lt;code&gt;[HKEY_CURRENT_USER\RemoteAccess\Profile\sprint] "AutoConnect"=dword:00000001&lt;/code&gt; &lt;/p&gt; &lt;p&gt;Oh, and make sure you change "sprint" to the name of your dial-up connection! [Thanks to KM from the XPE newsgroup for that reminder!] If the key exists, and is set to '1', it is equivalent to having checked "Automatically connect" in that annoying, useless dialog the first time.&lt;/p&gt;Technorati Tags: &lt;a class="performancingtags" href="http://technorati.com/tag/windows%20xp" rel="tag"&gt;windows xp&lt;/a&gt;, &lt;a class="performancingtags" href="http://technorati.com/tag/networking" rel="tag"&gt;networking&lt;/a&gt;, &lt;a class="performancingtags" href="http://technorati.com/tag/dial-up" rel="tag"&gt;dial-up&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-2828991049814543983?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/2828991049814543983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=2828991049814543983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/2828991049814543983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/2828991049814543983'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/04/ras-dial-up-tiptrick-for-auto-dial_12.html' title='RAS (Dial-Up) Tip/Trick for Auto dial'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-3428560676523216087</id><published>2007-04-12T09:28:00.001-07:00</published><updated>2007-06-05T08:21:45.998-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Couple of neat Firefox Extensions</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I downloaded a neat looking Firefox extension called "ScribeFire."&lt;br /&gt;&lt;br /&gt;&lt;a class="thickbox" href="https://addons.mozilla.org/en-US/firefox/images/preview/1730/2"&gt;&lt;img alt="" src="https://addons.mozilla.org/en-US/firefox/images/addon_preview/1730/2" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's a tool that lets you post to your blog in the bottom half of Firefox while looking at pages in the top half.  I don't always need to look at something on the web to be blogging - I seldom do actually - but it is still neat to use, and lets me skip the whole "log into Blogger, click new post" step.&lt;br /&gt;&lt;br /&gt;Another really slick looking extension I just picked up is &lt;a href="http://fireftp.mozdev.org/"&gt;FireFTP&lt;/a&gt;.  Its function is pretty self-explanatory.  I like the interface (which is a hard thing to find in a free FTP client) and it has the few advanced features I usually look for in an FTP client (folder diff, session manager, etc.)&lt;br /&gt;&lt;a onclick="event.preventDefault();window.open('images/fireftp.png', 'FireFTP Screenshot', 'left=50,top=50,width=950,height=720,resizable=yes,scrollbars=yes,toolbar=no,status=no')" href="http://fireftp.mozdev.org/images/fireftp.png"&gt;&lt;br /&gt;             &lt;img src="http://fireftp.mozdev.org/images/fireftpthumb.jpg" title="FireFTP Screenshot" /&gt;&lt;br /&gt;           &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="poweredbyperformancing"&gt;Powered by &lt;a href="http://scribefire.com/"&gt;ScribeFire&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Update:&lt;/span&gt; I've since stopped using ScribeFire.  It makes my blog posts ugly with "&amp;amp;nbsp" everywhere and such.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tag/firefox" class="performancingtags"&gt;firefox&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/extensions" class="performancingtags"&gt;extensions&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-3428560676523216087?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/3428560676523216087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=3428560676523216087' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/3428560676523216087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/3428560676523216087'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/04/couple-of-neat-firefox-extensions.html' title='Couple of neat Firefox Extensions'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-5929423045697654621</id><published>2007-04-10T14:05:00.000-07:00</published><updated>2007-04-10T14:07:28.024-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'></title><content type='html'>I was having issues with images flickering in our Delphi client program - it is going into the bit bucket anyhow, but the flicker was really noticeable on the new XP Embedded image I'm trying to make.&lt;br /&gt;&lt;br /&gt;The solution, from my newsgroup post:&lt;br /&gt;&lt;br /&gt;Eureka!&lt;br /&gt;&lt;br /&gt;I don't know why I didn't think of this earlier.  I just turned on  Double Buffering in the application itself for the form that displays  the images, and it looks sexier than ever!  Even on the full-blown  images and my development computer.&lt;br /&gt;&lt;br /&gt;Off topic, but if anyone is wondering this site has great info on  removing flicker from images:&lt;br /&gt;&lt;br /&gt;&lt;a class="moz-txt-link-freetext" href="http://delphi.about.com/library/bluc/text/uc052102g.htm"&gt;http://delphi.about.com/library/bluc/text/uc052102g.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Good Luck!&lt;br /&gt;&lt;br /&gt;Adam&lt;br /&gt;ims3k.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-5929423045697654621?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/5929423045697654621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=5929423045697654621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/5929423045697654621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/5929423045697654621'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/04/i-was-having-issues-with-images.html' title=''/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-420266811538732240</id><published>2007-04-04T09:13:00.000-07:00</published><updated>2007-04-04T09:27:47.946-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='image'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux disk imaging made easy</title><content type='html'>You have a small "drive" (I'm actually using a 1GB Compact Flash card) with 3 partitions on it - you want to preserve the information on each of these partitions, and the boot information at the front of the "drive."&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# to make the image:&lt;br /&gt;dd if=/dev/hda | gzip &gt; hda.img.gz&lt;br /&gt;&lt;br /&gt;# to restore the image, or clone to another disk:&lt;br /&gt;gunzip -c hda.img.gz | dd of=/dev/hda&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Be sure to change 'hda' to the appropriate drive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-420266811538732240?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/420266811538732240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=420266811538732240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/420266811538732240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/420266811538732240'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/04/linux-disk-imaging-made-easy.html' title='Linux disk imaging made easy'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-637204588713718773</id><published>2007-03-30T12:54:00.000-07:00</published><updated>2007-03-30T13:09:58.413-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Move Windows system disk to New PC Home</title><content type='html'>Here is a trick I picked up in my amateur computer repairing (Every geek needs one of those "No, I will not fix you computer!" shirts, no?).&lt;br /&gt;&lt;br /&gt;You have PC A running windows XP/Pro/(Vista?) and you want to keep all your Windows settings, program installs, etc. and use them on your new, shiny PC B.  Maybe you have even assembled PC B yourself and didn't order a new hard drive in anticipation of using your old system disk.  Well, chances are that if you just rip your hard drive out of PC A and stick it in PC B, Windows won't boot.  You'll get a blue screen of death STOP ERROR or maybe it'll get to the splash screen but then freeze up.  Certain drivers for your motherboard and chipset are sort of "embedded" in your windows install so deeply that it can't adjust for the new hardware of PC B.&lt;br /&gt;&lt;br /&gt;The Solution?  Grab your Windows install disk and boot from that.  When prompted, select "Install windows" or whatever, and accept the EULA.  Eventually, the installer should say that it is scanning your system for previously installed versions of Windows.  It should detect your working windows XP installation and ask you if you would like to repair this installation.  Hit 'R' or whatever it says will repair the installation.  Thirty minutes or so later, you should be up and running your old installation on your new PC.  Certain things might need some fixing afterward (for instance, depending on your instal CD version, you might need to install service packs and hot fixes again) but it may save a lot of time compared to starting from scatch.&lt;br /&gt;&lt;br /&gt;I know Microsoft has some kind of "Transfer Files and Settings" application that is supposed to do something like this, but I doubt it works so smoothly, and it requires multiple hard drives (one for the new install, one to keep the old install).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-637204588713718773?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/637204588713718773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=637204588713718773' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/637204588713718773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/637204588713718773'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/03/move-windows-system-disk-to-new-pc-home.html' title='Move Windows system disk to New PC Home'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-4018598114427889428</id><published>2007-03-15T17:25:00.000-07:00</published><updated>2007-03-15T17:55:19.055-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xp embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Authoring your own XP Embedded Components with Files</title><content type='html'>From the very beginning of working with XP Embedded, one of my goals was to be able to make our custom client application the "shell" for our run-time image, like &lt;a href="http://msdn2.microsoft.com/en-us/library/ms940838.aspx"&gt;this&lt;/a&gt;.  Also, I thought it would be cool to import the .inf files from the mainboard drivers we needed to install -- the Network Adapter and the Video Adapter drivers.  I had seen Mike Hall or someone at Microsoft do this by launching the &lt;span style="font-weight: bold;"&gt;File -&gt; Import...&lt;/span&gt; command from Component Designer.  Well, I ran through all the steps for these processes, and imported the components into the Database ( &lt;span style="font-weight: bold;"&gt;Tools -&gt; Component Database Manager -&gt; Click "Import .SLD"&lt;/span&gt; ), but when I added my new custom components I got error messages about not being able to find all of the Files associated with the component - one error message for each file.&lt;br /&gt;&lt;br /&gt;After some experimentation, and perusing a few forums, I determined that I needed to make my own Repository for the Components I was making, and then set the Repository in the Component Details page (it is "Unknown Repository" by default).  You can find detailed information on how to do this &lt;a href="http://msdn2.microsoft.com/en-us/embedded/aa731220.aspx"&gt;here&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;I did something slight different though in order to have a single repository for all of my custom components, and have that repository listed in the Component Database Manager, as well as in the "C:\Windows Embedded Data\Repositories" directory.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a new .sld in Component designer&lt;/li&gt;&lt;li&gt;Right click the &lt;span style="font-weight: bold;"&gt;Repository&lt;/span&gt; tree node and click &lt;span style="font-weight: bold;"&gt;Add Repository&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Name &lt;/span&gt;your repository something appropriate (e.g. "MyRepo" or "ZipCo Custom Components") and set the &lt;span style="font-weight: bold;"&gt;source &lt;/span&gt;to a (pre-created) directory of your choice.   The directory should have a text file or something in it marking it as your repository, since it will be given a long, hard to remember GUID for a directory name after step 4.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Save the .sld and import it into your Component Database.  &lt;span style="font-weight: bold;"&gt;Note:&lt;/span&gt; In the import .sld dialog make sure you have the "Copy Repository to root" checkbox checked.&lt;/li&gt;&lt;/ol&gt;Now you have your own repository in the database, and in the repositories root directory (probably "C:\Windows Embedded Data\Repositories").  Whenever you make a Custom Component of your own that has one or more files, set the Repository in the Component Details page to your custom repository (it should be listed along with the main XPe repos) and copy all of the files you use into the repositories physical folder.&lt;br /&gt;&lt;br /&gt;PS - If you see error messages importing your .inf driver file, read &lt;a href="http://msdn2.microsoft.com/en-us/embedded/aa731191.aspx"&gt;this &lt;/a&gt;before you assume something went terribly wrong. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-4018598114427889428?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/4018598114427889428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=4018598114427889428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/4018598114427889428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/4018598114427889428'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/03/authoring-your-own-xp-embedded.html' title='Authoring your own XP Embedded Components with Files'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-4340305477660607513</id><published>2007-03-12T11:42:00.000-07:00</published><updated>2007-03-13T06:36:21.111-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>ASP.NET Forms Authentication strange behaviors</title><content type='html'>After I got ASP.NET Forms Authentication up and running on the web application I'm developing, I started having a few problems -- it took me awhile to figure out that they were caused by having Forms Authentication enabled.&lt;br /&gt;&lt;br /&gt;The first issue I had was that the site would redirect to login.aspx like it was supposed to, but the login.aspx page would be missing all of the style information from our CSS style sheet.  I looked in the Firefox error console (&lt;a href="http://chrispederick.com/work/webdeveloper/"&gt;Firefox Web Developer Extension &lt;/a&gt;) and noticed an entry about the site being unable to grab the style sheet because it was the wrong MIME type: it was text/html, when it expected CSS files to be text/css.  After banging my head against the MIME type error message for awhile, I had the idea that maybe the type was text/html because it was getting a 404 response when asking for the style sheet.  Sure enough, it wasn't too long then before I figured out that Forms Authentication and my Web.config settings were preventing unauthorized users from grabbing my style sheet.  Solution - made a second Web.config and placed it in my App_Themes directory where my style sheet lives.&lt;code&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;system.web&amp;gt;&lt;br /&gt;&amp;lt;authorization&amp;gt;&lt;br /&gt;  &amp;lt;allow users="*"&amp;gt;&lt;br /&gt;  &amp;lt;/allow&amp;gt;&lt;br /&gt;&amp;lt;/authorization&amp;gt;&lt;br /&gt;&amp;lt;/system.web&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The solution to my next problem was now pretty obvious.  Any javascript file I embedded in my login.aspx page would return a syntax error on line 2 or line 3.  It even did this if the .js file was completely empty!  I quickly realized it was the same problem, just a very different symptom.  Soulution - place another Web.config in your "scripts" directory, or make a "public_scripts" directory if you need to protect some scripts from unauthorized users and place your Web.config there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-4340305477660607513?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/4340305477660607513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=4340305477660607513' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/4340305477660607513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/4340305477660607513'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/03/aspnet-forms-authentication-strange.html' title='ASP.NET Forms Authentication strange behaviors'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-1254533039862326330</id><published>2007-03-02T14:26:00.000-08:00</published><updated>2007-03-04T20:23:20.728-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xp embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>XP Embedded Tricks</title><content type='html'>I recently posted on the microsoft.public.windowsxp.embedded newsgroup a couple of questions I had about XP Embedded related to work.  The short version of the questions:&lt;br /&gt;&lt;br /&gt;1. Is there a way to determine which service inside a svchost.exe process is causing the problem when presented with a "svchost.exe - Applicaton Error" ?&lt;br /&gt;&lt;br /&gt;2. Is there a way in XPe to suppress displaying error messages?&lt;br /&gt;&lt;br /&gt;The short answers (thanks to &lt;span style="font-weight: bold;"&gt;KM &lt;/span&gt;in the same newsgroup!):&lt;br /&gt;&lt;br /&gt;1. Sysinternals (now Wininternals) Process Explorer can give you just such info.  It's like Task Manager on steroids!  (I had used it before, but didn't put two and two together :-)&lt;br /&gt;&lt;a href="http://www.microsoft.com/technet/sysinternals/utilities/ProcessExplorer.mspx"&gt;http://www.microsoft.com/technet/sysinternals/utilities/ProcessExplorer.mspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Yes!  A simple registry change can suppress many error from being presented to the user on XP embedded.&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/embedded/aa731206.aspx"&gt;http://msdn2.microsoft.com/en-us/embedded/aa731206.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-1254533039862326330?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/1254533039862326330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=1254533039862326330' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/1254533039862326330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/1254533039862326330'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/03/xp-embedded-tricks.html' title='XP Embedded Tricks'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-4326189358804382715</id><published>2007-02-27T09:10:00.000-08:00</published><updated>2007-02-28T06:43:46.768-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Using January CTP of ASP.NET 2.0 Ajax Extensions</title><content type='html'>So, a bunch of the things I'm reading in my current book (see post below) don't work, because Microsoft whacked off a bunch of the features of their ASP.NET 2.0 Ajax Extensions in order to get to the current release versions (1.0).  In order to get these features back, you need to install the January CTP release in addition to the standard RTM (1.0) release.  After you goto &lt;a href="http://ajax.asp.net/"&gt;ajax.asp.net &lt;/a&gt;and download the CTP and run the installer, not much has changed.&lt;br /&gt;&lt;br /&gt;To get the CTP (aka "Futures") stuff into your scripts, you need to manually add references to the scripts in your ScriptManager, like this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;asp:scriptmanager runat="”server”" id="”ScriptManager1”"&amp;gt;&lt;br /&gt;&amp;lt;scripts&amp;gt;&lt;br /&gt;&amp;lt;asp:scriptreference assembly="Microsoft.Web.Preview" name="PreviewScript.js" /&amp;gt;&lt;br /&gt;&amp;lt;asp:scriptreference assembly="Microsoft.Web.Preview" name="PreviewGlitz.js" /&amp;gt;&lt;br /&gt;&amp;lt;asp:scriptreference assembly="Microsoft.Web.Preview" name="PreviewDragDrop.js" /&amp;gt;&lt;br /&gt;&amp;lt;/scripts&amp;gt;&lt;br /&gt;&amp;lt;/asp:scriptmanager&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;Now you should be able to use stuff like &lt;span style="font-weight: bold;"&gt;Sys.Preview.UI.Button&lt;/span&gt; again (note the need now to puts "Preview" after the first part of the namespaces).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-4326189358804382715?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/4326189358804382715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=4326189358804382715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/4326189358804382715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/4326189358804382715'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/02/using-january-ctp-of-aspnet-20-ajax.html' title='Using January CTP of ASP.NET 2.0 Ajax Extensions'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-6144157843327179381</id><published>2007-02-26T19:41:00.000-08:00</published><updated>2007-08-02T15:07:44.066-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Adding Color to "ls" in Bash</title><content type='html'>Ever since I installed Debian on our "ol' junker" Poweredge server at work, I've noticed that executing &lt;span style="font-weight: bold"&gt;ls&lt;/span&gt; doesn't give me the same, colorful output as I used to get with the linux machines at work (and with every other linux install I've seen). I did some investigation, and found the following in in &lt;span style="font-weight: bold"&gt;~/.bashrc&lt;/span&gt;:&lt;br&gt;&lt;code&gt;&lt;br&gt;# ~/.bashrc: executed by bash(1) for non-login shells.&lt;br&gt;# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)&lt;br&gt;# for examples&lt;br&gt;&lt;br&gt;# If running interactively, then:&lt;br&gt;if [ "$PS1" ]; then&lt;br&gt;&lt;br&gt;# don't put duplicate lines in the history. See bash(1) for more options&lt;br&gt;# export HISTCONTROL=ignoredups&lt;br&gt;&lt;br&gt;# enable color support of ls and also add handy aliases&lt;br&gt;eval `dircolors -b`&lt;br&gt;&lt;span style="font-weight: bold"&gt;alias ls='ls --color=auto'&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight: bold"&gt;alias dir='ls --color=auto --format=vertical'&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight: bold"&gt;alias vdir='ls --color=auto --format=long'&lt;/span&gt;&lt;br&gt;&lt;/code&gt;&lt;br&gt;The &lt;span style="font-weight: bold"&gt;alias ls='ls --color=auto' &lt;/span&gt;should give me the colorful output I desire. What gives? Well, the comment at the top says that this file is executed when a non-login shell is opened. However, I want to see the colorful output even in my Putty terminal, not just in Xterm in Fluxbox or whatever. So, I cracked open &lt;span style="font-weight: bold"&gt;~/.bash_profile&lt;/span&gt;:&lt;br&gt;&lt;br&gt;&lt;code&gt;&lt;br&gt;# ~/.bash_profile: executed by bash(1) for login shells.&lt;br&gt;# see /usr/share/doc/bash/examples/startup-files for examples.&lt;br&gt;# the files are located in the bash-doc package.&lt;br&gt;umask 022&lt;br&gt;&lt;br&gt;# the rest of this file is commented out.&lt;br&gt;# include .bashrc if it exists&lt;br&gt;&lt;br&gt;#if [ -f ~/.bashrc ]; then&lt;br&gt;# source ~/.bashrc&lt;br&gt;#fi&lt;br&gt;&lt;/code&gt;&lt;br&gt;&lt;br&gt;Aha! This is the script that is executed for a login shell. After uncommenting the last three lines and re-starting the shell, my &lt;span style="font-weight: bold"&gt;ls&lt;/span&gt;'s are looking very nice.&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold; font-style: italic"&gt;Update:&lt;/span&gt; To achieve this same thing for your root shell, you need only look to &lt;span style="font-weight: bold"&gt;/root/.bashrc &lt;/span&gt;-- mine already had the color info commented out in that file, so I simply uncommented it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-6144157843327179381?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/6144157843327179381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=6144157843327179381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/6144157843327179381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/6144157843327179381'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/02/adding-color-to-ls-in-bash.html' title='Adding Color to &amp;quot;ls&amp;quot; in Bash'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-5005247772581581418</id><published>2007-02-26T13:20:00.000-08:00</published><updated>2007-02-26T13:27:24.296-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>Foundations of Atlas Problems</title><content type='html'>I'm reading through the Apress book &lt;span style="font-style: italic;"&gt;Foundations of Atlas: Rapid Application Development with ASP.NET 2.0&lt;/span&gt; and when I hit chapter three, I started to notice a lot of the source code is broken.  I kinda expected this sooner or later, since the author wrote the book against a &lt;a href="http://en.wikipedia.org/wiki/Community_Technology_Preview"&gt;CTP &lt;/a&gt;edition of what was then codenamed "Atlas."  I'm using ASP.NET 2.0 AJAX Extensions version 1.0 which is the release version of the same Microsoft Ajax technology.&lt;br /&gt;&lt;br /&gt;I found this to be very helpful:&lt;br /&gt;&lt;a href="http://ajax.asp.net/docs/tutorials/EnhancingJavaScriptTutorial.aspx"&gt;http://ajax.asp.net/docs/tutorials/EnhancingJavaScriptTutorial.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It seems to be a section-by-section duplicate of the same information presented by the &lt;span style="font-style: italic;"&gt;FOA&lt;/span&gt; author, except with examples that work with the latest version of this technology!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-5005247772581581418?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/5005247772581581418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=5005247772581581418' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/5005247772581581418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/5005247772581581418'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/02/im-reading-through-apress-book.html' title='Foundations of Atlas Problems'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21640713.post-7673909081182907447</id><published>2007-02-26T09:20:00.000-08:00</published><updated>2007-02-26T13:17:36.549-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='webdev'/><title type='text'>Internet Explorer vs Firefox XMLHttpRequest.send()</title><content type='html'>Quick note to self - This will work in Internet Explorer no problem:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;XMLHttpRequestObject.send();&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;However, it will generate javascript exceptions in other applications (such as Firefox 2.0).  To get around that, instead do this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;XMLHttpRequestObject.send(null);&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21640713-7673909081182907447?l=blog.anofsinger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.anofsinger.com/feeds/7673909081182907447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21640713&amp;postID=7673909081182907447' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/7673909081182907447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default/7673909081182907447'/><link rel='alternate' type='text/html' href='http://blog.anofsinger.com/2007/02/internet-explorer-vs-firefox.html' title='Internet Explorer vs Firefox XMLHttpRequest.send()'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-iRN6n-PRLsI/TpYYNV3W4QI/AAAAAAAAAGM/ww-f9Fjyo8I/s220/adam_xbox_100.png'/></author><thr:total>1</thr:total></entry></feed>
