When I first discovered the Open West conference, I was told it was the biggest US open source event that I'd never heard of, which is a pretty apt description. Open West brings together technologists interested in Open Technology in Sandy Utah, just south of Salt Lake City. This is a community regional Open Source event, run by volunteers, which means the program is much more varied than what you'd see at an event focused on a particular open source technology stack.
With up to 13 tracks happening simultaneously, there were lots of great moments for me over the course of the week. I'm just going to capture a few of them.
OpenCV Trials and Tribulations
There was a great talk by John Harrison at Lucid Charts about trying to do something interesting with OpenCV, and failing. He was giving the talk in the spirit of the Journal of Negative Results: reporting a hard problem they tried and failed at, and the dead ends they ran into.
It started as a hackfest project, could they take a screen shot with a camera of a flow chart, and use OpenCV to turn that into a symbolic flow chart in their tool. Turns out if you write all connecting lines in red, and all shapes in black, it's not a very hard problem. Also turns out, even in controlled user experiments, you can't get anyone to do that. It fails UX. And while they did build a system that worked with black lines everywhere in controlled lab environments, it worked with 0% of customer taken images, and the path to improvement wasn't clear, so after a 2 month experiment they stopped.
While they are primarily a Java shop, they did this entire project in python, because while "there are OpenCV bindings for every language you can imagine, all the interesting examples are only in python." Which goes to show how import an open and vibrant ecosystem of consuming tools is to the success of a project.
Writing Ethical Software
This was an interesting talk by James Prestwich on writing ethical software, that started with a brief history of schools of thought on ethics over the last 3000 years. The primer was just straight up informative, and the presenter actually did a quite good job being neutral through all of that.
Then we were posed with an interesting question. Software is now mostly about mediating complex interactions between people. If you look at other fields like Medicine and Law there are oaths and codes of conduct that their practitioners take because of how much their work affects people's lives.
We have collectively decided that certain things, like land mines, should not exist in the world. We have treaties on that. But as software eats the world, we're not having the conversation about what software should not exist, for any reason.
There weren't answers during this talk, it was mostly questions and attempting to start a conversation. But for anyone who works in software it's a good thought exercise to have. What are your personal ethical boundaries about software you would create or contribute to? It's also a much better conversation to have well in advance of any actual ethical conflict, because things are rarely bright lines, but long slippery slopes.
There was a dedicated hardware track on the main stage for the whole conference, at least a third of the talks were related to home automation in some way, and 80% of them centered around a project that used a Raspberry Pi.
Raspberry Pi has managed to go across the entire hype curve and is now climbing away on the plateau of productivity. We went from neat idea, to unobtainium, to toy projects, to boxes full of pis in basements, to real productivity over the last 5 years. Yes, there are lots of other cheaper, neater, more powerful platforms, but the ecosystem around the pi just makes it the no brainer work horse.
I was actually a little surprised how many home grown Home Automation systems people talked about there. I did have pieces of something like that before discovering Home Assistant, but now it's hard to imagine doing all the work that the community is doing for me.
One of the projects I thought was most interesting was air quality monitoring with the esp8662. For about $30 they can build each monitoring unit, then find places throughout the community they can plug them in (need power and wifi). They are collecting it all in a
central MQTT broker and doing reports on it to try to get a better baseline on the air quality in the Salt Lake City area.
The stand out keynote of the event was Deb Nicholson on patching people.
Any group of humans, and they ways they interact, have bugs, just like software has bugs. A people bug is like a software bug, it's unintended negative side effects of things that are happening. The point is, patching people is actually not all that different than patching software.
Filing "bugs" against people is a little harder than software, because no one likes to accept criticism. So as such, she put forward the idea of "calling in" vs. "calling out". Take the person aside, privately, and say "I think you were trying to do X, but the way it was said excluded a bunch of these people. Maybe saying it this other way would be more effective?".
The other thing to realize is none of us is above this. We all make mistakes, and need some patching from time to time.
After this talk I'm going to try to be better about calling in when I think it will help. In open source projects, they live or die by the longevity of the community, so patching the community to be more inclusive and welcoming is key.
So many more good moments...
Honestly, there were so many other good moments as well: chatting with folks about Home Assistant after my talk; seeing the state of the world on different AI cloud platforms; thinking about localization and culture in software; getting my head around the oauth model; json web tokens.
This is definitely a conference I'd love to get to again, and a great community event they've built there. Thanks to the OpenWest organizing team for such a great show.