My name is Andy Miller. I went to school for civil engineering, but hiring companies were more interested in computing than civil engineering, so that’s the path I took in my career. I’ve worked for a paper company, two utilities, a chip maker, myself, and now I’m in the learning technologies industry. This last is by far the most satisfying. The industry is filled with people that want to improve the world and we have in our hands the ability to make a tangible, widespread difference.

Coding makes me happy. This blog is one of the symptoms.

17 Responses to About

  1. von Stebut says:

    Hi Andy, One of our customers wants to use some context form a cours located in Moodle to a LMS (Cornerstone) which does not contain the LTI plugin.
    My questions are :
    – Is it possible/consistent to make a javascript Consumer Tool and put in in a SCORM package ?
    – If not, (and if I can convaince the LMS providers), Is it easy to install and use your consumer Tool in a cornerstone LMS (aspx server) ?

    Thank you very much for your answer.
    Best regards,


    • Andy says:

      Yes, you can easily write an Tool Consumer in javascript. But I don’t recommend it. You will need to include the OAuth Consumer Secret in the javascript so you can generate the signature. And that would defeat the purpose of the secret.

      It is very easy to use my LtiLibrary to add LTI functionality to an ASP.NET application. Search NuGet for LTI to find both the LtiLibrary and a sample to get you started.

  2. Hi Andy, look, I have a problem with the lti library 1.4 because the request (ltirequest) changed and I don’t know how to get the new ltirequest.generatesignature, this function need the secret but return a null value for me. Do you have an example with the new ltiresquest?

  3. David says:

    Hi Andy,

    Is there a version of the LTI library that supports .NET 4.0?


  4. N says:

    Hello Andy, I am getting this error, can you help me?
    Role Teacher does not exist.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.InvalidOperationException: Role Teacher does not exist.

    Source Error:

    Line 105: {
    Line 106: if (!UserManager.IsInRole(userId, roleName))
    Line 107: UserManager.AddToRole(userId, roleName);

  5. Hi,Andy
    Thank you for your posts. I am Huang from China. I am working on development tools for Canvas(LMS). But I am using PHP, is there any way let me know how to development tools for canvas with PHP?
    Hope to see your reply soon.
    Have a nice day!

  6. Scott Carson says:

    HI Andy,
    I am trying to develop a LTI Provider Using .Net WinForms, I was curious how do i accept the request and where it goes to? Meaning if we add the resourse in Moodle how do we accept that request?

  7. Scott Carson says:

    I am trying to implement Outcomes v2 in my application. The consumer I am testing against is moodle. I have done the folllowing:

    LtiLibrary.Core.Outcomes.v2.LisResult result = new LtiLibrary.Core.Outcomes.v2.LisResult();
    LtiLibrary.Core.Outcomes.v2.LisPerson person = new LtiLibrary.Core.Outcomes.v2.LisPerson();

    result.Comment = “Good Job”;
    result.ResultAgent = person;

    result.ResultScore = “50%”;
    result.TotalScore = 5;

    Exception ex = LtiLibrary.Core.Outcomes.v2.OutcomesClient.PostResult(result, Request.Form[“lis_outcome_service_url”].ToString(), Request.Form[“oauth_consumer_key”].ToString(), clsLtiParams.SharedSecret).Exception;

    My question is where does the parameters defined in lis_result_sourcedid go. I understand that currently there is no reference to a user in the LMS. How do i do this?

    • Andy says:

      lis_result_sourcedid and lis_outcome_service_url are not used in the draft version of Outcomes 2. Instead you would include the result sourcedid in the result service url.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s