From 860fce03cf1efccca8fe6378b952dc4bde51d31e Mon Sep 17 00:00:00 2001 From: Blaise Thompson Date: Sun, 29 Nov 2020 15:51:26 -0600 Subject: bluesky for the rest of us --- build.py | 2 + posts/bluesky-for-the-rest-of-us.md | 90 +++++++++++++++++++++++++++++++++++++ posts/voting-record.md | 20 ++++++++- 3 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 posts/bluesky-for-the-rest-of-us.md diff --git a/build.py b/build.py index 56196d2..3394180 100755 --- a/build.py +++ b/build.py @@ -31,6 +31,8 @@ class Post: posts = [] for post in os.listdir(__here__ / "posts"): + if len(post) < 3: + continue with open(__here__ / "posts" / post, "r") as f: content = md.convert(f.read()) kwargs = dict() diff --git a/posts/bluesky-for-the-rest-of-us.md b/posts/bluesky-for-the-rest-of-us.md new file mode 100644 index 0000000..02d347a --- /dev/null +++ b/posts/bluesky-for-the-rest-of-us.md @@ -0,0 +1,90 @@ +title: bluesky-for-the-rest-of-us +date: 2020-11-06 + +[Bluesky](https://blueskyproject.io/) is an awesome Python package for hardware orchestration. +Really, it's amazing. +It's an abstraction layer allowing scientists to easily define and carry out almost any experiment. +The abstractions it defines are well thought-out. +A whole ecosystem of Bluesky-compatible tools exist that could replace much of the software you're building yourself.
+ +You really should be using Bluesky...
+But... + +How do I "use Bluesky" anyway? +I'm just a graduate student in a small lab building a humble instrument. +The Bluesky developers work for large national labs that have teams of staff scientists setting up their instrumental infrastructure! +Where is my hardware enablement software? +What the heck is [Ophyd](https://blueskyproject.io/ophyd/)? +How do I store my data to a simple text file? +What are the concrete benefits of this ecosystem anyway? + +I'm right there with you. +That's what this blog post is all about. +It's my attempt at a beginners guide to Bluesky, written for "the rest of us" humble instrumentalists who are just trying to make our experiments work without reinventing the wheel. +It's everything I wish someone had told me when I started. +This is a huge ecosystem with a lot of complexity, so think of this as a "bird's eye view". +This is also just my (Blaise's) opinion. +I am not a Bluesky developer. + +I hope that, with this introduction, you can join me in the growing community of small instrumentation developers benefiting from and contributing to the Bluesky Community. +If you are currently maintaining a small Python hardware orchestration or enablement package feel free to reach out to me directly---I'm happy to help build a bridge between your current package and Bluesky. +The more we can start to build in the same direction, the less we will have to duplicate each-other's effort. + +# table of contents + +[TOC] + +# big picture + +... + +# hardware enablement + +The core Bluesky developers are principally interested in [EPICS](https://epics.anl.gov/). +EPICS is a mature and sophisticated control layer with a huge [existing library of hardware support](https://epics.anl.gov/modules/manufacturer.php). +Bluesky interfaces with [Ophyd](https://nsls-ii.github.io/ophyd/) and Ophyd interfaces with EPICS via [PyEpics](https://github.com/pyepics/pyepics/) and [Caproto](https://nsls-ii.github.io/caproto/). +I won't pretend to know any more than that, and if you're one of "the rest of us" you probably don't need to know anything more either. +Unfortunately EPICS' sophistication and age bring complexity that is out of reach for most small labs. + +Luckily Bluesky uses a [very simple abstraction](https://blueskyproject.io/bluesky/hardware.html) for interfacing with hardware. +This means that it's actually very simple to write your own Python class for your own hardware. +To prove it, I'll write a simple interface for an imaginary linear translation stage. + +``` +status object +``` + +``` +device +``` + +Of course, several existing hardware enablement projects are already "Bluesky ready". Unlike EPICS, these projects are accessible to small labs. + +- [Instrbuilder](https://lucask07.github.io/instrbuilder/build/html/) +- [yaq](https://yaq.fyi), via [yaqc-bluesky](https://github.com/bluesky/yaqc-bluesky) +- more coming soon, I hope + +If you have a particular piece of hardware you are looking to control via Bluesky, I recommend starting by seeing if any of the projects above already support your device. +Importantly, it's fine to mix and match devices from a variety of packages. +If your hardware isn't supported by an existing project, you can either write your own interface class or try to contribute hardware support. +I'm a yaq core developer, so I'd be especially happy to see you add hardware to the yaq ecosystem---feel free to [get in touch](https://yaq.fyi/contact/). + +# Bluesky basics + +Events + +Plans + +Run engine + +Data storage + +# data storage + +# clients + +happi + +PyDM + +# the ecosystem diff --git a/posts/voting-record.md b/posts/voting-record.md index 0cb20d2..92dad25 100644 --- a/posts/voting-record.md +++ b/posts/voting-record.md @@ -1,5 +1,5 @@ title: voting record -date: 2020-08-11 +date: 2020-11-03 Blaise Thompson's personal voting record. @@ -7,6 +7,24 @@ Blaise Thompson's personal voting record. [TOC] +# 2020-11-03 general election + +President of the United States
+☑ Joe Biden / Kamala Harris
+☐ Donald Trump / Mike Pence
+☐ Jo Jorgensen / Spike Cohen
+☐ Brian Carroll / Amar Patel
+☐ Don Blankenship / William Mohr
+ +United States House of Representatives
+☑ Mark Pocan
+ +Wisconsin State Senate (District 26)
+☑ Kelda Roys
+ +Wisconsin State Assembly (District 76)
+☑ Francesca Hong
+ # 2020-08-11 partisan primary Representative In Congress District 2 - Democratic
-- cgit v1.2.3