You are here

Steven D. Brewer's blog

Social Distancing and the Makerspace


I've had a great time during my Professional Improvement Fellowship working in the All-Campus Makerspace. It's a vibrant community of people working on projects they're passionate about. I enjoyed going in every morning, getting a few hours of work before anyone else arrived, and then breathing in the atmosphere as the place filled up. I've made good progress on my project and learned a huge amount about the topics I'm studying. And it's been fun.

I fear the students didn't quite know what to make of me. I wasn't staff and I wasn't student. I was just kind of there. But they were very welcoming and let me be a peripheral participant. I got to help out, in minor ways, with a dozen or more projects going on in the Makerspace. And they were just starting to discover what a weirdo I am. 

On Wednesday, March 11, 2020, it became clear that the University would be taking steps to enable social distancing and the Makerspace made the decision to close operations to give staff Thursday and Friday before spring break to plan and prepare for the changes.I swung by on Wednesday and took home my box of materials and got set up to begin working on my project from home. I had realized, even as the pandemic was in its earliest phases, that working there was probably risky. It's a campus crossroads with students from all over campus coming through. So I had been expecting to step back at some point. It was just a surprise to have it happen so suddenly.

I haven't made much progress since I started working from home. I assume that once the excitement over the pandemic wears off, it will be easier to focus and get stuff done.  But I'm really going to miss working in the Makerspace and all the new friends I've made there.

Raspberry Pi Phone Home Script

For working with headless Raspberry Pis, I thought it was useful to have the Pi report its address(es) when it boots. Originally I wrote it as a one-liner, but I realized that it was useful to grab the MAC address for debugging porpoises. But to get that, you need to know which interface is active. And this was starting to sound less like a one-liner and more like a script. So I hacked one together in bash.

The script just iterates through the interfaces, checks to see if they're up, and then reports the info back to a script on the server.

#! /bin/bash
# rpi phone home script 20200228 sbrewer
for i in $(ls -1 /sys/class/net)
  #echo "Working on $i interface..."
  if [ $(cat /sys/class/net/$i/operstate) = "up" ]
     echo "Reporting $i interface..."
     _IP=$(hostname -I) 
     _HW=$(cat /sys/class/net/$i/address)
     /usr/bin/wget -O/dev/null -q$_HW\&pi=$_HN\&ip=$_IP

Making shimenawa and shide

A staple in Japanese manga and anime are the trappings of shinto practices. Shrines are frequent settings and, although they're rarely discussed directly, you see the architecture, objects, and designs as part of the background. I probably saw a shimenawa first in My Neighbor Totoro, which was perhaps the first anime I really watched. The giant camphor tree is almost a character in the movie and although I saw the shimenawa around it, I didn't know what it was or what it meant.


(image via ecostories)

I also saw a shimenawa in the anime Natsume Yujincho and the Book of Friends. Natsume breaks a shimenawa that releases a dangerous yōkai that ultimately becomes his guardian and tutor. Most recently, I've been reading Nekomusume Michikusa Nikki which includes shrines in the various settings and in which shimenawa feature prominently (if anonymously). There are also end-of-chapter information pages and one of them may have shown shimenawa.

For whatever reason, I realized that I didn't know anything about them, so I googled them. I didn't even know the word when I started, just searching for "japanese shrine tree rope" which helped me find a series of pages about them, including a wikipedia page. And that led me to the wikipedia page for shide. And a number of pages that described how to make them. I resolved to make one for my sakura tree.

In the pictures I had seen, a shimenawa seems to traditionally have a rope, tassels, and shide. So I went out to find the components to make one.

Shimenawa are traditionally made with rice straw, but hemp is also used. I was dubious about finding rice straw in this area. I thought about trying to find raw hemp, as it is increasingly grown in this area. But making rope looked like a lot of complicated work. So, cheating just a bit, I went to the store and found a heavy sisal rope for $1.35/foot and got a dozen feet.

When I got back with the rope, Alisa asked, "Did you measure it first?"

"Guess," I replied. She just smirked. But it turned out that 12 feet was exactly right: just long enough to tie a knot with no extra. OK. Maybe 14 feet would have been better.

For the tassels, I looked online and saw that people often make them with embroidery thread. The bundles of thread are already looped which makes it easy to tie up one end and cut the other to make a pretty tassel. And I considered getting brightly colored thread. But that seemed gaudy and out-of-place given what I had seen online. So I just bought a big ball of thick, jute twine, wrapped it around a large shim (I used an old 18 egg carton) and then tied up one end and cut the other. I also bought a length of thinner hemp string that I used to tie up the tassels -- and the ends of the rope -- and to hang everything.

