Recent Entries

ZeroSSL with IIS 10
Account Breach Monitoring
DBML Visualizer VERY Slow - solved!
Poor Man's SQL Log Shipping (Kinda)
Excel Column Letter To
Easy & Powerful Ecommerce Solution
asp:Menu Flicker on Page_Load - Solved
Windows Server 2008 Install DLL into GAC


Skip Navigation Links.
You are here: Rants, Rave, & Tips


By Ted Krapf on 6/11/2019 2:35 PM
So this one drove me nuts.  It seems soooo simple.

I have a Visual Studio 2017 solution with a Window Service Project and a Installer Project.  For the life of me, I could not figure out where to update the specific properties that would allow the installer to:

Name the application correctly (if a friendly name) Specify other text values like Author, Description, Manufacturer, Title, ProductName, etc. Add in a custom icon for Add/Remove Programs I googled around, read numerous posts, and everyone kept referring to the Properties pane for the Installer Project.  But every time I right-clicked (or ALT+ENTER) on the Installer Project and selected Properties, none of the properties I was looking for were there.  I was stumped!

Then I saw someone suggest to highlight the Installer Project in Solution Explorer and then tap F4.  My God, it was so simple.  

In short, to bring up the actual properties editor for a Visual Studio Installer Project...
By Ted Krapf on 5/3/2019 11:11 AM
I have an IIS 10 server behind a VPN/Firewall, and was bound and determined to use Let's Encrypt even though the server can't be reached by Let's Encrypt to authorize the SSL certificate request.

I ran across, but was very confused has how to successfully complete the process.  Here's my suggestions that allowed me to get it working:


In IIS, create a Certificate Request (CR).  Copy the contents of the CR to the clipboard. Start the Free SSL Cert process on Leave the domains box blank, paste in the CR from above Click next to have zerossl create the LetsEncrypt key (on the left side) SAVE the LetsEncrypt Key that it creates for you (you'll need this for renewals) Click next to have the certificate generated The cert generated will contain TWO keys.  Save its entire contents, but then make a SEPARATE .cer (txt) file that contains ONLY the first key from cert generated. Return to IIS, use the Complete Certificate Request wizard....
By Ted Krapf on 9/20/2017 9:36 AM
As a software developer that has to deal with user accounts, one of the topics always in my mind is security.  Is the box/vm/host secured? Did we implement strong enough password/login rules? What ciphers are enabled? Have the rules changed? Are the users doing something crazy that could compromise the security of the system?

As with social engineering, the weakest link in a well designed security model is usually the users.  So, what happens if one of the users (maybe one with elevated security rights) uses the same password on our system that they did on another system that was breached?  Now there's the possibility that this user's email address (username) and password are out in the wild.  It's just a matter of time and some snooping before a black hat or an AI realizes that user X is on our system and logs in.

One evening, I was on my Xbox shooting some baddies.  All of a sudden I get this prompt from Microsoft that says I have to change my password because my Live email address was involved in a 3rd party data breach.  My first thought was, "oh no!".  Next it was, "way to go Microsoft for telling me this so I can protect my Xbox account!" And lastly, "wait?! how did Microsoft know that I was involved in a 3rd party breach??"....
By Ted Krapf on 3/29/2017 2:15 PM
Greetings fellow coders!

I've had this super annoying recurring issue with Visual Studio (2010, 2013, not sure about 2017 yet as I haven't started using it on a daily basis yet), the DBML visualizer, and Windows 10 --- the DBML visualizer is just dog slow and frustrating to work with.

After some snooping around and looking through task manager, I realized that tabtip.exe was interfering with Visual Studio's DBML editor.

To test out my theory, I simply killed tabtip.exe from Task Manager.  The second it was turned off, the DBML visualizer was buttery smooth again.

tabtip.exe is the Windows Service for Touch Keyboard and Handwriting Panel Service.  Since I don't use a touch screen or the handwriting service, I opted to just permanently disabled it.  To do this, simply:

Click: Start Type: services.msc Press: Enter Scroll down to: Touch Keyboard and Handwriting Panel Service Right Click: select Properties Change the Startup Type to: Disabled...
By Ted Krapf on 12/23/2016 3:54 PM
Hi all,

