<?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'><id>tag:blogger.com,1999:blog-21640713</id><updated>2009-10-16T19:47:05.180-07:00</updated><title type='text'>Adam_Nofsinger.Tech</title><subtitle type='html'>Web Journal of a (mostly Microsoft .NET) Web Programmer / Computer Type Guy</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default'/><link rel='alternate' type='text/html' href='http://adamnoffie.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/21640713/posts/default?start-index=26&amp;max-results=25'/><author><name>Adam Nofsinger</name><uri>http://www.blogger.com/profile/10270670832840327762</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>45</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/2764482239056286486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21640713&amp;postID=2764482239056286486' title='0 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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</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>2009-06-16T12:48:54.543-07:00</updated><title type='text'>Rebekah H.</title><content type='html'>&lt;a href="http://daisypath.com/"&gt;&lt;img src="http://dw.daisypath.com/WAsBm5.png" alt="Daisypath Wedding Ticker" border="0" /&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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/6985233290148338452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21640713&amp;postID=6985233290148338452' title='1 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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/1985830726193614484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21640713&amp;postID=1985830726193614484' title='16 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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>16</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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/6737766987634085918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/2143417284915538551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/5730748060076413371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21640713&amp;postID=5730748060076413371' title='0 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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/7865415266668328625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/1252646626627434344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/7894336783535354609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></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 xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/6361186738755552685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/6280277723886243613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/770773703288205995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/9138404599412514301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/4044267819988023094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/8003633636546084048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/1531753642665565844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/1910875245720612360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21640713&amp;postID=1910875245720612360' title='0 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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/3167429068477583238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21640713&amp;postID=3167429068477583238' title='12 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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>12</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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/3639995982549256352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/7146364111522539690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21640713&amp;postID=7146364111522539690' title='3 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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/2366353806840767932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21640713&amp;postID=2366353806840767932' title='7 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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>7</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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/1066971976249237675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/1756660334330590659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/3191185933629332221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=adamnoffie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adamnoffie.blogspot.com/feeds/2135619190228015226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://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://adamnoffie.blogspot.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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12991279526265677689'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>