I also bought a pad of thick drawing paper to make the shide. I had found a page on how to make shide, which explained how to make a series of cuts and then fold the paper up while rotating. It's easy, once you get the hang of it.

I ended up making 8 tassels and 4 shide. Once I had everything in hand, it was simple to tie the rope around the tree and then distribute the tassels and shide at likely spots along the length.

shimenawa on sakura tree

I'm pleased with the results. The total cost in materials was about $30. It took me several hours to purchase everything and then a couple of hours to make the tassels and shide and to hang everything on the tree. But it was a warm winter day with sun and I enjoyed the chance to do something outside and dream of the sakura blossoms to come.

And of course, I had to post a thread on twitter.

made a shimenawa for his beloved sakura tree / faris ŝimenavon por sia amata sakuro

— Steven D. BREWER (@limako) February 17, 2020

This first time was an experiment. Maybe by next time, I'll be ready to try actually making the rope. Or maybe not. It's fun either way.

BluetoothLE Project

Last spring, a faculty member and student met with me to discuss building an instrument and I agreed as a kind of "dry run" as part of the preparation for my new class.  It sounds like a relatively simple project: a small, wearable device that collects two temperature readings. After a cursory bit of research, I recommended we try using the Adafruit Feather with BluetoothLE and two Onewire temperature sensors. It sounds simple, but trying to get it to work proved way more complicated than I had imagined.

First, we were hampered by trying to connect to the feather using the Windows laptop the student had. She didn't know anything about using serial ports via USB. And the USB cable she had was power only. And the bluetooth interface on her laptop couldn't do BluetoothLE at all. So everything felt like two steps forward and one step back.

Getting first one and then two temperature sensors working over the Onewire interface was not too bad. But then we confronted the fact that her laptop couldn't do BluetoothLE -- and I realized that even if we could, we would end up wanting a data logger that would remain after she completed her project. So I recommended we get a Raspberry Pi.

I had expected BluetoothLE to be relatively straightforward. Boy was I surprised. There were a few examples that were provided with the Adafruit Feather: we tried the heart-rate monitor example to start with. But it turned out to be not a good fit for what we were trying to do. It turned out that the implementation is tied to proprietary protocols and there were complicated twists at every level. The heart rate monitor example uses a predefined set of characteristics that are not readily generalizable. After struggling with it for a long time I was on the point of giving up.

After much experimentation, I decided that a generic uart connection would make more sense. But there were a bunch of tricks to getting it to work at all. It turned out I couldn't connect to the device without first doing a "scan" with the adaptor. The python bindings that came from Adafruit didn't work. Eventually, I found pygatt -- a different set of python libraries that (by using a deprecated set of connection tools) I could get to connect more-or-less reliably, and receive data. But it could only send text, so I multiplied the float by 100, rounded to an integer, transmitted the integer as CSV, parsed the CSV with python, and divided by 100, before rebuilding CSV together with a time stamp.

It reminded me a bit of the Galileos I worked with a couple of years ago. As an expert, I could work with them and ultimately get them to roll-over and bark. But it wasn't something that I would expect a novice to be able to take on and get anywhere with.

Overall, the experience was very useful to me for the kinds of projects I'm hoping students will do. And I learned a bunch of useful tricks for working with these tools, although there are still a number of hurdles to overcome.


When I was working with pis on the wired network, the technical staff would configure them with a static ip, which made them easy to contact when running in headless mode. But the Makerspace doesn't have wired eithernet and, even when it will, it will probably use the campus services, which generally do dynamic addressing. So I'd like a Pi to report what address it's on to a central location so I can track it.  I've adapted some PHP code on the server side to receive and report these data.

You need to set the hostname on the pi and then I've crafted this one-line liner to add to rc.local that, if the network is configured, will report it's IP address.

/usr/bin/wget -O/dev/null -q`hostname`\&ip=$_IP

Just add inside the test that prints the IP address and done.

LaTeX for the Win

I had a good conversation with Tom over weekend about my thinking for my new course. We talked about the structure of the course, using the Software Carpentry lesson template for approaching the technical training aspect, and how the experience I've had helping students manage projects in the writing class will probably be apropos in this class.

"How are you going to have students manage their manuscripts?" Tom asked.

Years ago, I had showed Tom how to get started with LaTeX which he used to great effect in graduate school. He had suggested I use it with the students in my writing class, but I had declined, since I felt the learning curve would be too steep. But this class is different: I'm going to be pressing students to learn to use the command line, to write code, and to manage their projects using git. Building their thesis using LaTeX just seems like a natural extension at that point.

Tom pointed out that CS has a LaTeX template for submitting a thesis to the graduate school. I still need to check with some of the departments (like Math and Astronomy) that are almost certainly already using TeX for honors theses. And it's yet another domain I'll need to spend some time getting back up to speed with. But it's a good idea and should be a lot of fun.

Fellowship Begins

Last spring, I was awarded a Professional Improvement Fellowship which gives me a release from my "regular responsibilities for one semester" to work on the project I had proposed. This is kind of a big deal.

When I arrived at the University, Lo, these many years ago, I was one of relatively few Non-Tenure Track (NTT) faculty. Although, I was hired in at a salary that was competitive with other faculty, there were no promotion opportunities and the conditions for NTT faculty varied widely across the campus. Over the years, we've made huge strides at the bargining table through patient negotiation. In the last contract, we secured a one-semester leave for Senior Lecturers to work on a significant academic project. The first time I applied, I did not receive one, but was awarded one the second time around

During the fall, in free moments here and there, I began laying the groundwork for my leave. I applied and received some travel money to attend meetings during my professional leave and I submitted a proposal to the Honors College to have my course project fast-tracked for approval as an honors seminar. This proposal was also approved and I have now submitted the official paperwork for the course approval process. And it has cleared the first level of approval. Here's the course description:

In this two 4-credit course sequence, students will build instruments using open science hardware and collect data that bears on a research question. In the first semester, students will explore case studies about creating/deploying instruments combined with hands-on activities to develop technical skills for instrument development. Each technical lesson and activity, modeled on the Software Carpentry curriculum, will lead students through two instrumentation platforms (Raspberry Pi and Arduino) and how to collect, log, and analyze data from analog and digital sensors. Students will post brief weekly "Research Notes". By the end of the first semester, students will have (1) drafted a proposal for a research project and (2) developed a functional prototype of the instrument. During the second semester, students will use Agile project management techniques to collaboratively build, test, and deploy finished versions of their instruments and conduct iterative rounds of calibration and data collection to assemble a data set that bears on their research question. By the end of the course, students will complete an individual thesis using data collected with their instrument and create an "instructable", supplemented with imagery or video, that describes their instrument, how it works, and how to make one.

Now the real work begins.

Best Western Paradise Inn Bad Green Program Implementation

When my brother Phil moved to Savoy, we started staying at the hotel nearest to his house, the Best Western Paradise Inn. We've stayed here four or five times now. And up until this visit, I was reasonably happy with them. But they've instituted a new policy: the "Go. Get. Green Initiative".

I've seen various "green" policies at hotels for years that involve some aspect of reducing laundry service or forgoing maid service. I'm a bit skeptical of these, in part, because their primary effect is to reduce labor and energy costs to the owners, with no evidence that these cost reductions are passed along to the consumers. At the same time, I recognize that traditional hotels are being forced to compete with unregulated, hobbyist "hotel-like" services, like AirBNB and are being squeezed economically.

We arrived at the hotel after about 26 hours of travel and I was exhausted. The friendly person at the counter gave me a sheet of paper with three highlighted lines to initial: two in yellow and one in green. The yellow lines were standard things like the charge for smoking in a non-smoking room. The green line was for the "Go. Get. Green Initiative." It sounded typical: earn some fake points by forgoing a couple of nights of maid service. I read it, asked a couple of questions, and initialed the line.

But the next day, we got no maid service. Nor the next night. Nor the next night. Finally, I walked down and asked about it. It turns out that by agreeing to the program, I had supposedly agreed to receive no maid service during the entire stay. I expressed astonishment that, for a 13 day stay, why anyone would want that. The poor young woman behind the counter said she would strike our rooms from participating in the program and that she was sorry for the misunderstanding (and that I would lose my "points"). She called her manager on the phone, but the manager offered no useful information or guidance — at least none that was communicated to me.

But I was still pretty angry and left them a poor review at Google and tweeted about it at Twitter. After another day, I'm still pretty angry at how the whole thing was handled.

It reminds me a bit of the Monty Python Crunchy Frog sketch. "I think it's be more appropriate if the box bore a great red label: 'WARNING: LARK'S VOMIT!!!'" The hotel should use a red, rather than green, highlighter and say, "WARNING: YOU WILL GET NO MAID SERVICE DURING YOUR ENTIRE STAY."

In point of fact, the webpage about the "Go. Get. Green Initiative" seems to suggest that it's supposed to work by giving you a sign to hang on your door on the nights when you want to forgo maid service: that would be totally reasonable. But they didn't do that. Perhaps the Best Western company might want to look at what this particular hotel is doing.

In any event, I have to seriously question whether I'll stay at this hotel again. It's convenient because it's so close. But maybe it's time to look at other places. It's not like I don't have a car when I come here, so what's the difference between a two minute drive and a 5 minute drive?

And, indeed, I'm somewhat skeptical about Best Western itself and their oversight of their hotels' implementations of this program.

Postscript: It was Christmas Eve when I had my blow-up at the front desk. On Christmas morning, I found a little note tucked under our doors that said (in part), "we give this one day to our housekeepers to spend time with their families." We laughed a bit that, after all that, we STILL wouldn't get maid service. But when we got back after lunch, we found that our rooms had been serviced. So that's something.

You WILL Say the Wrong Thing

It was really only several years ago, in the run-up to the 2016 election, that I came to realize how serious the problem of institutional racism actually was -- even in my very liberal institution. During the last round of strategic planning the campus held a number of listening sessions related to diversity, inclusion, and equity -- and I remember a statement that one black student said about how frustrated she was about being the victim of instutional racism and yet was expected to somehow educate her white faculty and peers about the problems of racism. That struck home with me.

One thing the campus has done over the past couple of years is to institute a series of book groups for faculty, staff, and students to read a common book and then discuss the readings over a period of weeks. The group I participated in this year read the book What If I Say the Wrong Thing by Vernā A. Myers. Our last meeting was today.

Last night, at a dinner that brought all the groups together, I pointed out that a better title for the book might have been, "You WILL Say the Wrong Thing and That's OK." I told them that I had come into the group intending to say very little because I've gotten the message that old, white, cis-het men should shut up and listen. And growing up, as I did, in an environment of racism and misogyny, I found that I have a lot baggage that I learned uncritically and that can come out in surprising and unexpected ways. But that a key message of the book and the book club was that it was OK to say these things as long as you were ready to learn and try to improve. People politely applauded and the organizers seemed pleased with my expression of learning.

But, as I confessed to my group today, this was really a lie. Almost any statement can quickly snowball today into an internet mob and the instution is perfectly ready, for all their statements about diversity and inclusion, to throw you under the bus at the first whiff of controversy. Yesterday, a senior lecturer was pulled from her class for showing a parody video made by previous students in the class as an extra credit assignment. I find the current climate in academia very chilling and I watch what I say pretty carefully. Of course, I've always done that.

Many years ago, my brother Phil and I learned that anything you post online, no matter how seemingly ephemeral, may well persist forever. Some people approached this by trying to avoid leaving any tracks online. I recognized that much of what I did was going to be visble on the internet and so, therefore, I resolved to be relatively open about it: to make sure that anyone who cared to look, could easily find a balanced picture of me, so that no one negative thing would seriously distort the publically-available record. But to do so knowing that any thing you said online might be read by anyone. Forever. That said, it has increasingly become clear that, as mores and societal values change, even uncontroversial statements made in the past can come to appear problematic. I don't see any way to avoid that, though. You just have to acknowledge the past and move on.

I'm glad I participated in the book group anyway: it was an interesting mix of people from very different environments on campus. But it's still a scary time in academia.

The world is full of old, angry, bitter people

The other morning, I found myself thinking, "the world is full of old, angry, bitter people." And I realized that when I said, "the world," I was actually talking about my filter bubble. Much of what passes for political discourse, these days, are bitter statements by angry old people. And, my time is increasingly spent among old people who are angry and bitter. Of course, if I were in a different filter bubble, the world might well be full of young, angry, bitter people. They certainly have reason for it. But upon my realization, I decided I would make some changes.

My first change is to quit checking twitter during the day. I'm not going to stop altogether, but I'm going to limit my access and only check during non working hours (although I did log in briefly today to amplify a job posting that folks I know might appreciate.)

I also want to be more intentional about making time to seek joy. I've always found winter difficult and this year, with so much uncertainty, I find myself at times paralyzed with anxiety. I don't like being intentional: I take great pleasure in letting my life organize itself organically but, when stuff isn't working, I should probably wring my hands and agonize until the crisis has passed. Or spring comes.

At least, it gave me a good story to tell at my learning community book group on inclusive and respectful communication.


Subscribe to RSS - Steven D. Brewer's blog