Closed bkatiemills closed 8 years ago
+1000 This would be great. I think your suggestions so far are good (common syntax changes, etc.).
What I would really enjoy seeing is how to make Python2 code compatible with Python3, using for instance, from __future__ import print
and the like. This seems to me to be a small step towards Python3 but might help bridge the gap.
I was being somewhat selfish with this idea. I'm happy to teach python2 and do quite a lot of my own work using it, but have failed to find any time either moving to python3 or even thinking about what I need to know before the first workshop where we will be using python3. It's that apparent activation energy thing...
However, I suspect I'm not the only person in this boat and so it is probably worth using some time at the retreat to overcome that barrier. In terms of high level goals, I would like to come away with answers to the following:
I could probably work out the answers to most of these things fairly easily with some reading and experimentation - but that brings us back to getting over the energy barrier. Let's find a way to tunnel through that.
Anyway, I wonder if the most effective approach isn't to have somebody run this as a broadcast session (or isn't only to have this as a broadcast session) but to have a group of us collaboratively write and/or test a short self-study guide for instructors. I expect we have people in my boat who won't make the retreat (and maybe who are not yet instructors).
@andreww I would definitely be game to help pull together a study guide for this! Here's a skeleton containing our points so far - pull requests and further ideas very welcome! I'm hoping someone steps up to lead this session at the Retreat, since I may or may not be on a plane then, but I am definitely happy to help pull together the text for a lesson targeted at instructors.
Your list of ideas is awesome, we can definitely pull that together. The only one I don't have an intuition for off the top of my head is difference in misconceptions that arise for learners. Having a mixed 2/3 class is a guaranteed gong show, but do any of the other instructors have any new pitfalls to watch out for in 3?
If anyone wants a hand with this, let me know - I've written several libraries that operate happily in Python 2.7+ and 3.2+ from a single codebase (mostly educational Pi stuff, e.g. picamera, picraft, but some science-related projects too, e.g. umansysprop and compoundfiles) and I'm happy to discuss the methods I use.
My method is to try and write my code in an idiomatic Python 3 style, with a compatibility header where required to make Python 2 as much like Python 3 as possible (under the assumption that one day, in the dim and distant future, when Python 2 is finally removed I can theoretically just remove that header and I'll be left with nice clean Python 3 code).
I'll be at the Manchester retreat, but I can only make the morning (got a friend's wedding in the afternoon!).
Thanks, @waveform80 - would love to see some minimal examples of those headers, that would be a great thing to add on. Any interest in leading this presentation that morning?
Sure I can do that (I actually wrote on talk on this subject a couple of years ago for the local Python North-West group, but it'll probably need updating a bit!)
@waveform80, that's awesome! @ttimbers is in charge of broadcast session booking, she can help you get a session booked at a time that works for you. Thanks for doing this!
Thinking about how we will make this work. I think a broadcast session by @waveform80 would be very useful, and it would be good if this could be recorded in some form and eventually embedded in the study guide. I also think we should spend some time fleshing out the study guide at the retreat. A final possibility would be to have some "python 2" people work through our updated python (3) lesson. That should smoke out opportunities for confusion, which could be added to the "Common Gotchas" section or posted as issues / patches to the lesson.
I'll also be in Manchester, which will probably be useful. In terms of preparation if @waveform80 is happy to prepare and deliver a broadcast session in the morning, I'm happy to help coordinate the generation of the guide and gather feedback from anybody doing a lesson walkthrough. It may be good for somebody in the US to pick things up later in the afternoon (UK time) and maybe gather feedback on whatever we manage to produce.
Since the UK sites are starting at 10:00 AM GMT, and Greg Wilson is giving a contributorship session at 11:00 AM GMT, @waveform80 I would like to schedule you for 1:00 PM GMT - will that work?
Hmm ... tricky - I've got about an hour's drive to get to the wedding at 3:00 PM which is cutting it rather fine if I'm presenting until 2. Any chance I could grab a slot immediately after Greg's at 12? Or possibly even one at 10 if it's free?
Of course @waveform80 ! 10am it is!
@andreww these are excellent ideas all! Do please be in touch with @apawlik, who is organizing the Manchester site; I'll be asking the site hosts to start pulling together some loose plans for the day shortly, and your ideas should definitely be part of that conversation.
I don't see @waveform80 on the broadcast sessions list at http://swcarpentry.github.io/instructor-retreat-2015/ - is this still happening?
Assuming this is a likely to happen, I'll pull together a minimum amount of getting started documentation that would need to be added to @BillMills skeleton, so people can test and contribute on the day.
@waveform80 @ttimbers - any progress on arranging a time? Let me know if I can help!
@BillMills @waveform80 it's scheduled for 10:00 am UTC on the planning etherpad, apologies I forgot to include it on the PR for the website schedule. Will do tomorrow.
Final thought on this (before next weekend). Is it worth pulling the skeleton out into it's own repository before trying to populate it after the broadcast session? If so, should I create the repository, or does it belong in the SWC organisation?
I would start your own repo, for convenience at this point. If SWC wants to maintain their own copy, the appropriate lesson maintainers can fork it. Looking forward to this!
Ok - for reference the repo is at: https://github.com/andreww/python3_friends
@waveform80 we still need your Google Hangout on Air link for the broadcast on Saturday. Instructions on how to create it are here. Please let @BillMills or I know if you need help setting it up and/or if you'd like to try out a test session (they are slightly different than the regular Google Hangouts).
We have moved to Python 3.
@andreww suggested a possible session on migrating to Python 3, and I think this is a great idea; it's not actually that hard in most cases, but it feels like a big activation barrier. Two questions:
As for content, I don't think we need to cover every single last detail; just stuff likely to impact the basics, like syntactical changes (print -> print()), and basic structural changes like relative imports. Might be neat to see a
2to3
demo too. Any gotchas around notebooks as we move to 3? Or any other ideas.