<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>uber1024's WebLog</title><link>http://weblogs.asp.net/uber1024/default.aspx</link><description>It's not hot wings and beer, but it's still okay</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Debug Build: 20510.895)</generator><item><title>Firewall in between web and database servers can cause intermittent problems</title><link>http://weblogs.asp.net/uber1024/archive/2007/11/26/firewall-in-between-web-and-database-servers-can-cause-intermittent-problems.aspx</link><pubDate>Mon, 26 Nov 2007 15:37:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5342163</guid><dc:creator>uber1024</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/uber1024/rsscomments.aspx?PostID=5342163</wfw:commentRss><comments>http://weblogs.asp.net/uber1024/archive/2007/11/26/firewall-in-between-web-and-database-servers-can-cause-intermittent-problems.aspx#comments</comments><description>&lt;p&gt;This story starts, as all stories should, with me sitting on a beach outside of Sao Paolo, Brazil.&amp;nbsp; My team was releasing some bug fixes to our production setup (we do this every week).&amp;nbsp; When I got back, I saw that our sites were having very intermittent problems executing SQL against our database.&amp;nbsp; A trace through the code found that they were able to establish the connection to the database with no problems, but when the code actually ran a query (or stored procedure) using that connection, we'd see various mystifying error messages ... out of memory, SQL Server doesn't exist or access is denied, and some DBNETLIB errors.&lt;br&gt;&lt;/p&gt;&lt;p&gt;Let me step back a step further and outline the setup.&amp;nbsp; We have two load balanced web servers running an application of mixed ASP and ASP.NET.&amp;nbsp; It's a homegrown CMS built over the last 7 years by a series of talented (and many not-so-talented) developers.&amp;nbsp; The data comes from a SQL Server 2005 cluster that resides on a different subnet from the web servers.&amp;nbsp; There are redundant Nokia firewalls that control all traffic into, out of, and between the networks, and the firewalls were managed by a third party.&lt;/p&gt;&lt;p&gt;The most inexplicable thing about this whole scenario was that the sites would experience these problems only during periods of &lt;i&gt;low&lt;/i&gt; usage.&amp;nbsp; During peak activity times they clicked along nicely.&amp;nbsp; It was confusing at first.&amp;nbsp; Our research started to point us to the firewall and we found that the source of the problem was that the firewalls would sever connections that showed no activity for 3600 seconds.&amp;nbsp; What was happening was that the web servers would open database connections and pool them.&amp;nbsp; After an hour of not being used, the connections were severed at the firewall level but the web servers still believed them to be valid and usable.&amp;nbsp; When users would use the site, one of these unusable connections would be drawn from the pool and an error would result.&lt;/p&gt;&lt;p&gt;Fortunately for us, our firewalls were configurable.&amp;nbsp; We placed a policy change request into our firewall team and increased the timeout period.&amp;nbsp; The problems immediately ceased.&amp;nbsp; Our current working theory about why this problem began while I was away is that one of the bug fixes that we put live fixed a bug that was subtly causing more traffic between the web and database servers which resulted in the connections in the pool being kept alive by the firewall.&amp;nbsp; We believe this to be true as we noticed a 2500% increase in packets dropped on port 1433 on our firewall after we released the bug fixes.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5342163" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/uber1024/archive/tags/ASP.NET+_2F00_+SQL+Server/default.aspx">ASP.NET / SQL Server</category><category domain="http://weblogs.asp.net/uber1024/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>One guy's view on H1-B visas</title><link>http://weblogs.asp.net/uber1024/archive/2007/07/07/one-guy-s-view-on-h1-b-visas.aspx</link><pubDate>Sat, 07 Jul 2007 14:37:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:3052417</guid><dc:creator>uber1024</dc:creator><slash:comments>62</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/uber1024/rsscomments.aspx?PostID=3052417</wfw:commentRss><comments>http://weblogs.asp.net/uber1024/archive/2007/07/07/one-guy-s-view-on-h1-b-visas.aspx#comments</comments><description>&lt;p&gt;I know this is a touchy subject, as well it should be.&amp;nbsp; I'm going to try to approach this from the perspective of a technology executive who is a US citizen and who has worked in the tech industry since 1999.&amp;nbsp; For those who know me, you know that this is not a difficult point of view for me to have.&amp;nbsp; Next time I will write a blog entry from the perspective of a dude who likes watching football and drinking beer ... also not a difficult point of view for me to hold.&amp;nbsp;&lt;/p&gt;&lt;p&gt;The situation in New York City might be different than the situation in Witchita, Kansas, so keep in mind the fact that most of my career has been spent in NYC and my entire executive career has been in this technical gene pool.&amp;nbsp; Also keep in mind the fact that I'm not really trying to represent the industry as a whole, the industry leaders, or the college graduate looking for his first job.&amp;nbsp; I'm trying to represent my own views that have crystalized after sitting on both sides of the interview table dozens of times.&lt;br&gt;&lt;/p&gt;&lt;p&gt;My position is simply that the H1-B visa quota is good, but needs to be raised pretty significantly and maybe be made a little more reactive to the needs of the industry.&amp;nbsp; It's good because there needs to be some effort made to protect US citizens.&amp;nbsp; After all, that's the purpose of laws and governments.&amp;nbsp; We might not always be happy about that, but it's the truth.&amp;nbsp; I wanted to move to Korea and work there for a while, but I found their laws to be exceptionally protectionist and xenophobic so I don't find the US laws to be draconian at all. &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;However, having been in the industry during the 2000-2002 dot com shakeout, I realized later that this was actually the best thing to happen to the tech industry in a while.&amp;nbsp; There were a lot of people who washed out of the industry in that time and the vast majority of them deserved to.&amp;nbsp; This is a highly-paid field (even with foreign competition dragging down salaries a bit) and, as such, we need the best people we can find in it.&amp;nbsp; My company recently raised our rates to $150 an hour for our technology department (we don't see that $150 an hour, in case you're wondering) and our clients expect to get their money's worth.&amp;nbsp; Now, as the leader of the department it's my job to make sure that our programmers are worth that $150 an hour that our clients are paying.&amp;nbsp;&lt;/p&gt;&lt;p&gt;And that's where we come back to the H1-B visas.&amp;nbsp; At a time like this, competition for the best developers is tight.&amp;nbsp; I'm trying to hire another developer, for example, and the resumes I've been getting are crap.&amp;nbsp; They're not "just okay," they're complete crap.&amp;nbsp; I'm not talking about "I just graduated from college and I'm going to try to be clever in my resume design no matter how many people tell me it's not a good idea" kind of resume.&amp;nbsp; I'm talking "I don't have any clue what I'm doing and I'm going to document that fact in resume form" kind of resume. &amp;nbsp; I met a programmer from South America who just knocked my socks off.&amp;nbsp; She is an outstanding developer, she's well-liked by her peers (ie, she's a great team player), and she's showing signs of developing strong leadership skills.&amp;nbsp; Basically, she's a top-notch candidate for a mid-to-senior level developer role ... exactly what I'm trying to hire.&amp;nbsp; Unfortunately, I can't.&amp;nbsp; It's difficult to understand why we would want to keep a smart, productive person from moving to our country, contributing to the economy, and paying taxes.&amp;nbsp; I understand that this is the way it is, but it needs to change.&lt;/p&gt;&lt;p&gt;I'm trying to hire someone, and US citizens are always easier to hire for many reasons (less paperwork, shared background, familiarity with the American way of doing business).&amp;nbsp; But the pool of US citizens is poor right now.&amp;nbsp; The best people have jobs and are happy there.&amp;nbsp; Scraping the bottom of the barrel is not an attractive business option.&amp;nbsp; If I know someone who is interested in moving and working here that would be a perfect addition to my team ... why shouldn't I be able to hire her?&lt;/p&gt;&lt;p&gt;As a developer, I remember lots of my colleagues being upset as Bill Clinton continually raised the cap on the number of H1-B visas that were available each year.&amp;nbsp; I tried to understand why, and it always came down to one of two reasons.&amp;nbsp; The most common reason was that the people in question flat-out sucked as developers and knew they were not capable of dealing with the competition. &amp;nbsp; The second, definitely less common but still heard often enough to appear on my radar, reason was xenophobia.&amp;nbsp; By which I basically mean "racism."&amp;nbsp; I'm not even going to dignify that sentiment with a rebuttal because it's ridiculous.&lt;/p&gt;&lt;p&gt;&amp;nbsp;I think there's a middle ground here.&amp;nbsp; There were proposals to have the visas be capped but with provisions to increase the cap if necessary.&amp;nbsp; The EB-2 visa has provisions built in that allay the fears of many.&amp;nbsp; To sponsor someone for an EB-2 visa, you have to be able to prove that you attempted to fill the job with a US citizen but were unable to do so.&amp;nbsp; Maybe this is an idea that can be applied to H1-B visas.&amp;nbsp; It would certainly make it easier to bring in talented people to ease tight labor markets and would also help US citizens find jobs during tougher times. &lt;/p&gt;&lt;p&gt;I'll note here that I'm not really involved in setting salaries for my programmers.&amp;nbsp; That's the operations department.&amp;nbsp; I just let them know how good a candidate is and they make the offer.&amp;nbsp; We have one programmer here who is H1-B and I know that she is paid the same as the US citizens.&amp;nbsp; She's my best programmer and I wouldn't have her paid any less than she's worth.&amp;nbsp; The other thing to note, salary-wise, is that my current programmers are going to pay the price for the exclusion of talented foreign workers.&amp;nbsp; They're going to have to cover the slack from the missing developer role while I interview retard after retard.&lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;I'll finish this off by saying that I realize that the problem that many people, including me, with the current system is not the immigrant workers themselves ... but the abuse of the system by large companies.&amp;nbsp; I agree that this is a problem, but punishing companies who work within both the spirit and the letter of the law, and punishing future US citizens is really not the way to go.&lt;br&gt;&lt;br&gt;&amp;nbsp;Hopefully this entry provokes some thought.&amp;nbsp; I'm sure it's going to provoke some reaction.&amp;nbsp; Whatever your opinion on the matter, I ask two things.&amp;nbsp; The first is to think about why you feel the way you do.&amp;nbsp; REALLY think about it.&amp;nbsp; Look in the mirror and ask yourself why you feel that way.&amp;nbsp; I did, and I didn't always like what I realized.&amp;nbsp; The second is to at least make an effort to be civil when discussing this topic with people.&amp;nbsp; I've found an ENORMOUS amount of ignorance about immigration laws, visas, and the state of the industry and country when discussing immigration.&amp;nbsp; It's a hot-button issue, politically, these days but I wanted to focus more on the high-tech workers and not the low-paid, under-the-table illegal immigrants that most people think about when they think about immigration.&amp;nbsp; I hope that this entry has offered a perspective on this topic that helps people understand the issue.&lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=3052417" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/uber1024/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>Linking 64-bit SQL2k5 to 32-bit SQL2k ... or, How to Avoid Wasting 10 Days Waiting For Straight Answers </title><link>http://weblogs.asp.net/uber1024/archive/2007/07/07/linking-64-bit-sql2k5-to-32-bit-sql2k-or-how-to-avoid-wasting-10-days-waiting-for-straight-answers.aspx</link><pubDate>Sat, 07 Jul 2007 14:04:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:3052191</guid><dc:creator>uber1024</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/uber1024/rsscomments.aspx?PostID=3052191</wfw:commentRss><comments>http://weblogs.asp.net/uber1024/archive/2007/07/07/linking-64-bit-sql2k5-to-32-bit-sql2k-or-how-to-avoid-wasting-10-days-waiting-for-straight-answers.aspx#comments</comments><description>&lt;p&gt;They say a picture is worth a thousand words, so here's a thousand words.&amp;nbsp; The situation is that we have a 32-bit SQL2k cluster and a linked 32-bit SQL2k machine (they link in both directions) and we need to execute distributed transactions across both machines and in both directions.&amp;nbsp; This works fine, and has been working for many months (after we spent a month trying to get our hosting provider to correctly install MSDTC ... another story entirely).&lt;/p&gt;&lt;p&gt;&amp;nbsp;It was recommended by a consultant (I know, I know, readers of WorseThanFailure aka TheDailyWTF are snickering up their sleeves at me) that we replace the cluster with 64-bit windows and 64-bit SQL2k5.&amp;nbsp; He had the picture of our network and assured us that it wouldn't cause any problems.&amp;nbsp; Predictably, it caused a host of problems immediately.&amp;nbsp; It's been 2 weeks and we're still not done with the project.&amp;nbsp; &lt;/p&gt;&lt;p&gt;The problem is that we were getting a pretty mystifying error message:&lt;/p&gt;&lt;p&gt;The stored procedure required to complete this operation could not
				be found on the server. Please contact your system administrator. &lt;br&gt;Msg
				7311, Level 16, State 2, Line 1 &lt;br&gt;Cannot obtain the schema rowset
				"DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI" for linked server
				"&amp;lt;LinkedServerName&amp;gt;". The provider supports the interface, but returns a
				failure code when it is used.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;I found the MS knowledgebase article which was, as per usual, not really as helpful as it could have been.&amp;nbsp; I spent 10 days talking to the database guys at our web host (and these guys are typically pretty sharp) and it finally came down to "you are on your own," which is what I figured.&amp;nbsp; We all looked at the KB article and couldn't really figure out what, exactly, we were supposed to do.&amp;nbsp; As a former programmer, I figured I'd dive into some code and lo-and-behold I had a breakthrough in like 45 seconds.&amp;nbsp; &lt;/p&gt;&lt;p&gt;When SQL2k5 64-bit is trying to select data as part of a distributed transaction, it tries to run a stored proc called "sp_tables_info_rowset_64".&amp;nbsp; That jumped out at me immediately.&amp;nbsp; The 32-bit database has a proc called "sp_tables_info_rowset" that does the same thing.&amp;nbsp; So I added the following stored proc to my 32-bit SQL2k instance:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;&lt;/p&gt;


&lt;p class="MsoNormal"&gt;&lt;span class="GramE"&gt;&lt;font color="blue" face="Courier New" size="2"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Courier New';"&gt;create&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New" size="2"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; &lt;font color="blue"&gt;&lt;span style="color: blue;"&gt;procedure&lt;/span&gt;&lt;/font&gt; 
sp_tables_info_rowset_64 @table_name &lt;font color="blue"&gt;&lt;span style="color: blue;"&gt;sysname&lt;/span&gt;&lt;/font&gt;&lt;font color="gray"&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;/font&gt;@table_schema &lt;font color="blue"&gt;&lt;span style="color: blue;"&gt;sysname&lt;/span&gt;&lt;/font&gt; &lt;font color="gray"&gt;&lt;span style="color: gray;"&gt;=&lt;/span&gt;&lt;/font&gt; &lt;font color="gray"&gt;&lt;span style="color: gray;"&gt;null,&lt;/span&gt;&lt;/font&gt; @table_type &lt;span class="GramE"&gt;&lt;font color="blue"&gt;&lt;span style="color: blue;"&gt;nvarchar&lt;/span&gt;&lt;/font&gt;&lt;font color="gray"&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;255&lt;font color="gray"&gt;&lt;span style="color: gray;"&gt;)&lt;/span&gt;&lt;/font&gt; &lt;font color="gray"&gt;&lt;span style="color: gray;"&gt;=&lt;/span&gt;&lt;/font&gt; &lt;font color="gray"&gt;&lt;span style="color: gray;"&gt;null&lt;/span&gt;&lt;/font&gt; &lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span class="GramE"&gt;&lt;font color="blue" face="Courier New" size="2"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Courier New';"&gt;as&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;


