tag:blogger.com,1999:blog-66765589606421241692024-02-18T21:07:09.297-08:00The Busy DevSlogging through the issues from a day in the life of a modern systems architect.Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.comBlogger28125tag:blogger.com,1999:blog-6676558960642124169.post-823000740620013182011-11-19T06:33:00.000-08:002011-11-19T06:46:19.730-08:00N8106-152 error in Netflix Media Center (RESOLVED)<div dir="ltr" style="text-align: left;" trbidi="on">Just about the time that Windows 7 SP1 came out, my Netflix Media Center add-on stopped allowing me to play titles, getting stuck on 7% in the loading process, then consistently erroring out with code N1806-152 for any title.<br />
<br />
Streaming through any browser worked, so I knew it wasn't a Silverlight problem. After googling around long enough, I found two solutions: 1) clear your Netflix cookies, and 2) reset your IE9 personal settings.<br />
<br />
Clearing your Netflix cookies isn't the same as clearing your browser cookies, it includes some Silverlight isolated storage data as well. In IE, visit <a href="http://www.netflix.com/">www.netflix.com</a> and make sure you're signed out. Then go to <a href="http://www.netflix.com/clearcookies">www.netflix.com/clearcookies</a>, then close all your IE windows.<br />
<br />
Now, in the Control Panel "Internet Options" advanced tab, click the "reset" button and check the "reset personal..." checkbox, then click ok. WARNING, this will reset all your IE customizations, but not your favorites or bookmarks, so you will have to re-enable and re-organize toolbars next time you open up the browser. Also, over in the "security" tab, clear all references to Netflix in the trusted sites list. Add *.netflix.com to this list, then click "ok" until you can close all browser windows again.<br />
<br />
Finally, open up IE again and go to Netflix to stream a movie in your browser for approximately one minute. Then close out and try Netflix through Windows Media Center, and it should work again.<br />
<br />
Doing both resolved my issues consistently on all computers that had the problem.</div>Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com3tag:blogger.com,1999:blog-6676558960642124169.post-70563463250971902442010-12-17T09:13:00.000-08:002010-12-17T09:32:44.738-08:00WtvWatcher: Year One Down, and On...<span style="font-size: large;"><a href="http://www.indesolutions.com/WtvWatcher">Version 1.0.0.45 / .46</a></span><br />
<div><br />
So last week I had some time to post a <a href="http://www.indesolutions.com/WtvWatcher">new version</a> of <a href="http://wtvwatcher.codeplex.com/">WtvWatcher</a>. The update list below is pretty much point-for-point a list of the fixes and enhancements that came from the community feedback.</div><div></div><ul><li>FIXED: Error codes 2 and 5<br />
Would occur when file was HD H.264 encoded, but not always...more a wtvconverter.exe issue, but it seems that after an update to the parameter mask, a few test recording are converting properly now.<br />
</li>
<li>FIXED: Starts converting show too early<br />
Updated process to listen for file changes, not just look at file modification date/time. Apparently, Media Center doesn't update the original file consistently throughout the recording process, but that's OK now because WtvWatcher sees all file I/O operations in the source location.<br />
</li>
<li>ADDED: Preference 'delete to recycle bin' after success<br />
For testing or diagnosing scenarios, when something on the system isn't working as expected. Much easier that waiting for another program to record! :)<br />
</li>
<li>ADDED: Preference 'temporary working directory'<br />
If you want to optimize WtvWatcher to split the file I/O read/write between physical drives, then when done converting, copy the resulting DVR-MS file back into the source location.<br />
</li>
<li>ADDED: Preference 'verbose logging' and 'view logs'<br />
For when something's not working and you need to see what's happening. Also sometimes in order for me to help people in CodePlex discussion threads, it helps to see how WtvWatcher is behaving.<br />
</li>
<li>UPDATED: Documentation and Tutorials</li>
</ul>Wow, it doesn't look like alot, but I can tell you it was at least 8 hours of late-night geeking.<br />
<br />
<span style="font-size: large;">Stats / Growth</span><br />
<br />
From the looks of it, I now receive around 300 source code downloads per month (or around 10 per day) from the CodePlex site, and 20-30 first-time installs of the click-once application from my website. I know it's not much, but it lets me know I have had some impact on the anonymous community of Media Center enthusiasts.<br />
<br />
<span style="font-size: large;">[Wishful Thinking]</span><br />
<br />
Hey, you never know, maybe even people like <a href="http://www.hanselman.com/">Scott Hanselman</a> or (my undeclared idol) <a href="http://www.google.com/#q=brian+beckman+microsoft">Brian Beckman</a> have seen it. I know, not realistic to think they watch enough TV to warrant commercial cutting, but a guy can wonder, is all.<br />
<br />
However, dispite the anonymity the software ensures to users, getting constant positive feedback from the community of users I do have is indeed satisfying too. You don't have to be a name or wear a fancy hat to be a developer's friend.<br />
<br />
<span style="font-size: large;">The Next Leg</span><br />
<br />
It was never supposed to be a regular maintenance thing for me, and I have even less time now that I'm going to be a new dad in March 2011, but I can't forsake the community completely. Come on.<br />
<br />
The next ideas I have for WtvWatcher is to include more support for non "to DVR-MS" format. It's an old format, and to down-convert the 'new format' (which is now almost 3 years RTM) was always a 'hack'. It's now become more like saying:<br />
<br />
<blockquote>we don't need these new fangled "phone" contraptions, we have the postal service...[gnash, gnash]. next thing you'll tell us common folk is that you can ask your car to tell you how to get somewhere. damn kids and their flying cars and robot servants. the robot eat all my medication and their arms are strong and i can't break free of their death grip. i just want to be under my afghan and watch my <a href="http://en.wikipedia.org/wiki/Jerry_Lewis">jerry lewis</a> and <a href="http://en.wikipedia.org/wiki/Walter_Cronkite">walter chroncite</a> before the clock chimes 8pm.</blockquote><br />
So yeah, this down-conversion thing is getting old for me.<br />
<br />
However, there are quite a few things I really *don't* like about the new format (ahem, lackofframeworkfor.net-and-stupidnetworkcontentprotection), and lets not forget that as awesome as HD TV is, it's just another excuse for the networks to play antitrust and demigog over a new medium, leaving us enthusiasts in an oft lurch. H.264 is great and all, but update your damned utilities Microsoft!<br />
<br />
If I had my way, all my content on my network would be MP3 and MPEG files. Every video device made since 2000 can decode these formats, and I'd rather have a seamless 10 foot experience over all of my content than have only HD on some of my content.<br />
<br />
<span style="font-size: large;">Drag-N-Drop Processing Pipeline</span><br />
<br />
That being said, the next step is to allow WtvWatcher users to drag-n-drop 'processing blocks' onto each of 4 or 5 process step placeholders. Want to pre-process or post-process WTV files? Just inject the right blocks, and you're on your way. A few intelligent defaults for this 'pipeline' approach, and WtvWatcher will remain as easy to use as before whilst becoming more flexible and intuitive at the same time.<br />
<br />
<span style="font-size: large;">GraphEdit Integration</span><br />
<br />
The more advanced community uses the <a href="http://en.wikipedia.org/wiki/GraphEdit">Windows SDK utility 'GraphEdit'</a> to fix muxing issues and diagnose output errors all the time. I've seen so many variants of this utility that the value is clear: WtvWatcher should be able to use a custom graph (or content translation wiring diagram) during both the decode and encode process. It should also be wicked easy to jump between fixing a graph and testing the edit back in WtvWatcher. If this were a feature, the community could use and share custom graphs to accomodate new formats and changes to content delivery faster than I could ever patch side-project software initiatives.<br />
<br />
<span style="font-size: large;">Enhanced Metadata Support</span><br />
<br />
Currently, the 'processing rules' feature only works when certain media elements are correctly set on the original WTV file, which doesn't always happen in practice. More work should be done to fix this.<br />
<br />
Also, and while this is no fault of WtvWatcher but rather Lifextender, after commercials are cut from the DVR-MS file, media file attributes such as thumbnail and recompiled program length are often missing. I'm sure that WtvWatcher could retain the original WTV metadata, wait around for the commercials to be cut from the DVR-MS file by some other program, then re-apply them after post-processing occurs.<br />
<br />
Yet another concession I make to older format support on behalf of the bleating community (and my wife too)!<br />
<br />
<span style="font-size: large;">Feedback / Donation</span><br />
<br />
Really the best thing you can do to better WtvWatcher is to provide your support via <a href="http://wtvwatcher.codeplex.com/discussions">feedback</a> and <a href="http://indesolutions.com/wtvwatcher/">donations</a>. The feedback lets me know what's important and what really needs to be fixed. The <a href="http://indesolutions.com/wtvwatcher/">donations are a way to let me know you care</a> enough and that I should get off my arse and respect that you gave some of your hard earned money.<br />
<br />
While it's on CodePlex for educational and open source reasons, it's such a small project that more than one contributing developer and the potential for code branching...frankly...wearies me. No need to over complicate things is all I'm sayin', but I do appreciate the offers for sure.<br />
<br />
My initial goal was to A) fix a small problem I had with my home entertainment, and B) post an open source project to ascertain the value of free community feedback. Both goals were reached long ago, and it's been a great learning experience for me to maintain such a popular niche software app. The community has been, beyond my wildest expectations, incredibly encouraging and patient with updates.<br />
<br />
<span style="font-size: large;">Best wishes to the community and good holiday cheers,</span><br />
<br />
<strong>Paul</strong>Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com2tag:blogger.com,1999:blog-6676558960642124169.post-21676813024272016762010-11-17T06:51:00.001-08:002010-11-17T06:51:17.447-08:00ASP.NET MVC Server Installation Options<a href="http://weblogs.asp.net/jgalloway/archive/2010/07/13/server-installation-options-for-asp-net-mvc-2.aspx">http://weblogs.asp.net/jgalloway/archive/2010/07/13/server-installation-options-for-asp-net-mvc-2.aspx</a>Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-89111725080951602582010-10-04T06:19:00.000-07:002010-10-04T06:19:49.558-07:00Visual Studio Breakpoints<a href="http://blogs.msdn.com/b/zainnab/archive/2010/05/07/delete-all-breakpoints-vstipdebug0025.aspx">http://blogs.msdn.com/b/zainnab/archive/2010/05/07/delete-all-breakpoints-vstipdebug0025.aspx</a>Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-34259720555969566902010-06-11T17:30:00.000-07:002010-06-11T17:30:01.333-07:00An Oed to the Life of a US DeveloperExerpt from a random email between business partners:<br />
<br />
"OK, so after a really epicurean, long belated dinner, complete with 4 johnny blacks on the the rocks shaken over ice, gin and tonic, and bourbon with lime soda, it occurs to me.<br />
<br />
<br />
Instead of designing software under the assumption that the people using it are sober and logical, I should assume the worst of the average user. <br />
<br />
Namely, they’re drunk and pounding fingers on their iPods expecting shit to work as if, in their unrealistic, dysfunctional irrational dreams, the world was as simple as their puny brains could comprehend.<br />
<br />
When you’re not sane (as most of our issues from MSA come in) as such (re. this morning’s inexplicable use of irrationality), I guess it’s only fair to absorb the force major that our current client base suggests and just plain give up.<br />
<br />
Human kind is a moronic reduction of an evolutionary cluster fuck. A diarrhea of a convergence between implicit complexity and desirable simplicity.<br />
<br />
I’m done now, mostly because I need sleep like the dead do, anyway. Call me tomorrow…if you dare. I’ll be coding the evaluations functionality.<br />
<br />
Good luck to me."Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com1tag:blogger.com,1999:blog-6676558960642124169.post-52762457869213925662010-05-01T06:48:00.000-07:002010-05-01T06:48:16.323-07:00Yummy: SQL Replication Performance TipsTroubleshooting Slow SQL Server Replication<br />
<a href="http://www.mssqltips.com/tip.asp?tip=1823">http://www.mssqltips.com/tip.asp?tip=1823</a><br />
<br />
Merge Replication Performance Tuning and Optimization<br />
<a href="http://technet.microsoft.com/en-us/library/cc966386.aspx">http://technet.microsoft.com/en-us/library/cc966386.aspx</a>Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-47191693788756426332010-03-31T12:52:00.000-07:002010-03-31T12:52:40.433-07:00How to Open SQL Server Mobile / Compact Edition Data Files on a PCAfter alot of mis-information and redirection, I finally found a way to open and view the contents of a SQL Server Mobile (or Compact) Edition data file.<br />
<br />
Sometimes with an ".sdf" and sometimes with a ".mdf" (I actually think it's arbitrary what the extention is, so long as the format is good), these <strong><span style="color: red;">compact data files can be opened using Visual Studio</span></strong>. From the File menu, select > Open > File item. Select the mobile database file, then it will show up in the "Data Sources" toolbox. You can navigate artifacts of the database, as well as view the contents, copying out to Excel if necessary.<br />
<br />
SInce I was dealing with a mobile database file created using the 3.5 components, I had to open my .mdf file up in VS2008 and not VS2005 (I have them both installed for such circumstances). However, from what I was reading online, VS2005 is required to open CF mobile databases from the 2.0 days.<br />
<br />
This was all due to a SQL server publication being accidentally deleted by an automated batch script between production servers. On a side note, after re-creating the [very simple] publication using the same source, name, articles, web synchronization URL, target folder, and publication access list members, the old subscription mobile databases actually successfully synchronized with the 'new' publication.<br />
<br />
<blockquote>I'm at a point where the words "who cares" now show up in the wrinkles produced on my forehead due to the permanent smirk I've adopted today.</blockquote><br />
<br />
<br />
Light years, though, beyond where I started with Microsoft's replication efforts, back with Access replicas, then on to SQL 2000 replication (f*ing nightmare), 2005 replication (much improved), and now SQL Server 2008 with 2005 mobile components. Thank jebus for experience.Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-27641683107554944442010-03-02T09:58:00.000-08:002010-03-02T09:58:54.061-08:00Remote Enable RDP and Restart of Windows Server 2008Learned how to remotely enable Remote Desktop services on a Windows Server 2008 box today. It consists of:<br />
<ul><li>Remotely editing the target machine's registry <a href="http://www.mydigitallife.info/2008/06/25/how-to-remotely-enable-remote-desktop-terminal-services-or-rdp-via-registry-in-windows-2000xp2000vista2008/">[more]</a></li>
<li>Masquarading as administrative credentials on the remote machine via local command shell <a href="http://www.howtonetworking.com/casestudy/runasshutdown.htm">[more]</a></li>
<li>Sending the shutdown (restart) command <a href="http://www.howtonetworking.com/casestudy/runasshutdown.htm">[more]</a></li>
</ul>Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-45647340182160431772010-02-28T13:13:00.000-08:002010-02-28T13:43:04.586-08:00SQL 2005 + XP SP3 = WTFToday I ran into an issue where SQL 2005 Express wouldn't install, and kept giving a 1603 error message.<br />
<br />
Further research into the SQL installer logs revealed that it was, in fact, MSXML 6 Service Pack 2 that was failing to install. I tried installing from <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=59914795-60c7-4ebe-828d-f28cb457e6e3&displaylang=en">KB954459</a>, but the setup continued to throw me an "interrupted" error.<br />
<br />
After googling around, I found multiple people talking about the "<a href="http://support.microsoft.com/kb/290301">Windows Install Cleanup Utility</a>".<br />
(A few of the salient articles are linked below.)<br />
<ul><li><a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2009/02/20/the-xp-sp3-msxml6-sp2-sql-server-debacle.aspx">Aaron Bertrand: The XP SP3 / MSXML6 SP2 / SQL Server debacle</a></li>
<li><a href="http://www.experts-exchange.com/Security/Misc/Q_23916489.html">MSXML 6 SERVICE PACK 2 (KB954459) SETUP INTERRUPTED</a></li>
</ul>I used to this utility to remove the MSXML 6 Service Pack 2 installation reference, but after a reboot, still no luck installing the KB hotfix (above).<br />
<br />
<strong><span style="color: red;"><em>The trick was, I didn't need to install MSXML 6 anymore</em></span></strong>, I could just go ahead with the SQL 2005 Express installer, and then it worked without any trouble. Apparently the SQL installer carries its own version of the MSXML 6 Core Services package which doesn't include whatever incompatabilities exist between MSXML 6 SP2 and Windows XP SP3.<br />
<br />
Note to self, Aaron Bertrand is totally right about the finger-pointing. Microsoft should have gotten their shit together about this when it was first brought to light on more than a few computers. Dicks.Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-27217173532075823492010-02-17T06:17:00.000-08:002010-02-17T06:17:27.579-08:00Linq to SQL GetCommand for diagnostics and auditingTo be completed when I [don't] have the time...<br />
<br />
The point is, the DataContext.GetCommand' function accepts an IQueryable parameter and returns more ADO.NET style command information.<br />
<br />
I was looking for something like this a while ago whilest attempting to audit and inject into the SQL that Linq executes against SQL Server, eventually giving up to the feeling that I had failed miserably at proper google searching.<br />
<br />
So this has some potential to that, I'll have to look into it further when I'm not under 'release' mentality.Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-10732540476322063652010-02-16T12:24:00.000-08:002010-02-16T12:24:31.357-08:00WtvWatcher now in Google AutoComplete!!!I know it's a small thing, but it's a small victory for such a meager effort on my part.<br />
<br />
My lil' app is now a common enough keyword for Google to index it as an auto-complete search term. Joy.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8PFs0UvE1cFo7_WJyuL75DFAe-K5yzDP4zjdAi9Yv4_LcID0QFoDa3xbaXux5gpIV-XdSOl0-HmfJ8kovWi92hb61IgO2xKqOqE1VdL4EJBFvqLCdds0C8ZzamrlNs7EkmXL_yaM2vxk/s1600-h/wtvwatcher_google_autocomplete_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" ct="true" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8PFs0UvE1cFo7_WJyuL75DFAe-K5yzDP4zjdAi9Yv4_LcID0QFoDa3xbaXux5gpIV-XdSOl0-HmfJ8kovWi92hb61IgO2xKqOqE1VdL4EJBFvqLCdds0C8ZzamrlNs7EkmXL_yaM2vxk/s200/wtvwatcher_google_autocomplete_2.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhglI0nzmWnuDUTQdSWwa6O2V18IqPOpB4b-wZeuaYxVIX9lZ14WW1jh6Sk36fOq-N8Z4FcRoiOmsb2kW4Qe7tv1bU1S4CxtS_D4vRDqithWSvKhHLW3xRAvCC-Bk7osHv0oNSl-vdv15c/s1600-h/wtvwatcher_google_autocomplete_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" ct="true" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhglI0nzmWnuDUTQdSWwa6O2V18IqPOpB4b-wZeuaYxVIX9lZ14WW1jh6Sk36fOq-N8Z4FcRoiOmsb2kW4Qe7tv1bU1S4CxtS_D4vRDqithWSvKhHLW3xRAvCC-Bk7osHv0oNSl-vdv15c/s200/wtvwatcher_google_autocomplete_1.png" width="200" /></a></div>Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-88009934093981493142010-01-08T08:53:00.000-08:002010-01-08T08:54:55.899-08:00XHTML, DTD, and HTTPS UrlsAfter a bunch of debugging and diagnostics today to figure out why loading an XmlDocument resulted in a '(404) Requested resource not found', I found the solution was to replace any DTD declarations in my XHTML documents that point to 'https://...' urls with equivalent 'http://...' urls.<br />
<br />
For some reason, HTTPS confuses the System.Xml.XmlDocument. If I had the time, I'd look into it further.<br />
<br />
My hunch is that I'd have to customize the underlying WebRequest context to allow SSL traffic or dynamically load the certificate in code or something.<br />
<br />
Since it was not neccessary that this DTD had to be transmitted over HTTPS (in fact I was doing some standard 'wrapping' code, then stripping out all but the BODY contents anyway), I just made a common website serve the content over HTTP port 80 with no SSL.<br />
<br />
Thanks XHTML for making my life just a bit more arguous...Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-36188129024220777022009-12-22T12:19:00.000-08:002009-12-22T12:19:05.801-08:00Catch Those Pesky WPF Data Binding Errors!After months of changes to a WPF app, today I noticed that the Visual Studio output windows was frought with warnings about "System.Windows.Data Error" when debugging the application.<br />
<br />
Aside from a poorly performing app, on principal I dispise any uncaught problems in an application, wanrings, errors or otherwise. Leaving it up to the runtime to deal with misbehaving code is a sign of a lazy developer.<br />
<br />
After looking into it more deeply, I remembered an off-handed article I read some time back about how WPF has implemented XAML data binding errors as warnings rather than hard exceptions. While there's no way to change this aspect of the runtime that I know of, there are a few helpful hints here: <a href="http://beacosta.com/blog/?p=52">http://beacosta.com/blog/?p=52</a><br />
<br />
<strong>A note to developers:</strong> fewer exceptions (caught or uncaught) in your code means a faster performing application...period. The less the runtime has to babysit what your app is doing, the more time your application has to do what it's supposed to do.<br />
<br />
Serves me right for disregarding the optup window for so long.Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com2tag:blogger.com,1999:blog-6676558960642124169.post-77613126285950418042009-12-21T15:41:00.000-08:002009-12-21T15:41:44.020-08:00SQL Server 2005 Database Diagrams<strong>Trying to Make Sense of the Mess</strong><br />
<br />
So database diagrams are supposed to help you ensure that proper indexing and referential integrity is enforced where it should be in your database. Oh yeah, and it should help to visualize the relationships in your database.<br />
<br />
On the first account, it does, and I definately see its usefulness when implemented successfully. On the second, it only helps visualize the most trivial of databases. Anything beyond 10 related tables and you can forget about *any* single useful view of your database; databases are not meant to be visualized from a 2D surface.<br />
<br />
However, there are some caveats to database diagrams.<br />
<br />
<strong>Copying the Diagram</strong><br />
<br />
For one, copying the diagram to another database is, er um, not as straight forward as one would expect.<br />
<br />
If you want to copy the *visual* depiction as a graphic, say for print-out, all you have to do is open the diagram up, wait for it to load completely, then right-click the surface and select the 'Copy to Clipboard' option. But again, this is really only useful for small database diagrams, unless you like the idea of single-handedly killing the rainforest with all those reams of paper you intend to print the diagram out on...just so that you have a nice, pretty picture up on your wall of the chaos that is your enterprise database schema.<br />
<br />
If you want to transfer the diagram to another database though, you have some options:<br />
<ul><li>Restore the database from a backup of the source database where the diagram is in-tact.<br />
<br />
CON: This doesn't take into account differences in data between the source and destination databases.<br />
</li>
<li>Script the diagram out to T-SQL from within the source database, then execute it on the destination database.<br />
<br />
PRO: While this option isn't available from Management Studio as you would expect it to be, considering that you can do this with just about every other database artifact, there's already <a href="http://www.conceptdevelopment.net/Database/ScriptDiagram2005/">a solution for how to do this</a> on codeproject.<br />
<br />
CON: This method requires you to add artifacts to your source database, which not all of us have the luxury of doing (e.g. a closed vendor product, production audit processes, etc.)</li>
</ul>I ended up using the second approach, since export of a database diagram into the SVN repository is explainable in a SQL audit. However, I wish Microsoft had implemented this in Management Studio to begin with. It was probably something that didn't make the final cut of the tool set before RTM.<br />
<br />
A real shame it didn't though.Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-63614324047908043262009-12-11T18:09:00.000-08:002009-12-11T18:09:31.891-08:00ODBC on x64 (MDAC x86)Note to self:<br />
<br />
When developing with old components and receiving wierd messages, try compiling for x86 and running. Chances are, if the code can't see a GAC'd dll, it's because you're running in x64 and the 'missing' component is compiled for x86.<br />
<br />
This occurred when attempting to use the Microsoft Text Driver from an x64 machine. The ODBC Data Sources dialog doesn't show all the (x86) drivers installed...that is unless you run it from an x86 command prompt. So I thought I had to install MDAC 2.8, but even after doing that, the code was still choking.<br />
<br />
I also ran into this while working on a project that required the SQL Server Replication components, which are also compiled for x86. Fortunately, my brain was switched on today.Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-2903066123302528392009-12-09T11:47:00.000-08:002009-12-09T11:47:17.909-08:00Links from SQL Server 2008 Analysis Services Training in BostonWent in to the city Mon-Wed for SSAS training and Compuworks. Highly recommend them.<br />
<br />
Links from conversations in the training will be posted tomorrow (2009-12-10 Thu) when I get back in to my desk at Gordon.Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-48872471917596603962009-12-06T15:39:00.000-08:002009-12-06T15:39:50.892-08:00Linq to SQL and Temporary Tables in Stored ProdecuresIf you have problems when dragging a stored procedure from the server explorer to your Linq-to-SQL designer surface, try adding the following T-SQL code to the beginning of your stored procedure body:<br />
<br />
<blockquote>IF 1=0 BEGIN<br />
</blockquote><blockquote>SET FMTONLY OFF<br />
</blockquote><blockquote>END<br />
</blockquote>Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-33864618311905335522009-11-29T09:32:00.000-08:002009-11-29T09:32:37.639-08:00WtvWatcher Now Supports Any Conversion Tool<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeB4SvGLzauFYUjh76saxCCY1eqasZjCSFKyCfcgFJxkdM3-amCe9kBDh9JPV0iCz6QYJnxSdYVVkEPmXcoAM8Fw0UOKBhmgRCmG6xVaKs2yGKLod2nIoFMjr4Egsv1CqlZTNTfktwmfc/s1600/wtvwatcher_20091129.png" imageanchor="1" style="clear: right; cssfloat: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeB4SvGLzauFYUjh76saxCCY1eqasZjCSFKyCfcgFJxkdM3-amCe9kBDh9JPV0iCz6QYJnxSdYVVkEPmXcoAM8Fw0UOKBhmgRCmG6xVaKs2yGKLod2nIoFMjr4Egsv1CqlZTNTfktwmfc/s320/wtvwatcher_20091129.png" yr="true" /></a><br />
The latest version of WtvWatcher now supports customizing the action performed on each WTV file to be processed.<br />
<br />
This sort of makes WtvWatcher a general WTV batch processor now, since you can specify litteraly any 3rd-party tool as the target of the action.<br />
<br />
One user asked for Wtv2Mpeg support, and since this update was on the concept table anyway, it was pretty easy to accomodate his request.<br />
<br />
Essentially, I run this 'action command mask' through the 'System.String.Format' method, then hand the result to the System.Diagnostic.Process.Start' method. Not rocket science.<br />
<br />
Anywho, now I can move on to actual weekend work. Not that that's paying work either, but I like to think that I'm the type of guy who can make such subtle distinctions without getting caught up about differences between the hourly rate of $0.00 and...well...$0.00.Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-54535121386764064042009-11-23T11:17:00.000-08:002009-11-23T11:17:54.435-08:00Initial Thoughts on Open Source Technology<a href="http://wtvwatcher.codeplex.com/">My most recent open source venture</a> has been to provide a utility that bridges the TV file format gap on Windows 7 machines. While this in and of itself isn’t all that interesting and was for my own benefit primarily, the pleasant and unintended consequence of contributing this code to the community was much larger than I expected.<br />
<br />
After reviewing the feedback I’ve received on this project so far, I believe my initial thoughts can be characterized in three points:<br />
<br />
<ul><li>People are more likely to provide constructive feedback in entertainment and non-commercial software when the venture is often of a personal nature, and the outcome is perceived to direct affect their enjoyment of technology.<br />
<strong><em>When people feel ownership of the problem, they are more likely to contribute to solving the problem.<br />
</em></strong></li>
<li>The difficulty of extracting feedback from Line-of-Business software users stems from the reality that they’re too busy trying to get some specific task done, and don’t necessarily have time to comment on inane little details of what’s wrong with the software, simultaneous to their greater goals. The difference between software that ‘gets in the way’ vs. software that ‘provides a way’ must be interpreted within a context that includes what the person is trying to do and how much they understand about both their goals and the technology itself.<br />
<strong><em>People ignore the value of software if it is proposed in the wrong context or at the wrong time.<br />
</em></strong></li>
<li>Open source software can be means of extracting the more general ‘concept’ feedback from a wide range of users, and can represent a source of valid measurement data on technology applicability and effectiveness without demanding the same initial financial or infrastructure costs that a full-on software release often can.<br />
<strong><em>While no feedback is completely ‘free’ (without some cost), open source is sometimes more affordable than traditional startup cycles.</em></strong></li>
</ul><br />
Just thought I’d share my [currently evolving] hypotheses regarding the convergence of business and open source technology.Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-78110883632766498502009-11-15T08:44:00.000-08:002009-11-15T08:44:45.793-08:00First Weekend Stats for WtvWatcher<ul><li>111 <a href="http://wtvwatcher.codeplex.com/">Downloads from Codeplex</a></li>
<li>262 <a href="http://www.indesolutions.com/wtvwatcher">Installations</a></li>
<li>2660+ Program Launches</li>
</ul>Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com3tag:blogger.com,1999:blog-6676558960642124169.post-60616067543073765502009-11-15T08:36:00.000-08:002009-11-15T08:38:40.664-08:00WtvWatcher 1.0.0.32 (Update)New version of <a href="http://wtvwatcher.codeplex.com/">WtvWatcher</a> is out with support for 'Exit Time' and 'Processing Rules'.<br />
<br />
<a href="http://wtvwatcher.codeplex.com/documentation">http://wtvwatcher.codeplex.com/documentation</a><br />
<br />
Thanks to the community for all the feedback!<br />
<br />
PaulPaulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-66143081818851871262009-11-13T13:56:00.001-08:002009-11-13T14:08:58.823-08:00First Week Stats for New WtvWatcher<div style="text-align: left;">Looks like people are really taking to the new software. For free software that I wrote in my spare time, it's still surprising to me that sprinkling a few links here and there adds up to the following PR stats:<br />
</div><ul><li><br />
<div style="text-align: left;"><a href="http://wtvwatcher.codeplex.com/">73 Codeplex downloads</a><br />
</div><br />
</li>
<li><br />
<div style="text-align: left;"><a href="http://www.indesolutions.com/wtvwatcher">150 click-once installs from indesolutions.com</a><br />
</div><br />
</li>
<li><br />
<div style="text-align: left;">1500+ program launches<br />
</div><br />
</li>
</ul><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWSvXRBiUnX-aP-IuiHyrFXnmLY1MOGHRDnqpel-Wj3d0YVLZzHBN7X87JE2IFHNANBC9kLF-GlhdC0BA49xM-zpGKK5JS-xt-lp6ypmF6Mpmrd4N5HfF60s9qbu8rYF2D10kWZAyIGBI/s1600-h/setup_stats_20091113.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" sr="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWSvXRBiUnX-aP-IuiHyrFXnmLY1MOGHRDnqpel-Wj3d0YVLZzHBN7X87JE2IFHNANBC9kLF-GlhdC0BA49xM-zpGKK5JS-xt-lp6ypmF6Mpmrd4N5HfF60s9qbu8rYF2D10kWZAyIGBI/s400/setup_stats_20091113.png" /></a><br />
</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div style="text-align: left;">Hopefully I'll be able to carve out some time this upcoming weekend to integrate some of the features/feedback that I've been getting in the forums. There are smart people out there, and alot of them are also the same people that like my software!<br />
</div>Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-73347729773272270472009-11-13T13:47:00.001-08:002009-11-13T14:09:21.718-08:00WtvWatcher Article on Hack7mc.com<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuo6i4c31QzugyrUTjqO7XtmVAO5oWiHIW-PF2lgKSJoirh1EG77Rxb74tdF1bFpelS4oIbXj4n61SdIVilqTEu-zvo1p0mriYJxLx2LF6yImCtP9x5p2o539fl8wrR5K-taQhzWZt3zA/s1600-h/hack7mc_20091113.png" imageanchor="1" style="cssfloat: right; margin-left: 1em; margin-right: 1em;"><img align="right" border="0" sr="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuo6i4c31QzugyrUTjqO7XtmVAO5oWiHIW-PF2lgKSJoirh1EG77Rxb74tdF1bFpelS4oIbXj4n61SdIVilqTEu-zvo1p0mriYJxLx2LF6yImCtP9x5p2o539fl8wrR5K-taQhzWZt3zA/s200/hack7mc_20091113.png" /></a><br />
</div><a href="http://www.hack7mc.com/2009/11/wtvwatcher-automates-wtv-to-dvrms-conversion.html">A new article on hack7mc.com</a> about <a href="http://wtvwatcher.codeplex.com/">WtvWatcher</a> writes:<br />
<br />
<blockquote>"For those looking for a simple solution to automatically convert WTV files to DVR-MS, it doesn’t get much simpler than <a href="http://wtvwatcher.codeplex.com/">WTVWatcher</a>."<br />
</blockquote>- and -<br />
<br />
<blockquote>"...<a href="http://wtvwatcher.codeplex.com/">WTVWatcher</a> performed flawlessly as expected."<br />
</blockquote>- and -<br />
<br />
<blockquote>"...<a href="http://wtvwatcher.codeplex.com/">WTVWatcher</a> does what it was designed to do well and without any fuss or muss."<br />
</blockquote><br />
Nice to see I can write software that a) works, b) people like, and c) people share with others.<br />
<br />
<a href="http://wtvwatcher.codeplex.com/">http://wtvwatcher.codeplex.com/</a>Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com3tag:blogger.com,1999:blog-6676558960642124169.post-2424418965648306352009-11-09T15:43:00.000-08:002009-11-09T15:43:51.746-08:00Donations for Free Software Are a Beautiful ThingJust received my first set of donations for <a href="http://wtvwatcher.codeplex.com">WtvWatcher</a>. Goes a long way to prove that people looking for free software are absolutely worth my time.Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0tag:blogger.com,1999:blog-6676558960642124169.post-74150487232359059982009-11-09T08:09:00.001-08:002009-11-09T08:09:04.183-08:00Automatically Convert WTV to DVR-MSI know there are already a handful of solutions to this problem out there already, but none quite as elegant as mine.<br />
<br />
A simple .exe file to drop in your Recorded TV folder and launch on startup. Converts WTV files using the built-in 'WtvConverter.exe' utility from Microsoft, just automates the scanning of folder contents so you can sit back and enjoy.<br />
<br />
<a href="http://wtvwatcher.codeplex.com/">http://wtvwatcher.codeplex.com/</a><br />
<br />
Direct download link: <a href="http://wtvwatcher.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33922#DownloadId=86184">http://wtvwatcher.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33922#DownloadId=86184</a><br />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post"><input type="hidden" name="cmd" value="_s-xclick"><br />
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
"><br />
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"><br />
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"><br />
</form>Paulhttp://www.blogger.com/profile/09575047965122301862noreply@blogger.com0