Skip to content
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

Syllabus for upcoming tutorial for beamline staff #26

Open
danielballan opened this issue Jan 9, 2025 · 3 comments
Open

Syllabus for upcoming tutorial for beamline staff #26

danielballan opened this issue Jan 9, 2025 · 3 comments

Comments

@danielballan
Copy link
Member

danielballan commented Jan 9, 2025

Start (Tutorials)

  • How to Use This: local install, JupyterLite, JupyterHub (?)
  • New to Python? (link to https://lectures.scientific-python.org/, Software Carpentry, and others)
  • Quickstart: Hello Bluesky (ophyd + RE + tiled + plot)
  • What is Bluesky?

How-To Guides

  • Access Data: auth, search, navigate and slice, export
  • Compose "Plans"
  • Capture Metadata
  • Interrupt and Resume (pause and suspend)
  • Integrating Devices
  • Use Streaming (callbacks)
  • Simulate Experiments
  • Debug (logging, msg_hook, etc)

Solutions

  • Use 0MQ to Stream Documents
  • Automatically take dark frames

Add to this section application-specific tutorials from past User Meetings.

Integrations

  • PyMCA
  • Napari

Technical Overviews

  • Ecosystem Architecture
  • Ophyd and Ophyd-Async
  • Document Storage
  • Anatomy of an Ophyd Device
  • The Parable of the RunEngine
  • RunEngine over HTTP (Queueserver)

Reference

  • Bluesky Document Model

More ideas...

@bruceravel
Copy link

This is a good start, but it seems really scattered. "What is Bluesky" and "Anatomy of an Ophyd Device" are not topics I would want to introduce to a hire on the same day. Probably not the same month.

I'm not certain the organizational structure suggested here is the right way to think about training a new BL hire. That is, I think the structure proposed here are the <h2> ... </h2> labels. The <h1> labels should be more focused on aspects of the BL experience. For example:

  • Training to do user support
  • Writing a measurement plan
  • Integrating a motor or detector into the beamline
  • Using tiled for data visualization, reduction, and analysis
  • Developing a data reduction / date analysis pipeline
    and so on.

With that sort of structure, then subheadings like "getting started", "how-to guides", and "technical overview" make more sense, will be easier for the authors to write, and will end up being more focused. More focused probably means more useful to the flummoxed newbie.

@bruceravel
Copy link

bruceravel commented Jan 9, 2025

I am also confused about the purpose of the Integrations heading. What is the value add of that section beyond the (presumably) excellent on line offerings? And what is the scope of that section. At BMM, for example, we do not use either of the programs on the list. (Edit: well, on second thoughht, the IBM folks use PyMCA to visualize theta/2theta and reflectivity data.)

So "Integrations" is a confusing heading. Something like "Useful tools from outside the Bluesky ecosystem" is probably more what you mean. I think the way to frame an entry about a specific external package would be something like:

  • What measurement techniques is this relevant to? What beamline is this relevant to?
  • What documentation / explanation is needed for NSLS-II use cases that is not covered in the online documentation?
  • How does this package interact with Tiled?
  • Give examples with step-by-step instructions and screenshots, using real, measured-at-NSLS-II data which is publically available.

@danielballan
Copy link
Member Author

This is good feedback. For what it's worth, we intend to cover this over a period of several months, perhaps ~12 weekly sessions. So, indeed, it is not something we would cover in the same week or month. Some of this material may be supplemental, for people who explore when they are ready.

The purpose of the "Integrations" is to specifically address how to use popular external software with Bluesky and Tiled. (You may know we have plugins/extensions in development to integrate both Napari and PyMCA with Tiled for more streamlined access.) I like your framing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants