New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Augmented Reality lesson issues #717

Closed
acrymble opened this Issue Feb 16, 2018 · 22 comments

Comments

Projects
None yet
6 participants
@acrymble
Copy link
Contributor

acrymble commented Feb 16, 2018

  • Introduction to Mobile Augmented Reality with Unity

According to Shawn Graham and Dany Guay-Belanger on Twitter, the above lesson is now out of date because of changes to the underlying software (Unity). I don't know the details of this, but Dany was sure that this needed to be revisited.

If either of them could help clarify the issue, that would be really great.

@ianmilligan1

This comment has been minimized.

Copy link
Contributor

ianmilligan1 commented Feb 16, 2018

@shawngraham

This comment has been minimized.

Copy link

shawngraham commented Feb 16, 2018

The problem is that one no longer downloads & installs the vuforia package from the vuforia website into Unity. (I don't know if the stand-along package still exists for older versions of unity).

Instead, it's an option that one ticks off when installing Unity in the first place.

The next problem is that, once installed, AR objects are now default in-game objects with their own parameters and so on that formerly we built up ourselves. So you'd go to the 'game objects' menu, select 'AR objects', select the next option, etc.

I mean, this does make it easier to build interesting AR apps I would think, but I'll need to rebuild an AR experience from scratch to understand what exactly has been bundled up and what hasn't. I haven't come across any decent documentation from Unity yet on how to use these new objects. I assume it's out there, but last night during class we couldn't find anything.

I believe you still have to go to vuforia to make the image tracker database, but that's something else to double check.

@walshbr

This comment has been minimized.

Copy link
Contributor

walshbr commented Mar 12, 2018

I pinged Jacob about this. He's going to try to jump into this thread in the next week or two with some thoughts on how to approach revisions. He's also giving an AR workshop in mid-April, so he proposed using that as an opportunity to beta test revisions to the lesson.

@jacobwgreene

This comment has been minimized.

Copy link

jacobwgreene commented Mar 19, 2018

Hey all, thanks for bringing attention to this. I'm glad to see other people doing AR work in Unity! Would love to hear about your projects sometime.

As Brandon noted, I'm hoping to get a new tutorial written up in the next few weeks that addresses the new integration of Unity/Vuforia. It is actually much easier to get up and running, but I will keep some of the info from the previous lesson about working with Unity, etc. as well as some of the troubleshooting stuff for when it comes time to push the app to a mobile device. I'm a windows/Android user, so i'll need to find someone to test out the iOS deployment. In the meantime, Vuforia has a great intro lesson for the new integration that can be found here: https://library.vuforia.com/articles/Training/getting-started-with-vuforia-in-unity.html. I'm not familiar with the new "AR objects" integration, but I will investigate further as I move forward with the new lesson.

Also, if anyone who has used the lesson has other suggestions, please let me know. I'm hoping to submit a few more lessons soon about UI design, but if there are other AR lesson topics people would like to see I might be able to add those as well.

@jacobwgreene

This comment has been minimized.

Copy link

jacobwgreene commented Mar 19, 2018

and my Twitter handle is @jacobwesgreene

@mdlincoln

This comment has been minimized.

Copy link
Member

mdlincoln commented Mar 20, 2018

@jacobwgreene Those are interesting points about possible new lessons. However, that still leaves us with the potential problems in the current lesson. Do you think the existing lesson is worth editing back in to shape? Or are the changes extensive enough that it's better to just do a new one entirely based on Unity/Vuforia? In which case we'd probably want to retire the current lesson.

@walshbr

This comment has been minimized.

Copy link
Contributor

walshbr commented Mar 20, 2018

@jacobwgreene - I noticed the Twitter handle as well. I've updated you on the site and in the Twitter bot spreadsheet.

@jacobwgreene

This comment has been minimized.

Copy link

jacobwgreene commented Apr 2, 2018

@mdlincoln most of the lesson should still be relevant since a lot of it covers intro to the Unity editor, which hasn't changed substantially. Another thing to keep in mind is that many university computer labs (such as in our science libraries) still operate with the version of Unity that they installed when negotiating the licensing fees, which is typically a few updates behind. In those cases, this older lesson would actually be more relevant. Perhaps the best solution for now would be to post a note at the top with something to the effect of: "This lesson is currently being updated and is only compatible with Unity 5.6.5 and below. If you are using the latest version of Unity (Unity 2017.3.1), consult this introductory lesson from the Vuforia website".

@mdlincoln

This comment has been minimized.

Copy link
Member

mdlincoln commented Apr 2, 2018

That's useful context @jacobwgreene . I'm still unclear as to whether the plan is to edit and update the existing lesson, or write an entirely new lesson while still leaving the old one published with an advisory note?

If a whole new lesson, with a new page and everything, is going to be written, it's probably better to say that then to suggest that the page at the current URL is going to be changed in the near future.

@jacobwgreene

This comment has been minimized.

Copy link

jacobwgreene commented Apr 9, 2018

@mdlincoln I'm currently working on revisions to the current lesson. Right now, I have a note early in the lesson that directs the reader to the previous lesson if they are unable to update to the most recent version of Unity. Would it be possible to keep the old lesson in an archive somewhere and link to it from this new lesson?

I should have the revised lesson completed by the end of the week. I also added a new section that walks the reader through the process of creating a simple UI for their application. Would you like me to push the changes once completed or should I find some more reviewers to go through the new lesson before I do that?

@mdlincoln

This comment has been minimized.

Copy link
Member

mdlincoln commented Apr 9, 2018

I think we're getting tripped up over semantics - we have a process for "retiring" out-of-date lessons so that they remain accessible but also clearly marked as out of date. It sounds like you're really intending to create a whole standalone new page while retiring the existing lesson, not just revising a few lines in the existing lesson. So this would be a "retire" + new lesson situation, it sounds like 👌

@walshbr you're on this issue, are you the editor in charge? The editor would make the call on if new reviews are wanted.

@jacobwgreene

This comment has been minimized.

Copy link

jacobwgreene commented Apr 9, 2018

@mdlincoln that works for me. Thanks for the clarification

@walshbr

This comment has been minimized.

Copy link
Contributor

walshbr commented Apr 10, 2018

Yep yep - I'm the editor in charge. I just didn't have anything to add so far to your good questions @mdlincoln - thanks for making those comments!

I was confused as well by the semantics but it does sound to me like retire and new lesson sounds like the right call to me from a technical standpoint. But it sounds like spiritually this is the same lesson with updates for the technical components that have changed, correct? If that's the case then I don't think we don't need new reviewers on the lesson unless you wanted them for some reason (you're welcome to ask for them if you'd like). We can make that call when I see the revisions though - I suppose it would depend on how substantially different the lesson would be. I think the next step would be to open a pull request with the revisions that you have in mind and then we can go from there.

@acrymble

This comment has been minimized.

Copy link
Contributor

acrymble commented Apr 10, 2018

Might I suggest at least a light review to have an eye out for sustainability? Since that's what is being corrected now?

@walshbr

This comment has been minimized.

Copy link
Contributor

walshbr commented Apr 10, 2018

Sure thing @acrymble - thanks for the input.

@mdlincoln

This comment has been minimized.

Copy link
Member

mdlincoln commented Apr 10, 2018

Sounds good 😄 @walshbr keep me in the loop once this gets closer to publishing - we'll want to retire the old one as part of the same PR before merging it all.

@jacobwgreene

This comment has been minimized.

Copy link

jacobwgreene commented Apr 16, 2018

@walshbr @mdlincoln I've made the necessary updates to the lesson taking into account the updates to the Unity/Vuforia integration. Because these changes made the lesson much simpler and easier to follow, I took the liberty of adding a new section titled "Create a Simple User Interface" that introduces Unity's companion IDE monodevelop as well as some of the basics of modifying existing C# scripts. I think this sections helps fill out the lesson and gives the reader a glimpse of the power and adaptability of Unity as an app development engine. However, if the reviewer's feel it is too much for an intro lesson I can certainly put it on the back burner for now or save for future lessons.

Would you like me to push these changes to the existing lesson or will you be creating a new folder for the revised lesson?

@walshbr

This comment has been minimized.

Copy link
Contributor

walshbr commented Apr 17, 2018

@jacobwgreene thanks! I believe the next steps would be as follows:

  • Open a new pull request to collect all the work together. This new PR will do two things - retire the original lesson and make a new lesson that publishes the new lesson. Push your changes to this pull request, and we can continue the conversation and invite reviewers to take a look there.

To retire the original lesson:

  • Move the original lesson to the “retired” directory in the lessons directory.
  • Remove the old lesson from the twitter bot spreadsheet and replace with the new one (I can do this when we have a URL for the new lesson.
  • Add the following metadata to the YAML header (though the following information is just copied from another example and should be substituted with your own):
retired_date: 2017-07-05
retired: true
retirement-reason: |
  This lesson relied on the Python library libZotero, which is no longer maintained, and which now returns several errors when used. [See further discussion about this retirement decision.](https://github.com/programminghistorian/jekyll/issues/225)
redirect_from: 
  - /lessons/counting-frequencies-from-zotero-items
  • Push those changes to the same PR as well.

That should be it, and we can open a peer review for the sustainability of the lesson on the PR thread. But @mdlincoln can confirm about the process of retiring a lesson (I might have missed these steps somewhere in our documentation). The only thought I had was that it might cause problems if your new lesson has the same slug as the old one because the lesson and title are virtually the same. I'm not sure we have a policy for this sort of revision where we want to maintain a legacy copy of the original lesson. @mdlincoln - how about the following procedure:

  • We preserve the title of the current lesson in the new, revised lesson. That way, anyone who might be visiting the old URL expecting to see an up-to-date and workable version of the lesson will still find it.
  • The retired, legacy version of the lesson gets a modified slug of some kind, perhaps incorporating the Unity version number in this case.
  • The new lesson and old link to each other with an explanation so as to direct people to a lesson supporting a particular version of the software?
@mdlincoln

This comment has been minimized.

Copy link
Member

mdlincoln commented Apr 17, 2018

The first part of @walshbr's instructions about how to retire the old lesson are fine. But the second part isn't 😬 (sorry!)

You need to do the inverse: keep the old filename&slug on the original lesson, and the new lesson has a new filename&slug. This makes things simpler from a technical perspective, yes, but it also the correct thing to do in the open world of internet documents: you've made clear that this is a substantially new lesson, ergo a new document that really gets a new URI. Obviously we will put a link to this new lesson in the banner of the retired lesson.

The actual title text in the YAML metadata can be whatever you want - keep it identical if you really want. But the URL is generated from the filename of the markdown document, and it really needs to be different.

Please let me open an initial PR that retires the old lesson, then you can add to that.

@walshbr

This comment has been minimized.

Copy link
Contributor

walshbr commented Apr 17, 2018

Thanks @mdlincoln!

@mdlincoln

This comment has been minimized.

Copy link
Member

mdlincoln commented May 2, 2018

Now the out-of-date lesson has now been retired, @walshbr, I'm going to go ahead and close this issue for now, given that discussion on the new lesson(s) is now happening over on programminghistorian/ph-submissions#169.

@mdlincoln mdlincoln closed this May 2, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment