OCDProgrammer.com

It's Microsoft's World, and I'm just living in it
View Clarence Klopfstein's profile on LinkedIn

Clarence Klopfstein's Facebook profile

This site is under construction...

Categories

New Comments

Referring Sites


Disclaimer

  • This is MY blog. The views represented here are not in relation to anybody else. Please read my full disclaimer for a more complete disclaimer.

A few random links and saved pages

March 12, 2011 22:46 by ckincincy

I have a habit of bookmarking pages as I feel that I need to go back and review the content. 

So, I’m a bit too OCD to have that many random links in my book marks and I’ve had it happen more than once where stuff I bookmarked later disappeared from the web.  Let me share them with you… and at the same time give ma  point of reference!

PC Usability Hacks

Programming Tips

Fun Tips

Hacks

Tech Links

Political/Opinion


Completely Remove .NET Framework

March 6, 2010 06:00 by ckincincy

Last week I came into the office to find my box was completely hosed.  I kept getting a compile error that the webengine.dll could not be found. 

I tried many different uninstalls and reinstalls of .NET but it wouldn’t fix the problem.  However I notice that even though .NET was uninstalled, it wasn’t.  I went looking for a tool to completely uninstall .NET and found this website.

After using that process to uninstall .NET and then rebooting, I reinstalled .NET and was good to go.

Was one of the most frustrating work days I have had in some time, have never been so close to being beaten by a technical problem like this.


No image exist trick

January 3, 2010 20:54 by ckincincy

One of the neat little things I’ve learned on the big project I am on is how to show a default image if the one you need isn’t found.

To give a bit of a background, my last two jobs have been on catalog like websites.  Where you have thousands (on the bigger site… hundreds of thousands) of items in the catalog.  Each with several size variations of the image.  At my prior employer I had a pretty complex algorithm to determine if an image was available.  At the most basis level, querying the the hard drive to see if the file exist.   What I am using now is handled on the client side, and I tend to like the performance a bit more.

In a standard image tag, you have the following:

<img alt=”” src=”someimage.jpg” />

Adding a simple onerror tag to it, gives you a default image if the one you expect to be there doesn’t exist:

<img alt=”” src=”someimage.jpg” onerror=”this.onerror=null;this.src=’default.jpg’;” />

Pretty nice little trick, surprised I had never heard of it.


JODOHost.com

January 2, 2010 22:53 by ckincincy

image As covered in my prior post, I recently went on an in depth search for a web host.  I ended up at JODOHost.com.

Their price was unbelievable.  For unlimited sites, 4.5 GB of space, 65GB of transfer, and much more it is only $17.50 a month.  The great thing about this is that you can have Window servers and Linux servers. 

They actually support multiple domains in a true way, all the other host had their domains as sub directories of a root domain.  That isn’t the case with JodoHost, a domain is a unique folder.

They are based out of India, and there is an honest and fair criticism from Indian tech support about it being poor.  However, overall, I have found Jodo’s support to be more than acceptable.  There has been the occasional person who was below par, but I get that with American based support companies as well.

The only thing I don’t like is that you can’t make a folder writable on your own.  You have to open a support ticket so they can change that for you.

Overall, if you are looking for an ASP.NET host, JodoHost was by far the best one I tried. 


Is IE 6 dead?

December 28, 2009 00:50 by ckincincy

In a prior post I asked for some help on browser stats on certain sites.  The goal being, to answer the question if IE 6 is dead.  The answer really is, it depends.

Lets first show some of the numbers:

Site 1 9.39
Site 2 3.7
Site 3 6.36
Site 4 7.93
Site 5 4.88
Site 6 2.9
Site 7 2.12
Site 8 11.53
Site 9 13.27
Site 10 5.01
Site 11 8.79
Site 12 7.52
Site 13 8.93

Now as you can see only two of these sites are over 10%, these two site are two of my largest visited sites in these stats.  Where 10% means millions of visitors.    Two key things to note is that with many of these sites had two to three times the IE 6 traffic just one year ago and I did remove a few sites who had stats well outside the norm.  One clear fact is that IE 6 usage has plummeted this year. 