&lt;p class="MsoNormal"&gt;&lt;span class="GramE"&gt;&lt;font color="blue" face="Courier New" size="2"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Courier New';"&gt;declare&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="blue" face="Courier New" size="2"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Courier New';"&gt; @Result int&lt;br&gt;select @Result 
= 0&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;span class="GramE"&gt;&lt;font color="blue" face="Courier New" size="2"&gt;&lt;span style="font-size: 10pt; color: blue; font-family: 'Courier New';"&gt;exec&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New" size="2"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; @Result = &lt;font color="maroon"&gt;&lt;span style="color: maroon;"&gt;sp_tables_info_rowset&lt;/span&gt;&lt;/font&gt; 
@table_name&lt;font color="gray"&gt;&lt;span style="color: gray;"&gt;,&lt;/span&gt;&lt;/font&gt; 
@table_schema&lt;font color="gray"&gt;&lt;span style="color: gray;"&gt;,&lt;/span&gt;&lt;/font&gt; 
@table_type&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;So ... kancho to the knowledgebase article that was going to have me run a 935KB sql script that would make massive changes to the master database.&amp;nbsp; From the command line. On a Saturday morning.&amp;nbsp; If I would have done it their way, I'd be here all day.&amp;nbsp; Doing it my way, I'm done in time to dash off a blog entry and then have breakfast with a beautiful girl.&lt;br&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;Note to Microsoft&lt;/b&gt;:&amp;nbsp; This is why people hate upgrading.&amp;nbsp; You make our lives suck when we try it.&amp;nbsp; Remember that we don't want to spend our weekends fixing stuff.&amp;nbsp; It's not about the money.&amp;nbsp; It's about finding out &lt;i&gt;why&lt;/i&gt; they call it a Brazilian wax.&lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=3052191" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/uber1024/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>New Year's Resolution for 2007</title><link>http://weblogs.asp.net/uber1024/archive/2007/01/08/new-year-s-resolution-for-2007.aspx</link><pubDate>Mon, 08 Jan 2007 21:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1377910</guid><dc:creator>uber1024</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/uber1024/rsscomments.aspx?PostID=1377910</wfw:commentRss><comments>http://weblogs.asp.net/uber1024/archive/2007/01/08/new-year-s-resolution-for-2007.aspx#comments</comments><description>&lt;p&gt;As the technical director for our company, it&amp;#39;s up to me to chart a path for the company through the next year and beyond.&amp;nbsp; My current plan involves:&lt;/p&gt;&lt;p&gt;&amp;nbsp;1.&amp;nbsp; Less dependence on Microsoft&lt;/p&gt;&lt;p&gt;Let me explain why.&amp;nbsp; I&amp;#39;ve been a developer who has been using almost exclusively Microsoft technologies for the past 8 years.&amp;nbsp; When I started, MS development was just easier and faster than anything else out there, and if you needed to upgrade to a new version of a development tool ... it just worked.&amp;nbsp; I upgraded half a dozen VB apps from VB5 to VB6 in an hour and rolled them out the next day to 400 desktops with no problems.&amp;nbsp; Then .NET came around and that was a bigger transition.&amp;nbsp; Fine.&amp;nbsp; Most of our sites don&amp;#39;t use .NET because of it.&amp;nbsp; If you have the time to rewrite your website from the ground up in a new technology just because you thought it was cool, that&amp;#39;s awesome.&amp;nbsp; I&amp;#39;m happy for you, really, because you&amp;#39;ve got initiative and time.&amp;nbsp; Meanwhile, I&amp;#39;ve got 180 sites written in ASP 3.0 that all work, and work well.&amp;nbsp; We&amp;#39;re not going to undertake an expensive, non-billable effort to redo the past 6 years of development.&lt;/p&gt;&lt;p&gt;That&amp;#39;s understood.&amp;nbsp; When .NET came around, Microsoft flat out said, &amp;quot;yes, we realize it sucks but that&amp;#39;s the way it is.&amp;quot;&amp;nbsp; And we all kind of forgave them because, up until then, upgrading technology was something that was entirely within the realm of possibility.&lt;/p&gt;&lt;p&gt;Then Windows 2003 came out, and it was a giant kancho(*) for a lot of us.&amp;nbsp; Win2k3 makes too many assumptions about my practices and it&amp;#39;s wrong about as often as it&amp;#39;s right.&amp;nbsp; But upgrading wasn&amp;#39;t terrible.&amp;nbsp; We were able to do so and only lost a couple dozen hours (again, non-billable).&amp;nbsp; We did it because Windows is easier to maintain than Linux and because we still wanted to do ASP and ASP.NET development&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Then .NET 2.0 came out.&amp;nbsp; We have a few .NET 1.1 web services that we wanted to use and we hoped to replace some of our ASP pages with ASP.NET 2.0 pages.&amp;nbsp; Can you run them side-by-side?&amp;nbsp; No.&amp;nbsp; Another kancho.&amp;nbsp; I&amp;#39;m sure there&amp;#39;s a good reason for it because there are a lot of smart people working for Microsoft.&amp;nbsp; However, I&amp;#39;m not interested in that reason.&amp;nbsp; I&amp;#39;m interested in my team and our work.&lt;/p&gt;&lt;p&gt;Can you easily upgrade a site from 1.1 to 2.0?&amp;nbsp; If you&amp;#39;ve done it, great.&amp;nbsp; I&amp;#39;m happy for you.&amp;nbsp; It took me yesterday (yes, I came in during a playoff weekend to do this) and today to get almost back to square 1.&amp;nbsp; Except that my web service doesn&amp;#39;t recompile because the ConfigurationSettings class is now obsolete?&lt;/p&gt;&lt;p&gt;Kancho on me, I guess.&lt;/p&gt;&lt;p&gt;These things, in and of themselves, suck.&amp;nbsp; The decision makers at MS have&amp;nbsp;let me down repeatedly.&amp;nbsp; But these are just indicative of a lot of things happening at Microsoft that are just a constant stream of urine in the cheerios of developers around the world.&lt;/p&gt;&lt;p&gt;&amp;nbsp;Have you tried to find help on MSDN lately?&amp;nbsp; It used to be one of the best collection of documentation ever assembled.&amp;nbsp; What happened?&lt;/p&gt;&lt;p&gt;Have you tried to get info on licensing?&amp;nbsp; Or being a MS Partner?&amp;nbsp; I don&amp;#39;t want to have to spend 45 minutes looking around their site to find out how much money I have to give them.&lt;/p&gt;&lt;p&gt;Really, all I&amp;#39;m saying here is that Microsoft used to be about making life easier for &amp;quot;Developers!&amp;nbsp; Developers!&amp;nbsp; Developers!&amp;nbsp; Developers.&amp;quot;&amp;nbsp; As a developer, this isn&amp;#39;t true any more.&amp;nbsp; As a technical director, now I have the abililty to look around and say &amp;quot;we&amp;#39;re not getting what we used to get from Microsoft, so why are we not only still giving them piles of cash, but why are those piles getting bigger?&amp;quot;&lt;/p&gt;&lt;p&gt;Some of their products are solid.&amp;nbsp; SQL Server is a good example.&amp;nbsp; It just works and you don&amp;#39;t really have to worry about it.&amp;nbsp; I never have to &amp;quot;reboot SQL Server.&amp;quot;&amp;nbsp; The development tools are also great, provided that you&amp;#39;re making small (1000 files or less) sites.&amp;nbsp; I&amp;#39;m just having trouble seeing the value that they&amp;#39;re adding to the business that I&amp;#39;m trying to run.&amp;nbsp; I know I&amp;#39;m never going to be able to get us entirely away from MS, but my goal is to make my job less dependent on the vagaries of Microsoft&amp;#39;s decision making, which I no longer trust has any of my interests in mind.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(*) - Kancho is a kids game in Japan.&amp;nbsp; It&amp;#39;s called Ddong-chim in Korean.&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1377910" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/uber1024/archive/tags/ASP.NET+_2F00_+SQL+Server/default.aspx">ASP.NET / SQL Server</category><category domain="http://weblogs.asp.net/uber1024/archive/tags/Career/default.aspx">Career</category><category domain="http://weblogs.asp.net/uber1024/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/uber1024/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Asia is pretty wired</title><link>http://weblogs.asp.net/uber1024/archive/2006/04/03/441778.aspx</link><pubDate>Mon, 03 Apr 2006 18:24:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:441778</guid><dc:creator>uber1024</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/uber1024/rsscomments.aspx?PostID=441778</wfw:commentRss><comments>http://weblogs.asp.net/uber1024/archive/2006/04/03/441778.aspx#comments</comments><description>Japan has recently &lt;a href="http://www.forbes.com/work/feeds/afx/2006/03/29/afx2632297.html"&gt;overtaken &lt;/a&gt;South Korea as the most wired country.&amp;nbsp; I think Korea might still have the highest broadband saturation (I understand it's around 75% of households that have broadband ... which is pretty stunning given that 60 years ago Korea was the poorest country on the planet).&amp;nbsp; Somewhere, I also read that Chinese people spend the most amount of time online, on average.&lt;br /&gt;&lt;br /&gt;I never lived in Japan or China, but I have lived in South Korea, and Korea is an interesting study in internet technology and its ramifications on the culture and economy.&amp;nbsp; Cyworld minihompis are what myspace hopes to be, except they &lt;a href="http://myspaceisgay.com/"&gt;don't suck&lt;/a&gt; like Myspace does.&amp;nbsp; Text messaging is far and away the fastest, easiest way to communicate and it's typically free there.&amp;nbsp; Cellphones work on the subways, which was a huge shock to me, and they're pretty much all web-enabled.&amp;nbsp; Internet cafes are everywhere and cheap (about a dollar an hour), and even girls play games online.&amp;nbsp; As a web developer, it's exciting for me to see a country that so embraces the internet and has figured out ways to make it work for them.&amp;nbsp; They also have kickass food, soju is great after the 1st or 2nd shot but gives the drinker an almost unholy need to sing at noraebang, and the people are awesome if you speak Korean to them.&amp;nbsp; The local beer sucks, though (Hite is pretty bad, you have to admit).&lt;br /&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=441778" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/uber1024/archive/tags/Career/default.aspx">Career</category></item><item><title>Intermittant problems opening Access files on a web server</title><link>http://weblogs.asp.net/uber1024/archive/2006/02/24/438982.aspx</link><pubDate>Fri, 24 Feb 2006 18:26:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:438982</guid><dc:creator>uber1024</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/uber1024/rsscomments.aspx?PostID=438982</wfw:commentRss><comments>http://weblogs.asp.net/uber1024/archive/2006/02/24/438982.aspx#comments</comments><description>One of the more popular features on one of our websites is a page where users can upload Access databases that the website will then open (with ADO -- it's an ASP-based application).&amp;nbsp; This mechanism was in place long before I got here, or I would have tried to find a different way to do this.&amp;nbsp; That being said, we're stuck with it for the forseeable future as the users love it, and users indirectly pay my salary.&lt;br /&gt;&lt;br /&gt;This was working fine until we moved our sites onto a Win2k3 server (from Win2k).&amp;nbsp; Now, the feature is accessible intermittantly (as in ... it has about 10% availability).&amp;nbsp; The only thing I can tell is that it fails on the Open method of the Connection object.&amp;nbsp; I checked the temp directory to ensure that the ldb files are going there, and I ensured that the right users have write access to that directory.&amp;nbsp; They would have to, otherwise this would never work.&amp;nbsp; The error message comes back as "Unspecified error".&lt;br /&gt;&lt;br /&gt;Microsoft technical support hasn't been much help on this issue.&amp;nbsp; Usually they're very helpful, but on this one they didn't have any ideas.&amp;nbsp; I was just wondering if anyone had come across this before.&lt;br /&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=438982" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/uber1024/archive/tags/ASP.NET+_2F00_+SQL+Server/default.aspx">ASP.NET / SQL Server</category></item><item><title>Commerce Server vs. Site Server object performance</title><link>http://weblogs.asp.net/uber1024/archive/2006/01/30/436889.aspx</link><pubDate>Mon, 30 Jan 2006 17:16:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:436889</guid><dc:creator>uber1024</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/uber1024/rsscomments.aspx?PostID=436889</wfw:commentRss><comments>http://weblogs.asp.net/uber1024/archive/2006/01/30/436889.aspx#comments</comments><description>We recently replaced a Site Server 3.0 site with Commerce Server 2002.&amp;nbsp; Let me step back a minute.&amp;nbsp; The sites don't really use the the server packages as intended.&amp;nbsp; They use the pipelining process and the order form object model and that's about it, so we really miss out on a lot of opportunities here to leverage some of the cooler features of CS2002.&amp;nbsp; However, the process of moving from one platform to another was relatively painless compared to the effort of moving a site that had bought into Site Server completely.&amp;nbsp; The site is old, as in "from about mid-2000", so the architecture was around long before I started here and certainly long before I was in my present, decision-making role.&lt;br /&gt;&lt;br /&gt;Anyway, that's where we are.&amp;nbsp; And we're noticing that the Commerce Server 2002 objects are orders of magnitude slower than the Site Server objects.&amp;nbsp; It would be nice to be able to "unroll" those objects and create pure SQL tables out of them rather than leaving all the data in the marshalled baskets, however no one is willing to pay for that effort as it would be a significant amount of work (yes, the developer in me definitely wants to take the time to do it right.&amp;nbsp; However, the director of technology in me doesn't really want to tie up my resources on this project for 3 months.&amp;nbsp; Funny how things change as you move up the ladder.&amp;nbsp; A few years ago, I would have said that my DOT was a dumkopf for not taking the time to do things the best way possible.&amp;nbsp; I'd like to take this time to apologize to all the tech leads and project managers that I've fought with over the past few years.)&lt;br /&gt;&lt;br /&gt;Throughout most of the site, this isn't a problem, but there are two places (in administrative pages) on the site where 100 or more of these marshalled baskets get retreived and opened, and these pages are taking minutes longer to load than they were previously.&amp;nbsp; I don't expect that anyone has ever learned anything about this, I just wanted to have documented it somewhere.&lt;br /&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=436889" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/uber1024/archive/tags/Commerce+Server/default.aspx">Commerce Server</category></item><item><title>File downloads from IIS 6.0</title><link>http://weblogs.asp.net/uber1024/archive/2006/01/20/436025.aspx</link><pubDate>Fri, 20 Jan 2006 19:58:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:436025</guid><dc:creator>uber1024</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/uber1024/rsscomments.aspx?PostID=436025</wfw:commentRss><comments>http://weblogs.asp.net/uber1024/archive/2006/01/20/436025.aspx#comments</comments><description>So we've moved 8 websites from Win2k to Win2k3.&amp;nbsp; Some things have gone smoothly, some things have made me want to become a Buddhist monk (which actually wouldn't be that tough since I train in kung fu at a Buddhist temple here in Manhattan).&amp;nbsp; One of the latter was enabling file downloads from the website.&amp;nbsp; Basically, our client has a desktop app that needs to download updates from the website.&amp;nbsp; We have a web service that lists the latest updates and their location and the app is responsible for everything else.&amp;nbsp; Simple yet effective.&lt;br /&gt;&lt;br /&gt;So after the switch, the app stopped working for both Mac and PC users.&amp;nbsp; It turns out that Mac users need to download a .DMG file (which apparently is a mac-specific file format that is used all the time) and the Windows version needs to download both .EXE and .DLL files (and a few other types of files, but everything else went pretty smoothly).&amp;nbsp; None of these were working.&lt;br /&gt;&lt;br /&gt;The .DMG files we could get to download by opening up the website in the IIS snap in and looking for the MIME type applet and adding .DMG files with the right MIME type.&amp;nbsp; I don't recall off the top of my head what that MIME type was, but you can find it on Google (although the Bush administration will eventually have access to that information).&amp;nbsp; The .DLL and .EXE files were a little tricker.&amp;nbsp; I had to switch the "Execute Permissions" from "Scripts and Executables" to "Scripts only."&amp;nbsp; &lt;br /&gt;&lt;br /&gt;For whatever reason, IIS 5 was like Washington Square Park (*) ... you can get anything at any time provided you know where to look.&amp;nbsp; IIS 6 is much more secure, and you have to take steps to explicitly enable certain activities.&amp;nbsp; That's fine and it makes sense.&amp;nbsp; Fortunately there are a number of good bloggers from Microsoft, otherwise this issue would have been much tougher to track down, since the only place I found it talked about was on a blog or two.&amp;nbsp; This tells me three things:&lt;br /&gt;&lt;br /&gt;1 -- books are nice, but typically come out too late to be much help for most of us&lt;br /&gt;2 -- keep blogging, everyone!&amp;nbsp; It's a big help to all of us!&lt;br /&gt;3 -- does anyone ever go to MSDN.com any more?&amp;nbsp; It's about as useless as MSN.com.&amp;nbsp; I feel like I'm being sold things rather than being allowed to look up something that's going to help me with my job.&amp;nbsp; I always check MSDN when I've got a problem, but it's literally been years since it was actually useful.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;(*) - For those of you who are not old skool New Yorkers, or who are New Yorkers but don't have as many shady friends as I do, Washington Square Park is a park down in Greenwich Village near NYU.&amp;nbsp; It's long been The Place To Go when you're looking for less-than-legal pharmaceuticals.&amp;nbsp; Some days, it reminds me of the old rave scene where it's just a marketplace for drugs of all kinds.&amp;nbsp; These days, there are more police officers patrolling the area so it's not as scruffy as it used to be, but you'll still see people loitering in the evenings saying "smoke, smoke" under their breath.&amp;nbsp; I happen to work 2 blocks away from the park, and one of my friends lives 2 blocks in the other direction, so I've walked through the park many times at all hours of the night.&lt;br /&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=436025" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/uber1024/archive/tags/ASP.NET+_2F00_+SQL+Server/default.aspx">ASP.NET / SQL Server</category></item><item><title>AJAX to secure servers: semi-resolution</title><link>http://weblogs.asp.net/uber1024/archive/2006/01/10/435007.aspx</link><pubDate>Tue, 10 Jan 2006 21:10:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:435007</guid><dc:creator>uber1024</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/uber1024/rsscomments.aspx?PostID=435007</wfw:commentRss><comments>http://weblogs.asp.net/uber1024/archive/2006/01/10/435007.aspx#comments</comments><description>I had previously talked about a problem making XMLHTTP requests from IE to our secure (HTTPS) webserver.&amp;nbsp; Microsoft support was very understanding but in the end it came down to this:&lt;br /&gt;&lt;br /&gt;"We can't help you.&amp;nbsp; We've known about this but have no resolution.&amp;nbsp; If you figure something out, let us know."&lt;br /&gt;&lt;br /&gt;We wound up rewriting our engine to do the Posts asynchronously and then setting a timer and trying again if the request took too long.&amp;nbsp; It was an ugly, ugly hack and there was money left on the nightstand after that one, for sure.&amp;nbsp; The only thing that would have been uglier (and probably wouldn't have worked) would have been to use IFRAMES.&amp;nbsp; I hope to never type that word again in my professional career.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=435007" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/uber1024/archive/tags/ASP.NET+_2F00_+SQL+Server/default.aspx">ASP.NET / SQL Server</category></item><item><title>Email woes when upgrading from Win2K to Win2k3</title><link>http://weblogs.asp.net/uber1024/archive/2006/01/10/435005.aspx</link><pubDate>Tue, 10 Jan 2006 21:04:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:435005</guid><dc:creator>uber1024</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/uber1024/rsscomments.aspx?PostID=435005</wfw:commentRss><comments>http://weblogs.asp.net/uber1024/archive/2006/01/10/435005.aspx#comments</comments><description>The SMTP standard, which no one not featured in the mockumentary "Trekkies" has read, states that bare linefeeds ( "\n" ) are not allowed in the SMTP standard.&amp;nbsp; Qmail servers interpret this strictly.&amp;nbsp; There are &lt;a href="http://homepages.tesco.net/%7EJ.deBoynePollard/FGA/qmail-myths-dispelled.html"&gt;qmail fanboy articles&lt;/a&gt; explaining why this is good.&amp;nbsp; That's fine and the world continues.&lt;br /&gt;&lt;br /&gt;However, IIS 5 would catch what amounted to mistakes by developers and would silently rewrite "\n" as "\r\n", which conforms to the SMTP standard.&amp;nbsp; For whatever reason, IIS 6 does not.&amp;nbsp; I can't fathom why this feature wouldn't be included for backwards-compatibility, but it seems that backwards compatibility is aggressively discouraged.&amp;nbsp; This is unfortunate.&lt;br /&gt;&lt;br /&gt;I'm having more and more "I hate Microsoft" days since Windows 2003 was adopted.&amp;nbsp; We have our main website running on Win2k3 and we're moving another (although I wish we weren't).&amp;nbsp; Our other 17 websites will remain on Windows 2000 until such time as I no longer work here.&lt;br /&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=435005" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/uber1024/archive/tags/ASP.NET+_2F00_+SQL+Server/default.aspx">ASP.NET / SQL Server</category></item></channel></rss>