<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ryan LaNeve</title><link>http://weblogs.asp.net:80/rlaneve/</link><description>code, code and more code...</description><item><title>Big Visible Cruise++</title><link>http://weblogs.asp.net:80/rlaneve/big-visible-cruise</link><description>&lt;p&gt;Inspired by Jeffrey Palermo’s &lt;a href="http://jeffreypalermo.com/blog/big-visible-cruise-on-the-big-screen/"&gt;recent post&lt;/a&gt;, I figured it was time to finish my post on our “&lt;a href="http://alistair.cockburn.us/Information+radiator"&gt;information radiator&lt;/a&gt;” setup which has been in my drafts folder for about 6 months.&lt;/p&gt;  &lt;p&gt;When we started using &lt;a href="http://ccnet.thoughtworks.org/"&gt;CruiseControl.NET&lt;/a&gt; for continuous integration a few years back, it didn’t take long for us to decide we needed something more visible than CCTray to let us know when a build was broken. The first solution was an &lt;a href="http://www.ambientdevices.com/cat/orb/"&gt;Ambient Orb&lt;/a&gt; and a customized version of CCTray running on one developer’s machine. If the orb was green, all was well; pulsating yellow-to-orange meant a build was running; solid red meant something had gone wrong. It worked for a while, but as the team grew and we moved from one office to another, it became difficult to find a location for the orb which would allow it to be seen by everyone on the team. It was time to come up with another solution.&lt;/p&gt;  &lt;p&gt;We were moving into a new space yet again back in May of this year when one of the devs on the team came across &lt;a title="Big Visible Cruise on Google Code" href="http://code.google.com/p/bigvisiblecruise/"&gt;Big Visible Cruise&lt;/a&gt;. Since we work for an audio/video integration company, getting our hands on some spare LCD displays wasn’t terribly difficult, and thus the “App Dev Display Wall” was born (“App Dev” being “Applications Development”, the name of our department within the company).&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/rlaneve/Media/Display-Wall_WithRoom_2DA38EE3.jpg"&gt;&lt;img title="App Dev Display Wall" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="379" alt="App Dev Display Wall" src="https://aspblogs.blob.core.windows.net/media/rlaneve/Media/Display-Wall_WithRoom_thumb_2E0FC1D8.jpg" width="504" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The four displays are hooked up to a spare PC buried under the two desks seen in the photo above, and they are definitely visible from anywhere in the room. In the photo below, you can see that we’re currently utilizing three of the four displays, with the bottom-right running Big Visible Cruise. The bottom-left is running a web browser pointing to an internal URL which displays a few metrics for some of our production applications. The top-left is also running a web browser and is currently configured to show a count-down to the next major release we have scheduled.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/rlaneve/Media/Display-Wall_4777C512.jpg"&gt;&lt;img title="App Dev Display Wall - Close-up" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="379" alt="App Dev Display Wall - Close-up" src="https://aspblogs.blob.core.windows.net/media/rlaneve/Media/Display-Wall_thumb_0ECD1B05.jpg" width="504" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We also made a few minor modifications to the source of Big Visible Cruise, adding in such things as custom sorting (by last build date/time), number of minutes/hours since the last build and some tweaks to the styling of the individual boxes to make them a little prettier. (We have not yet submitted our changes back to the BVC project, but we’re looking into doing so.)&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/rlaneve/Media/Display-Wall_CCServer_562270F7.jpg"&gt;&lt;img title="Big Visible Cruise" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="324" alt="Big Visible Cruise" src="https://aspblogs.blob.core.windows.net/media/rlaneve/Media/Display-Wall_CCServer_thumb_3673972F.jpg" width="497" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 26 Nov 2008 19:12:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/big-visible-cruise</guid></item><item><title>CI with AccuRev and CC.NET</title><link>http://weblogs.asp.net:80/rlaneve/continuous-integration-with-accurev-and-cruisecontrol-net</link><description>&lt;P&gt;In &lt;A title="Thinking Like a Programmer" href="http://weblogs.asp.net/rlaneve/archive/2008/03/19/thinking-like-a-programmer.aspx" mce_href="http://weblogs.asp.net/rlaneve/archive/2008/03/19/thinking-like-a-programmer.aspx"&gt;my last post&lt;/A&gt;, I mentioned working with Camtasia to create my portion of a webinar being broadcast later today (3:00 PM EDT). If you're using [accurev], [ccnet] or both, or just interested in the subject of Continuous Integration or seeing a demo of a great source control system, &lt;A title="Register for the webinar." href="https://www1.gotomeeting.com/register/856079061" mce_href="https://www1.gotomeeting.com/register/856079061"&gt;join us for the webinar&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Additionally, during the webinar I will mention a custom CC.NET labeler we are using and that I would make it available, so &lt;A href="http://www.laneve.com/files/AccuRevLabeller.cs" mce_href="http://www.laneve.com/files/AccuRevLabeller.cs"&gt;here it is&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Disclaimer&lt;/STRONG&gt;: try the LastChangeLabeller built-in to CC.NET first before resorting to this one. If you want to try this one, you will need to:&lt;BR&gt;1) get the source version of CC.NET;&lt;BR&gt;2) add the file linked above to the "project\core\label" folder;&lt;BR&gt;3) add the file to the CC.NET "core" VS project;&lt;BR&gt;4) re-compile everything.&lt;/P&gt;
&lt;P mce_keep="true"&gt;[update: I mistakenly listed the start time of the webinar as 4:00 PM EDT in my original post. The webinar actually begins at &lt;STRONG&gt;3:00 PM EDT&lt;/STRONG&gt;.]&lt;/P&gt;</description><pubDate>Wed, 19 Mar 2008 16:33:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/continuous-integration-with-accurev-and-cruisecontrol-net</guid><category>.NET</category><category>Corporate Development</category></item><item><title>Thinking Like a Programmer</title><link>http://weblogs.asp.net:80/rlaneve/thinking-like-a-programmer</link><description>&lt;p&gt;A few weeks ago, I was asked to participate in a &lt;a href="http://www.accurev.com/webinar.html" title="Join us for the webinar!" mce_href="http://www.accurev.com/webinar.html"&gt;webinar&lt;/a&gt; being done by &lt;a href="http://www.accurev.com" title="Amazing source control platform" mce_href="http://www.accurev.com"&gt;AccuRev&lt;/a&gt; (the company) around the topic of continuous integration using AccuRev (the software) and &lt;a href="http://ccnet.thoughtworks.com" mce_href="http://ccnet.thoughtworks.com"&gt;CruiseControl.NET&lt;/a&gt;. One of the guys on the AccuRev team was preparing a video using &lt;a href="http://www.techsmith.com/" title="Great screen capture and recording software." mce_href="http://www.techsmith.com/"&gt;Camtasia&lt;/a&gt;, and we agreed it would be easier for me to record my part using the same tool and we'd then stitch our two projects together to product the final video. I have used other screen-capture/recording tools in the past for some of our internal training needs, but I hadn't really done one in a while and I had never done one using Camtasia (though I knew of the software and probably tried a demo some years back). So, I grabbed the latest available demo version (5.0) and started playing.&lt;/p&gt;  &lt;p&gt;First things first: great software. I found it very easy to use, and very easy to put a few "special touches" here and there. All-in-all, a good experience and I recommended to my boss that we switch to Camtasia whenever we get around to making some new training videos. There was, however, one problem I ran into which was a bit frustrating: no way to change a setting which positively had to be changed to make the software usable for my setup. The solution? Think like a programmer.&lt;/p&gt;  &lt;p&gt;First off, let me say there is a very good chance I simply missed it; the setting exists, but I failed to find it.&lt;/p&gt;  &lt;p&gt;My goal was simple: record a voice-over for the 10+ minutes of screen shots+slides+video I had spent hours laying out in my Camtasia project. The software made this ability obvious, so I never bothered to verify it was going to work (yes, I know - mistake number one). Of course, when it came time to use the feature I discovered it was not working: the button to actually begin recording audio was disabled, with no apparent way of enabling it or even viewing the cause of it being disabled. I assumed a problem with my setup: I had my Logitech USB microphone plugged in to the computer, which I had never used on this system before (or any system for that matter: I snagged it from my Rock Band pile in the living room) and figured the issue was either with the microphone itself or my sound card or my Windows setup or some other thing unrelated to Camtasia.&lt;/p&gt;  &lt;p&gt;Then, while poking around the Camtasia docs and installed applications, I came across the "Camtasia Recorder" program. This is a separate application specifically for recording audio. I fired it up and, again, was unable to record anything. However, in this app, there is an easily accessible "audio options" link which, when clicked, displays the dialog shown below, which made me realize that either Camtasia or my system in general had decided that my default audio device was "Bluetooth Audio" - not my Logitech microphone.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/rlaneve/WindowsLiveWriter/ThinkingLikeaProgrammer_150E2/camtasia_audio_options_2.png" mce_href="https://aspblogs.blob.core.windows.net/media/rlaneve/WindowsLiveWriter/ThinkingLikeaProgrammer_150E2/camtasia_audio_options_2.png"&gt;&lt;img src="https://aspblogs.blob.core.windows.net/media/rlaneve/WindowsLiveWriter/ThinkingLikeaProgrammer_150E2/camtasia_audio_options_thumb.png" style="border-width: 0px;" alt="camtasia_audio_options" mce_src="https://aspblogs.blob.core.windows.net/media/rlaneve/WindowsLiveWriter/ThinkingLikeaProgrammer_150E2/camtasia_audio_options_thumb.png" border="0" height="480" width="562"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Upon clicking the drop-down list and selecting the correct option, this application was perfectly happy to allow me to record audio using the USB microphone. I assumed my problem was solved, shut-down the "Camtasia Recorder" application, re-started the main "Camtasia Studio" application and...wait...I still can't record an audio track within my existing project. Hmm... No problem, really. I guess the two apps don't share settings and I just need to find the same "Audio Options" dialog I found in the other application. If you haven't guessed yet, the "Audio Options" dialog was nowhere to be found within the "Camtasia Studio" application. I looked pretty darn hard and no luck. Again: could just be me; maybe it's really there, but if it's that hard to find it's as good as non-existent to me.&lt;/p&gt;  &lt;p&gt;After searching Google for a bit and finding no information specific to Camtasia version 5.x, I finally decided to think like a programmer. (I play Mr. Manager role for 85% of my day, so I'm a little slow to come up with bright ideas when needed.) It seemed to me that there must be a setting stored somewhere which Camtasia Studio is using to determine the audio device to use for voice-overs. I just needed to find it. At first, I gave them too much credit: I searched the "Documents and Settings" area on my machine looking for nicely formatted config files. Then I decided it was time to try the registry and, low and behold, I found the culprit.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/rlaneve/WindowsLiveWriter/ThinkingLikeaProgrammer_150E2/camtasia_audio_options_registry_2.png" mce_href="https://aspblogs.blob.core.windows.net/media/rlaneve/WindowsLiveWriter/ThinkingLikeaProgrammer_150E2/camtasia_audio_options_registry_2.png"&gt;&lt;img src="https://aspblogs.blob.core.windows.net/media/rlaneve/WindowsLiveWriter/ThinkingLikeaProgrammer_150E2/camtasia_audio_options_registry_thumb.png" style="border-width: 0px;" alt="camtasia_audio_options_registry" mce_src="https://aspblogs.blob.core.windows.net/media/rlaneve/WindowsLiveWriter/ThinkingLikeaProgrammer_150E2/camtasia_audio_options_registry_thumb.png" border="0" height="481" width="751"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I jumped back into the Camtasia Recorder application to check the "Audio Options" dialog again, noted the exact name it displayed for my USB microphone and then changed the "WaveInDeviceName" value to match. I re-started Camtasia Studio, loaded up my project and, whaddya know, it was perfectly happy to allow me to record audio using my microphone. Problem solved.&lt;/p&gt;  &lt;p&gt;Lesson learned: all software is created by humans, and most of us are not breaking new ground. If you're having trouble getting some third-party software to do what you want, step back and think about how you would have made the software work if you were the one who had written it. You might just come up with a way around your problem.&lt;/p&gt;  &lt;p&gt;Incidentally, if you're an &lt;a href="http://www.accurev.com" title="Still a really great source control platform." mce_href="http://www.accurev.com"&gt;AccuRev&lt;/a&gt; user or &lt;a href="http://ccnet.thoughtworks.com" mce_href="http://ccnet.thoughtworks.com"&gt;CruiseControl.NET&lt;/a&gt; user (or even better, a user of both), &lt;a href="https://www1.gotomeeting.com/register/856079061?" title="Register for the Accurev with CC.NET webinar." mce_href="https://www1.gotomeeting.com/register/856079061?"&gt;come join us for the webinar&lt;/a&gt; being broadcast later today.&lt;/p&gt;</description><pubDate>Wed, 19 Mar 2008 11:32:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/thinking-like-a-programmer</guid></item><item><title>BDD Style Specification Reporting via CC.NET</title><link>http://weblogs.asp.net:80/rlaneve/bdd-style-specification-reporting-via-cc-net</link><description>&lt;P&gt;After reading posts by &lt;A title="Getting started with BDD style Context/Specification base naming" href="http://www.jpboodhoo.com/blog/GettingStartedWithBDDStyleContextSpecificationBaseNaming.aspx" mce_href="http://www.jpboodhoo.com/blog/GettingStartedWithBDDStyleContextSpecificationBaseNaming.aspx"&gt;Jean-Paul Boodhoo&lt;/A&gt; and &lt;A title="Approaching BDD" href="http://codebetter.com/blogs/david_laribee/archive/2007/12/17/approaching-bdd.aspx" mce_href="http://codebetter.com/blogs/david_laribee/archive/2007/12/17/approaching-bdd.aspx"&gt;Dave Laribee&lt;/A&gt; regarding BDD style naming conventions for specifications, my team gave it a shot on a project we started recently. It didn't take us long to agree that we preferred this naming style over the styles (or lack there-of) we had used in prior projects. We even found ourselves catching mistakes - in either the implementation or interpretation of the projects specifications - just by reading through the Dox report generated by the MbUnit GUI runner. We don't generally use the MbUnit GUI, however, and the output of the Dox report, though helpful, was not exactly what we were looking for. Since we have a &lt;A title=CruiseControl.NET href="http://ccnet.thoughtworks.com/" mce_href="http://ccnet.thoughtworks.com/"&gt;continuous integration server&lt;/A&gt; running builds on every check-in, we decided to take a shot at having something generated during those builds. An example is seen below, which was generated using the MbUnit XML output from running the tests in the &lt;A title="NothingBUtDotNetStore on Google Code" href="http://jpboodhoo.googlecode.com/svn/trunk/nothinbutdotnet.web.app/" mce_href="http://jpboodhoo.googlecode.com/svn/trunk/nothinbutdotnet.web.app/"&gt;NothingButDotNetStore sample Jean-Paul has up on Google Code&lt;/A&gt; mixed with a custom XSL file.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aspblogs.blob.core.windows.net/media/rlaneve/WindowsLiveWriter/4039f2790dc6_103F1/CC.NET_MbUnitSpecsReport_2.png" target=_blank mce_href="https://aspblogs.blob.core.windows.net/media/rlaneve/WindowsLiveWriter/4039f2790dc6_103F1/CC.NET_MbUnitSpecsReport_2.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=480 alt="Sample CC.NET report from MbUnit Xml log" src="https://aspblogs.blob.core.windows.net/media/rlaneve/WindowsLiveWriter/4039f2790dc6_103F1/CC.NET_MbUnitSpecsReport_thumb.png" width=539 border=0 mce_src="https://aspblogs.blob.core.windows.net/media/rlaneve/WindowsLiveWriter/4039f2790dc6_103F1/CC.NET_MbUnitSpecsReport_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;We modified the build server's config to add a "specifications" report link when viewing the details of a build, and have definitely found it useful to have such an easy-to-read, always available and always up-to-date list of the specifications currently implemented by the project. While we're not quite to the point of being completely happy with what we've got - still some sorting, naming, organizational issues to work out - we definitely all agree that we are better off using this style of naming and having this report readily available for each build.&lt;/P&gt;
&lt;P&gt;Here is &lt;A title="Zip containing XSL for use with MbUnit or NUnit" href="http://ryan.laneve.com/resources/xUnitSpecsReportforCCNET.zip" mce_href="http://ryan.laneve.com/resources/xUnitSpecsReportforCCNET.zip"&gt;a zip containing an MbUnit and NUnit version of the XSL&lt;/A&gt; we are using to generate reports like the one shown above. As I said, they really aren't perfect, but should get you started if you're trying out a similar style of naming convention. Let me know if you make any improvements.&lt;/P&gt;</description><pubDate>Wed, 02 Jan 2008 16:10:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/bdd-style-specification-reporting-via-cc-net</guid><category>.NET</category></item><item><title>App Developer opening in Tampa, FL</title><link>http://weblogs.asp.net:80/rlaneve/228938</link><description>&lt;p&gt;Got the chops to juggle multiple projects from design to&amp;nbsp;development to completion? Tired of trying to convince your boss there is actual value in playing...err...*learning* things like Whidbey and Yukon before they're released? Interested in joining a team&amp;nbsp;celebrated by its users&amp;nbsp;as we prepare to build their next generation of&amp;nbsp;applications and tools? Are you in the Tampa Bay area, or always wanted to live in a place you'd be evacuated from several times a year? Then &lt;a href="http://www.careerbuilder.com/JobSeeker/Jobs/GenericJobDetails.asp?did=J8C2GG79MCKZ6FY4QXP&amp;amp;strCrit=QID%3DA6651253960635%3Bst%3Da%3Buse%3DAll%3BCID%3D%3F%3BSID%3D%3F%3BTID%3D0%3BENR%3DNO%3BDTP%3DALL%3BYDI%3DYES%3BIND%3DAll%3BPDQ%3DAll%3BJN%3DAll%3BPOY%3DNO%3BETD%3DALL%3BRE%3DALL%3BMGT%3DDC%3BSUP%3DDC%3BFRE%3D30%3BHHName%3DAVI%3BCHL%3D%5FA%3BQS%3Dgen%5Fintranet%2Eaviinc%2Elocal%3BSS%3DNO&amp;amp;CiBookMark=1&amp;amp;HHName=AVI&amp;amp;LFCode="&gt;apply now&lt;/a&gt;&amp;nbsp;for the Applications Developer position available at &lt;a href="http://www.aviinc.com"&gt;Audio Visual Innovations, Inc.&lt;/a&gt;!&lt;/p&gt; &lt;p&gt;[Note: the position is incorrectly listed as being in Cleveland, OH right now. It is most definitely in Tampa, FL, and will be corrected on CareerBuilder soon.]&lt;/p&gt;</description><pubDate>Mon, 13 Sep 2004 18:58:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/228938</guid><category>.NET</category><category>Corporate Development</category></item><item><title>Two parts FlexWiki, one part reflection, shake vigorously...</title><link>http://weblogs.asp.net:80/rlaneve/67850</link><description>While working on the &lt;A href="http://www.flexwiki.com"&gt;FlexWiki&lt;/A&gt; project, I became interested in the feature suggestion known as &amp;#8220;Wiki Class Pages&amp;#8221;. The idea was to enable automatic generation of pages to document/discuss the classes/methods/etc... of a given assembly. Basically, you get online documentation combined with the commenting/discussion abilities of a wiki. This functionality is not quite complete - dare I say, nowhere near complete - but it's certainly at a point to start showing others and testing against various assemblies. The current implementation displays a class' or interface's public constructors, fields, properties and methods using reflection, which is then combined with the information in the XML documentation generated by the C# compiler. My &lt;A href="http://www.laneve.com/FlexWiki/"&gt;personal site&lt;/A&gt; has two assemblies being auto-documented: the FlexWiki engine itself and another GDN project called &amp;#8220;DotNETShipping&amp;#8221;. My real intent is to use this functionality on my internal development wiki where I work, but it may be useful for public projects such as those I just mentioned.</description><pubDate>Thu, 05 Feb 2004 06:50:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/67850</guid><category>.NET</category><category>Corporate Development</category></item><item><title>Made It!</title><link>http://weblogs.asp.net:80/rlaneve/33688</link><description>&lt;P&gt;After finding out LAX was closed this morning, we decided to drive from San Francisco instead of waiting around indefinitely. Turns out, it was a good choice. Four hours in the car and now we've arrived.&lt;/P&gt;
&lt;P&gt;More to come, I'm sure.&lt;/P&gt;</description><pubDate>Mon, 27 Oct 2003 01:42:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/33688</guid><category>PDC</category></item><item><title>PDC Session List - PDF</title><link>http://weblogs.asp.net:80/rlaneve/33340</link><description>&lt;P&gt;I believe Julia is travelling and didn't think she'd have a chance to update her PDF session list, so I went ahead and created a new PDF from my updated XML file. This one is only by timeslot, though - I didn't make one by track like &lt;A href="http://weblogs.asp.net/jlerman/posts/33237.aspx"&gt;she did&lt;/A&gt;. Maybe I'll get a chance on the flight out to San Francisco this evening.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.laneve.com/PDC_by_Timeslot.pdf"&gt;PDC Sessions by Timeslot (PDF)&lt;/A&gt;&lt;/P&gt;</description><pubDate>Fri, 24 Oct 2003 19:04:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/33340</guid></item><item><title>PDC Session List as XML - Updated</title><link>http://weblogs.asp.net:80/rlaneve/33297</link><description>My XML version of the PDC sessions list has been updated, and now includes Pre-Con sessions, BOF sessions and the panels on Thursday.&amp;nbsp;Get the updated file &lt;A href="http://www.laneve.com/PDCSessions.xml"&gt;here&lt;/A&gt;. (Hopefully, Julia will have a chance to update &lt;A href="http://weblogs.asp.net/jlerman/posts/33237.aspx"&gt;her PDF versions!&lt;/A&gt;)</description><pubDate>Fri, 24 Oct 2003 15:55:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/33297</guid></item><item><title>Job Opening - Tampa, FL</title><link>http://weblogs.asp.net:80/rlaneve/32787</link><description>&lt;P&gt;Ok, ok...I promised myself I wouldn't post anything other than .NET related information to this blog, but the job is certainly .NET related!&lt;/P&gt;
&lt;P&gt;I'm looking for an Applications Developer in the Tampa, FL area. Apply via CareerBuilder at the link below if you're interested, and feel free to contact me for me for more information.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.careerbuilder.com/JobSeeker/Jobs/JobDetails.asp?SiteID=cbdetshr&amp;amp;did=J357W6FQYG84X08R5L"&gt;http://www.careerbuilder.com/JobSeeker/Jobs/JobDetails.asp?SiteID=cbdetshr&amp;amp;did=J357W6FQYG84X08R5L&lt;/A&gt;&lt;/P&gt;</description><pubDate>Tue, 21 Oct 2003 14:58:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/32787</guid><category>.NET</category><category>Corporate Development</category></item><item><title>PDC Session List as XML</title><link>http://weblogs.asp.net:80/rlaneve/30758</link><description>For those of you wanting a better view of the PDC sessions list, &lt;A href="http://www.laneve.com/PDCSessions.xml"&gt;here's an XML file&lt;/A&gt; you can start with. Hopefully, someone will use it to generate the &amp;#8220;grid-style&amp;#8221; schedule many are wanting to see and share it with us all.</description><pubDate>Mon, 06 Oct 2003 20:02:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/30758</guid></item><item><title>MCSD.NET</title><link>http://weblogs.asp.net:80/rlaneve/29320</link><description>&lt;P&gt;In passed my fifth exam today, so now I can label myself an MCSD.NET! I hadn't really intended to take more than a single exam, but I found a momentum building after I got started.&lt;/P&gt;
&lt;P&gt;70-316 : Windows-based Applications with C#, taken on 8/29&lt;BR&gt;This one was first, and certainly the easiest for me.&lt;/P&gt;
&lt;P&gt;70-315 : Web Applications with C#, taken on 9/4&lt;BR&gt;This one wasn't much worse than the first, and certainly repeated quite a few questions relating to ADO.NET.&lt;/P&gt;
&lt;P&gt;70-320 : XML Web Services and Server Components with C#, taken on 9/9&lt;BR&gt;This one was a bit trickier, as I didn't have much experience with Remoting. Still not too bad, though, and again repeated several ADO.NET questions.&lt;/P&gt;
&lt;P&gt;70-229 : Designing and Implementing Databases with SQL Server 2000, taken on 9/18&lt;BR&gt;No problems here. I've been using SQL Server for 5+ years, so other than brushing up on a few things I don't use daily there were no issues.&lt;/P&gt;
&lt;P&gt;70-300 : Analyzing Requirements and Defining .NET Solution Architectures, taken on 9/26&lt;BR&gt;This one scared me a bit. The change in exam format and question/answer styles made me nervous. Fortunately, this one still used the older style scoring format of a simple &amp;#8220;pass/fail&amp;#8221;. I don't think I want to know my actual score on this one!&lt;/P&gt;
&lt;P&gt;To anyone considering taking some or all of these exams, I would definitely recommend scheduling them in the order you feel most confident of passing. Some might say it's better to get the tougher ones out of the way first, but I'm in the camp who thinks it's better to build-up your confidence as you progress into more difficult territory.&lt;/P&gt;</description><pubDate>Fri, 26 Sep 2003 20:19:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/29320</guid></item><item><title>Blogs All Around</title><link>http://weblogs.asp.net:80/rlaneve/23107</link><description>My co-worker and I finally had a few minutes to take a look at the .Text source a couple of days ago. Once we had it installed and running (very easy, btw), we started looking at what we would need to change in order to make it useable in our environment. The first thing was the need to login. All of our internal sites use integrated Windows authentication - no one gets prompted for credentials unless it's a highly sensitive app and even then the prompt is for their standard network info, not an app specific ID and password. When it was all said and done, it took us about an hour and only a few small changes among only a few files. The architecture is very straight forward and was quite easy to follow. We setup .Text in the mult-blog format using virtual folders, and each of our blogs is setup as our network ID (e.g., mine would be weblogs.aviinc.local/rlaneve). With our changes in place, no one ever sees a login control but when I go to my blog - and my blog only - I automatically see the “admin“ link. So far so good!</description><pubDate>Fri, 08 Aug 2003 02:20:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/23107</guid><category>.NET</category><category>Corporate Development</category></item><item><title>nDoc 1.2 is out</title><link>http://weblogs.asp.net:80/rlaneve/22022</link><description>&lt;p&gt;Someone probably caught this before me, but if anyone else missed it nDoc 1.2 (final) was released on the 27th.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ndoc.sourceforge.net"&gt;Go grab it!&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 31 Jul 2003 02:32:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/22022</guid><category>.NET</category><category>VS.NET</category></item><item><title>Custom Projects / Project Items</title><link>http://weblogs.asp.net:80/rlaneve/21620</link><description>&lt;p&gt;I'm always looking for ways to save a bit of time or monotony when it comes to writing code in the office. The majority of our projects are typical corporate apps (read: &lt;strong&gt;boring as h*ll&lt;/strong&gt;), so any little trick that can save me a few minutes and get me on to more interesting tasks quicker is welcome. With that in mind, I began looking at code templates, customizing project items, etc, etc... some time ago. Initially, I was looking for a way to add a custom project item which would add a strongly-typed collection to the current project. I was working on a project that had quite a few collection classes, and re-writing the same code over and over was groing tiring. Sure, it's not complex code, but there had to be a better way. I'm not much for code generators - I'm extremely picky about the end-result of such systems - and at the time (over a year ago) I wasn't aware of any add-ins that could help me in my quest. With a little help from an article by Chris Sells, I was able to get my custom item added to the “Add New Item” dialogue in VS.NET, complete with an HTML-based GUI allowing me to specify the contained class name, the collection class name, whether I wanted the collection to be read-only and a couple of other options. A few key-strokes and a couple of check-box selections later and my strongly-typed collection was added to my project. All in all, I was pleased. Heck, it even had our corporate logo at the top of the GUI.&lt;/p&gt;
&lt;p&gt;This evening, I've spent a few hours exploring another type of customization: custom projects. I wanted the ability to click “New Project”, select “Windows Form (AVI)” from the list and have a project generated with a few extra files, a few extra default references and a few settings different than the standard “Windows Form” project. I considered using my previously gained knowledge of the VS.NET projects/items system to just alter the standard “Windows Form” project, but I don't really like doing such things. I did it with the ST Collection wizard I described above and had to “re-do” it when VS.NET 2003 came out (and even lost the customization once when I hosed VS.NET 2002 and had to re-install, forgetting to save my customizations first). So, I started digging. Turns out, it's not that hard.&lt;/p&gt;
&lt;p&gt;Adding a sub-key to HKLM\SOFTWARE\Microsoft\VisualStudio\7.1\NewProjectTemplates\TemplateDirs\{FAE04EC1-301F-11D3-BF4B-00C04F79EFBC} got me a new “Project Types” entry shown when “New Project” is selected in VS.NET. I pointed the key's “TemplatesDir” value to a folder of my choosing where I could store my project wizards so I don't have to worry about losing them. I copied the existing “CSharpEXE.vsz“ file and the “CSharpEXEWiz“ folder into my custom folder and then tweaked the vsz file to point to the location of my “CSharpEXEWiz“ folder. This one required the path to be relative to VS.NET's original path, but the error displayed when it didn't work initially was sufficient to figure out what was going on. Getting custom project items listed was pretty much the same process. First, a new sub-key was added to HKLM\SOFTWARE\Microsoft\VisualStudio\7.1\Projects\{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\AddItemTemplates\TemplateDirs\{FAE04EC1-301F-11D3-BF4B-00C04F79EFBC}, with it's name matching the previously added sub-key (”/2” for both in my case). Again, I set the “TemplatesDir” value to another folder of my choosing. Next, I copied the contents of the existing “CSharpProjectItems” folder within the VS.NET folder hierarchy into my custom folder, along with the “CSharpAddClassWiz“ folder. Again, I tweaked a vsz file - this time the “CSharpAddClassWiz.vsz” file - to point to my customized “CSharpAddClassWiz” folder. That's about it!&lt;/p&gt;
&lt;p&gt;So now, we can go into VS.NET and, after clicking “New Project”, we will see an “AVI Projects” folder with a “Windows Forms” option (only one for now - probably do a  custom “Class Library” option tomorrow). Starting from that project instead of the default gets us a customized app.config file, a customized AssemblyInfo.cs file, additional “using“ statements and additional references already added. After that, when clicking “Project | Add New Item...” we're greeted by an “AVI Project Items” folder with our customized options available (such as “Class”, which has our standard “using” statements already added, our standard “regions” defined, etc, etc...). I've left out a few of the details on how this is all done, but anyone who's interested is welcome to ask for help. And anyone who's done some customizations like this, let me know about your own experiences.&lt;/p&gt;</description><pubDate>Tue, 29 Jul 2003 05:26:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/21620</guid><category>Corporate Development</category><category>VS.NET</category></item><item><title>.Text - Wow!</title><link>http://weblogs.asp.net:80/rlaneve/21614</link><description>Well done Scott! Clean, stylish, great features - a real winner of an upgrade. Keep up the great work.</description><pubDate>Tue, 29 Jul 2003 04:35:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/21614</guid><category>.NET</category></item><item><title>Vault: A bit slow?</title><link>http://weblogs.asp.net:80/rlaneve/10135</link><description>&lt;p&gt;I hate to be the only one with a negative post regarding SourceGear's Vault, but here goes...&lt;/p&gt;
&lt;p&gt;About a year ago I first came across the Vault product from SourceGear. I had been looking at their SourceOffsite product, and their site had information regarding their upcoming VSS replacement product. We were using VSS at the time, and desperately needed something that worked better over remote connections. Even with cable/dsl modems, VSS just wasn't cutting it. Unfortunately, Vault wasn't quite ready when we made a decision and we wound up going with QSC's Team Coherence (which, by they way, is certainly a good system and has met most of our needs, not to mention QSC's &lt;strong&gt;excellent&lt;/strong&gt; customer support). Like many posting on their blogs recently, I decided to take another look at Vault. Maybe it's just me, but I don't see how I could deal with it on a regular basis.&lt;/p&gt;
&lt;p&gt;After installing the system entirely on my dev workstation - a beefy desktop that already had IIS and SQL Server setup and working - I proceeded to add a small project into Vault as a test. This project was made up of no more than 20 files, all of which were less than 5KB in size. The process was slow. Don't get me wrong, it wasn't unbearable or anything. However, it was without a doubt slower than any other source control system I had ever used. Checking out a single file followed by an immediate check-in also felt slow. I assume this is attributed to the design: the GUI passes the file off to a web-service (which, in my opinion, is always a relatively sluggish technology) running in IIS, which then passes it off to the SQL database. I felt fairly confident that performance would not degrade in a remote scenario, though I did not test this. However, am I really willing to deal with a system that feels "sluggish" during 85% of the time I use it (in the office) just to have decent performance the other 15% of the time (remote)? I don't think so.&lt;/p&gt;
&lt;p&gt;So...I'll stick with Team Coherence, which was designed to work over TCP/IP and thus performs very well in remote scenarios (and, btw, costs less), hope they add the features I'm missing soon enough, and resign myself to &lt;strong&gt;not&lt;/strong&gt; using the "latest-and-greatest" built on the platform I build my own systems upon, using the same tools I use myself. I wanted to like it - I really, really did.&lt;/p&gt;</description><pubDate>Wed, 16 Jul 2003 01:34:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/10135</guid><category>Corporate Development</category><category>VS.NET</category></item><item><title>Revisioning DB-related Objects: Is it just us?</title><link>http://weblogs.asp.net:80/rlaneve/9841</link><description>&lt;p&gt;Why do we have such a difficult time keeping our database object code under source control and in-sync with what's in production? We've gone through several "policy &amp;amp; procedure" phases already, and not one of them has stuck. They're either too involved, or provide too little benefit to warrant spending any time dealing with. Granted, I'm willing to bet it's just us - we're just being lazy; not granting the db object code the proper "weight"; not treating it as we do standard source code files (C# and the like). Maybe it's because we use completely different tools to manage one type versus the other. We use VS.NET for the "standard" code, and it integrates tightly with our source control system. However, we use a combination of Enterprise Manager and Query Analyzer to work with SQL Server, and it - in no way - integrates with our source control system. True, we could use VS.NET for most of the db-related changes and we've actually tried to on a couple of occassions. But, it just doesn't "feel" right. Are we crazy? Are we just too used to EM and QA? Is everyone else switching to VS.NET for db-related changes?&lt;/p&gt;
&lt;p&gt;Please, feel free to comment on your methods of handling your db objects with regard to source control.&lt;/p&gt;</description><pubDate>Wed, 09 Jul 2003 05:27:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/9841</guid><category>Corporate Development</category></item><item><title>Down with .netSHIP!</title><link>http://weblogs.asp.net:80/rlaneve/9458</link><description>&lt;p&gt;Recently, after reading a &lt;a title="Robert McLaws on .netSHIP - comments from others" href="http://weblogs.asp.net/rmclaws/posts/8543.aspx"&gt;few&lt;/a&gt; &lt;a title="Robert McLaws on .netSHIP" href="http://weblogs.asp.net/rmclaws/posts/8683.aspx"&gt;posts&lt;/a&gt; from other developers, I setup a &lt;a title="GotDotNet Workspace for .NETShipping" href="http://www.gotdotnet.com/community/workspaces/workspace.aspx?id=29bbb7fe-2d18-4f82-a273-9445b978d1bf"&gt;GotDotNet Workspace&lt;/a&gt; to make available the beginnings of an alternative assembly for retreiving quotes for shipping from the major providers. It seems I wasn't the only one seriously disappointed by &lt;a href="http://www.dotnetship.com/"&gt;.netSHIP&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The assembly being developed is certainly not complete, but we've got basic support for retreiving quotes from FedEx, UPS and Airborne Express. Come on over and &lt;a title="GotDotNet Workspace - .NETShipping" href="http://www.gotdotnet.com/community/workspaces/workspace.aspx?id=29bbb7fe-2d18-4f82-a273-9445b978d1bf"&gt;join us&lt;/a&gt;!&lt;/p&gt;</description><pubDate>Mon, 30 Jun 2003 03:51:00 GMT</pubDate><guid isPermaLink="true">http://weblogs.asp.net:80/rlaneve/9458</guid><category>.NET</category></item></channel></rss>