Site 1 was the third highest IE 6 usage, this was not unexpected for me as this site has a older age bracket that uses it.  But the fact that it was as low as it was shocked me.  Just six months ago, the IE 6 usage was 25%. 

Now for the sites that showed the lowest IE 6 usage, is also fairly explainable.  Sites 7, 6 and 2 are not WELL traveled sites and their usage would likely be younger.  Younger people will own newer computers and IE 6 is Eight years old. 

So is IE 6 dead?

It depends on three things. 

1. The size of the project you are on.  If you are working on a site that may be hit by millions of people, then no it is not dead.  If your site is a fairly minimal site, then I’d not support IE 6. 

2. Is IE 6 capable? IE 6 is 8 years old and it will have limitations.  If those limitations are deal breakers, then you either have to change the plan for your project or you have to drop support for IE 6.

3. Is the time needed to work with IE 6 in the budget? In the last project I was in, it took us four weeks to work out all of the IE 6 issues.  That is not free time and if the customer isn’t willing to pay for this time, then IE 6 should be dropped.

I will not support IE 6 on any personal projects moving forward.  7% and declining is not worth the hassle.

One of the biggest reasons this conversation needs to start ramping up is the simple fact that large sites and services, even Microsoft, are starting to drop support for IE 6.

Microsoft Office Web Applications
YouTube
Microsoft Sharepoint 2010
Apple’s MobileMe

That is a fairly important list for my quick search online.  Plus the two sites that had the most IE 6 usage in my list above, will be dropping official support for IE 6 in 2010!  Why then?  Because their corporate computers are being upgraded to Windows 7, so there isn’t as much political need to have IE 6.

On this site, I actually display a warning if you visit with IE 6.  I have for some time, and I think at some point soon I am be ornery and block IE 6 users.  I want that browser to die and whatever that takes, I’m going to support it.


The search for a web host

December 16, 2009 06:00 by ckincincy

I’ve been on the search for a web host.  I’ve used Jetsoftdev/Devserve hosting for many years.  It was a bit of a trade off, I’d help manage their server and get some free hosting as well.  That worked great, but I honestly just got tired of having to manage the server so much.  I went on the look out for a new webhost that was reasonably priced but loaded with features. 

Specifically I needed multiple domain support.  I want the ability to host several sites for the base price.  Then, it had to be Windows based.

The journey was an interesting one, to give the short answer.  JodoHost.com won.  Godaddy, 1and1.com, and aplus.net lost.  I’ll go over the reasons why below.

For all providers, lets assume the fact that we have three domains and one of those has to be your ‘primary’ domain.

Root: example.com
2nd Domain: example2.com
3rd Domain: example3.com

image

I started with APlus.net.

This exposed me to the first problem that many host share when it comes to hosting multiple .NET domains.  I can’t speak for non-.NET sites as I don’t currently maintain any of those.  But .NET is configured to operate within “Applications” and the problem shows up when the host is using some fancy URL Rewriting to make ‘multiple domains’ possible.  When a .NET site has to search for its root directory, it will show it as it is setup in IIS. 

The problem here is when your file structure looks like this:

web\example.com\

web\example.com\example2.com\

web\example.com\example3.com\

So the following URL’s would (or should) be valid:

http://example.com/
http://example.com/example2.com/
http://example.com/example3.com/
http://example2.com/
http://example3.com/

The problem arises though, in that http://example2.com will show up as: http://example2.com/example2.com/ 

In trying to get this issue resolved along with some email issues, I found Aplus.net’s support to really be lacking.   Slow, to no reply.

image

Next I tried 1and1.com. 

I found the exact problem as aplus.net with the multiple domains. 

So I moved on pretty quickly as I had learned my lesson

They were, however, a bit slow to refund the initial fee that I paid to setup the service.

image

Next on the list was GoDaddy.com.

During my initial tryouts of GoDaddy.com I thought I had finally found my solution.  Unfortunately, however, they turned out to have the same .NET problem with multiple sites. 