A Very Happy Holidays to everyone out there!  It's been a very exciting and busy year helping clients with unique needs and solutions. I'm looking forward to what 2017 will bring!

I recently was tasked by a client to come up with a simple (as elegant as possible), and inexpensive Log Shipping solution for Microsoft SQL Server Express.  Yes, I know SQL Server Express doesn't have Log Shipping, and the solution would just be to purchase a license of SQL -- well two licenses in the client's case.  But, they were looking for some ingenuity so they could leave current systems in place as is.

Here was the setup.  A GoDaddy VPS SQL Server Express up in the cloud and an in-office/on-premise SQL Server Express.  They wanted to have the cloud server log shipped at least every couple of hours to their office so they had a hot spare SQL server in case they lost their cloud copy for some reason.

After some trial and error this is how I got it done for them:

By Ted Krapf on 4/8/2016 9:06 AM

Have you ever been working with a large Excel or other spreadsheet document and think, "man, I wish I could look up what the number equivalent of column BD is!"?  Me too!

So I built a crazy simple web app that converts an Excel column letter (or letters) to its numerical value.  For example, BD = column #56.  I frequently use this for figuring out the column number when doing a VLOOKUP.  Or when I'm working on very wide spreadsheets.

You can find the free Excel Column Letter To Number tool at:

Enjoy and let me know what you think.

Happy Coding!

By Ted Krapf on 4/5/2016 1:58 PM

Looking for a simple, beautiful, yet powerful e-commerce solution for your business?  

Check out

Shopify has beautiful themes, an amazingly simple and clean user interface, a really slick Apps add-on store to extend the functionality of your site and much more.  Let me know your experiences with Shopify!

By Ted Krapf on 7/13/2015 7:48 AM

Have an asp:menu that is flickering on (showing all the sub menus) on page_load and/or post back?  Of course you do, because that server control is pretty squirrely.   Here's the simple CSS fix that corrects the issue:

<style type="text/css">
/* fixes ugly menu flicker */
.menu ul li ul { display: none; }
.menu ul li { position: relative;  float: left; list-style: none; }
.menu ul li ul li { width: 100%; }

I've seen numerous "fixes" for Css menu getting flickering while page post back, but the ones I found never included the 3rd line.  If you have sub menus, the 3rd line (.menu ul li ul li) corrects the width and positioning issue.

Cheers and happy coding!

By Ted Krapf on 3/9/2015 3:46 PM
So the need for a client's offline ClickOnce app to have command line parameters came up again. (oh boy).

The Microsoft docs initially spec'd out that you can't do this when the ClickOnce app is an "offline" app.  But since .NET 3.1, there is a trick you can use to make offline ClickOnce command line parameters function.

The scenario is this:

Client has a ClickOnce app that gets updated (redeployed) by their developer frequently The app is Offline, meaning during publishing from Visual Studio, "How will users install the application?" is set to "From a CD-ROM or DVD-ROM", and then "The application will not check for updates". They have Task Scheduler running on their production box and they basically want the app to run at two different times daily, but to have a command line switch to run different features of the app at the different times. The solution, initially, I thought was to simply have the developer put some time based conditions actually in the application...
By Ted Krapf on 1/23/2015 2:48 PM
So first I want to say this has driven me crazy for days on end (an hour here, an hour there.  If you're here, you already have discovered that you can no longer (simply) drag and drop dll files into C:\windows\assembly and have them installed auto-magically into the windows Global Assembly Cache.  Also sadly, you may have discovered that you can't deploy dll files into the GAC from a ClickOnce application (understandably why, but still annoying).

There are three (err four) solutions I discovered along the way that you might find helpful.

1.) Oh, Yes, You Can (Drag & Drop) Give this trick a shot.  Launch the Command Prompt with Admin privileges.  From the command prompt, run "explorer C:\windows\assembly".  Then from cmd, also run "explorer C:\".  Next use the C:\ explorer to find the DLL(s) you need to deploy.  Lastly, drag and drop the DLL file(s) into the C:\windows\assembly explorer window you launched from the admin cmd prompt.  This has worked on occasion for me.