<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-7381005905981728940</atom:id><lastBuildDate>Sat, 01 May 2010 22:28:56 +0000</lastBuildDate><title>Steve Bodnar's WebLog</title><description></description><link>http://www.geeksandgurus.com/blogs/sjb/</link><managingEditor>noreply@blogger.com (Steve Bodnar)</managingEditor><generator>Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-4469249077599079082</guid><pubDate>Sat, 01 May 2010 22:28:00 +0000</pubDate><atom:updated>2010-05-01T18:28:56.626-04:00</atom:updated><title>This blog has moved</title><description>&lt;br /&gt;       This blog is now located at http://blog.geeksandgurus.com/.&lt;br /&gt;       You will be automatically redirected in 30 seconds, or you may click &lt;a href='http://blog.geeksandgurus.com/'&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;       For feed subscribers, please update your feed subscriptions to&lt;br /&gt;       http://blog.geeksandgurus.com/feeds/posts/default.&lt;br /&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-4469249077599079082?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2010/05/this-blog-has-moved.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-1598468660814835265</guid><pubDate>Tue, 10 Mar 2009 22:14:00 +0000</pubDate><atom:updated>2009-03-10T18:35:44.546-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Microsoft Update</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET Development Server</category><category domain='http://www.blogger.com/atom/ns#'>Windows Defender</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>Did Windows Defender break ASP.NET Development Server?</title><description>I was maintaining a ASP.NET application late yesterday and made good progress down my to-do list.  My eyes were getting tired, so I decided to bump up the fonts in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;IDE&lt;/span&gt;.  I'd never done this in Visual Studio so it took me a few minutes to find the right place to make changes.  In the process I discovered a ton of other options and probably spent 1/2 an hour just looking through all the things I could customize.  Eventually I went back to work and was ready to test the site.    I pressed F5 and the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;dev&lt;/span&gt;-web-server fired up like always but then... nothing.  Empty browser.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The app built just fine, I hadn't made any changes to any of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;config&lt;/span&gt; files and the last round of untested code changes were minor.  I couldn't imagine how, but I figured I must have done &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;something&lt;/span&gt; in some option somewhere that hosed me up.  I looked at everything and set it back - even the fonts.  No go.  I decided that I got myself into trouble because it was too late so I called it a night.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The break of dawn didn't help.  I searched all over the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;Internet&lt;/span&gt; and tried a dozen things including completely &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;uninstalling&lt;/span&gt; and reinstalling Visual Studio since at least one other person solved a similar problem this way.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I must confess that I did see the solution earlier in the day, but couldn't imagine it was the solution so I ignored it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This evening I saw that same solution again on &lt;a href="http://www.experts-exchange.com/Microsoft/Development/Q-24215726-5318.html"&gt;Experts Exchange&lt;/a&gt;.  It caught my attention this time because the thread was from &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;today&lt;/span&gt; and referenced some of the same windows updates that I had noticed.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Windows Defender installed an update yesterday that appears to have caused this problem.  Even after disabling Windows Defender the web server would not work.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the end it was as simple as firing up notepad (as administrator) and editing the hosts file.  (C:\Windows\System32\drivers\etc\hosts)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mine was vanilla as installed by Microsoft when I installed Vista last summer.  There was only one line in it:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;::1&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;localhost&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;This line is &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;apparently&lt;/span&gt; for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;IPv&lt;/span&gt;6 and hasn't caused any trouble in over 6 months.  Based on the Experts Exchange recommendation (which matched one I saw earlier)  I changed it to the standard &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;127.0.0.1&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;localhost&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and just like that all is good in my world again.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks, Microsoft!  I'm almost back where I was 24 hours ago.  ;-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(In hindsight, I really should have tried the System Restore I was considering last night.  What on earth was I thinking.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-1598468660814835265?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2009/03/did-windows-defender-break-aspnet.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-872454285867680407</guid><pubDate>Tue, 10 Mar 2009 14:31:00 +0000</pubDate><atom:updated>2009-03-10T18:13:36.860-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>MVC</category><category domain='http://www.blogger.com/atom/ns#'>Visual Studio 2008</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET MVC</category><title>How to change the default browser in Visual Studio 2008 with ASP.NET MVC apps</title><description>This is the third time I've had to figure this out and it doesn't seem to be posted anywhere so I thought I'd post it myself for the next time I need to find it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You'll find many tips that say "right click on any .aspx page" in solution explorer and chose "browse with"...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As it turns out, that doesn't work in a MVC project.  If you right click on any page other than default.aspx you will not get the "browse with" option.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, when working on an ASP.NET MVC application, right click on default.aspx and chose "Browse With..."  Then you'll get a dialog that will allow you to change your default browser.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-872454285867680407?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2009/03/how-to-change-default-browser-in-visual.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-8087298593352880159</guid><pubDate>Sat, 01 Nov 2008 14:10:00 +0000</pubDate><atom:updated>2008-11-01T10:44:44.938-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Fun</category><title>Pass the blame around</title><description>Have you ever wondered who was to blame? Have you ever felt like things would be &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;OK&lt;/span&gt; if you just knew who to blame? Have you ever needed to pass the blame? Well, thanks to the latest technology, you can just Blame it on Rick.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blameitonrick.com/"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 106px; TEXT-ALIGN: center" alt="" src="http://www.geeksandgurus.com/blogs/sjb/uploaded_images/BlameItOnRick-774008.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.blameitonrick.com/"&gt;http://www.blameitonrick.com/&lt;/a&gt; has come to the rescue. Just launched yesterday, this brilliant, cutting edge, highly innovative Web site lets you blame anything you want on Rick. The site handles Business, Personal and Volunteer issues with equal dexterity.&lt;br /&gt;&lt;br /&gt;The best thing is that using Blame it on Rick &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;yields&lt;/span&gt; the same exact results as in real life - &lt;strong&gt;nothing&lt;/strong&gt;! Sure, you can feel better knowing that someone else has the blame; but otherwise, the issues remain unchanged.&lt;br /&gt;&lt;br /&gt;The only downside is that the site seems to be processing things a bit slowly. (And when you need someone to blame, results just can't come fast enough.)&lt;br /&gt;&lt;br /&gt;Once you submit the blame, you'll get your request number. If you jot it down, you can check on the status of your blame request using the simple intuitive Status feature.&lt;br /&gt;&lt;br /&gt;The site has accepted over 3000 requests for blame, but is currently processing request number 629. (It must be a very difficult request, it has been in process for hours!) Be patient though, and you can feel comfortable knowing someone else is to blame.&lt;br /&gt;&lt;br /&gt;I expect that in the future, the site might offer some deep analytical reporting of important key social metrics, like Who does the most finger pointing, and for what issues are people least likely to accept &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;responsibility&lt;/span&gt;.  I'd also like to see stats like &lt;span class="Apple-style-span" style="font-style: italic;"&gt;blames resolved per hour&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-style: italic;"&gt;longest blame resolution&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-style: italic;"&gt;shortest blame resolution&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Just wait until the politicians find this site!&lt;br /&gt;&lt;br /&gt;:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-8087298593352880159?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2008/11/pass-blame-around.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-5364951786684113987</guid><pubDate>Fri, 31 Oct 2008 01:42:00 +0000</pubDate><atom:updated>2008-10-30T21:43:17.757-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>swfox</category><category domain='http://www.blogger.com/atom/ns#'>VFP</category><title>Alan Stevens - Manage Complexity with Agility</title><description>This session rocked!&lt;br /&gt;&lt;br /&gt;Alan started out by pointing out that he is not an expert, just an enthusiast. His enthusiasm was self-evident and contagious.&lt;br /&gt;&lt;br /&gt;He said that this session is about what has worked for him and encouraged us to avoid dogma and take what works for each of us.&lt;br /&gt;&lt;br /&gt;The following are my key take-aways from Alan's session:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Iterations&lt;/strong&gt;&lt;br /&gt;Iterations are about putting a heartbeat to your practice and about creating a constant velocity. (Don’t push out a whole bunch of stuff one month and nothing the next. ) These are great things to keep in mind. Here I am writing this weeks later realizing just how much I need to put this into practice.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Alan's Law&lt;/strong&gt;&lt;br /&gt;“Heroism is Failure” If you have to be a hero on a regular basis, something else is broken.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Short Horizon&lt;/strong&gt;&lt;br /&gt;If you're working with regular 2 or 4 week iterations, you have an emotional advantage: You know what you’re dealing with. If you're coding for months on end with no iterations, you can feel lost. Also, it gives you the chance for &lt;strong&gt;Frequent Course Corrections. &lt;/strong&gt;Two to four weeks worth of “wrong work” is easier to correct than 6-9 months.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;User Stories&lt;br /&gt;&lt;/strong&gt;Alan emphasized two points. First, user stories are Users' Goals in Users' Terms. They are not technical requirements. They are not about software or technology. They are the essence of the value they need us to deliver.&lt;br /&gt;&lt;br /&gt;For developers, it is a reminder of a future conversation – a to-do list.&lt;br /&gt;&lt;br /&gt;Alan also suggested the following user stories template:&lt;br /&gt;As a : (Role)&lt;br /&gt;I want (something)&lt;br /&gt;So that (benefit)&lt;br /&gt;&lt;br /&gt;User stories allow us to avoid BDUF – Big Design Up Front.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Last Responsible Moment&lt;/strong&gt;&lt;br /&gt;Defer decisions until the last responsible moment because that is when we have the most information. Don’t pretend you know things you don’t.&lt;br /&gt;&lt;br /&gt;The next portion of Alan's session covered testing and dependency injection and he showed FoxUnit and FoxMock. I saw Alan cover these topics in very good detail last year at Southwest Fox and FoxForward.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Refactoring&lt;/strong&gt;&lt;br /&gt;Alan started his discussion of refactoring by asking "if" we refactor and what we do when we refactor. It seemed that the audience had a pretty good handle on refactoring. Alan reviewed some common elements of refactoring such as Code Smells. (a hint that something might be wrong in the code)&lt;br /&gt;&lt;br /&gt;Alan made the point that you should Enable Change – if you’re afraid to change a piece of code, that’s a smell.&lt;br /&gt;&lt;br /&gt;I jotted down a few additional quotes that I thought were worth sharing:&lt;br /&gt;&lt;br /&gt;Work on your business not just in your business. - Michael Gerber&lt;br /&gt;Value Developer Cycles over CPU cycles&lt;br /&gt;Eliminate Waste&lt;br /&gt;Prevention is the best cure.&lt;br /&gt;Avoid Complacency&lt;br /&gt;&lt;br /&gt;Finally Alan recommended a couple books that I need to add to my reading list:&lt;br /&gt;&lt;a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/"&gt;The Pragmatic Programmer&lt;/a&gt; – Andrew Hunt and Dave Thomas&lt;br /&gt;&lt;a href="http://www.amazon.com/Goal-Process-Ongoing-Improvement/dp/0884271781/"&gt;The Goal &lt;/a&gt;– Eliyahu M. Goldratt and Jeff Cox&lt;br /&gt;&lt;br /&gt;This was one of the best sessions at Southwest Fox this year. I mentioned to Alan that I didn't think he needed to show any code and he countered that it is really important to show people how to test - that talking about it isn't enough. He's probably right about that.&lt;br /&gt;&lt;br /&gt;What this session did for me was to help me focus on the bigger picture of best practices. There was a communal enthusiasm in this session - we all wanted to go out and code better, immediately.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-5364951786684113987?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2008/10/alan-stevens-manage-complexity-with.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-4144342328168267736</guid><pubDate>Sun, 19 Oct 2008 17:14:00 +0000</pubDate><atom:updated>2008-10-19T14:24:08.894-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>swfox</category><category domain='http://www.blogger.com/atom/ns#'>VFP</category><title>Toni Feltman - Square Peg, Round Hole - Retrofitting Client Server Data Access into Legacy FoxPro Applications</title><description>Toni started by letting us know that this session was for people working with VFP apps (not 2.x apps) that need to move from a VFP back end to some other back-end, such as SQL Server, Oracle or any other back-end.&lt;br /&gt;&lt;br /&gt;Toni pointed out that it is important to &lt;strong&gt;set goals&lt;/strong&gt;.  Up front, the team needs to agree on why you're changing back-ends, what you hope to achieve, and a  timeline - taking into account things that are likely to cause you trouble.&lt;br /&gt;&lt;br /&gt;Toni suggested that once you pick your data source (And It think maybe even as part of the decision making process) you should become well versed in the tools that you'll be able to use to manage and manipulate your new data source.&lt;br /&gt;&lt;br /&gt;Related to that, Toni strongly suggested hiring an expert to get your new database up, running and properly configured.  I think this is good advice as even after working with SQL Server for six years I know next to nothing about proper configuration or performance tweaking.&lt;br /&gt;&lt;br /&gt;Next, Toni discussed the issue of actually moving the data.  She discussed the various approaches of moving or converting the data such as VFP's Upsizing Wizard.  (This was mentioned twice this week as being a good tool for moving data from VFP to SQL Server.  Toni mentioned that several of the third party tools can convert data much faster than a custom-written VFP app.  I didn't realize this and I hope I remember it on my next conversation.  We've had several in the past that were very time consuming.&lt;br /&gt;&lt;br /&gt;Toni also pointed out that this is the time to decide whether or not to redesign the database.  She correctly points out that we rarely design a database correctly the first time, nor is it likely that changes applied to our databases have been done according the best practices.  If you have a reasonable timeline, this should be considered an opportunity to redesign your database.  If you're on a short timeline, you're likely to need to create an identical design in the new back-end.&lt;br /&gt;&lt;br /&gt;Toni reviewed the different approaches we can take to access our new back end such as Remote Views, Cursor Adapters, SPT, and Stored Procedures.  She walked us through code examples all but Stored Procedures.&lt;br /&gt;&lt;br /&gt;Toni suggested several approaches for getting reacquainted with our legacy code so that we can look for the things that will need to change for the new back end. &lt;br /&gt;&lt;br /&gt;Perhaps one of the most important issues Toni raised was that you must have a reproducible process for data conversion.  You're going to need to convert over and over as you retrofit your code.  You'll need to be able to get clean, live, production data into your new back-end on a regular basis.  This is something I also learned from working with Rick Schummer and Steve Sawyer and I couldn't agree more.  Nearly every application we develop starts with writing a conversion routine.&lt;br /&gt;&lt;br /&gt;Toni wisely instructed us to make sure you can completely disconnect from Production Data – hard coded paths and things like that can really bite you. Toni suggested setting up a virtual machine without a connection to the network drives. &lt;br /&gt;&lt;br /&gt;Then, Toni suggesting reviewing you code for commands that are specific to you old style of data access such as USE and SET ORDER.  (Using Andrew MacNeill's &lt;a href="http://www.codeplex.com/VFPX/Wiki/View.aspx?title=Code%20Analyst&amp;amp;referringTitle=Home"&gt;Code Analyst&lt;/a&gt; from &lt;a href="http://www.codeplex.com/VFPX"&gt;VFPX &lt;/a&gt;will probably make this a breeze.)&lt;br /&gt;&lt;br /&gt;Toni also discussed the very important issues relating to how different back-ends store data differently than VFP, particularly when dealing with NULLs, empty strings, logical, (and I'd offer dates, too.)  I have to admit, that I've changed code to handle these issues instead of taking Toni's much smarter approach of creating a library of methods to handle this data once instead of each time you come across it in your code.  (I think her approach would also make it easier for you to retrofit a vertical market app for multiple back-ends.)&lt;br /&gt;&lt;br /&gt;Toni also mentioned that you should start testing right-away - as soon as you have something to test.  This will help to uncover problems earlier in the process instead of later when it will be more costly to address.&lt;br /&gt;&lt;br /&gt;She also suggested that you should really try to avoid new development during this process.  Adding new features should be pushed off until after the migration is successful.&lt;br /&gt;&lt;br /&gt;As usual, Toni gave a well prepared and well presented session with great ideas.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.swfox.net" target="_blank"&gt;&lt;img src="http://www.swfox.net/images/SWFoxPortrait2008.gif" width="95" height="125" border="0" alt="Southwest Fox 2008, Mesa, AZ, October 16 - 19, 2008"/&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-4144342328168267736?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2008/10/toni-feltman-square-peg-round-hole.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-4529674894428911924</guid><pubDate>Fri, 17 Oct 2008 22:05:00 +0000</pubDate><atom:updated>2008-10-17T18:13:12.189-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>swfox</category><category domain='http://www.blogger.com/atom/ns#'>VFP</category><title>Soutwest Fox - Day 1</title><description>I've been taking detailed notes in each session and will be blogging soon about the sessions I've attended today.  Overall, they have been top notch.  I had hoped to have a little more of a live stream of posts, but the content has been pretty think so I've only had time to take notes, not make them web-ready.&lt;br /&gt;&lt;br /&gt;So far the highlight for me has been Alan Stevens' session, Manage Complexity with Agility.&lt;br /&gt;&lt;br /&gt;One overall positive comment:  Each room has giant screens and each projector is set to use the full screen.  I've been sitting in the back row for some sessions (to get power) and I've been able to see every line of code shown.  This conference is doing this better than any conference I can remember in recent history.  Because the screens are so large, some of the slides and windows have been down below the horizon of people in chairs.   Usually the speakers remember to move thing up to the top.&lt;br /&gt;&lt;br /&gt;Two more sessions to go and then perhaps some time to post some content-filled updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-4529674894428911924?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2008/10/soutwest-fox-day-1.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-9138128563151635732</guid><pubDate>Fri, 17 Oct 2008 04:02:00 +0000</pubDate><atom:updated>2008-10-17T00:05:38.352-04:00</atom:updated><title>Southwest Fox Keynote Video</title><description>The Southwest Fox Keynote video is posted here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ustream.tv/channel/swfoxtv"&gt;http://www.ustream.tv/channel/swfoxtv&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;scroll down past the bug SWFoxTV box and you'll see "geekgatherings's Video Clips" and you can watch it there.&lt;br /&gt;&lt;br /&gt;Tune in again tomorrow night.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-9138128563151635732?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2008/10/southwest-fox-keynote-video.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-8520662639678373485</guid><pubDate>Fri, 17 Oct 2008 01:41:00 +0000</pubDate><atom:updated>2008-10-16T21:43:42.516-04:00</atom:updated><title>Southwest Fox Live at 10:00 PM Eastern</title><description>Just a reminder, we're broadcasting live in about 15 minutes.  (Now actually.)&lt;br /&gt;&lt;br /&gt;http://www.ustream.tv/channel/swfoxtv&lt;br /&gt;&lt;br /&gt;Tune in now!&lt;br /&gt;&lt;br /&gt;We'll also save a copy for viewing at a later time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-8520662639678373485?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2008/10/southwest-fox-live-at-1000-pm-eastern.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-1530439428356392005</guid><pubDate>Thu, 16 Oct 2008 21:18:00 +0000</pubDate><atom:updated>2008-10-16T19:25:59.036-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>swfox</category><category domain='http://www.blogger.com/atom/ns#'>VFP</category><category domain='http://www.blogger.com/atom/ns#'>travel</category><title>On the way to Southwest Fox</title><description>I’m on a plane heading to Phoenix for Southwest Fox and I can’t wait to get there. I’&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ve&lt;/span&gt; been so busy lately that I haven’t even really had time to look at the session schedule let alone the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;downloadable&lt;/span&gt; materials.&lt;br /&gt;&lt;br /&gt;There are so many promising sessions it will be hard to decide which session to see during some of the time slots.&lt;br /&gt;&lt;br /&gt;I’m particularly interested in Doug &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Hennig&lt;/span&gt;’s session, Creating &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Exlporer&lt;/span&gt; Interfaces in Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;FoxPro&lt;/span&gt;. I had just starting playing with the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;DBI&lt;/span&gt; controls that came with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Sedna&lt;/span&gt; the day before Doug posted his excellent teaser video for this session.. The video convinced me to stop playing around and wait for Doug’s session. This could be one of the many sessions that “pays for the conference” for me.&lt;br /&gt;&lt;br /&gt;I’m also interested in several sessions that have received great reviews at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;DAFUG&lt;/span&gt;. Perhaps the thing I miss most from Michigan is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;DAFUG&lt;/span&gt;. I’&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;ve&lt;/span&gt; missed rehearsals of at least three sessions that I want to see in Mesa.&lt;br /&gt;&lt;br /&gt;Cathy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Pountney&lt;/span&gt;’s Customizing your vertical market Application got great reviews and although I don’t currently have a vertical market app, there is potential and I’m really anxious to see this session.&lt;br /&gt;&lt;br /&gt;I’&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;ve&lt;/span&gt; also heard great things about Toni &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Feltman&lt;/span&gt;’s Square Peg, Round Hole – Retrofitting Client Server Data Access into Legacy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;FoxPro&lt;/span&gt; Applications. All the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;VFP&lt;/span&gt; apps I’m working on now have a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;SQL&lt;/span&gt; Server &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;back end&lt;/span&gt;, but I’m expecting that there will be an increasing number of opportunities to retrofit legacy apps and I’d like to get as many tips and tricks into my arsenal to better prepare me for such opportunities.&lt;br /&gt;&lt;br /&gt;I also want to see the session that Rick &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;Schummer&lt;/span&gt; just rehearsed at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;DAFUG&lt;/span&gt; last week.&lt;br /&gt;&lt;br /&gt;After seeing Alan Steven’s great session on TDD last year, I’m really looking forward to both Ignorance is Bliss: Why you don’t need to know where your data is stored and Manage Complexity with Agility. Following him on his blog and twitter over the last year has certainly shown that he is passionate about these issues.&lt;br /&gt;&lt;br /&gt;There are also sessions by Rick &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;Strahl&lt;/span&gt;, Rick &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;Borup&lt;/span&gt; and Barbara &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;Peisch&lt;/span&gt;, Craig Boyd, Andrew &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;MacNeil&lt;/span&gt; and Mike &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Feltman&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;There are also several sessions which are aimed at beginners and others that I’&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;ve&lt;/span&gt; seen before (or seen something similar before) that I’d attend this time if I could squeeze them in. Watching Andy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;Kramek&lt;/span&gt; talk about Working with Objects in Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;FoxPro&lt;/span&gt; would certainly yield something new or clarifying for me. Barbara’s session on Understanding scope and Mike &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;Feltman's&lt;/span&gt; session on Collections Arrays and Iteration would do the same.&lt;br /&gt;&lt;br /&gt;I’m not sure how I’ll squeeze them all in, but I’m really looking forward to trying.&lt;br /&gt;As a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_28"&gt;side note&lt;/span&gt;, this is the first flight I’&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;ve&lt;/span&gt; taken with an MP3 player full of music. What a difference that makes! I downloaded several &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;podcasts&lt;/span&gt; from &lt;a href="http://www.bandsundertheradar.com/"&gt;http://www.bandsundertheradar.com/&lt;/a&gt; and have listened to the first 3 (from 2004/2005) and have really enjoyed most of the music included.) I haven’t listened to a flight full of music since my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;walkman&lt;/span&gt; days in the 80’s. What a difference it makes on a longer flight!&lt;br /&gt;&lt;br /&gt;I’m looking forward to getting on the ground and getting set up to stream the keynote tonight.&lt;br /&gt;I’ll be posting here more as I work my way through the conference and I’ll likely be hitting twitter a bit &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_32"&gt;throughout&lt;/span&gt; the conference as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-1530439428356392005?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2008/10/on-way-to-southwest-fox.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-3708945330776687791</guid><pubDate>Fri, 26 Sep 2008 14:53:00 +0000</pubDate><atom:updated>2008-09-26T11:18:08.332-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>PDF</category><category domain='http://www.blogger.com/atom/ns#'>Office 2007</category><title>Office 2007 - PDF output</title><description>In April, DJ and I supported The Wallace Foundation Annual Arts Grantee Conference in San Francisco. Our primary role was to make sure all the presenters were able to get their presentations running on rented equipment. In the process we learned a lot about what Arts organizations are doing to attract and retain audiences - particularly families with young children.&lt;br /&gt;&lt;br /&gt;As always happens when working with any other person that uses technology, I learned something from one of the presenters. They had submitted their slides as PDF which was unusual, but I didn't think anything of it - until it was time to prep the machines. They hadn't provided any PowerPoint files.&lt;br /&gt;&lt;br /&gt;On the day that team of presenters was setting up we asked for their slides and they offered that they had already sent us a PDF. After some discussion, we learned two things: 1. The slides worked as a PDF just as in PowerPoint. 2. PowerPoint 2007 had a feature to export to PDF. This was very cool because they had used some cool fonts that were not installed on presentation machines, yet showed perfectly in the PDF slides. (We had earlier in the day had to work with a speaker whose slides were, uh, messed up, because the fonts they used were not on the presentation machines and therefore the slides looked really bad.)&lt;br /&gt;&lt;br /&gt;I bring this up today, because I have just finally moved to Vista and Office 2007. I had been using Adobe Acrobat and PDF Complete over the years to generate PDFs and I wasn't really happy with either of them. Also, I just learned about the free &lt;a href="http://www.foxitsoftware.com/"&gt;FoxIt PDF Reader &lt;/a&gt;which loads lightning fast compared to Acrobat Reader. So I decided I wasn't going to load Acrobat Professional this time around. Instead, I loaded FoxIt as the reader and I found that Microsoft offers an optional tool to generate PDFs from within Office 2007 Applications. You can get it &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=4D951911-3E7E-4AE6-B059-A2E79ED87041&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've only used it once so far, and it seems pretty fast. I'll play around with it more over the next few days and see if it is really a good option.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-3708945330776687791?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2008/09/office-2007-pdf-output.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-6765545333841795152</guid><pubDate>Tue, 22 Jul 2008 00:52:00 +0000</pubDate><atom:updated>2008-07-21T21:47:12.525-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>The Move</category><category domain='http://www.blogger.com/atom/ns#'>active directory</category><category domain='http://www.blogger.com/atom/ns#'>sql server</category><category domain='http://www.blogger.com/atom/ns#'>office accounting</category><category domain='http://www.blogger.com/atom/ns#'>vpn</category><category domain='http://www.blogger.com/atom/ns#'>networking</category><title>Active Directory Hell</title><description>First, I must state up front that I know next-to-nothing about Active Directory and that I only think the problems I've been fighting for the last week or so are AD related. Secondly, This post is mostly a rant. I will share the workarounds I have used to address my problems, such as they are, but this post shares no great wisdom. So, if you've got better things to do with your time, you can stop here.&lt;br /&gt;&lt;br /&gt;I moved my production desktop machine from Detroit to Virginia and nothing has been the same since.&lt;br /&gt;&lt;br /&gt;I used to work on my Tablet out of the office and now that I think about it, I had many of these same problems. DJ, though, swears that he took his development machine to a hotel for 8 days, connected over the VPN and everything worked just as it did in the office.&lt;br /&gt;&lt;br /&gt;I think all or most of my problems are tied to my credentials not being sent properly to the domain controller.&lt;br /&gt;&lt;br /&gt;We're not using a standard Microsoft VPN connection. We're using the MUVPN client that came with our Watchguard SOHO box (or some more recent version.) It is my understanding that when you use the MS VPN client, you can authenticate when logging into the machine just as you would if you were on the network.&lt;br /&gt;&lt;br /&gt;In my case, I'm logging into the machine using cached credentials. This gets me into the machine, but that's about it.&lt;br /&gt;&lt;br /&gt;The first problem was easy to fix: machine names weren't being resolved. Added some entries to LMHOSTS and HOSTS files and I could then at least double click on the entries in "my network places" and get a response that indicated that those locations did indeed exist - I just didn't have rights to access them.&lt;br /&gt;&lt;br /&gt;I'd get a password prompt and enter my username and password and get an error that said basically "hey, do you think I'm stupid, I already tried that user name and password. Try something else." So I did, I tried an admin user name and password and sure enough I could get into those shares. For whatever reason, our admin can see stuff, just not change it.&lt;br /&gt;&lt;br /&gt;So, I still needed to authenticate as me but couldn't figure out how to do it. In my various searches someone asked if they could gain access by issuing a NET USE command. I tried that today and sure enough, I can now access all my shares as me.&lt;br /&gt;&lt;br /&gt;That got me past all of my day-to-day admin problems. I can open files on the server, edit them, create new ones, yahoo!.&lt;br /&gt;&lt;br /&gt;So, my next problem - actually the first one I discovered other than name resolution - is that I can't use MS Office Accounting 2007. I had several related problems and now I think I have just one: I can't use it. MSOA07 uses a simple text file to tell the application what files to use for a particular company.&lt;br /&gt;&lt;br /&gt;database=&lt;filename&gt; filename&lt;br /&gt;server=servername&lt;servername&gt;\instancename&lt;instance&gt;,5356&lt;br /&gt;&lt;br /&gt;All these values seem to be correct.&lt;br /&gt;&lt;br /&gt;When I launch MSOA I get prompted for a file (normally it just opens the last one used.) I select the little SBC file and I get an error:&lt;br /&gt;&lt;br /&gt;The company could not be opened or access was denied. Please ensure that access has been granted and that the company database exists.&lt;br /&gt;&lt;br /&gt;Well, I've Googled this six ways from Sunday and I don't have any answers. I have access to the SBC file. I can open it in Notepad, change it, save it, no problem. I cannot get past this.&lt;br /&gt;&lt;br /&gt;I can fire up SQL Server Management Studio and query the database directly. This does seem to be a bit inconsistent depending on whether or not I'm setting the database to support connections over TCP/IP. What I've read about this is over my head, but has something to do with Kerberos and NTLM authentication and the various protocols. In any case, even when I can connect from SQL Server Management Studio, I still cannot connect from MSOA.&lt;br /&gt;&lt;br /&gt;Then today, of all things, I discover that I cannot connect to my local SQL Server instance using an ODBC connection that worked perfectly in the office. I can access the data from Management Studio, just not through the ODBC connection I've been using for well over a year. I'd come across something about this in my various searches about using '127.0.0.1' instead of 'localhost' which wasn't quite the same as my problem, but pretty close. The &lt;a href="http://blogs.msdn.com/sql_protocols/archive/2005/10/19/482782.aspx"&gt;post&lt;/a&gt; I found was specifically about an error I have seen on and off the last few days: "Cannot generate SSPI context" and this was specifically about trying to connect to a local SQL Server outside the domain. I'm not entirely sure that I was experiencing the same problem described there, but nevertheless it lead me to my solution: When reviewing my DSN settings, the "Server" had the name of my machine which had been working just fine. Not entirely understanding the issues (still don't) I tried to put in the localhost IP address and that failed as well. I noticed that one of the values was "(local)" and that failed. I then noticed that one of the pre-filled choices was '.' ( a period) and that worked. Cool. I still get a "trusted connection" prompt when I first fire up the app, but everything is good after that.&lt;br /&gt;&lt;br /&gt;So, I'm still struggling, but I've made some progress:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Name resolution - solved by HOSTS/LMHOSTS entries&lt;/li&gt;&lt;li&gt;Shares - solved by issuing a NET USE with my credentials. I only have to do this for one share on one of our servers and then the rest of my shares (under the same AD structure) work just fine.&lt;/li&gt;&lt;li&gt;Office Accounting 2007 - no solution. (Other than I use RDP to connect to a machine on the network and get my work done that way. This is still a big problem because it doesn't get me past the stumbling block of having Outlook tied to MSOA which is how we do our time-billing.)&lt;/li&gt;&lt;li&gt;Connecting to local SQL server - solved by using "." instead of machine name or "localhost" or "(local)" or IP address in ODBC connection. Still get prompted for trusted connection.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;My biggest remaining problem is getting OA2007 to talk to Outlook and ideally run on my machine. If the one person that has read this far knows any OA experts, I'd love to get their advice.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-6765545333841795152?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2008/07/active-directory-hell.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-2154301192814642452</guid><pubDate>Fri, 18 Jul 2008 15:04:00 +0000</pubDate><atom:updated>2008-07-18T11:18:11.805-04:00</atom:updated><title>Word Clouds</title><description>Cool tool for creating "Word Clouds" from any RSS feed or any text you cut and paste into the tool.  &lt;a href="http://wordle.net/"&gt;http://wordle.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geeksandgurus.com/blogs/sjb/uploaded_images/sjbblog-765901.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://www.geeksandgurus.com/blogs/sjb/uploaded_images/sjbblog-765892.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-2154301192814642452?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2008/07/word-clouds.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-9109008423360449446</guid><pubDate>Tue, 01 Jul 2008 20:07:00 +0000</pubDate><atom:updated>2008-07-01T16:17:39.381-04:00</atom:updated><title>Almost two months...</title><description>... since I've posted.  Wow. &lt;br /&gt;&lt;br /&gt;I have several posts running around in my head.  It will be interesting to see what bubbles to the top first.  Possibilities include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The Move&lt;/li&gt;&lt;li&gt;Real Estate in Detroit&lt;/li&gt;&lt;li&gt;Working from Home&lt;/li&gt;&lt;li&gt;Rancho Mirage, CA&lt;/li&gt;&lt;li&gt;Churches in Virginia&lt;/li&gt;&lt;li&gt;First Look - living in Williamsburg&lt;/li&gt;&lt;li&gt;Twitter&lt;/li&gt;&lt;li&gt;Office Away launch - working with "a marketing guy"&lt;/li&gt;&lt;li&gt;Office Away launch - shooting our first "You Tube" videos&lt;/li&gt;&lt;li&gt;Office Away launch - cheap fast printing options&lt;/li&gt;&lt;li&gt;Centex Homes&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I'm hoping that I'll have some time soon to post something for real.  The move has taken much more time and energy than I anticipated.  That coupled with a fair amount of travel (for me, anyway) has left me desperate for time just to catch up.  I do see a light at the end of the tunnel, and I'm pretty darn sure it isn't a train.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-9109008423360449446?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2008/07/almost-two-months.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-165261164116640237</guid><pubDate>Tue, 06 May 2008 21:52:00 +0000</pubDate><atom:updated>2008-05-06T18:24:25.408-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>conference</category><category domain='http://www.blogger.com/atom/ns#'>VFP</category><title>Southwest Fox - reasons to go</title><description>&lt;a href="http://www.swfox.net/" target="_blank"&gt;&lt;img height="48" alt="Southwest Fox 2008, Mesa, AZ, October 16 - 19, 2008" src="http://www.swfox.net/images/SWFoxBanner_Narrow_With_DiscountBlurb2008.gif" width="245" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Although I'm certain that anyone that reads this blog &lt;strong&gt;and&lt;/strong&gt; has interest in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;VFP&lt;/span&gt; already knows about the fabulous &lt;a href="http://www.swfox.net/"&gt;Southwest Fox &lt;/a&gt;conference, it is possible that they might not have seen the new &lt;a href="http://www.swfox.net/brochure.pdf"&gt;brochure &lt;/a&gt;the organizers have posted.&lt;br /&gt;&lt;br /&gt;They crafted this brochure to help would-be attendees convince decision makers that this conference is worth attending. (If the low cost and modest hotel prices weren't enough.)&lt;br /&gt;&lt;br /&gt;I think they've done two great things in this brochure. First, they published the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;GLGDW&lt;/span&gt; style session abstracts which tell you exactly what you'll be getting out of the session. Instead of just reading the title "Introduction to Transact &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SQL&lt;/span&gt;" and having to guess for yourself whether you're ahead of or behind the session concepts, you can see exactly what the speaker is going to discuss.&lt;br /&gt;&lt;br /&gt;There have been many times I've attended a session at a conference because the title sounded like something that might be of interest but turned out to be some other interpretation of those words that I hadn't imagined.&lt;br /&gt;&lt;br /&gt;The other thing they've done is to post the speakers bios, which is fairly common, but demonstrates something that should be emphasized: Many of the speakers posted contact info right in the bios.&lt;br /&gt;&lt;br /&gt;I think the brochure should have emphasized a couple things more strongly. One is that these &lt;strong&gt;speakers are all very accessible&lt;/strong&gt;. I'm certain that nearly all, if not all, of the speakers will post their contact info during the session if they didn't do it in the bio. I've often heard - even at this conference - that the speakers seem to be "clique-y" (how the hell would you spell that word if it existed?) With some rare exceptions, this is far from the truth. I once might have even shared this opinion, but found that it was my perception that was wrong, not the speakers' attitudes. The fact that they all stand around in groups laughing with each other and talking about things both professional and personal demonstrates their inclusiveness and nothing else. Each of these people started out as some sort of attendee or "outsider" and got to know the others in person or online over time.&lt;br /&gt;&lt;br /&gt;Any attendee should feel free to approach any of the speakers throughout the conference, whether it be around sessions, social events or the bar.&lt;br /&gt;&lt;br /&gt;The second thing that should be enhanced is &lt;strong&gt;the value of networking&lt;/strong&gt;. Some employers might see networking as an opportunity for an employee to find a better job. (And this is true.) The thing that the employer needs to recognize, though, is that this network gives a developer a peer group with which to bounce things around. There are countless shops that have a single developer or perhaps a pair. If these people aren't familiar with or don't have access to local user groups or online resources, they may be living in a vacuum. A developer really needs to be exposed to other ideas and procedures. (Also an argument for the conference.) Interacting with this peer group at the conference and after the conference can yield incalculable benefits for the employer in terms of better productivity, better code, and new resources that can save time and money down the road.&lt;br /&gt;&lt;br /&gt;Finally, it might not happen to every developer, but I'm sure that it happens at least once per conference where an attendee feels that one session "paid" for the conference. This may sound ludicrous, but it does happen.&lt;br /&gt;&lt;br /&gt;So, if you know someone who needs help getting approval, steer them towards the brochure and tell them to emphasize the openness and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;accessibility&lt;/span&gt; of the speakers and the long-term benefits of networking.&lt;br /&gt;&lt;br /&gt;(Oh, the brochure is a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PDF!&lt;/span&gt;  It drives me nuts that the registration form is a Word Doc for the nth year in a row.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-165261164116640237?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2008/05/southwest-fox-reasons-to-go.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>4</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-4813083482382395165</guid><pubDate>Tue, 18 Mar 2008 14:44:00 +0000</pubDate><atom:updated>2008-04-07T16:32:53.960-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>VFP</category><category domain='http://www.blogger.com/atom/ns#'>Visual Studio</category><title>CTRL-TAB</title><description>&lt;p&gt;I'm sure that pretty much everyone knows you can press ALT-TAB to move between open applications in Windows. I have often found myself trying to use ALT-TAB to move between open tabs or windows within applications such as Visual Studio and Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;FoxPro&lt;/span&gt;. &lt;/p&gt;&lt;p&gt;Some time ago, I was watching a video by &lt;a href="http://blogs.msdn.com/bethmassi/default.aspx"&gt;Beth &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Massi&lt;/span&gt;&lt;/a&gt; on &lt;a href="http://blogs.msdn.com/bethmassi/archive/2007/12/11/channel-9-interview-refactoring-in-visual-basic-with-refactor.aspx"&gt;VB.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;NET's&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;refactoring&lt;/span&gt; tools&lt;/a&gt;. In the video, I &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;noticed&lt;/span&gt; that they were using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;CTRL&lt;/span&gt;-TAB to move between open tabs in Visual Studio. I didn't realize you could do that and thought it was pretty cool. When you do, you get a dialog like the one below and as you continue to press TAB the selection moves down the "Active Files" list until you let go of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;CTRL&lt;/span&gt; key, just like ALT-TAB. This has already saved me a great deal of time and aggravation.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.google.com/sjbodnar/R9_VXOs42dI/AAAAAAAAABc/KnYHDyvCIXI/image[7]?imgmax=800"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="304" alt="image" src="http://lh4.google.com/sjbodnar/R9_VYOs42eI/AAAAAAAAABk/gzS5XIRLeFM/image_thumb%5B3%5D?imgmax=800" width="424" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Not surprisingly, this also works in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SQL&lt;/span&gt; Server Management Studio.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.google.com/sjbodnar/R9_VZes42fI/AAAAAAAAABs/_UhqanRfyH4/image[3]?imgmax=800"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="258" alt="image" src="http://lh3.google.com/sjbodnar/R9_VZ-s42gI/AAAAAAAAAB0/xbkKBFQ-Kds/image_thumb%5B1%5D?imgmax=800" width="396" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Just today, I decided to try &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;CTRL&lt;/span&gt;-TAB in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;VFP&lt;/span&gt;. Guess what, it works! It doesn't bring up any sort of dialog but it does cycle through all the open windows. I'm sure all you veterans already knew this, but I just discovered it for the first time and I'm really happy to know it is there.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-4813083482382395165?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2008/03/ctrl-tab.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-8496949730679249496</guid><pubDate>Fri, 30 Nov 2007 13:52:00 +0000</pubDate><atom:updated>2007-11-30T08:53:39.235-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>kids</category><title>Hamsterdam</title><description>My wife had to travel to Iowa for a short trip and brought back some minor gifts for the boys. My 5 year old has wanted a pet for some time and has been particularly interested in hamsters and guinea pigs and things like that.&lt;br /&gt;&lt;br /&gt;So my wife found a stuffed hamster and brought it back. When she gave it to him, he was very excited. After a while, he asked "Where did you go? Hamsterdam?"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-8496949730679249496?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2007/11/hamsterdam.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-2514132074980596450</guid><pubDate>Thu, 29 Nov 2007 15:57:00 +0000</pubDate><atom:updated>2007-11-29T11:00:09.917-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>kids</category><title>Allowance Chair</title><description>We were fortunate enough to be swimming, &lt;em&gt;outside&lt;/em&gt;, &lt;strong&gt;&lt;em&gt;in Michigan&lt;/em&gt;&lt;/strong&gt;, in early October. We had this wonderful spell of warm weather in the earlier part of the month.&lt;br /&gt;&lt;br /&gt;As we were enjoying the warm weather, poolside, there were various chairs available. My wife and I were both reclining in the sun when my 5 year came up to us and said he'd like an "allowance chair" too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-2514132074980596450?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2007/11/allowance-chair.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-6258143924852238315</guid><pubDate>Thu, 29 Nov 2007 00:06:00 +0000</pubDate><atom:updated>2007-11-28T19:07:26.843-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>kids</category><title>Polish Day</title><description>I have a few drafts that I never posted for one reason or another. This is the first:&lt;br /&gt;&lt;br /&gt;On Saturday, October 20th, my wife was returning home with the kids and at the top of the exit ramp was a homeless person. My wife rolled the window down and handed the man a small amount of money. He said thank you and "Happy Sweetest Day."&lt;br /&gt;&lt;br /&gt;My oldest son, from the back of the van, asked "What did he say?" So my wife explained the concept behind this Hallmark holiday. He thought about it for a moment and asked, "So is there a Polish Day, too?"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-6258143924852238315?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2007/11/polish-day.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-4664999124260579663</guid><pubDate>Mon, 26 Nov 2007 20:01:00 +0000</pubDate><atom:updated>2007-11-26T15:12:20.303-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>conference</category><category domain='http://www.blogger.com/atom/ns#'>speaking</category><title>FoxForward Surprise</title><description>&lt;a href="http://foxforward.net/" target="_blank"&gt;&lt;img src="http://foxforward.net/images/foxforwardbanner_234x60.png" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Back in April, when Kevin Cully graciously invited me to speak at his conference, his email mentioned that he'd split any net profit with the speakers on a per session basis.&lt;br /&gt;&lt;br /&gt;At the time, I thought that was a generous notion but certainly didn't expect that there would really be any net profit. &lt;br /&gt;&lt;br /&gt;The conference was affordably priced and the snacks and lunches were plentiful.  Oh, and it should be mentioned again that the sessions I attended were excellent.&lt;br /&gt;&lt;br /&gt;So, it was quite a suprise to come in this morning and find a check from FoxForward!  In Kevin's email from April, he said:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;It probably won't be much at all, but it's better than nothing! &lt;g&gt;&lt;/blockquote&gt;&lt;br /&gt;Well, it certainly exceeded my expectations and yes, it was definitely better than nothing!&lt;br /&gt;&lt;br /&gt;Thanks, Kevin.  I'm anxiously awaiting the announcement for FoxForward 2008!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-4664999124260579663?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2007/11/foxforward-surprise.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-2198322827065012027</guid><pubDate>Thu, 22 Nov 2007 13:16:00 +0000</pubDate><atom:updated>2007-11-22T08:47:22.288-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>advertising</category><category domain='http://www.blogger.com/atom/ns#'>books</category><title>Are blondes becoming extinct?</title><description>This morning I was minding my own business reading an &lt;a href="http://www.gpsmagazine.com/2006/10/garmin_nuvi_660_indepth_review.php?page=1"&gt;in-depth review&lt;/a&gt; of the &lt;a href="https://buy.garmin.com/shop/shop.do?pID=400"&gt;Garmin Nuvi 660&lt;/a&gt; after watching a CNET review of it on the Tivo last night. At the bottom of every page was an ad for one GPS device or another. Then at the bottom of page 5 was this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mfile.akamai.com/17650/wmv/amazoncomh3.download.akamai.com/17650/wm.amazon.usa/books/crichton_next_blondesvideo_hi-fi.asx"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://www.geeksandgurus.com/blogs/sjb/uploaded_images/crichton-book_video-728021.jpg" border="0" /&gt;&lt;/a&gt;I thought that was kind of strange and actually clicked on the "play video" (go ahead, you can too.) I showed my wife the video and we both thought it was pretty freaky.&lt;br /&gt;&lt;br /&gt;What I didn't notice initially is that the video linked to the &lt;a href="http://harpercollins.com/books/9780060873165/Next/index.aspx?WT.mc_id=padv_goog_next_111507"&gt;HarperCollins&lt;/a&gt; site.  The video was an ad for a new Michael Crichton book called Next.  For what it is worth, the book has received mediocre &lt;a href="http://www.amazon.com/review/product/0060872985/ref=cm_cr_dp_all_recent?%5Fencoding=UTF8&amp;amp;coliid=&amp;amp;showViewpoints=1&amp;amp;colid=&amp;amp;sortBy=bySubmissionDateDescending"&gt;reviews &lt;/a&gt;on Amazon.com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-2198322827065012027?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2007/11/are-blondes-becoming-extinct.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-6522640192497694091</guid><pubDate>Mon, 12 Nov 2007 17:04:00 +0000</pubDate><atom:updated>2007-11-18T11:35:38.963-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ClickOnce</category><category domain='http://www.blogger.com/atom/ns#'>Security</category><category domain='http://www.blogger.com/atom/ns#'>.Net</category><title>When it smells like security...</title><description>... it probably is security.&lt;br /&gt;&lt;br /&gt;Ever since my first Classic ASP application, security on other peoples' servers has been a PITA. Deploying the app was one thing, but then getting read/write access to the data was another. Or getting access to a directory to upload images or other files required another round of interaction with the ISP to get the proper directories secured or not in the proper fashion. More modern Hosting interfaces have helped with this, but at the same time we've started doing more with hosted SQL server back ends and have encountered a new round of security related issues.&lt;br /&gt;&lt;br /&gt;Most recently, security has been a stumbling block for us with a new client. As I've mentioned before, we've inherited a .NET application that has given us the opportunity for a crash course in many aspects of .NET development. This app uses web services for moving data back and forth and that has been interesting in and of itself.&lt;br /&gt;&lt;br /&gt;It also uses &lt;a href="http://msdn2.microsoft.com/en-us/library/t71a733d(vs.80).aspx"&gt;ClickOnce &lt;/a&gt;deployment which we've never used before. Everything we read talks about how &lt;strong&gt;easy&lt;/strong&gt; it is.&lt;br /&gt;&lt;br /&gt;Last week we finished the modifications that the customer required in order to put this application into production. So, we agreed that on Friday we'd deploy to their server - or at least we'd try to.&lt;br /&gt;&lt;br /&gt;We have the understanding that the web services require a basic copy-and-paste deployment. No problem there. The rest of the app, though needs to be published for ClickOnce Deployment.&lt;br /&gt;&lt;br /&gt;So, according to all the "no instructions required" hits we got through Google and MSDN, we tried to publish to our customer's server. The first attempt failed with the following error:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Failed to connect to 'someURL' &lt;someurl&gt;&lt;url&gt;with the following&lt;br /&gt;error: Unable to create the Web 'someURL'&lt;someurl&gt;&lt;url&gt;.&lt;br /&gt;Internal Server Error 1 1 CSBS2.Client &lt;/blockquote&gt;Googling extensively yielded only one hit that was closely related to this and it was very specific to Vista (oh, and Security) After various attempts at changing things at our end, we were convinced it had to be something on the server. First of all, we were connected over a VPN using an assigned DOMAIN\username. The VPN connection was solid and we seemed to have rights to everything we needed. After making sure that our rights matched the previous developers' rights, we tried again with the exact same results.&lt;br /&gt;&lt;br /&gt;I'm certainly no security expert but it seemed to me that we were missing a piece. We were logged into the development machine as OURDOMAIN\ourUserName and connected over the VPN using THEIRDOMAIN\TheirUserName. It seemed to me that when we published, we should be prompted for credentials on that domain and we never were.&lt;br /&gt;&lt;br /&gt;So after more Googling on various parts of that error message, I finally found &lt;a href="http://msdn2.microsoft.com/en-us/library/ms228619(vs.80).aspx"&gt;something &lt;/a&gt;on MSDN that matched the error exactly. It implied that FrontPage server extensions weren't installed. Aha! This looked promising. I looked and FrontPage server extensions were indeed installed, but this still seemed like something, so I kept looking around and discovered that there were FrontPage Server credentials for the previous developers, but not for us. Aha! I added the credentials, set the permissions, hit publish and whamo - I got prompted for credentials while trying to publish. Yahoo! I Typed in the credentials and immediately got the "Failed to connect to... " Darnit - no luck.&lt;br /&gt;&lt;br /&gt;At that point, I was out of ideas. It still smelled like security. So I detailed all of this in an email Friday night. Today, I got email from the client that basically said "This rings a bell, I made a change in Active Directory. Try again." Guess what - it works now! Actually, we had to work through some issues with Certificates, but once we got past those, it was just as easy as everyone said it was.&lt;br /&gt;&lt;br /&gt;For what it is worth - this security issue is probably one I never would have found on my own. As I mentioned, we are connecting over a VPN. When we need to touch SQL Server or test the application on their network, we use RDP. The customer had set us up to only have logon access to the machine we access via Terminal Server which is the SQL Server and the machine that hosts the click once deployment. This seems like a logical and secure thing to do. In order for us to be able to publish the ClickOnce deployment to that server, they had to give us rights to logon to All Computers in order for us to publish. They suggested that adding our computers to the logon list might have fixed this, but we haven't experimented.&lt;br /&gt;&lt;br /&gt;Bottom line - if it smells like security, it probably is security. It's just up to you to figure out where that security is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-6522640192497694091?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2007/11/when-it-smells-like-security.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-8118558919940163351</guid><pubDate>Tue, 23 Oct 2007 20:08:00 +0000</pubDate><atom:updated>2007-10-24T15:06:47.382-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>conference</category><category domain='http://www.blogger.com/atom/ns#'>restaurants</category><title>Southwest Fox - wrap up</title><description>&lt;p align="left"&gt;I had to get home for a cyber cafe at a conference in Dearborn, so I flew out at 6:00 AM and missed the Sunday sessions and closing sessions. &lt;/p&gt;&lt;p align="left"&gt;I did have some overall comments about the conference...&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;Conference Organizers&lt;a href="http://www.swfox.net/"&gt;&lt;img style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://www.swfox.net/images/swfoxbannerportrait.gif" border="0" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Rick, Doug and Tamar did a great job picking up where Bob left off. All three of them greeted us warmly and handed us our registration materials and goodies very quickly.&lt;br /&gt;&lt;br /&gt;During one of the pre-cons on Sunday, it was discussed that there was no coffee available for the attendees during the 4-hour sessions. (Not a big deal to me, since I don't drink coffee.) Rumor has it that as soon as the three "walk-in" attendees paid their conference fee, the organizers turned around and ordered coffee stations! They could have easily kept this money in their pockets, but instead turned around and pushed the conference up one more notch.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Bo's Mustang&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I had no idea such a thing existed. Bo Durban had rented a &lt;a href="https://www.hertz.com/rentacar/byr/index.jsp?targetPage=USshelbygth.jsp&amp;amp;leftNavUserSelection=globNav_3_5_1&amp;amp;region=United%20States"&gt;Shelby GT-H&lt;/a&gt; convertible from Hertz. This was a very cool car, but for some reason my favorite part was the chrome plated Hertz badges on the sides.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Good Service&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Rick Strahl &lt;a href="http://west-wind.com/weblog/posts/174771.aspx"&gt;mentioned &lt;/a&gt;that he had remarkably good service at the hotel right up until he checked out. DJ and I had good service the whole time. The staff we encountered were courteous and friendly, always asking if there was anything they could do for us. &lt;/p&gt;&lt;p align="left"&gt;On our first morning there, DJ and I walked into the restaurant at about 9:50 and the hostess said that the breakfast buffet was open for another 10 minutes. After we both chose the buffet, they made sure we had everything we wanted before they tore it down. $9.95 was a good deal for a full buffet including an omelette station! The food was good and the staff was really attentive.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Networking&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;One of the often highlighted side-benefits of a conference like this is the opportunity to network with other developers. Some of them are experts and/or speakers. Others are just going through the same day-to-day process of learning all they can to be better developer. Some are brand-new to the whole thing. There is something to be learned from all of them. It is always interesting to find out what other people are doing. One day, we had lunch with a guy from Seattle (I think) that works on a vertical market application for health clubs. It was interesting to hear what they've developed and where they are going. &lt;/p&gt;&lt;p&gt;Perhaps the two best conversations I had were those that will impact Geeks and Gurus nearly immediately. &lt;/p&gt;&lt;p&gt;Alan Stevens and I talked about a .NET application we have inherited and discussed some of our stumbling blocks. The next day, DJ had the opportunity to talk with him and a light-bulb went off for Alan. He told us that our application sounded like it might be built on a well documented framework. If this is the case, we should be able to crank up our learning curve a little more effectively.&lt;/p&gt;&lt;p&gt;The second conversation was with Russ Swall about Agile methodologies and business in general. Russ always provides great insight and resources and I appreciate his sharing of his experiences.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Vista&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;I've been avoiding Vista. I loaded it on a spare machine while it was still in Beta and was really unimpressed with it. Several of my customers have purchased new machines (without asking me first!) and have had painful experiences with Vista and Office 2007.&lt;/p&gt;&lt;p&gt;One of the guys in our local users group spent an evening telling about all the paid he'd dealt with trying to get his vertical market application to play nicely with Vista. Several other people have complained about various issues related to developing on Vista.&lt;/p&gt;&lt;p&gt;So, I was quite surprised to see how many speakers were running on Vista. At very least, Christof Wollenhaupt, Rick Strahl, Toni Feltman, Cathy Pountney, Doug Hennig all presented on Vista - with no glitches that I noticed. I know that Doug and Rick have been blogging about Vista for some time, yet I was still surprised to see them working completely normally in their sessions. &lt;/p&gt;&lt;p&gt;So, maybe I'll be willing to give Vista a try sooner than I expected.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1200 Series New York Strip&lt;a href="http://www.grilledexpedition.com/"&gt;&lt;img style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://www.geeksandgurus.com/blogs/sjb/uploaded_images/logo_splash-797480.gif" border="0" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;When SW Fox was in Tempe, we always went to &lt;a href="http://www.grilledexpedition.com/"&gt;Grilled Expedition&lt;/a&gt; for dinner on a free night. They have this steak that is extremely good. Every time we go there, we have the same steak. (And somehow we always get the same table - near the bar and the TVs. I'm pretty sure we've been able to watch the Wings or the Tigers every time but this time.)  On Saturday, DJ and I, Frank Perez, Bo Durban and 3 Stonefield guys all drove to Tempe.  We got the same table and DJ, Frank and I had the same steak.  I think it was best the first time, but it is still very good.&lt;/p&gt;&lt;p&gt;From the menu: Extra-thick cut strip rubbed with kosher salt and buried in our 1200 degree mesquite coals. served medium-rare&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I can't wait for next year!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-8118558919940163351?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2007/10/southwest-fox-wrap-up.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-2048747297039822739</guid><pubDate>Sat, 20 Oct 2007 21:43:00 +0000</pubDate><atom:updated>2007-10-23T17:36:22.959-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>conference</category><category domain='http://www.blogger.com/atom/ns#'>VFP</category><title>Southwest Fox - Day 3, Session 4</title><description>&lt;span style="font-size:130%;"&gt;Toni Feltman - &lt;/span&gt;&lt;a name="Introduction_to_the_DBI_Controls_Included_in_Sedna"&gt;&lt;span style="font-size:130%;"&gt;Introduction to the DBI Controls Included in Sedna&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As was the case in several other sessions, Toni had a Standing-Room only crowd.&lt;br /&gt;&lt;br /&gt;Toni walked us through the 8 &lt;a href="http://www.dbi-tech.com/"&gt;DBI &lt;/a&gt;controls that are available as part of Sedna. They are available now &lt;a href="http://www.dbi-tech.com/Special_Offers_SednaComponents.asp"&gt;here&lt;/a&gt;. The 8 controls include ctTray, ctDEdit, ctContact, ctToolBar, ctListBar, ctDays, ctDropMenu, and ctFrame.&lt;br /&gt;&lt;br /&gt;All of these controls allow us as VFP developers to give our applications a more modern look. Toni says they are all easy to work with and each come with working examples including VFP code.&lt;br /&gt;&lt;br /&gt;Toni recommended that we don't use the Controls Builder for the most part. Instead we should set properties in code. At least some of the controls, though, let you save off the settings into XML. (And also support importing those same settings from XML.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-2048747297039822739?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2007/10/southwest-fox-day-3-session-4.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7381005905981728940.post-44514046190628318</guid><pubDate>Sat, 20 Oct 2007 18:02:00 +0000</pubDate><atom:updated>2007-10-23T17:36:22.959-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>conference</category><category domain='http://www.blogger.com/atom/ns#'>VFP</category><title>Southwest Fox - Day 3, Session 3</title><description>&lt;span style="font-size:130%;"&gt;Cathy Pountney- &lt;/span&gt;&lt;a name="Getting_Your_Head_Around_the_VFP_ReportListener"&gt;&lt;span style="font-size:130%;"&gt;Getting Your Head Around the VFP ReportListener&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was a late adopter of VFP 9.0, but have been attending sessions about ReportListeners since they were announced. I've never worked with them, so I thought this would be a good opportunity to get up to speed. I'm really glad I attended this session. We have two applications that could immediately benefit from what I've learned in Cathy's two sessions.&lt;br /&gt;&lt;p&gt;Cathy started out by telling us that the new functionality is turned off by default. Microsoft didn't want to break any existing reports, so instead they force you to turn the new functionality on by issuing a &lt;strong&gt;SET REPORTBEHAVIOR 90.&lt;/strong&gt;&lt;/p&gt;You can also use the 9.0 functionality on per report basis by modifying the REPORT FORM command with OBJECT TYPE n. Additionally, you can create a listener and issue the REPORT FORM xxx OBJECT oReportListener&lt;br /&gt;&lt;br /&gt;Just like with any other base class, you want to subclass the report listener for your applications.&lt;br /&gt;&lt;br /&gt;Cathy spent the rest of the session walking us through the key PEMs for report listeners which gave us a good overview of where we can interact during the reporting process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7381005905981728940-44514046190628318?l=www.geeksandgurus.com%2Fblogs%2Fsjb%2Findex.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.geeksandgurus.com/blogs/sjb/2007/10/southwest-fox-day-3-session-3.html</link><author>noreply@blogger.com (Steve Bodnar)</author><thr:total>0</thr:total></item></channel></rss>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           