I was a bit bummed. 

Their support was two fold.  It was always available, but at times kind of slow to react.  Many times they told me to wait 24 hours for changes to take affect (server changes, not DNS changes).  Then those changes would never take affect and they would have to reschedule the batch function to run and fix the issue, which could take another 24 hours.   This is why it took me so long to realize they had the same .NET issue.

image Finally I did some more searching, and found JodoHost.com

I took a look at some of their plans, and found that their Reseller Hosting plan was perfect for me.  It was unlimited domains, 65 GB of traffic, etc.. Makes no sense to use their basic web hosting plans when their reseller hosting plans give you so much more.  If you are looking for just a basic web host, then there are cheaper options out there.  This, for me, was the best option I could find.

I’ll write a specific follow up post for JodoHost.com soon.  I want to make sure the good and the bad is not lost in such a long post.


Can you help me with IE 6 Stats?

December 13, 2009 16:45 by ckincincy

I am always looking for a way to justify dropping support for IE 6 as a web developer.  Generally, for small projects, I won’t officially support a browser less than 10% of market share unless the client requires otherwise.  I never waist my time on browsers that are less than 5%.  I just have better things to spend my time on, and I don’t feel bad that Safari decides to render differently than the other major browsers. 

I code to standards and don’t want to go down the rabbit hole of supporting EVERY browser’s unique issues.

Yesterday Michael Wood mentioned that IE 6 was really starting to trail in use.  So I went looking at my stats and was stunned to see how far it had fallen. 

So can you help?  If you would send me your website and browser usage I would appreciate it.  You can comment below, or email me.  If you want your site to remain anonymous, just let me know.

I am looking for the following information:

Top 3 to 5 browser brands (IE, Firefox, Safari, etc..).  Then top browsers by version:

IE 8, IE 7, FireFox, IE 6, etc…  With the percentages.

Thanks!


App_offline.htm – Page Not Found - Solution

December 9, 2009 17:49 by ckincincy

Today while looking over my RSS feeds I saw a post about some changes to the DOTNETBLOGENGINE, while looking over that fellow’s blog I saw a post about App_Offline.htm – Page Not Found.  I took a brief read over the article and it reminded me of a time when I ran into this issue. 

The Problem

The problem occurs when you turn App_Offline on, Internet Explorer (and apparently Google Chrome) will show a ‘pretty’ 404 error page.  Though FireFox will show the contents of the file without issue.

Here is the contents of my App_Offline.htm file:

image

Google Chrome shows this as a result:

image

Internet Explorer will show a page similar to this:

image

But Firefox shows the page as you would expect:

image 

 

The Solution

Now I remembered the solution pretty much immediately, you have to make the size of the file hit a certain limit.  I took a look around the web and found this article which puts the size at 512k.  That page recommends fixing this with some comments in the code.

Here is what my new App_Offline.htm file looks: 

image

Now you can see that the three browsers mentioned above will display the page as you would expect:

image

image

image

A Conclusion

Now, during my time of writing this blog post I got an email from Ben.  He gives a good justification for using his HTTPModule that his post talked about.  When you use App_Offline, all files are inaccessible.  Your site is down.  Now if you have some admin pages, or if you wanted to edit his solution to white list some IP, so you can test the solution without the general public seeing it using an HTTPModule sounds like a fantastic idea.  It, however, is not something you should implement to fix the 404 Page Not Found error.


P3P Header

December 9, 2009 03:00 by ckincincy

 

One thing I learned over the past few months had to do with sharing a website from one site to another via an iFrame.  The problem arises when the domains don’t match.  If your primary site is example.com and the site in the iFrame is exampleinaniframe.com, by default exampleinaniframe.com cannot set cookies or execute certain JavaScript.  Browsers see this as a potential hijacking and throw a security error.

