Solution for “None of the cipher suites supported by the client application are supported by the server”

My SSL requests failed when the client was Windows Server 2003, and the server (a win7 box) showed this error in the event log:

An TLS 1.0 connection request was received from a remote client application, but none of the cipher suites supported by the client application are supported by the server. The SSL connection request has failed.

I spent days trying to fix it, trying about twenty different things. In the end, the real solution was to generate the SSL certificates again from scratch, this time forcing RSA and SHA1 (though SHA1 should be the default anyway). I used:

makecert -pe -r -ss my -sr localMachine -n “CN=[domain name or IP address]” -e 01/01/2099 -a sha1 -eku 1.3.6.1.5.5.7.3.1 -sky exchange -sp “Microsoft RSA SChannel Cryptographic Provider” -sy 12

Here is what all the switches mean:

-pe include private key

-r self-signed

-ss my put cert into “Personal” certificate store

-sr localMachine use local machine’s cert stores (not current user’s)

-n common name (external IP or domain name of server)

-e expiry date

-a sha1 use SHA1

-eku 1.3.6.1.5.5.7.3.1 enhanced key usage Object Identifier (OID) for “SSL server certificate”

-sky exchange cert is for key exchange

-sp “Microsoft RSA SChannel Cryptographic Provider” use RSA

-sy 12 CryptoAPI provider type

For some reason Win Server 2k3 couldn’t or wouldn’t use the right ciphers with a default makecert certificate.

Hope this helps someone.

‘d.cookie’ is null or not an object

Get this javascript error when using jQuery UI?

You’ve forgotten to include a script reference to the jquery cookies plugin on the page:

<script type="text/javascript" src="javascript/jquery.cookie.js"></script>

Use Winmerge with AnkhSVN

That’s not a suggestion.

If you use AnkhSVN but haven’t already set up AnkhSVN to use Winmerge for merging and comparing, do it immediately (it’s much better than the default tool, and it’s free):

  1. Install Winmerge
  2. Open up Visual Studio and choose Tools > Options.
  3. Expand Source Control (if you can’t see it, make sure you have “show all settings” ticked)
  4. Choose Subversion User Tools
  5. For External Diff Tool and External Merge Tool, choose Winmerge.

Now you can diff and merge files (and whole folders – handy when production and source control get out of sync!) easily:

Hint: hold ALT and use the arrow keys. Up and down move you between changes, left and right copies the change from one document to the other. This allows you to find and merge the changes you need in seconds.

“Object doesn’t support this property or method” errors in jQuery UI

Ever had an “Object doesn’t support this property or method” javascript error occuring inside your downloaded custom jQuery UI code file, e.g.: jquery-ui-1.8.5.custom.min.js?

If you’ve confirmed that jQuery itself is working fine, you might be missing an internal dependency. Apparently, sometimes the jQuery UI download page’s dependency checker can get it wrong (in my case, draggable was listed as a dependency in the comments in the code for dialog, but it wasn’t enforced as such when downloading.).

Try going back and downloading it again, but this time check everything. Replace your existing jQuery UI custom js file with the new one, and see if that fixes the problem.

Overkill: The problem of over-modding on StackOverflow

A place for programming questions

StackOverflow was originally designed to be about simple programming questions, as defined in the FAQ. Specific questions that have a correct answer and often contain code. Like experts-exchange, but done right. Got a compiler error you don’t understand? Trying to do something in code but not sure how? That sort of thing. Questions like:

Can I add a public function to objects in JavaScript? How?

How can we set the background color in a datatable through codebehind?

The other official sites seem to keep this kind of question as their main focus. I agree with this direction, and I’ve asked and answered plenty of questions like this (that first question is mine). Stackoverflow includes tools allowing the community to close questions that don’t fit these guidelines, like obvious spam, exact duplicates of existing questions, anything that’s not a question, etc.

Other Questions

However, from very early on there was an unintended side-effect: some questions emerged that didn’t exactly fit that mould (for example, somewhat subjective, or discussion style questions) but were still interesting, and got interesting answers. They weren’t completely outside the official guidelines, but they weren’t completely inside them, either. The quality and size of the programmer community combined with the ability to vote and edit created something unique which many users considered to be worthwhile. Many of these questions became very popular.

A few examples:

In fact, looking at the top 15 questions on StackOverflow while I write this, at least 12 are subjective (e.g.: Strangest-language-feature), not strictly programming problem questions (e.g.: what is your best programmer joke) or not questions at all (e.g.: I’m graduating with a Computer Science degree but I don’t feel like I know how to program.).

Overkill

Only moderators and users with fairly high reputations can vote to close questions. I’ve noticed that some of them, apparently thinking they’re “doing the right thing”, are taking the official question guidelines to the extreme – so much so that they’re actually doing more harm than good.

Once again, I’m not talking about legitimately bad questions here – spam, real duplicates, totally off-topic stuff. They need to go (of course). But I’ve noticed that any question that could be even a little bit subjective, anything that has no source code in it, anything sounding similar to an existing question (even if they are actually totally different) will get close votes and terse comments.

Some questions have survived in spite of this, but it’s frustrating to see interesting questions shot down so often. Even 2 of the top 15 questions above have been closed.

It’d be hard to argue that there was nothing interesting, important or valuable in Alan Kay’s question above (and it’s answers). And yet, the very first comment calls it “not programming related”. Another curtly states it should be closed as a discussion question.

This problem has spread to many of the other sites on StackExchange, too. At one point, if you asked a question on StackOverflow and a couple of people thought it would be better on SuperUser, it would be migrated there even though SuperUser was still in private beta. Your question would disappear and, as far as you knew, there was no way for you to see your own question, let alone any answers.

I know I’m not alone on this. There are highly upvoted comments on Kay’s question like “If this gets closed, I may never come back to this site again” and “Yeah, can we please not show Alan Kay what a bunch of children we are by having a close/open war right in front of him?” and “144 votes, 8k views, 93 favorites, a positive mention in the SO podcast, a topic of Jeff’s Coding Horror blog, and a driver for a change in functionality of the site. Yeah, this question shouldn’t be here! :rolleyes:”

Don’t get me wrong, I understand that spam, real duplicates, truly off-topic questions, and pointless opinion wars hurt the site (and if they got out of control, that would be much worse than this).

But these sites exist for the benefit of their communities. Please, think twice before voting to close.

And if you’re unsure – why not just leave it alone?

ASP.NET AJAX Scriptmanager error

I recently had a problem using ASP.NET AJAX where I got an error message something like this:

The base class includes the field ‘ScriptManager1’, but its type (System.Web.UI.ScriptManager) is not compatible with the type of control (System.Web.UI.ScriptManager).

I had no idea how a particular type could be incompatible with itself, so I checked Stack Overflow (easily the best question and answer site for programmers). I found a question about this problem, but none of the existing answers worked for me. I googled around a bit, and eventually solved the problem. So here’s the answer for anyone else who might have this problem:

I managed to fix it by adding this to web.config:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>

I believe it forces the .net runtime to use the new versions of those assemblies.

I added this to the Stack Overflow question too, for posterity. That’s one of the cool things about Stack Exchange sites, the platform encourages questions to be solved properly, once and for all, and then easily found by anyone coming later.

Obviously it helped a lot of people – my answer fast became the top answer (by far) and I earned the rare “necromancer” badge for resurrecting an old question with a popular answer.

So there you go: if you found this through searching for answers to the above problem, I hope I’ve helped you solve it. If you’re in need of answers for programming, or a heap of other things, see if there’s a stack exchange site for you. If not, propose one.