Tuesday, March 7, 2023

Yoga for Nerds

I grew up a nerd, which is the opposite of a jock, so embodied athletic things were not part of my identity. I was more reaching for the ideal of brain-in-vat purity. (Did band and ran 5k anyway) At various times yoga has pushed me away (too much woo-woo usually) but now it works for me, here’s how

Monday, February 6, 2023

Local Election Drama Shows Need For Open Source Elections

tl; dr: Election; certification; software oops!; swearing in; lawsuit.

The Oakland, California School Board election of 2022 is still contested. At first it seemed straightforward; the election and certification went by apparently well. Then, December 28, the Alameda County Registrar of Voters posted an oops, "its RCV tally system was not configured properly". In January the initially certified winner, Nick Resnick, was sworn in. Mike Hutchinson should have won by the corrected count, and he's pursuing a court challenge to fix the outcome in his favor.[1]

The specifics of the problem to me sound like a bug in the implementation of the "Instant Runoff Vote" algorithm used in this RCV election. From the AC ROV press release:

It should have been configured to advance ballots to the next ranking immediately when no candidate was selected for a particular round.  This means that if no candidate was selected in the first round on the ballot, then the second-round ranking would count as the first-round ranking, the third-round ranking would count as the second round ranking, and so on.

To me that doesn't sound like a "configuration" issue, but a straight up bug in the implementation of IRV. I can't imagine the behavior described as being the desired 'correct' behavior in any context. The bigger problem is that we don't know what happened because we don't have the source code. I can post my count of the election, but so what? We don't know what's happening in the official count.

I previously posted about how San Francisco elections don't quite reproduce, not with a big enough margin to change any outcomes, but it's still at least a little worrying that the official cast vote record can't seem to reproduce the officially certified counts. Where did those counts come from? What data were they using? What software and settings did they use to count the votes? We don't know. San Francisco is doing good for the world by publishing their full cast vote data, and we should thank them for that, (and Minneapolis, Minnesota, and the State of Alaska, and a few other places intermittently posting RCV data).

We need our elections running Open Source software that can be publicly verified, otherwise we kinda can't have elections be publicly verified. In this case, a hand count of the 26,714 votes is still a manageable inconvenience, but a future state-wide election with millions of votes might not be feasible.

Thursday, October 20, 2022

Off-grid Base Camp Solar Power

 800 watts of panels, 5.4 kWH of battery*, satellite internet, all I could need for work-from-woods


This was a constant tinkering project, but it always basically worked all summer.

Hackish Off-grid Weather Station (2021)

In 2020 I noted that you can build a small gadget-charging off-grid solar power system for about $200. In 2021 I deployed it to a spot in the woods of Vermont.

This is largely a tale of what kinda-worked and what I should do better next time.

Friday, October 7, 2022

Victron Energy VE.Direct hackish

I have been increasingly pleased by Solar energy components from Victron Energy. Most of their products have a "VE.Direct" port which is just 5V UART serial at 19200 8N1 (a few older battery module units are 3.3V). If you ask nicely and register at their site they will give you pretty thorough technical documentation of the protocol over that serial port. I've been using this python module for parsing VE.Direct serial port broadcast (status update just sends once a second, this may be all the data you need for many uses).

They have an official $30 VE.Direct USB serial adapter that plugs in to their equipment and Just Works. But I work with embedded stuff to know that those are some pretty cheap commodity parts potentially. So I set up with this USB to UART TTL (5v or 3.3V) module that's $10 for a 5 pack and this JST 2.0 PH cable, and for $3 and some soldering I have my hackish VE.Direct adapter cable. Worked the first time!



Wednesday, September 28, 2022

IRV Fails Again, Alaska 2022-08-16

Instant Runoff Voting, the form of Ranked Choice Voting most enacted in the US, known for decades to be flawed, has failed again.

The August 16, 2022 special election in Alaska elected Mary Peltola to US House, but more people wanted Nick Begich.

This isn't an obvious conclusion from the top line reported results, so let's dig and see how this happened.

The IRV rounds played out like this, with Begich in third and eliminated in the first round.

Round 1Round 2
Peltola, Mary S.7580391375
Palin, Sarah5893786195
Begich, Nick54009
exhausted330414626
overvote23693
active188749177570
But let's look at all the second choice votes, from Peltola and Palin also:

FirstSecond
73948Peltola, Mary S.41424Begich, Nick
8447Write-in
3635Palin, Sarah
56669Palin, Sarah32551Begich, Nick
3197Peltola, Mary S.
1214Write-in
51762Begich, Nick25699Palin, Sarah
14093Peltola, Mary S.
1391Write-in
3051Write-in1075Begich, Nick
997Peltola, Mary S.
429Palin, Sarah

Begich was the clear consensus second choice of Peltola voters and Palin voters, and he had a sizeable first-choice vote as well.

When you add it all up, the pairwise preferences look like this:
123
(1) Begich, Nick88212101500
(2) Peltola, Mary S.7951591438
(3) Palin, Sarah6369386283
Peltola had good first choice support, but much weaker second choice support, so ultimately more people wanted Begich over Peltola than the other way around.

With no additional complexity and no additional cost, we could have better Ranked Choice Voting that recognizes the democratic principle that if more people want A than B, A should win.

Monday, March 14, 2022

Time Zones, DST, Act Locally

Lots of debate about DST and time zones and should we change them.

Around where I am in Boston, with DST, sunrise varies by over two hours from 05:06 to 07:22, and sunset varies by over four hours from 4:11pm to 8:25pm. (DST is really "sunrise stabilization time".)

What I think I hear underneath is that people want their schedules aligned to the sun. The want more sun in their day. They want their waking aligned to the sun and the end of their day aligned with the sun.

Then they run up against needing a bunch of states going in on change together, or even an act of Congress. The sad fact of astronomy is that summer days are over 15 hours but winter days are only 9 hours and maybe with that scarcity of daylight we're just not going to make everyone happy.

But, we can act locally starting any time. Businesses can change their hours. School districts can change their hours. There's nothing sacred about school starting at a time named "7:35 am" or whatever. DST or not, that time could even shift a couple times during the year, maybe in steps of half an hour. If I was running a coffee shop I'd be tempted to declare "opens at sunrise" (or an hour before sunrise in some places).

Act locally, start now.