The fix for this is pretty simple, but not simple all at the same time.  There is a header you can add to  your site telling browsers that it should allow it to be put in an iFrame.  Those are called P3P Header’s.  Now the hard part to this is that a search online returns a lot of conflicting answers to what your header should look like.  Then one night, as I was trying to figure out how to do Facebook development, it hit me.  That is how Facebook works.  All of those applications you use in Facebook are really hosted on another site, you just see it seamlessly via an iFrame.  Now since Facebook has 350,000,000 users I figured they probably have this figured out.

A brief search found this very simple and concise P3P header, all you have to do is include this somewhere early in your page load life cycle (global.asax, httpmodule, basepage, etc…):

HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\"");

That will tell the user’s browser to not throw a security exception and allow the site to function as needed.


Orchard, Oxite and ASP.NET MVC

December 7, 2009 03:00 by ckincincy

I have been an ASP.NET developer since I joined the team at Cintech in 2006.  I’ve been in the web form world and all the wonders of the PostBack page model since then. 

oxiteThen around the end of 2008 I remember hearing some noise about an ASP.NET MVC project released by Microsoft that got some bad reaction.  Talking about how it wasn’t a good start to MVC.  I never took the time to look deeper as I had other things going on in life, and was happy with my PostBack world.  Turns out this was a project called “Oxite” that is hosted over on CodePlex.

Then July of this year I took a job with a long time friend at Epsilon.  My friend is a Java developer, and through our conversations he kept telling me about this “MVC" way of doing web development.  About how it is so different than how he was being forced to develop on the .NET project we were working on together. 

The more he talked the more I got interested in learning about this new ASP.NET MVC that Microsoft had released.  Around this time CINNUG hosted a firestarter event going over ASP.NET MVC.  I took a Saturday to attend the event and learn some more.

In general I’m eager to learn more and put some of this in action.  This is when I went looking for that project that Microsoft put out.  Upon finding Oxite I see that it was basically a dead project.  The only thing I could find was a post on Erik Porters blog stating this in the comments:

October 08, 2009
Jeff, there is news coming about Oxite, but unfortunately I can't share anything until some other news happens. :( It's looking right now like that news is still a month and a half out. Really sorry! :(

OrchardLogoCodeplexNow this is on top of the fact that Oxite had not moved much since July.  Check ins, yes.  But nothing worth writing home about.  Then in the comments there was some guessing that Oxite was going to become “Orchard”, which was discussed as being a full featured CMS backed by Microsoft, though still being open source. 

Now I had high hopes for Orchard.  Since Oxite had been dead for months, I figured this new Orchard product would be ready to go when released.  I was stoked and waiting for it to be released.  I was all set to move this site to use the Orchard codebase.  When it got officially released I downloaded it, compiled it.. then ran it locally.  Wow, was I ever disappointed.  Orchard is months away from being usable, so here we are in the community with nothing to use.  From what my brief research shows me, at least a year after the release of ASP.NET MVC we have made very little progress in expanding this for people to actually use. 

As harsh as this may sound, I blame Microsoft and I blame the Oxite team. A person named Adam created a discussion on CodePlex stating the following:

October 12, 2009
Guys,

At the moment, I feel that Oxite is hindering developers from creating new ASP.NET MVC blog engines because Oxite is already there, on the other hand, the current official release of Oxite is missing load of features and cannot be compared to other popular engines.

If you are not planning to release soon or you are very busy, just declare this project as no longer supported to open the chance for other developers to start their own engines...

Regards,

Adam

I totally agree.  People don't want to waste their time recreating the wheel when there is a project already out there.  But here we are, over a year has passed and we have very little ‘real’ stuff to show.

Microsoft needs to get its act together.  Many great developers are abandoning the .NET platform for platforms like Ruby, and if you lose developers you lose the market.  Customers don’t care what platform people use, they just want their problems solved.  If those problems are solved and the developer chooses a non-Microsoft technology, then Microsoft loses.

Maybe Orchard is the answer.  Maybe six months from now this blog post looks like the most foolish blog post on the web.  For now, however, I’m still looking for the next big thing.  What comes after .NET for me professionally?  .NET won’t be around forever and being a fairly young man, I have to look toward the future to keep myself professionally relevant.