summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlaise Thompson <blaise@untzag.com>2020-11-29 15:51:26 -0600
committerBlaise Thompson <blaise@untzag.com>2020-11-29 15:51:26 -0600
commit860fce03cf1efccca8fe6378b952dc4bde51d31e (patch)
tree090743b74f159ac8e4492538cc1a2bc8fae78796
parentffb2a1bdf0ae43db67f0183c37df4e9a461f05e1 (diff)
bluesky for the rest of us
-rwxr-xr-xbuild.py2
-rw-r--r--posts/bluesky-for-the-rest-of-us.md90
-rw-r--r--posts/voting-record.md20
3 files changed, 111 insertions, 1 deletions
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. <br>
+
+You really should be using Bluesky... <br>
+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 <br>
+&#9745; Joe Biden / Kamala Harris <br>
+&#9744; Donald Trump / Mike Pence <br>
+&#9744; Jo Jorgensen / Spike Cohen<br>
+&#9744; Brian Carroll / Amar Patel<br>
+&#9744; Don Blankenship / William Mohr <br>
+
+United States House of Representatives <br>
+&#9745; Mark Pocan <br>
+
+Wisconsin State Senate (District 26) <br>
+&#9745; Kelda Roys<br>
+
+Wisconsin State Assembly (District 76) <br>
+&#9745; Francesca Hong <br>
+
# 2020-08-11 partisan primary
Representative In Congress District 2 - Democratic <br>